Работа с W3af в Kali Linux

Это вольный перевод статьи http://pentesterconfessions.blogspot.ru/2007/10/how-to-use-w3af-to-audit-web.html по работе в w3af.

Перевод прислал Entest, спасибо ему, что поделился с нами этим материалом!

Введение

W3af (Web Application Attack and Audit Framework) — это open-source сканер веб-уязвимостей.

Этот сканер имеет как графический интерфейс, так и возможность работы из-под консоли. В общем, это фреймворк с большим количеством различных плагинов.

В данной статье будет описано как осуществить проверку веб-приложения на уязвимости XSS, CSRF и Sqli работая в w3af из под консоли.

Как пользоваться W3af 

Для запуска W3af в консольном виде надо открыть терминал и напечатать:

w3af_console

Для того чтобы посмотреть список всех опций напишем:

w3af>>> help

И получим:

|-----------------------------------------------------------------------------|
| start         | Запустить сканирование.                                     |
| plugins       | Включение и настройка плагинов.                             |
| exploit       | Эксплуатировать уязвимость.                                 |
| profiles      | Показать список и использовать профайлы сканирования.       |
| cleanup       | Очистить перед началом нового сканирования.                 |
|-----------------------------------------------------------------------------|
| help          | Показать помощь. Наберите: help [команда] , чтобы увидеть   |
|               | больше помощи по конкретной "команде"                       |
| version       | Показать информацию о версии w3af.                          |
| keys          | Показать сочетания клавиш.                                  |
|-----------------------------------------------------------------------------|
| http-settings | Задать HTTP настройки фреймворка.                           |
| misc-settings | Изменить остальные настройки w3af.                          |
| target        | Настроить целевой URL.                                      |
|-----------------------------------------------------------------------------|
| back          | Вернуться в предыдущее меню.                                |
| exit          | Выход из w3af.                                              |
|-----------------------------------------------------------------------------|
| kb            | Просмотреть уязвимости, доступные в Базе Знаний.            |
|-----------------------------------------------------------------------------|

Прежде всего надо сказать как настроить w3af для работы.

Для выбора опции достаточно напечатать ее название, для того чтобы вернуться к предыдущему уровню следует напечатать "back".

Если напечатать команду "view" то на экран будет выведен список настраиваемых параметров выбранной опции.

Теперь рассмотрим опцию "target". В ней задается URL для проводимой проверки.

Настройка опций:

w3af>>> target
w3af/config:target>>> help

Для данной опции доступны следующие параметры:

|-----------------------------------------------------------------------------|
| view   | Список доступных опций и их значения.                              |
| set    | Установить значение параметра.                                     |
| save   | Сохранить новую конфигурацию.                                      |
|-----------------------------------------------------------------------------|
| back   | Вернуться в предыдущее меню.                                       |
| exit   | Выйти из w3af.                                                     |
|-----------------------------------------------------------------------------|

Установим URL для проверки:

w3af/config:target>>> set target http://localhost
w3af/config:target>>> view

Для дальнейшей работы необходимо настроить плагины.

w3af/config:target>>> back
w3af>>> plugins
w3af/plugins>>> help
|---------------------------------------------------------------------------------------------------|
| list                  | Список доступных плагинов.                                                |
|---------------------------------------------------------------------------------------------------|
| back                  | Перейти к предыдущему меню.                                               |
| exit                  | Выйти из w3af.                                                            |
|---------------------------------------------------------------------------------------------------|
| grep                  | Просмотр, настройка и включение плагинов grep                             |
| audit                 | Просмотр, настройка и включение плагинов аудита                           |
| evasion               | Просмотр, настройка и включение плагинов уклонения                        |
| crawl                 | Просмотр, настройка и включение плагинов обхода контента                  |
| auth                  | Просмотр, настройка и включение плагинов аутентификации                   |
| mangle                | Просмотр, настройка и включение плагинов искажения                        |
| output                | Просмотр, настройка и включение плагинов вывода                           |
| bruteforce            | Просмотр, настройка и включение плагинов брутфорса                        |
| infrastructure        | Просмотр, настройка и включение плагинов инфраструктуры                   |
|---------------------------------------------------------------------------------------------------|

Для аудита веб-приложения нам потребуется настроить как минимум четыре плагина. Audit, crawl, infrastructure и output.

Если мы напечатаем audit, то увидим все доступные настройки для этого плагина, такие как xss, csrf, sql и ldap инъекции и т.д. Кроме этого там также указано какие из настроек в данный момент включены.

Для включения определенных настроек следует напечатать:

w3af/plugins>>> audit xss,csrf,sqli

Для выбора всех настроек:

w3af/plugins>>> audit all

Нам как раз и нужно проверить веб-приложение на эти уязвимости. Кроме того мы хотим чтобы результат проверки отображался в консоли и был сохранен в виде html.

Для этого включим необходимые плагины crawl и output.

w3af/plugins>>> crawl web_spider,pykto
w3af/plugins>>> infrastructure hmap
w3af/plugins>>> output console,html_file

Немного информации об используемых плагинах:

Web_spider  — Плагин представляет из себя классического web-паука. Он бродит по сайту и извлекает все ссылки и адреса форм.

