Web tools, чи з чого почати пентестеру?

Продовжуємо розповідати про корисні інструменти для пентестера. У новій статті ми розглянемо інструменти аналізу захищеності веб-додатків.

Наш колега BeLove вже робив подібну добірку близько семи років тому. Цікаво подивитись, які інструменти зберегли та зміцнили свої позиції, а які відійшли на задній план і зараз використовуються рідко.
Web tools, чи з чого почати пентестеру?

Зауважимо, що сюди ж відноситься і Burp Suite, але про нього та його корисні плагіни буде окрема публікація.

Зміст:

Нагромадити

Нагромадити — інструмент Go для пошуку та перебору піддоменів DNS та складання карти зовнішньої мережі. Amass — проект OWASP, створений для того, щоб показати, як для стороннього спостерігача виглядають організації в Інтернеті. Імена піддоменів Amass отримує різними способами, в інструменті використовується як рекурсивний перебір піддоменів, так і пошук відкритих джерел.

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

Плюси:

  • Техніки зі збору інформації включають:
    * DNS - перебір піддоменів за словником, bruteforce піддоменів, "розумний" перебір з використанням мутацій на основі знайдених піддоменів, зворотні DNS-запити та пошук DNS-серверів, на яких можна зробити запит на трансфер зони (AXFR);

    * Пошук за відкритими джерелами - Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal

    * Пошук за базами даних TLS-сертифікатів - Censys, CertDB, CertSpotter, Crtsh, Entrust;

    * Використання API пошукових систем - BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;

    * Пошук по веб-архівам Інтернету: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;

  • Інтеграція з Maltego;
  • Забезпечує найбільш повне покриття завдання пошуку DNS-піддоменів.

Мінуси:

  • Акуратніше з amass.netdomains — він спробує звернутися до кожної IP-адреси в ідентифікованій інфраструктурі та отримати імена доменів із зворотних DNS-запитів та сертифікатів TLS. Це «гучна» техніка, вона може розкрити ваші розвідувальні дії у досліджуваній організації.
  • Високе споживання пам'яті може споживати до 2 ГБ RAM у різних налаштуваннях, що не дозволить запустити цей інструмент у хмарі на дешевій VDS.

Web tools, чи з чого почати пентестеру?

Altdns

Altdns — інструмент Python для складання словників для перебору DNS-піддоменів. Дозволяє генерувати безліч варіантів піддоменів за допомогою мутацій та перестановок. Для цього використовуються слова, які часто зустрічаються в піддоменах (наприклад: test, dev, staging), всі мутації та перестановки застосовуються до відомих піддоменів, які можна подати на вхід Altdns. На виході виходить список варіацій піддоменів, які можуть існувати, і список надалі можна використовувати при DNS-брутфорсі.

Плюси:

  • Добре працює з великими наборами даних.

акватон

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

Плюси:

  • На виході створюється група файлів і папок, які зручно використовувати при подальшій роботі з іншими інструментами:
    * HTML-звіт із зібраними знімками екрану та згрупованими за подібністю заголовками відповідей;

    * Файл з усіма URL-адресами, на яких були знайдені веб-сайти;

    * Файл зі статистикою та даними сторінки;

    * Папка з файлами, що містять заголовки відповіді від знайдених цілей;

    * Папка з файлами, що містять тіло відповіді від знайдених цілей;

    * Скріншоти знайдених веб-сайтів;

  • Підтримує роботу з XML-звітами від Nmap та Masscan;
  • Використовує headless Chrome/Chromium для рендерування скріншотів.

Мінуси:

  • Може звернути на себе увагу систем виявлення вторгнень, тому потребує налаштування.

Скріншот зроблено для однієї зі старих версій aquatone (v0.5.0), в якій було реалізовано пошук DNS-піддоменів. Старі версії можна знайти на сторінці релізів.
Web tools, чи з чого почати пентестеру?

MassDNS

