Някога преди писах за , но малко малко и неясно. След това реших да разширя списъка с инструменти в прегледа, да добавя структура на статията, да отчитам критиката (голямо благодаря за съветите) и изпратих я на конкурса на СекЛаб (и публикувах , но по всички разбираеми причини никой не я видя). Конкурсът приключи, резултатите бяха обявени и с чиста съвест мога да я (статията) публикувам в Хабра.
Безплатни инструменти за пентест на уеб приложения
В тази статия ще разкажа за най-популярните инструменти за пентестинг (тестове на проникване) на уеб приложения по стратегията "черен куфар".
За целта ще разгледаме утилитите, които ще помогнат в този вид тестване. Ще разгледаме следните категории продукти:
- Мрежови скенери
- Скенери за уязвимости в уеб скриптове
- Експлойтинг
- Автоматизация на инжекции
- Дебъгери (снифери, локални прокси и т.н.)
Някои продукти имат универсален "характер", затова ще ги отнеса към категорията, в която имат боолям резултат (субективно мнение).
Мрежови скенери.
Основната задача — да разкрие наличните мрежови услуги, да установи версиите им, да определи ОС и т.н.
Nmap
е безплатна утилита с отворен код за анализ на мрежата и одит на сигурността на системите. Яростните противници на конзолата могат да използват Zenmap, това е GUI за Nmap.
Това не е просто "умствен" скенер, а сериозен разширяем инструмент (от "необичайните функции" - наличие на скрипт за проверка на узел за червя "" (споменаваше се ). Типичен пример за използване:
nmap -A -T4 localhost
-A за определяне на версията на ОС, сканиране с помощта на скриптове и трасировката
-T4 настройка за управление на времето (повече — по-бързо, от 0 до 5)
localhost — целеви хост
Нещо по-остро?
nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all localhost
Това е набор от опции от профила "бавно пълно сканиране" в Zenmap. Изпълнява се доста дълго, но и дава в крайна сметка по-подробна информация, която може да се научи за целевата система. , ако решите да задълбочите, а също така съветвам превода на статията .
Nmap получи статуса “Security Product of the Year” от списания и общности като Linux Journal, Info World, LinuxQuestions.Org и Codetalker Digest.
Интересен момент, Nmap може да се види във филмите „Матрицата: Презареждане“, „Умирай трудно 4“, „Ултиматумът на Борн“, „Хоттабыч“ и .
IP-Tools
— един вид комплект от различни мрежови инструменти, предлага се с GUI, „посветен“ на Windows потребителите.
Скенер за портове, общи ресурси (споделени принтери/папки), WhoIs/Finger/Lookup, telnet клиент и много други. Просто удобен, бърз, функционален инструмент.
Няма особено значение да разглеждаме останалите продукти, тъй като има много инструменти в тази област и всички те имат подобен принцип на работа и функционалност. Въпреки това, най-често използваният остава nmap.
Скенери за уязвимости в уеб скриптове
Опитват се да намерят популярни уязвимости (SQL inj, XSS, LFI/RFI и т.н.) или грешки (недалечени временни файлове, индексиране на директории и т.н.)
Acunetix Web Vulnerability Scanner
— по връзката се вижда, че това е XSS скенер, но не е напълно така. Безплатната версия, достъпна по връзката, предлага доста голям функционал. Обикновено човек, който е стартирал този скенер за първи път и за пръв път е получил отчет за своя ресурс, изпитва лек шок и вие ще разберете защо, след като го направите. Това е много мощен продукт за анализ на всякакви уязвимости на сайта и работи не само с познатите ни сайтове на PHP, но и на други езици (въпреки че разликата в езика не е показател). Няма смисъл да описвам инструкциите, тъй като скенерът просто „подхваща“ действията на потребителя. Нещо като „напред, напред, напред, готово“ в типична инсталация на някой софтуер.
Nikto
е Open Source (GPL) уеб-скенер. Освобождава от рутинната ръчна работа. Търси на целевия сайт неизтеглени скриптове (някакви test.php, index_.php и т.н.), инструменти за администриране на бази данни (/phpmyadmin/, /pma и подобни) и т.н., т.е. проверява ресурса за най-често срещаните грешки, които обикновено възникват поради човешкия фактор.
Плюс, ако открие някой популярен скрипт, проверява го за налични експлойти (които са в базата).
Съобщава за налични „нежелани“ методи, тип PUT и TRACE
И така нататък. Много удобно, ако работите като одитори и всеки ден извършвате анализ на сайтове.
От негативите бих искал да подчертая високия процент на фалшиви сработвания. Например, ако вашият сайт вместо 404 грешка (когато тя трябва да се появи) винаги връща главната страница, скенерът ще каже, че на сайта ви има всички скриптове и уязвимости от неговата база данни. На практика, такова нещо не се среща толкова често, но факт е, че много зависи от структурата на сайта ви.
Класическо използване:
.\/nikto.pl -host localhost
Ако трябва да бъдете автентицирани на сайта, можете да зададете cookie в файла nikto.conf, променливата STATIC-COOKIE.
Wikto
— Nikto за Windows, но с някои допълнения, като „недетерминистична“ логика при проверка на кода за грешки, използване на GHDB, получаване на връзки и директории на ресурса, в реално време мониторинг на HTTP заявки/отговори. Wikto е написан на C# и изисква .NET framework.
skipfish
— скенер за уеб уязвимости от (известен под псевдонима lcamtuf). Написан е на C, кросплатформен (за Win е необходим Cygwin). Рекурсивно (и много бавно, около 20~40 часа, въпреки че последният път работи 96 часа) обхожда целия сайт и намира всякакви дупки в сигурността. Също така генерира много трафик (по няколко гб входящ/изходящ). Но всичките средства са добри, особено ако имате време и ресурси.
Типично използване:
.\/skipfish -o \/home\/reports www.example.com
В папката „reports“ ще бъде отчет в html, .
w3af 
— Web Application Attack and Audit Framework, open-source скенер за уеб уязвимости. Има GUI, но можете да работите от конзолата. По-точно, това е фреймворк с .
Може да се говори дълго за неговите предимства, по-добре е да го изпробвате :)
Типичната работа с него се състои в избор на профил, указване на цел и, съответно, стартиране.
Mantra Security Framework
е мечта, която стана реалност.Колекция от безплатни и отворени инструменти за сигурност, вградени в уеб браузъра.
Те са много полезни при тестване на уеб приложения на всички етапи.
Използването им се състои в инсталация и стартиране на браузъра.
Всъщност, има много утилити в тази категория и е доста сложно да се изготви конкретен списък. Най-често всеки пенетратор сам определи набора от нужни инструменти.
Експлойтинг
За автоматизирано и по-удобно използване на уязвимостите в софтуера и скриптовете се пишат експлойти, които само трябва да предадат параметри, за да използват дупките в сигурността. Има и продукти, които се освобождават от ръчния търсене на експлойти и дори ги прилагат "на летището". Тази категория ще бъде обсъждана.
Metasploit Framework 
— един вид монстър в нашата работа. Той владее толкова много неща, че инструкциите ще излязат на няколко статии. Ще разгледаме автоматизирания експлоитинг (nmap + metasploit). Същността е такава, Nmap ще анализира нужния ни порт, ще установи услугата, а metasploit ще опита да приложи експлойти към него, базирайки се на класа на услугата (ftp, ssh и т.н.). Вместо текстова инструкция ще вмъкна видео, доста популярно на тема autopwn.

