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, ці з чаго пачаць пентэстару?

ffuf

ffuf — вэб фаззер на 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 слоў, якія Ajrun правярае амаль за 980 секунд. Фокус у тым, што Ajrun не правярае кожны параметр асобна, а правярае адразу ~30 параметраў за раз і глядзіць, ці змяніўся адказ. Калі адказ змяніўся, то дзеліць гэтую 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 - сэрвіс, які змяшчае мноства слоўнікаў з унікальнымі паролямі. Вельмі карысны для розных задач, звязаных з узломам пароляў, пачынальна ад простага анлайн брутфорсу уліковых запісаў на мэтавых сэрвісах, сканчаючы офф-лайн брутфорсам атрыманых хэшаў з дапамогай хашмат або John The Ripper. У складзе каля 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

Дадаць каментар