MassDNS — ще один інструмент пошуку DNS-доменів. Головна його відмінність у тому, що він робить DNS-запити безпосередньо до багатьох різних DNS-резолверів і робить це зі значною швидкістю.

Плюси:

  • Швидкий – здатний дозволяти понад 350 тисяч імен за секунду.

Мінуси:

  • MassDNS може викликати значне навантаження на DNS-резолвери, що використовуються, що може призвести до бана на цих серверах або скарг до вашого провайдера. Крім цього, викличе велике навантаження на DNS-сервера компанії, якщо вони мають і якщо вони відповідають за домени, які ви намагаєтеся резолвувати.
  • Список резолверів зараз застарів, проте якщо відібрати непрацюючі DNS-резолвери і додати нові відомі — все буде добре.

Web tools, чи з чого почати пентестеру?
Скріншот aquatone v0.5.0

nsec3map

nsec3map — інструмент Python для отримання повного списку доменів, захищених DNSSEC.

Плюси:

  • Швидко виявляє хости в DNS-зонах із мінімальною кількістю запитів, якщо в зоні включена підтримка DNSSEC;
  • У складі плагін для John the Ripper, який можна використовувати для злому отриманих хеш NSEC3.

Мінуси:

  • Багато помилок DNS обробляються некоректно;
  • Немає автоматичного розпаралелювання обробки NSEC-записів - доводиться розділяти простір імен вручну;
  • Високе споживання пам'яті.

Acunetix

Acunetix — сканер веб-уразливостей, що автоматизує процес перевірки безпеки веб-застосунків. Тестує додаток на наявність SQL-ін'єкцій, XSS, XXE, SSRF та багатьох інших веб-уразливостей. Однак, як і будь-який інший сканер безлічі веб-уразливостей не замінює пентестера, оскільки складні ланцюжки уразливостей чи вразливості в логіці не зможе знайти. Зате він покриває дуже багато різних вразливостей, у тому числі різних CVE, про які пентестер міг і забути, тому дуже зручний для звільнення рутинних перевірок.

Плюси:

  • Низький рівень хибних спрацьовувань;
  • Результати можна експортувати як звітів;
  • Здійснює велику кількість перевірок на різні уразливості;
  • Паралельне сканування кількох хостів.

Мінуси:

  • Немає алгоритму дедублікації (однакові за функціональністю сторінки Acunetix визнає різними, тому що на них ведуть різні URL), але розробники над цим працюють;
  • Вимагає встановлення на окремий веб-сервер, що ускладнює тестування клієнтських систем з підключенням за VPN та використання сканера в ізольованому сегменті локальної клієнтської мережі;
  • Може "зашумити" досліджуваний сервіс, наприклад, надіслати у форму зв'язку на сайті дуже багато атакуючих векторів, тим самим сильно ускладнивши бізнес-процеси;
  • Є пропрієтарним та, відповідно, небезкоштовним рішенням.

Web tools, чи з чого почати пентестеру?

Dirsearch

Dirsearch — інструмент Python для брутфорсу директорій і файлів на веб-сайтах.

Плюси:

  • Може відрізняти справжні “200 ОК” сторінки сторінок “200 ОК”, але з текстом “сторінка не знайдена”;
  • Поставляється разом із зручним словником, що має гарний баланс між розміром та ефективністю пошуку. Містить стандартні шляхи, характерні для багатьох CMS та стеків технологій;
  • Свій формат словника, який дозволяє досягти хорошої ефективності та гнучкості перебору файлів та директорій;
  • Зручний висновок – простий текст, JSON;
  • Вміє робити throttling – паузу між запитами, що життєво необхідне будь-якого слабкого сервісу.

Мінуси:

  • Розширення потрібно передавати у вигляді рядка, що незручно, якщо потрібно передати багато розширень одразу;
  • Щоб використати свій словник, його потрібно буде трохи доопрацювати до формату словників Dirsearch для максимальної ефективності.

