PDA

Просмотр полной версии : w3af - Web Application Attack and Audit Framework


iv.
04.05.2009, 22:33
1. Intro

w3af. Странно, что на форуме по безопасности веб интерфейсов данный поисковый запрос практически не дал результатов. С первого же взгляда эта платформа показалась мне очень интересной! Поэтому я решил ликвидировать это упущение и немного рассказать о ней. w3af - платформа для проведения аудита и атак на веб-приложения. Кто-то не побоялся назвать её "Metasploit for the Web". Платформа с открытым исходным кодом. Она написана на python, поэтому с успехом запускается и под Windows, и под *NIX, и под Макось. Всё что нужно для инсталляции - это установленный интерпретатор питона второй ветки (не третьей!). В распоряжении пользователя как графический (с использованием GTK), так и консольный (для черношапошников) интерфейсы. Подавляющую часть функциональности платформы составляют плагины (на данный момент уже более 100), которые разделены на группы:

audit - плагины, которые непосредственно ищут уязвимости на веб сервере
bruteforce - плагины для перебора логинов и паролей веб форм и BasicAuth
discovery - плагины для сбора информации: версия веб сервера, версия ОС, ссылки, пользователи, электропочтовые ящики
evasion - плагины, которые изменяют запросы к веб серверу для преодоления фильтрации, типа кавычек и прочего
grep - плагины для анализа запросов/ответов веб сервера
mangle - плагины для изменения запросов к веб серверу "на лету"

С полным списком (http://w3af.sourceforge.net/plugin-descriptions.php) плагинов можно ознакомиться на сайте проекта.
Ладно - меньше слов, больше дела!

2. Setup

Если в вашей системе не установлен интерпретатор питона, то скачайте его отсюда (http://www.python.org/download/) и установите (напоминаю - вторую версию, она же 2.*.*, ибо с третьей версией платформа несовместима). Далее идем на официальный сайт w3af (http://w3af.sourceforge.net/#download) скачиваем и устанавливаем последнюю версию платформы. Процесс установки, думаю, особого смысла описывать нет. Под винду вообще очень просто устанавливается - в комплекте идут все нужные компоненты, кроме самого интерпретатора питона. Если возникнут проблемы с установкой - спрашивайте здесь.

3. GUI

Начнем знакомство с графического интерфейса. Для того, чтобы запустить платформу в графическом режиме, нужно запустить батник w3af_gui.bat, который находится в папке с установленным фреймворком или вообще в меню "Start / Пуск" (для Windows) или набрать команду w3af -g (для *NIX). Ниже представлено главное окно программы:

http://img90.imageshack.us/img90/8858/mainc.gif

Слева располагается набор профилей. Профиль - это набор плагинов, которые будут активированы в ходе аудита. Они располагаются правее и после выбора профиля можно изменять начальный набор плагинов в зависимости от потребностей. Например, если выбрать профиль fast_scan, то будут выбраны плагины из группы audit (sqli - для поиска sql инъекций, xss - для поиска xss уязвимостей) и из группы discovery (yahooSiteExplorer - с его помощью будут искаться проиндексированные yahoo страницы сайта для последующего их отправления для аудита плагинами sqli и xss). Предположим, если нам надо протестировать сайт только на sql инъекции, то нужно снять галочку с xss, ввести в поле Target ссылку на сайт, например http://www.victim.com и нажать Start.
Продемонстрирую это на примере. Возьмем какой-нибудь сайт, где заведомо есть инъекция, например из темы про sql инъекции и запустим сканер. Откроется вкладка Log, где будет виден прогресс сканирования, а также будет выводится полезная информация по ходу дела:

http://img90.imageshack.us/img90/3/sqlinj.gif

Во вкладке Results можно посмотреть более подробный отчет о найденных уязвимостях, а во вкладке Exploit - дать возможность сканеру эксплуатировать эти уязвимости (в данном случае - с помощью sql_webshell или sqlmap), что у него не всегда получается. На этот раз в один прекрасный момент хост просто отказался отвечать на запросы. =(

4. consoleUI

Итак, теперь разберемся, как проделать вышеописанные действия в консоли. Что нужно знать в первую очередь - это две самые актуальные команды: help и back (оно же Ctrl+C). Консоль снабжена удобной функцией автодополнения (клавиша Tab). Так выглядит главное меню w3af после команды help:

http://img90.imageshack.us/img90/8214/consoled.gif

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

w3af>>> plugins
w3af/plugins>>> audit sqli
w3af/plugins>>> discovery yahooSiteExplorer
Таким образом включили два нужных нам плагина. Теперь зададим объект сканирования:

w3af>>> target
w3af/config:target>>> set target http://www.racingimages.cc/
Включим вывод на консоль и в текстовый файл, зададим имя файла:

w3af>>> plugins
w3af/plugins>>> output console,textFile
w3af/plugins>>> output config textFile
w3af/plugins/output/config:textFile>>> set fileName output-w3af.txt
И, наконец, запустим сканирование:

w3af>>> start

5. Outro

Enjoy! С вами был iv. Жду умных мыслей и дополнений!

gibson
04.05.2009, 22:53
Странно, что на форуме по безопасности веб интерфейсов данный поисковый запрос практически не дал результатов.
Наверно, потому что, есть
https://forum.antichat.ru/showpost.php?p=123059&postcount=1

iv.
04.05.2009, 22:59
Наверно, потому что, есть
https://forum.antichat.ru/showpost.php?p=123059&postcount=1
Хм? Не уловил мысль =) Тот пост за 2006 год - w3af и в помине не было..

Zitt
04.05.2009, 23:14
а я никто юзаю=)
а вобще хакеры на уровне все делают руками....

iv.
04.05.2009, 23:16
а я никто юзаю=)
а вобще хакеры на уровне все делают руками....
Тут никто в качестве плагина присутствует - pykto.
Ручной аудит никто не отменял, но автоматизировать рутинные процессы - всегда приятно.