Но можем просто да автоматизираме работата на необходимия ни експлойт. Например:
msf > използвай auxiliary/admin/cisco/vpn_3000_ftp_bypass
msf auxiliary(vpn_3000_ftp_bypass) > задайте RHOST [TARGET IP]
msf auxiliary(vpn_3000_ftp_bypass) > изпълни
Всъщност възможностите на този framework са много обширни, затова, ако решите да се задълбочите, преминете по
Armitage
— OVA жанр киберпанкGUI за Metasploit. Визуализира целта, препоръчва експлойти и предоставя разширени възможности на този фреймворк. Общо взето, за тези, които обичат всичко да изглежда красиво и ефектно.
Скринкаст:

Tenable Nessus®
— умее много неща, но от него ни е нужна само една възможност — определяне за кои услуги има експлойти. Безплатната версия на продукта е "home only".
Използване:
- Свалете (за вашата система), инсталирайте, регистрирайте се (ключът идва на имейла).
- Стартирайте сървъра, добавете потребител в Nessus Server Manager (бутон Manage users)
- Влизаме на адреса
https://localhost:8834/
и получаваме флаш клиент в браузъра
- Scans -> Add -> попълваме полетата (избирайки подходящия ни профил за сканиране) и натискаме Scan
След известно време докладът за сканирането ще се появи във вкладката Reports
За проверка на практическата уязвимост на услугите към експлойти можете да използвате описания Metasploit Framework или да опитате да намерите експлойт (например на , , и др.) и да го използвате ръчно срещу вашата система
ИМХО: твърде тромав. Привеждам го като един от лидерите в тази област на софтуерната индустрия.
Автоматизация на инжекции
Търсенето на инжекции се извършва от много скенери за сигурност на уеб приложения, но те все пак са просто общи скенери. Има и инструменти, които конкретно се занимават с търсене и експлоатация на инжекции. На тях ще бъде посветено настоящето.
sqlmap
— с отворен код инструмент за търсене и експлоатация на SQL инжекции. Поддържа следните СУБД: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
Типичното използване се свежда до следния ред:
python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Има много наръчници, включително и на руски език. Софтуерът значително улеснява работата на пентестера в тази сфера.
Ще добавя официална видео демонстрация:

bsqlbf-v2
— скрипт на perl, брутфорсер за „сляпо“ SQL инжектиране. Работи и с цели числа в url, и с низове (string).
Поддържа БД:
- MS-SQL
- MySQL
- PostgreSQL
- Oracle
Пример за използване:
.\/bsqlbf-v2-3.pl -url www.somehost.com\/blah.php?u=5 -blind u -sql "select table_name from information_schema.tables limit 1 offset 0" -database 1 -type 1
-url — Линк с параметри
-blind u — параметър за инжекция (по подразбиране взима последния от адресната стойност)
-sql "select table_name from imformation_schema.tables limit 1 offset 0" — нашият произволен заявка към базата
-database 1 — СУБД: MSSQL
-type 1 — тип атака, „слепа“ инжекция, основана на отговори от тип True и Error (например синтактични грешки)
Дебъгери
Тези инструменти основно се използват от разработчици при проблеми с резултатите от изпълнението на техния код. Но тази насока е полезна и при пентестинг, когато можем да променяме нужните данни „на лето“, да анализираме какво получаваме в отговор на нашите входни параметри (например при фуззинг) и т.н.
Burp Suite
— набор от инструменти, които помагат при тестовете за проникване. В интернет има на руски език от Raz0r (обаче от 2008 година).
Безплатната версия включва:
- Burp Proxy — локален прокси, позволяващ да се променят вече формирани заявки от браузера
- Burp Spider — паяк, търси съществуващи файлове и директории
- Burp Repeater — ръчно изпращане на HTTP заявки
- Burp Sequencer — анализ на произволни стойности във формите
- Burp Decoder — стандартен кодер-декодер (html, base64, hex и т.н.), каквито има хиляди, които могат бързо да се напишат на някой език
- Burp Comparer — компонент за сравняване на низове
По принцип този пакет решава почти всички задачи, свързани с тази насока.
Fiddler
— Fiddler е отладъчен прокси, който записва целия HTTP(S) трафик. Позволява да се изследва този трафик, да се установяват точки на прекъсване и да се „играе“ с входящите или изходящите данни.
Има и , чудовище и други, изборът е на потребителя.
Заключение
Естествено, всеки пентестър има свой арсенал и свой набор от утилити, тъй като те са просто множество. Опитах се да представя някои от най-удобните и популярни. Но за да може всеки, който желае, да се запознае и с други утилити в тази област, ще дам линкове по-долу.
Различни топове/списъци на скенери и утилити
- .
Дистрибуции на Linux, в които вече има куп различни утилити за пентестинг
ъпдейт: на руски от екипа на „Hack4Sec“ (добавил )
P.S. Не мога да не спомена XSpider. Не участва в прегледа, въпреки че е условно безплатен (научих, когато изпратих статията на СекЛаб, всъщност заради това (невежеството, да и липсата на последната версия 7.8) и не го включих в статията). Всъщност беше планиран преглед (имам подготвени непрости тестове за него), но не знам дали светът ще го види.
P.P.S. Някои материали от статията ще бъдат използвани по предназначение в предстоящата презентация на 2012 в секцията QA, в която ще бъдат инструменти, не споменати тук (безплатни, разбира се), а също така ще бъде разказан алгоритъм, по който ред да се използва какво, какви резултати да се очакват, какви конфигурации да се използват и всякакви съвети и трикове при работа (размишлявам за доклада почти всеки ден, ще се постарая да споделя от себе си всичко най-добро по темата).
Между другото, по статията имаше занятие на Open InfoSec Days (, ), може да се ограбват кервани да се погледнат .
Източник: habr.com