Web tools, чи з чого почати пентестеру?

wfuzz

wfuzz - Python-фаззер веб-додатків. Напевно, один із найвідоміших веб-фазерів. Принцип простий: wfuzz дозволяє фазити будь-яке місце в HTTP-запиті, що дозволяє фазити GET/POST-параметри, HTTP-заголовки, включаючи Cookie та інші автентифікаційні заголовки. У той же час зручний і для простого брутфорсу директорій та файлів, для чого потрібен хороший словник. Також має гнучку систему фільтрів, за допомогою якої можна фільтрувати відповіді від веб-сайту за різними параметрами, що дозволяє досягти ефективних результатів.

Плюси:

  • Багатофункціональний - модульна структура, складання займає кілька хвилин;
  • Зручний механізм фільтрації та фаззингу;
  • Можна фазити будь-який HTTP-метод, також будь-яке місце в HTTP-запиті.

Мінуси:

  • У стані розробки.

Web tools, чи з чого почати пентестеру?

ффуф

ффуф — веб фазер на Go, створений за “образом та подобою” wfuzz, дозволяє брутувати файли, директорії, URL-шляхи, назви та значення GET/POST-параметрів, HTTP-заголовки, включаючи заголовок Host для брутфорсу віртуальних хостів. Від свого побратима wfuzz відрізняється вищою швидкістю та деякими новими фічами, наприклад підтримуються словники формату Dirsearch.

Плюси:

  • Фільтри схожі на фільтри wfuzz, що дозволяють гнучко налаштувати брутфорс;
  • Дозволяє фазити значення HTTP-заголовків, дані POST-запитів та різні частини URL, включаючи імена та значення GET-параметрів;
  • Можна вказати будь-який HTTP-метод.

Мінуси:

  • У стані розробки.

Web tools, чи з чого почати пентестеру?

gobuster

gobuster - Інструмент на Go для розвідки, має два режими роботи. Перший використовується для брутфорсу файлів та директорій на веб-сайті, другий – для перебору DNS-піддоменів. Інструмент спочатку не підтримує рекурсивний перебір файлів та директорій, що, звичайно, заощаджує час, але з іншого боку брутфорс кожного нового ендпоінта на веб-сайті потрібно запускати окремо.

Плюси:

  • Висока швидкість роботи як для перебору DNS-піддоменів, так і для брутфорсу файлів та директорій.

Мінуси:

  • У поточній версії не підтримує налаштування HTTP-заголовків;
  • За умовчанням вважає валідними лише деякі з HTTP-статус кодів (200,204,301,302,307).

Web tools, чи з чого почати пентестеру?

Арджун

Арджун — інструмент для брутфорсу прихованих HTTP-параметрів у GET/POST-параметрах, а також JSON. Вбудований словник має 25 980 слів, які Ajrun перевіряє майже за 30 секунд. Фокус у тому, що Ajrun не перевіряє кожен параметр окремо, а перевіряє відразу ~1000 параметрів за раз і дивиться, чи змінилася відповідь. Якщо відповідь змінилася, то ділить цю 1000 параметрів на дві частини та перевіряє, яка з цих частин впливає на відповідь. Таким чином, за допомогою нехитрого бінарного пошуку є параметр або кілька прихованих параметрів, які впливали на відповідь і, отже, можуть існувати.

Плюси:

  • - Висока швидкість роботи за рахунок бінарного пошуку;
  • Підтримка GET/POST-параметрів та параметрів у вигляді JSON;

За схожим принципом працює і плагін для Burp Suite. param-miner, який теж дуже гарний у пошуку прихованих HTTP-параметрів. Докладніше ми про нього розповімо у майбутній статті про Burp та його плагіни.
Web tools, чи з чого почати пентестеру?

LinkFinder

LinkFinder - Скрипт на Python для пошуку посилань у JavaScript-файлах. Корисний для пошуку прихованих або забутих ендпоінтів/URL у веб-застосунку.