iv.
19.05.2009, 09:36
Сегодня пробовал w3af под никсами. Собственно, опишу мои действия, чтобы было меньше вопросов.
Будем считать, что питон уже установлен в системе. Скачиваем архивчик w3af_1.0-rc2.tar.bz2 с SourceForge (http://sourceforge.net/project/showfiles.php?group_id=170274&package_id=194268&release_id=673325) и распаковываем себе в домашнюю директорию, например. Для удобства пользователя почти все нужные библиотеки есть в этом архиве. Чтобы их установить нужно:

cd ~/w3af/extlib/fpconst-0.7.2/
sudo python setup.py install

cd ../pygoogle/
sudo python setup.py install

cd ../SOAPpy/
sudo python setup.py install

cd ../pyPdf/
sudo python setup.py install

Далее после этого, если попробуем запустить w3af он скажет, что таких-то компонентов нет и предложит их заинсталлить:

sudo apt-get install graphviz
sudo apt-get install python-pyopenssl

cd ~/w3af/w3af_gui

Вуаля, можно работать:

http://img177.imageshack.us/img177/782/w3af.png

TRX.new
19.05.2009, 13:45
Ну экзотику это дело все-равно не осилит.. а примитив до среднего уровня проверить можно.. Полезно, спасибо!

Spacelove
24.05.2009, 02:02
Сори что отрываю от дел!При запуске данной программы GUI у меня возникает её закрузка после чего вылетает не понятный список ошибок связанный с Python и вся загрузка прерываеться.Прошу помочь разобраться с этой проблемой.Когда запускаю консольный вариант просто вылетает.
p.s Python поставил версия 2.5.4

iv.
24.05.2009, 16:48
Сори что отрываю от дел!При запуске данной программы GUI у меня возникает её закрузка после чего вылетает не понятный список ошибок связанный с Python и вся загрузка прерываеться.Прошу помочь разобраться с этой проблемой.Когда запускаю консольный вариант просто вылетает.
p.s Python поставил версия 2.5.4
Непонятный список ошибок скопируй сюда.

Spacelove
24.05.2009, 20:28
http://xmages.net/out.php/i237897_error.jpg

Spacelove
24.05.2009, 20:31
Сделал скрин, остальную часть ошибки не успеваю посмотреть так как она исчезает.

iv.
24.05.2009, 21:12
Такое ощущение, что не все питоновские либы стоят, которые после инсталляции w3af ставятся.
Необходимы:
fpconst-0.7.2
pygoogle
nltk
SOAPpy
pyPdf
Beautiful Soup
Python OpenSSL
json.py
scapy
Для GUI:
python sqlite3
graphviz
pygtk 2.0
gtk 2.12
глянь их в %python_path%\Lib\ если нет, то придется скачивать вручную, либо заново инсталлятор w3af запустить

Tigger
24.05.2009, 21:16
Хм... Можно будет попробывать... Но мне и руками как-то привычнее и удобнее... Если что, то есть SIPT.
А Backtrack не тоже самое? Я просто никогда ничгео такого не ставил...

//Если поставлю, то отпишусь...

pento
24.05.2009, 21:24
Хм... Можно будет попробывать... Но мне и руками как-то привычнее и удобнее... Если что, то есть SIPT.
А Backtrack не тоже самое? Я просто никогда ничгео такого не ставил...

//Если поставлю, то отпишусь...
Что понимаетяс под SIPT?
Бактрак - совершенно другое. Автору респект за статью. Сейчас доделаем прокси до уровня BurpProxy и WebScarab и вообще конфетка будет.

Spacelove
24.05.2009, 21:52
Народ если кому не трудно залейте на файловый обменник свой Python2.5.4 .Либо отдельно выложите библиотеки :
python sqlite3
graphviz
pygtk 2.0
gtk 2.12

iv.
24.05.2009, 22:10
Народ если кому не трудно залейте на файловый обменник свой Python2.5.4 .Либо отдельно выложите библиотеки :
python sqlite3
graphviz
pygtk 2.0
gtk 2.12
Запусти инсталлер заново и внимально следуй указаниям, окна лишние не закрывай. =)

