Приветствую, обитателей и гостей форума! В этой статье, я хочу показать на практике работу, эксплойта ETERNALROMANCE/SYNERGY с улучшенным методом эксплуатации и направленным на системы под управлением Windows Server.
Здесь можно прочитать о его происхождении способах приготовления:
>
Я симулирую свой метод эксплуатации, в качестве цели:
> Windows Server 2008 с какими то, обновлениями вроде бы.
Атакующий хост:
> Kali Linux 2017.2
Скачиваем сам эксплоит:
>
Для удовлетворения зависимостей:
> nano eternal.py
Необходимо добыть модуль mysmb:
> git clone https://github.com/worawit/MS17-010
Копируем его в папку с эксплойтом:
Затем создаем файл __INIT__.py и в него добавляем модуль mysmb, его наличие необходимо для корректной работы eternal.py
> touch __INIT__.py
> nano __INIT__.py
Так как, уязвимость, в эксплойте ETERNALROMANCE/SYNERGY, требует аутентификации, перед началом атаки, необходимо в файле eternal.py указать логин и пароль от любой доступной вам учетной записи, на целевом хосте.
> nano eternal.py
Для корректной работы эксплойта необходимо указать два параметра: IP-адрес целевого хоста и имя канала (pipe name*). Протокол SMB поддерживает три типа общих ресурсов:
· File: файловые (или дисковые) общие ресурсы, представляющие собой дерево директорий с файлами.
· Print: доступ к ресурсам принтера на сервере.
· Pipe: коммуникация между процессами, использующими модель FIFO, при помощи именованных каналов, которые активны до тех пор, пока система работает, даже если процесс уже не активен.
В отличие от ETERNALBLUE эксплойты ETERNALROMANCE и ETERNALSYNERGY используют именованные каналы, поэтому необходимо найти для себя, тот единственный, по которому мы и будем осуществлять проникновение.
· named pipe — один из методов межпроцессного взаимодействия, расширение понятия конвейера в Unix и подобных ОС. Именованный канал позволяет различным процессам обмениваться данными, даже если программы, выполняющиеся в этих процессах, изначально не были написаны для взаимодействия с другими программами.
Посмотрим, какие каналы использует наш целевой хост, используя Metasploit:
> use auxiliary/scanner/smb/pipe_auditor
Я выбрал поток протокола \atsvc:
Запускаем скрипт, с выбранным потоком, в случае успешной его отработки, в директории C:\ будет создан файл с именем pwned.txt
Зайдем на сервер, и убедимся в этом:
Теперь, мы можем создать полезную нагрузку и запустить ее выполнение на сервере.
По факту, выделенная строка в скрипте:
Является командой в cmd, это грубо говоря, она корректно отрабатывает и является дополнительным моментом для осуществления теста.
Но, нам необходимо получить как минимум сессию meterpreter, идем далее по скрипту, строка:
Позволит загрузить на сервер файл с одноименным названием и содержимым, изменим ее таким образом, чтобы скрипт загружал полезную нагрузку, созданную, к примеру, в setoolkit. На скриншоте ниже, полезная нагрузка, которая была создана изначально в .exe формате, затем переименована в .txt для успешной передачи.
Меняем скрипт, как показано ниже.
Полагаю, много вопросов возникнуть не должно, мы копируем на сервер наш текстовый файл, затем возвращаем ему изначальный формат, и следующей строкой запускаем.
> python eternal.py 172.16.0.185 atsvc
На сервер успешно копируется наша полезная нагрузка и запускается:
В Metasploit, открывается сессия meterpreter:
Приятная особенность в том, что она будет с системными привилегиями.
На этом пожалуй хватит, спасибо за внимание.
Здесь можно прочитать о его происхождении способах приготовления:
>
Ссылка скрыта от гостей
Я симулирую свой метод эксплуатации, в качестве цели:
> Windows Server 2008 с какими то, обновлениями вроде бы.
Атакующий хост:
> Kali Linux 2017.2
Скачиваем сам эксплоит:
>
Ссылка скрыта от гостей
Для удовлетворения зависимостей:
> nano eternal.py
Необходимо добыть модуль mysmb:
> git clone https://github.com/worawit/MS17-010
Копируем его в папку с эксплойтом:
Затем создаем файл __INIT__.py и в него добавляем модуль mysmb, его наличие необходимо для корректной работы eternal.py
> touch __INIT__.py
> nano __INIT__.py
Так как, уязвимость, в эксплойте ETERNALROMANCE/SYNERGY, требует аутентификации, перед началом атаки, необходимо в файле eternal.py указать логин и пароль от любой доступной вам учетной записи, на целевом хосте.
> nano eternal.py
Для корректной работы эксплойта необходимо указать два параметра: IP-адрес целевого хоста и имя канала (pipe name*). Протокол SMB поддерживает три типа общих ресурсов:
· File: файловые (или дисковые) общие ресурсы, представляющие собой дерево директорий с файлами.
· Print: доступ к ресурсам принтера на сервере.
· Pipe: коммуникация между процессами, использующими модель FIFO, при помощи именованных каналов, которые активны до тех пор, пока система работает, даже если процесс уже не активен.
В отличие от ETERNALBLUE эксплойты ETERNALROMANCE и ETERNALSYNERGY используют именованные каналы, поэтому необходимо найти для себя, тот единственный, по которому мы и будем осуществлять проникновение.
· named pipe — один из методов межпроцессного взаимодействия, расширение понятия конвейера в Unix и подобных ОС. Именованный канал позволяет различным процессам обмениваться данными, даже если программы, выполняющиеся в этих процессах, изначально не были написаны для взаимодействия с другими программами.
Посмотрим, какие каналы использует наш целевой хост, используя Metasploit:
> use auxiliary/scanner/smb/pipe_auditor
Я выбрал поток протокола \atsvc:
Запускаем скрипт, с выбранным потоком, в случае успешной его отработки, в директории C:\ будет создан файл с именем pwned.txt
Зайдем на сервер, и убедимся в этом:
Теперь, мы можем создать полезную нагрузку и запустить ее выполнение на сервере.
По факту, выделенная строка в скрипте:
Является командой в cmd, это грубо говоря, она корректно отрабатывает и является дополнительным моментом для осуществления теста.
Но, нам необходимо получить как минимум сессию meterpreter, идем далее по скрипту, строка:
Позволит загрузить на сервер файл с одноименным названием и содержимым, изменим ее таким образом, чтобы скрипт загружал полезную нагрузку, созданную, к примеру, в setoolkit. На скриншоте ниже, полезная нагрузка, которая была создана изначально в .exe формате, затем переименована в .txt для успешной передачи.
Меняем скрипт, как показано ниже.
Полагаю, много вопросов возникнуть не должно, мы копируем на сервер наш текстовый файл, затем возвращаем ему изначальный формат, и следующей строкой запускаем.
> python eternal.py 172.16.0.185 atsvc
На сервер успешно копируется наша полезная нагрузка и запускается:
В Metasploit, открывается сессия meterpreter:
Приятная особенность в том, что она будет с системными привилегиями.
На этом пожалуй хватит, спасибо за внимание.