Pykto — Плагин представляет из себя сканнер nikto, портированный на python. Он использует базу данных из nikto (scan_database) для поиска уязвимых ссылок.

Hmap — Плагин опознаёт удалённый веб-сервер, его тип, версию и установленные исправления.

Идентификация происходит не только через заголовок "Server". По сути плагин представляет из себя обёртку для hmap Dustin`a Lee.

Console — Этот плагин пишет отчёт о работе фреймворка в консоль.

Html_file — Плагин пишет отчёт о работе фреймворка в HTML-файл.

Для начала аудита выполняем следующие команды:

w3af/plugins>>> back
w3af>>> start

Сканер работает довольно долго, так что придется запастись терпением. В итоге получим примерно такой отчет:

w3af>>> start
Auto-enabling plugin: discovery.allowedMethods
Auto-enabling plugin: discovery.error404page
Auto-enabling plugin: discovery.serverHeader
The Server header for this HTTP server is: Apache/2.2.3 (Ubuntu) PHP/5.2.1
Hmap plugin is starting. Fingerprinting may take a while.
The most accurate fingerprint for this HTTP server is: Apache/2.0.55 (Ubuntu) PHP/5.1.2
pykto plugin is using "Apache/2.0.55 (Ubuntu) PHP/5.1.2" as the remote server type. This information was obtained by hmap plugin.
pykto plugin found a vulnerability at URL: http://localhost/icons/ . Vulnerability description: Directory indexing is enabled, it should only be enabled for specific directories (if required). If indexing is not used, the /icons directory should be removed. The vulnerability was found in the request with id 128.
pykto plugin found a vulnerability at URL: http://localhost/doc/ . Vulnerability description: The /doc directory is browsable. This may be /usr/doc. The vulnerability was found in the request with id 1865.
pykto plugin found a vulnerability at URL: http://localhost/> . Vulnerability description: The IBM Web Traffic Express Caching Proxy is vulnerable to Cross Site Scripting (XSS). CA-2000-02. The vulnerability was found in the request with id 3385.
New URL found by discovery: http://localhost/
New URL found by discovery: http://localhost/test2.html
New URL found by discovery: http://localhost/xst2.html
New URL found by discovery: http://localhost/xst.html
New URL found by discovery: http://localhost/test.html

И результат, сохраненный в results.html:

w3af results

3 комментария к “Работа с W3af в Kali Linux”

  1. Подскажите запускаю gui w3af через 30 секунд теста прога тупо виснет и не реагирует не на что.Использую в Kali.В чем может быть проблема?

    Ответить
    • Была похожая проблема с wpscan'om. Попробуйте переустановить w3af, вдруг поможет:
      apt-get install —reinstall w3af

      Ответить
  2. При запуске выдавало ошибку, промучался с ней несколько часов, но понял в чем проблема.

    «`
    It seems that your Python installation does not have all the modules required by the w3af framework. For more information about how to install and debug dependency issues please browse to http://docs.w3af.org/en/latest/install.html
    Traceback (most recent call last):
    File «/usr/bin/w3af», line 151, in
    _main()
    File «/usr/bin/w3af», line 147, in _main
    sys.exit(main())
    File «/usr/bin/w3af», line 142, in main
    return console.sh()
    File «/usr/share/w3af/w3af/core/ui/console/console_ui.py», line 145, in sh
    self._context = rootMenu(name, self, self._w3af)
    File «/usr/share/w3af/w3af/core/ui/console/rootMenu.py», line 70, in __init__
    ‘kb’: kbMenu
    File «/usr/share/w3af/w3af/core/ui/console/util.py», line 26, in mapDict
    fun(p, dct[p])
    File «/usr/share/w3af/w3af/core/ui/console/menu.py», line 110, in addChild
    name, self._console, self._w3af, self, *params)
    File «/usr/share/w3af/w3af/core/ui/console/exploit.py», line 47, in __init__
    plugin = self._w3af.plugins.get_plugin_inst(‘attack’, plugin_name)
    File «/usr/share/w3af/w3af/core/controllers/core_helpers/plugins.py», line 247, in get_plugin_inst
    plugin_inst = factory(‘w3af.plugins.%s.%s’ % (plugin_type, plugin_name))
    File «/usr/share/w3af/w3af/core/controllers/misc/factory.py», line 62, in factory
    __import__(module_name)
    File «/usr/share/w3af/w3af/plugins/attack/sqlmap.py», line 37, in
    from w3af.plugins.attack.db.sqlmap_wrapper import Target, SQLMapWrapper
    File «/usr/share/w3af/w3af/plugins/attack/db/sqlmap_wrapper.py», line 33, in
    from w3af.core.controllers.daemons.proxy import Proxy
    File «/usr/share/w3af/w3af/core/controllers/daemons/proxy/__init__.py», line 1, in
    from .handler import ProxyHandler
    File «/usr/share/w3af/w3af/core/controllers/daemons/proxy/handler.py», line 25, in
    from netlib.odict import ODictCaseless
    ImportError: No module named odict

    «`
    Проблема заключалась в новой версии mitmproxy

    После установки
    `pip install mitmproxy==0.17
    `
    все стало хорошо и ошибка пропала

    Ответить

Оставьте комментарий