Spacelove
24.05.2009, 22:11
Такое ощущение, что не все питоновские либы стоят, которые после инсталляции w3af ставятся.
Необходимы:

Для GUI:

глянь их в %python_path%\Lib\ если нет, то придется скачивать вручную, либо заново инсталлятор w3af запустить

Отлично , Не помогло.Прошу предложить еще варианты решения проблемы!

iv.
24.05.2009, 23:15
Не помогло что? Либы все на месте? Питон точно 2?

Spacelove
24.05.2009, 23:35
НЕ помогла переустановка программы,Библиотек(Либы все на месте)Питон точно 2.5.4,
Возможно программа не адаптированная для Висты?!

iv.
24.05.2009, 23:44
НЕ помогла переустановка программы,Библиотек(Либы все на месте)Питон точно 2.5.4,
Возможно программа не адаптированная для Висты?!
Программа? Тогда питон получается не адаптирован. Я на висту не пробовал ставить.

Spacelove
25.05.2009, 02:36
КАким образом может Питон не адаптированным к висте?)Народ у кого на висте работала данная программа w3af???

LEE_ROY
25.05.2009, 03:08
что можно было напихать в энтот сканер, на 400 метров ?

iv.
25.05.2009, 11:06
КАким образом может Питон не адаптированным к висте?)
Если ты, как говоришь, всё правильно сделал, то я могу сделать только такое заключение. Ибо w3af через интерпретатор питона работает.
что можно было напихать в энтот сканер, на 400 метров ?
Это в какой ОС такое? У меня на никсах 69мб в распакованном виде.

Spacelove
25.05.2009, 13:58
То что w3af работает через Питон это понятно, не понятно почему выдаёт ошибку.
Сделал еще скрин

http://xmages.net/out.php/i238858_556.jpg

LEE_ROY
25.05.2009, 14:23
я идиот )
вместо проги (shorty) релиза, скачал образ vmware с предустановленными модулями и самим сканнером внутри ) это пиздец )

iv.
25.05.2009, 14:38
То что w3af работает через Питон это понятно, не понятно почему выдаёт ошибку.
Сделал еще скрин

http://xmages.net/out.php/i238858_556.jpg
Имя пользователя криво передается. Русскими буквами назвался? Ну пробуй теперь проделать всё это из-под английского. =)

Spacelove
25.05.2009, 18:13
Ну пробуй теперь проделать всё это из-под английского. =)

Не понял что мне тепреь делать?

iv.
26.05.2009, 06:53
Не понял что мне тепреь делать?
Из-под английского %username% повторить действия.

login999
26.05.2009, 08:09
Не-а не совсем :) сделай так чтоб в пути к запускаемому файлу не было папок с русскими именами(можно поставить в корень локального диска).
Еще как вариант можно поставить Python 2.6, найти где в этом чуде есть такая строчка os.getcwd() и заменить ее на os.getcwdu() -должно помочь тоже :)

iv.. +20 за цацку :) По свободе потыкаю :)

iv.
26.05.2009, 16:39
Не-а не совсем сделай так чтоб в пути к запускаемому файлу не было папок с русскими именами(можно поставить в корень локального диска).
Причем здесь "запускаемый файл"? Он же на конфигурационный файл ругается, путь к которому от имени пользователя зависит. А где изменить путь к нему - я не нашел.
Еще как вариант можно поставить Python 2.6, найти где в этом чуде есть такая строчка os.getcwd() и заменить ее на os.getcwdu() -должно помочь тоже
Сложно =)