Плюси:

  • Швидкий;
  • Є спеціальний плагін для Chrome на основі LinkFinder-а.

.

Мінуси:

  • Незручний підсумковий висновок;
  • Не аналізує JavaScript у динаміці;
  • Досить проста логіка пошуку посилань — якщо JavaScript якимось чином обфусцьований, або посилання спочатку відсутні і динамічно генеруються, то не зможе нічого знайти.

Web tools, чи з чого почати пентестеру?

JSParser

JSParser - Скрипт на Python, який використовує Торнадо и JSBeautifier для аналізу відносних URL-адрес із JavaScript-файлів. Дуже корисний для виявлення AJAX-запитів та складання списку API-методів, з якими взаємодіє програма. Ефективно працює в парі з LinkFinder.

Плюси:

  • Швидкий парсинг JavaScript-файлів.

Web tools, чи з чого почати пентестеру?

sqlmap

sqlmap — мабуть, один із найвідоміших інструментів для аналізу веб-додатків. Sqlmap автоматизує пошук та експлуатацію SQL-ін'єкцій, працює з кількома діалектами SQL, має у своєму арсеналі величезну кількість різних технік, починаючи від лапки "в лоб" і закінчуючи складними векторами для time-based SQL-ін'єкцій. Крім того, має безліч техніки подальшої експлуатації для різних СУБД, тому корисний не просто як сканер для SQL-ін'єкцій, а ще і як потужний інструмент для експлуатації вже знайдених SQL-ін'єкцій.

Плюси:

  • Велика кількість різних технік та векторів;
  • Низька кількість помилкових спрацьовувань;
  • Багато можливостей з точного настроювання, різні техніки, цільова БД, тампер-скрипти для обходу WAF;
  • Можливість створення дампи вихідних даних;
  • Багато різних можливостей з експлуатації, наприклад, для деяких БД - автоматичне завантаження/вивантаження файлів, отримання можливості виконання команд (RCE) та інші;
  • Підтримка прямого підключення до БД з використанням отриманих під час атаки даних;
  • На вхід можна подати текстовий файл з результатами роботи Burp — не потрібно складати вручну всі атрибути командного рядка.

Мінуси:

  • Складно кастомізувати, наприклад, написати якісь свої перевірки через мізерну документацію для цього;
  • Без відповідних налаштувань проводить неповний набір перевірок, що може вводити в оману.

Web tools, чи з чого почати пентестеру?

NoSQLMap

NoSQLMap — інструмент Python для автоматизації пошуку та експлуатації NoSQL-ін'єкцій. Зручно використовувати не лише в базах даних NoSQL, але й безпосередньо під час аудиту веб-додатків, які використовують NoSQL.

Плюси:

  • Як і sqlmap, дозволяє не тільки знаходить потенційну вразливість, а й перевіряє можливість її експлуатації для MongoDB та CouchDB.

Мінуси:

  • Не підтримує NoSQL для Redis, Cassandra, у цьому напрямі ведеться розробка.

oxml_xxe

oxml_xxe — інструмент для вбудовування XXE XML-експлойтів у різні типи файлів, у яких використовується XML-формат.

Плюси:

  • Підтримує багато поширених форматів, таких як DOCX, ODT, SVG, XML.

Мінуси:

  • Не до кінця реалізовано підтримку PDF, JPEG, GIF;
  • Створює лише один файл. Для вирішення цієї проблеми можна використовувати інструмент docem, який може створити велику кількість файлів із пейлодами в різних місцях.

Вищезгадані утиліти чудово справляються з тестуванням XXE у разі завантаження документів, що містять XML. Але також не забувайте, що обробники XML-форматів можуть зустрічатися в багатьох інших випадках, наприклад, XML може використовуватися як формат даних замість JSON.

Тому рекомендуємо звернути увагу на наступний репозиторій, що містить велику кількість різноманітних пейлоадів: PayloadsAllTheThings.

