Огляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2

Якось давно я вже писав про в цьомуале трохи мізерно і сумбурно. Після я вирішив розширити список інструментів в огляді, додати статті структури, врахувати критику (велике спасибі лівша за поради) та відправив її на конкурс на СекЛаб (і опублікував посилання, але з усіх зрозумілих причин її ніхто не побачив). Конкурс закінчено, результати оголосили, і я з чистою совістю можу її (статтю) опублікувати на Хабрі.

Безкоштовні інструменти пентестера веб-додатків

У цій статті я розповім про найбільш популярні інструменти для пентестингу (тестів на проникнення) веб-додатків зі стратегії «чорної скриньки».
Для цього ми розглянемо утиліти, які допоможуть у цьому виді тестування. Розглянемо такі категорії продуктів:

  1. Мережеві сканери
  2. Сканери проломів у веб-скриптах
  3. Експлойтинг
  4. Автомазація ін'єкцій
  5. Дебаггери (сніфери, локальні проксі тощо)


Деякі продукти мають універсальний «характер», тому відноситиму їх до тієї категорії, в якій вони мають больший результат (суб'єктивна думка).

Мережеві сканери.

Основне завдання – розкрити доступні мережеві сервіси, встановити їх версії, визначити ОС тощо.

NmapОгляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
Nmap ("Network Mapper") це безкоштовна утиліта з відкритим вихідним кодом для аналізу мережі та аудиту безпеки систем. Затяті противники консолі можуть використовувати Zenmap, це GUI до Nmap'у.
Це не просто "розумний" сканер, це серйозний інструмент, що розширюється (з "незвичайних фішок" - наявність скрипта для перевірки вузла на наявність черв'яка"Stuxnet(згадувалося тут). Типовий приклад використання:

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

Це набір опцій з профілю "slow comprehensive scan" у Zenmap. Виконується досить довго, але й у результаті детальнішу інформацію, яку можна дізнатися про цільову систему. Довідковий посібник російською мовою, якщо вирішили заглибитися, а також раджу переклад статті Beginner's Guide to Nmap.
Nmap отримав статус “Security Product of the Year” такими журналами та спільнотами як Linux Journal, Info World, LinuxQuestions.Org та Codetalker Digest.
Цікавий момент, Nmap можна побачити у фільмах «Матриця: Перезавантаження», «Міцний горішок 4», «Ультиматум Борна», «Хоттабич» та інших.

IP-ToolsОгляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
IP-Tools - Такий набір з різних мережевих утиліт, що поставляється з GUI, «присвячена» windows користувачам.
Сканер портів, загальних ресурсів (розшаровані принтери/папки), WhoIs/Finger/Lookup, telnet клієнт та багато іншого. Просто зручний, швидкий, функціональний інструмент.

Немає особливого сенсу розглядати інші товари, оскільки дуже багато утиліт у цій галузі і всі вони мають схожий принцип роботи та функціонал. Все ж таки найчастіше використовується залишається nmap.

Сканери проломів у веб-скриптах

Намагаються знайти популярні вразливості (SQL inj, XSS, LFI/RFI і т.д.) або помилки (не видалені часові файли, індексація директорій тощо)

Веб -сканер вразливості AcunetixОгляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
Веб -сканер вразливості Acunetix — за посиланням помітно, що це xss сканер, але це не зовсім так. Безкоштовна версія, доступна за посиланням, дає досить великий функціонал. Зазвичай людину, яка запустила цей сканер перший раз і вперше отримавши звіт за своїм ресурсом, охоплює невеликий шок, і ви зрозумієте чому, зробивши це. Це дуже потужний продукт для аналізу просто всіляких уразливостей на сайті та працює не тільки зі звичними нам сайтами на php, але й іншими мовами (хоча відмінність у мові не є показником). Інструкцію описувати особливо сенсу немає, оскільки сканер просто «підхоплює» дії користувача. Щось схоже на «далі, далі, далі, готове» у типовій установці будь-якого ПЗ.

НіктоОгляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
Нікто це Open Source (GPL) веб-сканер. Позбавляє рутинної ручної роботи. Шукає на цільовому сайті невидалені скрипти (якісь test.php, index_.php і т.п.), інструменти адміністрування бд (/phpmyadmin/, /pma і подібні) і т.д., тобто перевіряє ресурс на найчастіші помилки, які виникли зазвичай через людський фактор.
Плюс, якщо знаходить який-небудь популярний скрипт, то перевіряє його на експлоїти, що вийшли (які є в базі).
Повідомляє про доступні «небажані» методи, типу PUT і TRACE
Ну і таке інше. Дуже зручно, якщо ти працюєш аудитором і щодня проводиш аналіз сайтів.
З мінусів хотів би відзначити високий відсоток хибних спрацьовувань. Наприклад, якщо ваш сайт замість 404 помилки (коли вона має виникнути) віддає весь час головну, то сканер скаже, що на вашому сайті всі скрипти і всі вразливості з його бази. На практиці таке не так часто зустрічається, але як факт багато залежить від структури вашого сайту.
Класичне використання:

./nikto.pl -host localhost

Якщо потрібно бути авторизованим на сайті, можна виставити cookie у файлі nik.conf, змінна STATIC-COOKIE.

ВіктоОгляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
Вікто — Nikto під Windows, але з деякими доповненнями, як «нечіткою» логікою під час перевірки коду на помилки, використання GHDB, отримання посилань та папок ресурсу, реал-таймовим моніторингом HTTP запитів/відповідей. Wikto написаний C# і вимагає .NET framework.

скипфішОгляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
скипфіш - Сканер веб-уразливостей від Міхал Залевський (відомого під ніком lcamtuf). Написаний на С, кросплатформінний (для Win потрібен Cygwin). Рекурсивно (і дуже довго, близько 20-40 годин, хоча останній раз у мене працював 96 годин) обходить весь сайт і знаходить всілякі проломи в безпеці. Також генерує дуже багато трафіку (по кілька гігабайт вхідного/вихідного). Але всі кошти хороші, тим більше якщо є час і ресурси.
Типове використання:

./skipfish -o /home/reports www.example.com

У папці «reports» буде звіт у html, приклад.

w3af Огляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
w3af — Web Application Attack and Audit Framework, Open Source сканер веб-уразливостей. Має GUI, але можна працювати з-під консолі. Точніше, це фреймворк, з купою плагінів.
Розповідати про його переваги можна довго, краще випробувати його :] ​​Типова робота з ним зводиться до вибору профілю, вказівки мети та, власне, запуску.

Mantra Security FrameworkОгляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
Мантра is a dream that came true. Колекція вільних та відкритих інструментів з ІБ, що вбудовуються у веб-браузер.
Дуже корисні при тестуванні веб-застосунків на всіх етапах.
Використання зводиться до встановлення та запуску браузера.

Насправді дуже багато утиліт у цій категорії і досить складно виділити із них конкретний список. Найчастіше кожен пентестер сам визначає набір потрібних інструментів.

Експлойтинг

Для автоматизованого та зручнішого використання вразливостей у програмному забезпеченні та скриптах пишуть експлойти, яким потрібно лише передати параметри, щоб використовувати пролом у безпеці. А є продукти, які позбавляють ручного пошуку експлоїтів, та ще й застосовують їх «на льоту». Про цю категорію зараз і йтиметься.

Metasploit Framework Огляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
The Metasploit® Framework — такий собі монстр у нашій справі. Він стільки вміє, що інструкція вийде кілька статей. Ми розглянемо автоматичний експлоїнг (nmap + metasploit). Суть така, Nmap проаналізує потрібний нам порт, встановить сервіс, а metasploit спробує застосувати до нього експлоїти, з класу сервісу (ftp, ssh і т.п.). Замість текстової інструкції я вставлю відео досить популярне на тему autopwn

А можна легко автоматизувати роботу потрібного нам експлойту. Наприклад:

msf > use auxiliary/admin/cisco/vpn_3000_ftp_bypass
msf auxiliary(vpn_3000_ftp_bypass) > set RHOST [TARGET IP] msf auxiliary(vpn_3000_ftp_bypass) > run

Насправді можливості даного framework дуже великі, тому, якщо вирішили заглибитися, переходимо по за посиланням

АрмітеджОгляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
Армітедж - OVA жанру кіберпанкGUI для Metasploit. Візуалізує ціль, рекомендує експлоїти та надає розширені можливості даного фреймворку. Загалом для тих, хто любить, щоб все красиво та ефектно виглядало.
Скринкаст:

Tenable Nessus®Огляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
Tenable Nessus® vulnerability scanner дуже багато чого вміє, але нам від нього потрібна одна з можливостей визначення, для яких сервісів є експлойти. Безкоштовна версія продукту «home only»

Використання:

  • Завантажили (під свою систему), встановили, зареєстрували (ключ приходить на пошту).
  • Запустили сервер, додали користувача в Nessus Server Manager (кнопка Manage users)
  • Заходимо за адресою
    https://localhost:8834/

    і отримуємо флеш-клієнт у браузері

  • Scans -> Add -> заповнюємо поля (вибравши відповідний нам профіль сканування) і тиснемо Scan

Через деякий час звіт про сканування з'явиться у вкладці Reports
Для перевірки практичної вразливості сервісів до експлоїтів можна використовувати вищезгаданий Metasploit Framework або спробувати знайти експлоїт (наприклад на Explot-db, packet storm, explot search та ін) і використовувати його вручну проти своєї системи
ІМХО: занадто громіздкий. Привів його як одного з лідерів у цьому напрямі софтверної індустрії.

Автоматизація ін'єкцій

Пошук ін'єкцій роблять багато з web app sec сканерів, але вони все ж таки просто загальні сканери. А є утиліти, які безпосередньо займаються пошуком та експлуатацією ін'єкцій. Про них зараз і йтиметься.

sqlmapОгляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
sqlmap - open-source утиліта для пошуку та експлуатації 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
bsqlbf-v2 - Скрипт на perl, брутфорсер «сліпих» Sql ін'єкцій. Працює як і з integer значеннями url, так і з рядковими (string).
Підтримує БД:

  • MS-SQL
  • MySQL
  • PostgreSQL
  • оракул

Приклад використання:

./bsqlbf-v2-3.pl -url www.somehost.com/blah.php?u=5 -blind u -sql "select table_name from imformation_schema.tables limit 1 offset 0" -database 1 -type 1

-url www.somehost.com/blah.php?u=5 — Посилання з параметрами
-blind u — параметр ін'єкції (за замовчуванням забирається останній з адресного рядка)
-sql "select table_name from imformation_schema.tables limit 1 offset 0" - наш довільний запит до бази
-database 1 - сервер БД: MSSQL
-type 1 - тип атаки, "сліпа" ін'єкція, заснована на True і Error (наприклад синтаксичні помилки) відповідях

Дебаггери

Ці інструменти в основному використовують розробники при проблемах з результатами виконання свого коду. Але це напрям корисно і за пентестингу, коли можна замінювати необхідні нам дані «на лету», аналізувати, що у відповідь наші вхідні параметри (наприклад при фаззинге) тощо.

Бурк-люкс
Бурк-люкс - Набір утиліт, які допомагають при тестах на проникнення. У Мережі лежить гарний огляд російською від Raz0r (правда за 2008 рік).
У безкоштовну версію входить:

  • Burp Proxy — локальний проксі, що дозволяє змінювати вже сформовані запити від браузера.
  • Burp Spider - павук, шукає існуючі файли та директорії
  • Burp Repeater - ручне відправлення HTTP-запитів
  • Burp Sequencer - аналіз випадкових значень у формах
  • Burp Decoder - стандартний кодер-декодер (html, base64, hex і т.п.), яких тисячі, які можна швидко написати якоюсь мовою
  • Burp Comparer - компонент зіставлення рядків

У принципі, цей пакет вирішує практично всі завдання, пов'язані з цим напрямком.

скрипальОгляд безкоштовних інструментів для пентесту web-ресурсів та не тільки v2
скрипаль - Fiddler це налагоджувальний проксі, що логірує весь HTTP(S) трафік. Дозволяє досліджувати цей трафік, встановлювати breakpoint'и та «гратися» з вхідними або вихідними даними.

Є ще й Пожежна овцямонстр Wireshark та інші, вибір за користувачем.

Висновок

Звичайно, кожен пентестер має свій арсенал і свій набір утиліт, тому що їх просто безліч. Я постарався привести одні з найбільш зручних та популярних. Але щоб будь-який бажаючий міг ознайомитися і з іншими утилітами у цьому напрямку, я наведу посилання нижче.

Різні топи/списки сканерів та утиліт

Дистрибутиви Linux, до складу яких уже входить купа різних утиліт для пентестингу

upd: Документація по BurpSuite російською від команди «Hack4Sec» (додав AntonKuzmin)

PS Не можна замовчати про XSpider. Не бере участі в огляді, хоча він умовно-безкоштовний (довідався, коли відправив статтю на СекЛаб, власне через це (не знання, та й відсутності останньої версії 7.8) і не включив його до статті). І, за ідеєю, планувався його огляд (у мене заготовлені для нього непрості тести), але не знаю, чи побачить його світ.

PPS Деякий матеріал із статті буде використаний за прямим призначенням у прийдешній доповіді на CodeFest 2012 в секції QA, в якому будуть згадані тут інструменти (безкоштовні, ессно), а також розказано алгоритм, за яким порядком що використовувати, який результат очікувати, які конфігурації використовувати і всякі хінти та трюки при роботі (розмірковую над доповіддю майже кожен день , постараюся розповісти від себе все найкраще на тему топіка)
До речі, за цією статтею було заняття на Open InfoSec Days (тег на Хабрі, сайт), можна, можливо грабувати коровані глянути матеріали.

Джерело: habr.com

Додати коментар або відгук