login999
26.05.2009, 16:49
Инсталляции скриптов не существует в природе, нехер ему чего-то прописывать в папку юзера - ему там ничего не нужно, ВСЕ скрипты которые я видел брали конфиги и всю другую инфу из своей папки, максимум подпапки. Поэтому я пришел к выводу что чел запускает софт из папки юзверя :) В принципе я не исключаю что ребята из Bonsai извращенцы, и скрипт сдирает конфиги из папки юзера.
P.S> Насчет Висты - когда в своих блужданиях натыкался как хаяли Питон на Висте с каким-то багом, что за баг и когда его выловили я не помню, просто помню что было что-то такое

Кажись нашел где туплеж :)

Тыгс, файлег w3af/core/controllers/misc/homeDir.py

...
def get_home_dir():
'''
@return: The location of the w3af directory inside the home directory of the current user.
'''
home_path = user.home + os.path.sep + '.w3af'
return home_path
...

Заменить на

...
def get_home_dir():
'''
@return: The location of the w3af directory inside the home directory of the current user.
'''
home_path = "C:\w3af\temp_dir\"#Еще можно попробовать заменить на os.getcwd() + os.path.sep + 'temp_files'- с 2.5 Питоном не работал, не знаю как он себя поведет, по идее домашняя папка скрипта будет в нем самом, а не в папке юзера какого-то хрена
return home_path
...


.iv , мои извинения я не знаю какому укуренному наркоману пришла в голову такая хня - писать какое-то файло в папку юзера

iv.
29.05.2009, 16:08
я не знаю какому укуренному наркоману пришла в голову такая хня - писать какое-то файло в папку юзера
почему нет? под никсы скорее всего расчет был.

