День 6. Сканер WMAP и введение в разработку эксплойтов
Автор статьи никого не призывает к правонарушениям и отказывается нести ответственность за ваши действия. Вся информация предоставлена исключительно в ознакомительных целях. Все действия происходят на виртуальных машинах и внутри локальной сети автора. Спасибо!
Два предыдущих дня потратил на анализ целевых машин. Приобрел много полезной информации. Теперь перехожу к разделу «VULNERABILITY SCANNING» (Сканирование уязвимостей).
Сканирование уязвимостей позволит быстро сканировать целевой диапазон IP-адресов в поисках известных уязвимостей и даст представление о том, какие атаки проводить.
Если правильно использовать эти средства, то они принесут пользу. Но есть недостатки. Любое такое программное обеспечение обладает высоким уровнем ложных результатов. Это необходимо иметь ввиду.
Существует ситуация, в которой у нас есть комбинация логина и пароля. Есть специальный сканер проверки входа в SMB, который проверяет несколько хостов на успешность входа с такой комбинацией.
Стоит иметь ввиду, что все неуспешные входы будут сохранены в журналах Windows. Любые успешные действия могут быть подключены к эксплойту psexec, который я уже неоднократно использовал для создания сеансов Meterpreter.
Сканер VNC является вспомогательным модулем для поиска уязвимых целей, на которых работает VNC сервер без настроенного пароля. Заюзаем auxiliary/scanner/vnc/vnc_none_auth
. Установим необходимый хост и запустим. Результат ожидаемый, так как VNC не включен.
WMAP – это многофункциональный сканер уязвимостей веб-приложений, изначально созданный на основе инструмента SQLMap. Этот инструмент интегрирован с Metasploit и позволяет нам проводить сканирование веб-приложений из Metasploit.
Чтобы начать сканирование, создадим новую базу данных для хранения результатов, загрузим подключаемый модуль wmap и запустим справку, чтобы узнать, какие новые команды нам доступны.
Появился блок wmap Commands. Для начала сканирования необходимо добавить целевой URL-адрес, передав ключ -a
в wmap_sites
. После этого запуск wmap_sites -l
распечатает доступные цели.
Далее добавляем конкретную цель (страницу сайта) при помощи команды wmap_target
:
msf6 > wmap_targets -t http://192.168.56.104
В моем случае, это главная страница. Далее мы можем вывести список модулей, которые будут использоваться для сканирования целевой машины. Для этого используется команда wmap_run
с ключом -t
.
Чтобы запустить само сканирование, используем команду wmap_run
с ключом -e
. Осталось только посмотреть, не нашел ли WMAP что-нибудь интересное:
msf6 > wmap_vulns -l
Найденные уязвимости хранятся в базе данных. Чтобы их вывести существует команда vulns
.
Следующий раздел про NeXpose я пока пропускаю. Перехожу к разделу «WORKING WITH NESSUS» (Работа с Nessus). С ним я уже сталкивался в первый день и решил оставить на потом. Вот и настало это «потом».
Nessus – это сканер уязвимостей для личного некоммерческого использования. При помощи Nessus можно выявить большое количество уязвимостей. Спустя 5 дней изучения Metasploit, Nessus уже проще воспринимается. Но все же я оставлю его на потом, когда закончу с Metasploit.
Nessus достаточно автоматизированный сканер. Он всю работу делает за тебя, поэтому учиться на нем нет смысла.
Фаззер – это инструмент, используемый специалистами по безопасности для предоставления неверных и неожиданных данных на вход программы. Типичный фаззер тестирует приложение на переполнение буфера, недопустимые строки формата, атаки обхода каталога, уязвимости выполнения команд, SQL-инъекцию, XSS и многое другое.
Для следующего эксперимента необходимо настроить и включить SMTP. Чтобы не переписывать как это сделать, вот ссылка: http://www.aspnet.com.ua/BlogAll/nastraivaem-smtp-na-windows-server-2008-r2.aspx/325#.YjS_ZurP2Uk.
Хотя нет. Повременю и с этим. Странный подход к обучению на offensive-security.com. Очень сложные вещи объясняются поверхностно. Думаю, вернусь к разделам «SIMPLE TFTP FUZZER» и «SIMPLE IMAP FUZZER» позднее.
В этом разделе обещают научить разрабатывать эксплойты – самый популярный аспект Metasploit. Так как существует огромное множество эксплойтов, то вероятно найдется тот, который можно отредактировать под себя. Так же есть образец эксплойта, который располагается в documentation/samples/modules/exploits/
.
Вот и пришлось первый раз найти, где распаковав Metasploit. Фреймворк находится в следующей папке: /usr/share/metasploit-framework
.
После небольших поисков нашел пример/шаблон эксплойта в этой папке: /usr/share/metasploit-framework/modules/exploits
. Помимо кода на Ruby, в этой же папке есть пример на Python.
Создал папку my
и скопировал туда пример на Python. Попробуем написать эксплойт на питоне, так как его я хотя бы знаю, в отличие от Ruby.
Кажется, я ошибся. При помощи питона можно собирать модули, поэтому придется разбираться с Ruby.
Перезапустил msfconsole
, после чего количество эксплойтов увеличилось на один. Круто! Теперь попробуем заюзать тестовый эксплойт:
msf6 > use exploit/my/test_1
Далее вышел из модуля при помощи команды back
. В ином случае файл test_1.rb
будет защищен от перезаписи. Попробовал поменять название модуля. Запустил модуль. Ничего не поменялось. Перезапустил msfconsole
. Изменения вступили в силу.
Теперь можно понемногу вникать в Ruby и особенности разработки эксплойтов.
В данном случае возникает «палка о двух концах», если можно так выразиться. Чтобы разрабатывать эксплойты (модули), нужно понимать, как они работают, из чего состоят, как взаимодействуют и так далее. С другой стороны, чтобы все это понимать, необходимо научиться их разрабатывать самостоятельно. Поэтому буду пытаться научиться их разрабатывать, при этом не понимая до конца, как все это работает. Посмотрим, что из этого выйдет.
Далее написано про цели разработки эксплойтов. Рекомендуют как можно больше работы переложить на фреймворк, активно использовать mixins (миксины?) и плагины. Так же важна надежность.
Эксплойты должны использовать случайность, когда это возможно. Рандомизация помогает с обходом IDS, IPS и антивируса, а также служит отличным тестом на надежность.
Все модули Metasploit имеют единую структуру с жесткими вкладками.
Подводя итог нашим целям разработки эксплойтов, мы должны создать минималистичный, надежный код, который не только читаем, но и полезен в реальных сценариях тестирования на проникновение. На этом на сегодня хватит. Сегодня возникло много тупиковых ситуаций, многое было отложено на будущее. Но в целом, разобрался со сканером WMAP и начал вникать в разработку эксплойтов.