tplmap

tplmap — інструмент Python для автоматичного виявлення та експлуатації вразливостей Server-Side Template Injection, має схожі з sqlmap налаштування та прапори. Використовує кілька різних технік та векторів, включаючи blind-ін'єкції, а також має техніку для виконання коду та завантаження/вивантаження довільних файлів. Крім того, має в своєму арсеналі техніки для десятка різних движків для шаблонів і деякі техніки для пошуку eval()-подібних ін'єкцій коду Python, Ruby, PHP, JavaScript. У разі успішної експлуатації відкриває інтерактивну консоль.

Плюси:

  • Велика кількість різних технік та векторів;
  • Підтримує безліч двигунів для рендер шаблонів;
  • Багато технік експлуатації.

CeWL

CeWL — генератор словників на Ruby, створений для отримання унікальних слів із зазначеного веб-сайту, проходить за посиланнями на сайті на вказану глибину. Складений словник з унікальних слів надалі можна використовувати для брутфорсу паролів на сервісах або брутфорсу файлів та директорій на тому ж веб-сайті, або для атаки на отримані хеші за допомогою hashcat або John the Ripper. Корисний при складанні цільового списку потенційних паролів.

Плюси:

  • Простий у використанні.

Мінуси:

  • Потрібно бути обережнішими з глибиною пошуку, щоб не захопити зайвий домен.

Weakpass

Weakpass - Сервіс, що містить безліч словників з унікальними паролями. Вкрай корисний для різних завдань, пов'язаних із зламуванням паролів, починаючи від простого онлайн брутфорсу облікових записів на цільових сервісах, закінчуючи офф-лайн брутфорсом отриманих хешів за допомогою хешкет або Джон Потрошитель. У складі близько 8 мільярдів паролів завдовжки від 4 до 25 символів.

Плюси:

  • Містить як специфічні словники, так і словники з паролями, що найчастіше зустрічаються - можна підібрати конкретний словник під власні потреби;
  • Словники оновлюються та поповнюються новими паролями;
  • Словники відсортовані за ефективністю. Можна вибрати варіант як для швидкого он-лайн бруту, так і докладного підбору паролів з об'ємного словника з останніми витоками;
  • Є калькулятор, який показує час брутто паролів на вашому устаткуванні.

Web tools, чи з чого почати пентестеру?

В окрему групу ми хотіли б винести інструменти для CMS-перевірок: WPScan, JoomScan та AEM hacker.

AEM_hacker

AEM hacker — інструмент для виявлення вразливостей у програмах Adobe Experience Manager (AEM).

Плюси:

  • Може виявляти AEM-програми зі списку URL, поданих йому на вхід;
  • Містить сценарії для отримання RCE шляхом завантаження JSP-шелла або експлуатацією SSRF.

JoomScan

JoomScan — інструмент для Perl для автоматизації виявлення вразливостей при розгортанні Joomla CMS.

Плюси:

  • здатний знаходити недоліки зміни та проблеми адміністраторських налаштувань;
  • Перераховує версії Joomla та пов'язані з ними уразливості, аналогічно для окремих компонентів;
  • Містить більше ніж 1000 експлойтів під компоненти Joomla;
  • Виведення підсумкових звітів у текстовому та HTML-форматах.

Web tools, чи з чого почати пентестеру?

WPScan

WPScan - Інструмент для сканування сайтів на WordPress, має в своєму арсеналі вразливості як для самого движка WordPress, так і для деяких плагінів.

Плюси:

  • Здатний перераховувати не тільки небезпечні WordPress-плагіни та теми, але й отримувати список користувачів та TimThumb-файли;
  • Може проводити брутфорс-атаки на WordPress-сайти.

Мінуси:

  • Без відповідних налаштувань проводить неповний набір перевірок, що може вводити в оману.

Web tools, чи з чого почати пентестеру?

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

Джерело: habr.com

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