iv.
29.05.2009, 18:43
И да!
w3af теперь в официальных репозиториях Debian (http://sourceforge.net/forum/forum.php?forum_id=957220)
относится и к всем Debian-based дистрам, типа Ubuntu
sudo apt-get install w3af и всё должно быть чик-чик! сам не проверял. =\

AKYLA
02.07.2009, 23:07
Пробовал тулсу, вот только проблема возникает при использовании webSpider, как бы не совсем проблема, просто он просто напросто не обходит по ссылкам сайт...фактически все тесты только на первой странице, то ли я чет не так делаю...хотя уже перечитал Факи...или так и должно быть...если в тупую всунуть ссылку, тогда он проверяет, а так нет. А больше адекватных обходчиков я там не нашел, все что с гуглом связанно, надо API Key, но он его не хавает почему-то и пишет что Bad.
Еще интересует может ли он как-то делать обход Javascript ссылок, или только прямые?

P.S. Уже понял, надо юзать spiderMan.
А вообще впечатления о проге довольно хорошие, много в себе совмещает полезных фитч, главное правильно их использовать и не все в автомате, тогда будет довольно хороший эффект.
Удобно пользоваться ею в BackTrak'e

Gidz
16.08.2009, 14:14
после запуска сканированя в графическом режиме, в логах пишутся такие ошибки
[Sun 16 Aug 2009 02:09:02 PM EDT] Auto-enabling plugin: grep.error500
[Sun 16 Aug 2009 02:10:12 PM EDT] An unhandled exception was found while finding forms inside a document. The exception is: "string index out of range"
[Sun 16 Aug 2009 02:10:12 PM EDT] Error traceback: Traceback (most recent call last):
File "/usr/share/w3af/core/data/parsers/sgmlParser.py", line 156, in unknown_starttag
self._findForms(tag, attrs)
File "/usr/share/w3af/core/data/parsers/htmlParser.py", line 99, in _findForms
self._handle_form_tag(tag, attrs)
File "/usr/share/w3af/core/data/parsers/htmlParser.py", line 146, in _handle_form_tag
action = urlParser.urlJoin( self._baseUrl, decoded_action )
File "/usr/share/w3af/core/data/parsers/urlParser.py", line 170, in urlJoin
elif relative[0] == '?':
IndexError: string index out of range

[Sun 16 Aug 2009 02:10:12 PM EDT] An unhandled exception was found while finding forms inside a document. The exception is: "string index out of range"
[Sun 16 Aug 2009 02:10:12 PM EDT] Error traceback: Traceback (most recent call last):
File "/usr/share/w3af/core/data/parsers/sgmlParser.py", line 156, in unknown_starttag
self._findForms(tag, attrs)
File "/usr/share/w3af/core/data/parsers/htmlParser.py", line 99, in _findForms
self._handle_form_tag(tag, attrs)
File "/usr/share/w3af/core/data/parsers/htmlParser.py", line 146, in _handle_form_tag
action = urlParser.urlJoin( self._baseUrl, decoded_action )
File "/usr/share/w3af/core/data/parsers/urlParser.py", line 170, in urlJoin
elif relative[0] == '?':
IndexError: string index out of range

никто не знает из-за чего они появляются и как исправить??

pento
19.08.2009, 00:50
после запуска сканированя в графическом режиме, в логах пишутся такие ошибки
[Sun 16 Aug 2009 02:09:02 PM EDT] Auto-enabling plugin: grep.error500
[Sun 16 Aug 2009 02:10:12 PM EDT] An unhandled exception was found while finding forms inside a document. The exception is: "string index out of range"
[Sun 16 Aug 2009 02:10:12 PM EDT] Error traceback: Traceback (most recent call last):
File "/usr/share/w3af/core/data/parsers/sgmlParser.py", line 156, in unknown_starttag
self._findForms(tag, attrs)
File "/usr/share/w3af/core/data/parsers/htmlParser.py", line 99, in _findForms
self._handle_form_tag(tag, attrs)
File "/usr/share/w3af/core/data/parsers/htmlParser.py", line 146, in _handle_form_tag
action = urlParser.urlJoin( self._baseUrl, decoded_action )
File "/usr/share/w3af/core/data/parsers/urlParser.py", line 170, in urlJoin
elif relative[0] == '?':
IndexError: string index out of range

[Sun 16 Aug 2009 02:10:12 PM EDT] An unhandled exception was found while finding forms inside a document. The exception is: "string index out of range"
[Sun 16 Aug 2009 02:10:12 PM EDT] Error traceback: Traceback (most recent call last):
File "/usr/share/w3af/core/data/parsers/sgmlParser.py", line 156, in unknown_starttag
self._findForms(tag, attrs)
File "/usr/share/w3af/core/data/parsers/htmlParser.py", line 99, in _findForms
self._handle_form_tag(tag, attrs)
File "/usr/share/w3af/core/data/parsers/htmlParser.py", line 146, in _handle_form_tag
action = urlParser.urlJoin( self._baseUrl, decoded_action )
File "/usr/share/w3af/core/data/parsers/urlParser.py", line 170, in urlJoin
elif relative[0] == '?':
IndexError: string index out of range

никто не знает из-за чего они появляются и как исправить??

Если можно, то:
- ОС, версия питона
- при каких условиях бага повторяется
- бага свойственна только граф. режиму?
- страница, на которой такое вылазит.

А багу поправим конечно.

Cmucl
20.08.2009, 14:53
Кто скажет как юзать кукисы?
the cookiejarfile must be in mozilla format. Короче говоря покажите пример файла подключаемого через настройки - этого самого cookieJarFile.

Qws
11.09.2009, 17:02
Что то у меня не запускается...жму w3af_gui.bat появляется картинка орла вместе с консолью,и через 2 секунди пропадает :(Что делать?

Oza
20.10.2009, 17:07
Та же самая проблема....2 сек картинка висит,дальше не запускается.
На Ubuntu поставил-щикарно,спс :)

Sergey1974
21.03.2010, 21:37
Та же самая проблема....2 сек картинка висит,дальше не запускается.
На Ubuntu поставил-щикарно,спс :)

Не запускается под XP SP3... Появляется заставка и все. Под убунтой работает, но надо под виндой запустить. Ставил питон 2.6.4 - ругается, 2.5.4 - устанавливается но не запускается, ошибок не выдает.

M@ZAX@KEP
24.04.2010, 22:23
А вот допустим, без авторизации доступ к почти всем страницам сайта закрыт, что тогда делать, как авторизовать w3af на сайте (допустим, аккаунт есть), чтобы он мог нормально просканировать все директории?

pento
24.04.2010, 23:47
M@ZAX@KEP,
Попробуй задействовать сначала spiderMan (можно в связке с webSpider) (http://oxdef.blogspot.com/2009/09/using-w3af-for-testing-web-application.html) Так же можно попробывать использовать cookieJarFile (он указыватся в настройках). Вот (http://sourceforge.net/mailarchive/forum.php?thread_name=cdfaf8b21003101710q3c1a5ff2i 6172d31e47c2e846%40mail.gmail.com&forum_name=w3af-users)тут в списке рассылке обсуждение данного вопроса.