Працягваем распавядаць аб карысных інструментах для пентэстэра. У новым артыкуле мы разгледзім інструменты для аналізу абароненасці вэб-прыкладанняў.
Наш калега BeLove ужо рабіў падобную падборку каля сямі гадоў таму. Цікава зірнуць, якія прылады захавалі і ўмацавалі свае пазіцыі, а якія адышлі на задні план і зараз выкарыстоўваюцца рэдка.
Адзначым, што сюды ж адносіцца і Burp Suite, але пра яго і яго карысныя плагіны будзе асобная публікацыя.
Назапашваць - інструмент на Go для пошуку і перабору паддаменаў DNS і складання карты знешняй сеткі. Amass – праект OWASP, створаны, каб паказаць, як для іншага назіральніка выглядаюць арганізацыі ў Інтэрнэце. Імёны паддаменаў Amass атрымлівае рознымі спосабамі, у інструменце выкарыстоўваецца як рэкурсіўны перабор паддаменаў, так і пошук па адкрытых крыніцах.
Для выяўлення звязаных паміж сабой сеткавых сегментаў і нумароў аўтаномных сістэм Amass выкарыстоўвае IP-адрасы, атрыманыя падчас працы. Уся знойдзеная інфармацыя выкарыстоўваецца для пабудовы карты сеткі.
Плюсы:
Тэхнікі па зборы інфармацыі ўключаюць у сябе:
* DNS - перабор паддаменаў па слоўніку, bruteforce паддаменаў, "разумны" перабор з выкарыстаннем мутацый на аснове знойдзеных паддаменаў, зваротныя DNS-запыты і пошук DNS-сервераў, на якіх магчыма зрабіць запыт на трансфер зоны (AXFR);
Забяспечвае найболей поўнае пакрыццё задачы па пошуку DNS-паддаменаў.
Мінусы:
Акуратней з amass.netdomains – ён паспрабуе звярнуцца да кожнага IP-адрасу ў ідэнтыфікаванай інфраструктуры і атрымаць імёны даменаў з зваротных DNS-запытаў і сертыфікатаў TLS. Гэта «гучная» тэхніка, яна можа расчыніць вашы выведвальныя дзеянні ў доследнай арганізацыі.
Высокае спажыванне памяці, можа спажываць да 2 ГБ RAM у розных наладах, што не дазволіць запусціць гэты інструмент у воблаку на таннай VDS.
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-паддаменаў. Старыя версіі можна знайсці на старонцы рэлізаў.
MassDNS
MassDNS — яшчэ адна прылада для пошуку DNS-паддаменаў. Галоўнае яго адрозненне ў тым, што ён робіць DNS-запыты напрамую да мноства розных DNS-рэзалвераў і робіць гэта са значнай хуткасцю.
Плюсы:
Хуткі - здольны дазваляць больш за 350 тысяч імёнаў у секунду.
Мінусы:
MassDNS можа выклікаць значную нагрузку на выкарыстоўваныя DNS-рэзалверы, што можа прывесці да бана на гэтых серверах або скаргам да вашага правайдэра. Апроч гэтага, выкліча вялікую нагрузку на DNS-сервера кампаніі, калі яны ў іх ёсць і калі яны адказваюць за дамены, якія вы спрабуеце рэзалвіць.
Спіс рэзавераў у цяперашні час састарэлы, аднак калі адабраць непрацуючыя DNS-рэзалверы і дадаць новыя вядомыя – усё будзе добра.
Скрыншот 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 і выкарыстанню сканара ў ізаляваным сегменце лакальнай кліенцкай сеткі;
Можа "зашуміць" доследны сэрвіс, да прыкладу, паслаць у форму сувязі на сайце занадта шмат атакавалых вектараў, тым самым моцна ўскладніўшы бізнэс-працэсы;
З'яўляецца прапрыетарным і, адпаведна, небясплатным рашэннем.
Dirsearch
Dirsearch - інструмент на Python для брутфорса дырэкторый і файлаў на вэб-сайтах.
Плюсы:
Можа адрозніваць сапраўдныя "200 ОК" старонкі ад старонак "200 ОК", але з тэкстам "старонка не знойдзена";
Пастаўляецца разам з зручным слоўнікам, якія маюць добры баланс паміж памерам і эфектыўнасцю пошуку. Змяшчае стандартныя шляхі, характэрныя для многіх CMS і стэкаў тэхналогій;
Свой фармат слоўніка, які дазваляе дасягнуць добрай эфектыўнасці і гнуткасці перабору файлаў і дырэкторый;
Зручная выснова - просты тэкст, JSON;
Умее рабіць throttling - паўзу паміж запытамі, што жыццёва неабходна для любога слабога сэрвісу.
Мінусы:
Пашырэньні трэба перадаваць у выглядзе радка, што няёмка, калі трэба перадаць шмат пашырэнняў адразу;
Для таго, каб выкарыстоўваць свой слоўнік, яго трэба будзе крыху дапрацаваць да фармату слоўнікаў Dirsearch для максімальнай эфектыўнасці.
wfuzz
wfuzz - Python-фаззер вэб-прыкладанняў. Мусіць, адзін з самых вядомых вэб-фазераў. Прынцып просты: wfuzz дазваляе фазіць любое месца ў HTTP-запыце, што дае магчымасць фазіць GET/POST-параметры, HTTP-загалоўкі, у тым ліку Cookie і іншыя аўтэнтыфікацыйныя загалоўкі. У той жа час зручны і для простага брутфорса дырэкторый і файлаў, для чаго патрэбен добры слоўнік. Таксама мае гнуткую сістэму фільтраў, з дапамогай якой можна фільтраваць адказы ад вэб-сайта па розных параметрах, што дазваляе дабіцца эфектыўных вынікаў.
Плюсы:
Шматфункцыянальны - модульная структура, зборка займае некалькі хвілін;
Зручны механізм фільтрацыі і фазінгу;
Можна фазіць любы HTTP-метад, а таксама любое месца ў HTTP-запыце.
Мінусы:
У стане распрацоўкі.
ffuf
ffuf — вэб фаззер на Go, створаны па "ладзе і падабенству" wfuzz, дазваляе брутаваць файлы, дырэкторыі, URL-шляху, назовы і значэнні GET/POST-параметраў, HTTP-загалоўкі, уключаючы загаловак Host для брутфорса віртуальных хастоў. Ад свайго субрата wfuzz адрозніваецца больш высокай хуткасцю і некаторымі новымі фічамі, напрыклад, падтрымліваюцца слоўнікі фармату Dirsearch.
Плюсы:
Фільтры падобныя на фільтры wfuzz, дазваляюць гнутка наладзіць брутфорс;
Дазваляе фазіць значэння HTTP-загалоўкаў, дадзеныя POST-запытаў і розныя часткі URL, уключаючы імёны і значэнні GET-параметраў;
Можна пазначыць любы HTTP-метад.
Мінусы:
У стане распрацоўкі.
gobuster
gobuster - інструмент на Go для разведкі, мае два рэжыму працы. Першы выкарыстоўваецца для брутфорса файлаў і дырэкторый на вэб-сайце, другі - для перабору DNS-паддаменаў. Інструмент першапачаткова не падтрымлівае рэкурсіўны перабор файлаў і дырэкторый, што, вядома, эканоміць час, але з іншага боку брутфорс кожнага новага эндпоінта на вэб-сайце трэба запускаць асобна.
Плюсы:
Высокая хуткасць працы як для перабору DNS-паддаменаў, так і для брутфорса файлаў і дырэкторый.
Мінусы:
У бягучай версіі не падтрымлівае ўстаноўку HTTP-загалоўкаў;
Па змаўчанні лічыць валіднымі толькі некаторыя з HTTP-статус кодаў (200,204,301,302,307).
Арджун
Арджун - прылада для брутфорса ўтоеных HTTP-параметраў у GET/POST-параметрах, а таксама ў JSON. Убудаваны слоўнік мае 25 слоў, якія Ajrun правярае амаль за 980 секунд. Фокус у тым, што Ajrun не правярае кожны параметр асобна, а правярае адразу ~30 параметраў за раз і глядзіць, ці змяніўся адказ. Калі адказ змяніўся, то дзеліць гэтую 1000 параметраў на дзве часткі і правярае, якая з гэтых частак уплывае на адказ. Такім чынам, з дапамогай няхітрага бінарнага пошуку знаходзіцца параметр або некалькі ўтоеных параметраў, якія ўплывалі на адказ і, такім чынам, могуць існаваць.
Плюсы:
Высокая хуткасць працы за кошт бінарнага пошуку;
Падтрымка GET/POST-параметраў, а таксама параметраў у выглядзе JSON;
Па падобным прынцыпе працуе і плягін для Burp Suite param-miner, Які таксама вельмі добры ў пошуку схаваных HTTP-параметраў. Падрабязней мы пра яго раскажам у будучым артыкуле пра Burp і яго плагіны.
LinkFinder
LinkFinder - Скрыпт на Python для пошуку спасылак у JavaScript-файлах. Карысны для пошуку схаваных або забытых эндпаінтаў/URL у вэб-дадатку.
Плюсы:
Хуткі;
Ёсць спецыяльны убудова для Chrome на аснове LinkFinder-а.
.
Мінусы:
Няёмкая выніковая выснова;
Ці не аналізуе JavaScript у дынаміцы;
Даволі простая логіка пошуку спасылак – калі JavaScript якім-небудзь чынам абфусцыраваны, або спасылкі першапачаткова адсутнічаюць і генеруюцца дынамічна, то не зможа нічога знайсці.
JSParser
JSParser - скрыпт на Python, які выкарыстоўвае смерч и JSBeautifier для аналізу адносных URL-адрасоў з JavaScript-файлаў. Вельмі карысны для выяўлення AJAX-запытаў і складання спісу API-метадаў, з якімі ўзаемадзейнічае праграму. Эфектыўна працуе ў пары з LinkFinder.
Плюсы:
Хуткі парсінг JavaScript-файлаў.
sqlmap
sqlmap - напэўна, адзін з самых вядомых інструментаў для аналізу вэб-прыкладанняў. Sqlmap аўтаматызуе пошук і эксплуатацыю SQL-ін'екцый, працуе з некалькімі дыялектамі SQL, мае ў сваім арсенале велізарную колькасць розных тэхнік, пачынальна ад двукоссі "у лоб" і сканчаючы складанымі вектарамі для time-based SQL-ін'екцый. Акрамя таго, мае мноства тэхнік далейшай эксплуатацыі для розных СКБД, таму карысны не проста як сканер для SQL-ін'екцый, а яшчэ і як магутная прылада для эксплуатацыі ўжо знойдзеных SQL-ін'екцый.
Плюсы:
Вялікая колькасць розных тэхнік і вектараў;
Нізкі лік ілжывых спрацоўванняў;
Шмат магчымасцяў па дакладнай наладзе, розныя тэхнікі, мэтавая БД, тампер-скрыпты для абыходу WAF;
Магчымасць стварэння дампа выходных дадзеных;
Шмат розных магчымасцяў па эксплуатацыі, напрыклад, для некаторых БД - аўтаматычная загрузка / выгрузка файлаў, атрыманне магчымасці выканання каманд (RCE) і іншыя;
Падтрымка прамога падлучэння да БД з выкарыстаннем атрыманых падчас нападаў дадзеных;
На ўваход можна падаць тэкставы файл з вынікамі працы Burp - не трэба ўручную складаць усе атрыбуты каманднага радка.
Мінусы:
Складана кастамізаваць, напрыклад, напісаць якія-небудзь свае праверкі з-за беднай дакументацыі для гэтага;
Без адпаведных налад праводзіць няпоўны набор праверак, што можа ўводзіць у зман.
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 сімвалаў.
Плюсы:
Змяшчае як спецыфічныя слоўнікі, так і слоўнікі з найбольш часта сустракаемымі паролямі - можна падабраць канкрэтны слоўнік пад уласныя патрэбы;
Слоўнікі абнаўляюцца і папаўняюцца новымі паролямі;
Слоўнікі адсартаваны па эфектыўнасці. Можна абраць варыянт як для хуткага он-лайн брута, так і для грунтоўнага падбору пароляў з аб'ёмнага слоўніка з апошнімі ўцечкамі;
Ёсць калькулятар, які паказвае час брутта пароляў на вашым абсталяванні.
У асобную групу мы хацелі б вынесці інструменты для 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-фарматах.
WPScan
WPScan - Інструмент для сканавання сайтаў на WordPress, мае ў сваім арсенале ўразлівасці як для самога рухавічка WordPress, так і для некаторых убудоў.
Плюсы:
Здольны пералічваць не толькі небяспечныя WordPress-плагіны і тэмы, але і атрымліваць спіс карыстачоў і TimThumb-файлы;
Можа праводзіць брутфорс-напады на WordPress-сайты.
Мінусы:
Без адпаведных налад праводзіць няпоўны набор праверак, што можа ўводзіць у зман.
У цэлым розныя людзі аддаюць перавагу розныя інструменты: усе яны па-свойму добрыя, і тое, што спадабалася аднаму чалавеку, можа зусім не падысці іншаму. Калі вы лічыце, што мы незаслужана абышлі ўвагу нейкую добрую ўтыліту - пішыце пра яе ў каментарах!