s vyprávěním o užitečných nástrojích pro pentestery. V novém článku si probereme nástroje pro analýzu zabezpečení webových aplikací.
Náš kolega už sestavil podobný před asi sedmi lety. Je zajímavé se podívat, které nástroje si udržely a posílily své pozice, a které ustoupily do pozadí a dnes se používají zřídka.

Poznamenejme, že sem patří i Burp Suite, ale o něm a jeho užitečných pluginech bude samostatná publikace.
Obsah:
Amass
— nástroj v jazyce Go pro hledání a skenování DNS subdomén a vytváření mapy vnější sítě. Amass je projekt OWASP, vytvořený k tomu, aby ukázal, jak organizace vypadají na internetu pro externí pozorovatele. Jména subdomén Amass získává různými způsoby, nástroj využívá jak rekurzivní prohledávání subdomén, tak vyhledávání v otevřených zdrojích.
K zjištění souvisejících síťových segmentů a čísel autonomních systémů používá Amass IP adresy získané během provozu. Veškeré nalezené informace jsou využity k vytváření mapy sítě.
Plusy:
- Techniky shromažďování informací zahrnují:
* DNS — prohledávání subdomén podle slovníku, bruteforce subdomén, „inteligentní“ prohledávání pomocí mutací na základě nalezených subdomén, reverzní DNS dotazy a vyhledávání DNS serverů, na kterých je možné provést dotaz na přenos zóny (AXFR);* Vyhledávání v otevřených zdrojích — Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo;
* Vyhledávání v databázích TLS certifikátů — Censys, CertDB, CertSpotter, Crtsh, Entrust;
* Použití API vyhledávačů — BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;
* Vyhledávání v archívech webu: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;
- Integrace s Maltego;
- Nabízí nejkompletnější pokrytí úkolu při vyhledávání DNS subdomén.
Nevýhody:
- Pozor na amass.netdomains — pokusí se připojit ke každé IP adrese v identifikované infrastruktuře a získat názvy domén z reverzních DNS dotazů a TLS certifikátů. Tato „hlasná“ technika může odhalit vaše zpravodajské aktivity ve zkoumané organizaci.
- Vysoká spotřeba paměti, může spotřebovávat až 2 GB RAM v různých nastaveních, což neumožní spustit tento nástroj v cloudu na levné VDS.

Altdns
— nástroj v Pythonu pro sestavování slovníků pro prohledávání DNS-subdomén. Umožňuje generovat množství variant subdomén pomocí mutací a permutací. K tomu se používají slova, která se často objevují v subdoménách (například: test, dev, staging), všechny mutace a permutace se aplikují na již známé subdomény, které lze poskytnout na vstupu Altdns. Na výstupu vzniká seznam variací subdomén, které mohou existovat, a tento seznam lze dále použít při DNS-bruteforce.
Plusy:
- Dobře funguje s velkými soubory dat.
aquatone
— dříve byl znám jako další nástroj pro hledání subdomén, ale sám autor se vzdal tohoto ve prospěch výše zmíněného Amass. Nyní je aquatone přepsán v Go a více zaměřen na předběžnou průzkum webových stránek. K tomu aquatone prochází označenými doménami a hledá na nich webové stránky na různých portech, poté shromažďuje všechny informace o stránce a vytváří screenshot. Je pohodlný pro rychlou předběžnou průzkum webových stránek, po němž lze vybrat prioritní cíle pro útoky.
Plusy:
- Na výstupu vytváří skupinu souborů a složek, které je možné pohodlně použít při další práci s jinými nástroji:
* HTML-bericht se shromážděnými snímky obrazovky a seskupenými podle podobnosti závěry odpovědí;* Soubor se všemi URL, na kterých byly nalezeny webové stránky;
* Soubor se statistikou a daty stránky;
* Složka se soubory obsahujícími hlavičky odpovědí od nalezených cílů;
* Složka se soubory obsahujícími tělo odpovědi od nalezených cílů;
* Screenshoty nalezených webových stránek;
- Podporuje práci s XML-berichty od Nmap a Masscan;
- Používá headless Chrome/Chromium pro renderování screenshotů.
Nevýhody:
- Může upoutat pozornost systémů detekce průniků, a proto vyžaduje nastavení.
Screenshot byl pořízen pro jednu z starších verzí aquatone (v0.5.0), ve které byla implementována funkce pro hledání DNS-subdomén. Starší verze lze najít na .

MassDNS
— další nástroj pro hledání DNS-subdomén. Jeho hlavní rozdíl spočívá v tom, že provádí DNS dotazy přímo na množství různých DNS resolverů a dělá to s významnou rychlostí.
Plusy:
- Rychlý – dokáže vyřešit více než 350 tisíc jmen za sekundu.
Nevýhody:
- MassDNS může výrazně zatížit použité DNS resolvery, což může vést k jejich zablokování nebo stížnostem u vašeho poskytovatele. Kromě toho způsobí velkou zátěž na DNS serverech společnosti, pokud tyto existují a odpovídají za domény, které se pokoušíte vyřešit.
- Seznam resolverů je v současné době zastaralý, ale pokud odstraníte nefunkční DNS resolvery a přidáte nové známé, vše bude v pořádku.

Snímek obrazovky aquatone v0.5.0
nsec3map
– nástroj na Pythonu pro získání kompletního seznamu domén chráněných DNSSEC.
Plusy:
- Rychle detekuje hostitele v DNS zónách s minimálním počtem dotazů, pokud je v zóně povolena podpora DNSSEC;
- Obsahuje plugin pro John the Ripper, který lze použít k prolomení získaných hashů NSEC3.
Nevýhody:
- Mnoho DNS chyb se zpracovává nesprávně;
- Neexistuje automatické paralelní zpracování NSEC záznamů – je nutné ručně rozdělit jmenný prostor;
- Vysoká spotřeba paměti.
Acunetix
– skener webových zranitelností, který automatizuje proces testování bezpečnosti webových aplikací. Testuje aplikaci na přítomnost SQL injekcí, XSS, XXE, SSRF a mnoha dalších webových zranitelností. Nicméně jako mnoho jiných skenerů zranitelností nenahradí pentestera, protože složité řetězce zranitelností nebo zranitelnosti v logice není schopen najít. Přesto pokrývá mnoho různých zranitelností, včetně různých CVE, na které pentester mohl zapomenout, což je velmi užitečné pro uvolnění od rutinního testování.
Plusy:
- Nízká úroveň falešných pozitiv.
- Výsledky lze exportovat ve formě reportů;
- Provádí velké množství kontrol na různé zranitelnosti;
- Paralelní skenování několika hostitelů.
Nevýhody:
- Neexistuje algoritmus deduplikace (funkčně stejné stránky Acunetix považuje za různé, protože vedou k různým URL), ale vývojáři na tom pracují;
- Vyžaduje instalaci na samostatném webovém serveru, což komplikuje testování klientských systémů s připojením přes VPN a používání skeneru v izolovaném segmentu místní klientské sítě;
- Může "znečistit" zkoumanou službu, například poslat do kontaktního formuláře na webu příliš mnoho útočných vektorů, čímž může výrazně zkomplikovat podnikové procesy;
- Je proprietární a tedy placené řešení.

Dirsearch
— nástroj v Pythonu pro bruteforce adresářů a souborů na webových stránkách.
Plusy:
- Dokáže rozlišit skutečné stránky s "200 OK" od stránek "200 OK", ale s textem "stránka nenalezena";
- Dodává se s pohodlným slovníkem, který má dobrý poměr mezi velikostí a efektivitou vyhledávání. Obsahuje standardní cesty charakteristické pro mnoho CMS a technologických stacků;
- Vlastní formát slovníku, který umožňuje dosáhnout dobré efektivity a flexibility při prohledávání souborů a adresářů;
- Pohodlný výstup — jednoduchý text, JSON;
- Dokáže provádět throttling — pauzy mezi požadavky, což je životně důležité pro jakoukoli slabou službu.
Nevýhody:
- Přípony je třeba předávat jako řetězec, což není pohodlné, pokud je potřeba předat mnoho přípon najednou;
- Pro použití vlastního slovníku je nutné ho mírně upravit na formát slovníků Dirsearch pro maximální efektivitu.

wfuzz
— webový fuzz tester napsaný v Go, vytvořený podle vzoru wfuzz, umožňuje bruteforce souborů, adresářů, URL cest, názvů a hodnot GET/POST parametrů, HTTP hlavičky, včetně hlavičky Host pro bruteforce virtuálních hostitelů. Na rozdíl od svého sourozence wfuzz se vyznačuje vyšší rychlostí a některými novými funkcemi, jako je podpora slovníků ve formátu Dirsearch.
Plusy:
- Multi-funkční — modulární struktura, sestavení trvá několik minut;
- Pohodlný mechanismus filtrace a fuzzingu;
- Můžete fuzzovat jakoukoli HTTP metodu, stejně jako jakékoli místo v HTTP požadavku.
Nevýhody:
- Ve stádiu vývoje.

ffuf
— webový fuzz tester napsaný v Go, vytvořený podle vzoru wfuzz, umožňuje bruteforce souborů, adresářů, URL cest, názvů a hodnot GET/POST parametrů, HTTP hlavičky, včetně hlavičky Host pro bruteforce virtuálních hostitelů. Na rozdíl od svého sourozence wfuzz se vyznačuje vyšší rychlostí a některými novými funkcemi, jako je podpora slovníků ve formátu Dirsearch.
Plusy:
- Filtry jsou podobné filtrům wfuzz, umožňují flexibilně nastavit bruteforce;
- Umožňuje fuzzovat hodnoty HTTP hlaviček, data POST požadavků a různé části URL, včetně názvů a hodnot GET parametrů;
- Můžete zadat jakoukoli HTTP metodu.
Nevýhody:
- Ve stádiu vývoje.

gobuster
— nástroj na Go pro průzkum, má dva pracovní režimy. První se používá pro brutální síly souborů a adresářů na webu, druhý — pro enumeraci DNS subdomén. Nástroj původně nepodporuje rekurzivní procházení souborů a adresářů, což samozřejmě šetří čas, ale na druhou stranu je třeba spustit brutální sílu pro každý nový koncový bod na webu zvlášť.
Plusy:
- Vysoká rychlost při práci jak pro enumeraci DNS subdomén, tak pro brutální sílu souborů a adresářů.
Nevýhody:
- V aktuální verzi nepodporuje nastavení HTTP hlaviček;
- Ve výchozím nastavení považuje za platné pouze některé HTTP stavové kódy (200, 204, 301, 302, 307).

Arjun
— nástroj pro brutální sílu skrytých HTTP parametrů v GET/POST parametrech, stejně jako v JSON. Vestavěný slovník obsahuje 25 980 slov, která Ajrun kontroluje téměř za 30 sekund. Důraz je kladen na to, že Ajrun nekontroluje každý parametr zvlášť, ale ověřuje přibližně 1000 parametrů najednou a sleduje, zda se odpověď změnila. Pokud se odpověď změnila, rozdělí tuto tisícovku parametrů na dvě části a zjistí, která z těchto částí ovlivňuje odpověď. Takto se pomocí jednoduchého binárního vyhledávání nalezne parametr nebo několik skrytých parametrů, které ovlivnily odpověď a mohou tedy existovat.
Plusy:
- Vysoká rychlost práce díky binárnímu vyhledávání;
- Podpora GET/POST parametrů, stejně jako parametrů ve formátu JSON;
Podobným způsobem funguje i plugin pro Burp Suite — , který je také velmi dobrý ve vyhledávání skrytých HTTP parametrů. Podrobněji o něm budeme hovořit v nadcházejícím článku o Burp a jeho pluginech.

LinkFinder
— skript v Pythonu pro hledání odkazů v JavaScriptových souborech. Užitečný pro vyhledávání skrytých nebo zapomenutých koncových bodů/URL v webové aplikaci.
Plusy:
- Rychlý;
- Existuje speciální plugin pro Chrome založený na LinkFinderu.
.
Nevýhody:
- Nepraktičtý výsledný výstup;
- Nerozebírá JavaScript v dynamice;
- Poměrně jednoduchá logika hledání odkazů — pokud je JavaScript nějakým způsobem zmatečný, nebo odkazy původně chybí a generují se dynamicky, nebude schopen nic najít.

JSParser
— skript v Pythonu, který používá a pro analýzu relativních URL adres v JavaScriptových souborech. Velmi užitečné pro odhalení AJAXových požadavků a sestavení seznamu API metod, se kterými aplikace interaguje. Efektivně funguje v kombinaci s LinkFinderem.
Plusy:
- Rychlé parsování JavaScriptových souborů.

sqlmap
— pravděpodobně jeden z nejznámějších nástrojů pro analýzu webových aplikací. Sqlmap automatizuje hledání a využívání SQL injekcí, pracuje s různými dialekty SQL a disponuje obrovským množstvím různých technik, počínaje jednoduchými útoky s použitím jednoduchých uvozovek a konče složitými vektory pro SQL injekce založené na čase. Navíc má mnoho technik pro další využití pro různé databázové systémy, je tedy užitečný nejen jako skener pro SQL injekce, ale také jako mocný nástroj pro využití již nalezených SQL injekcí.
Plusy:
- Velké množství různých technik a vektorů;
- Nízký počet falešně pozitivních výsledků;
- Mnoho možností pro přesné nastavení, různé techniky, cílová databáze, skripty pro obcházení WAF;
- Možnost vytvoření dumpu výstupních dat;
- Mnoho různých možností pro využití, například pro některé databáze — automatické načítání/vytěžení souborů, získání možnosti vykonávat příkazy (RCE) a další;
- Podpora přímého připojení k databázi pomocí dat získaných během útoku;
- Na vstup lze zadat textový soubor s výsledky práce Burp — není potřeba ručně sestavovat všechny atributy příkazového řádku.
Nevýhody:
- Obtížné přizpůsobit, například napsat vlastní ověření kvůli nedostatečné dokumentaci pro toto;
- Bez odpovídajícího nastavení provádí neúplnou sadu kontrol, což může uvést v omyl.

NoSQLMap
— nástroj v Pythonu pro automatizaci hledání a exploataci NoSQL injekcí. Snadno se používá nejen v NoSQL databázích, ale také přímo při auditech webových aplikací, které používají NoSQL.
Plusy:
- Podobně jako sqlmap, umožňuje nejen nalézt potenciální zranitelnost, ale také zkoumá možnost její exploitation pro MongoDB a CouchDB.
Nevýhody:
- Nepodporuje NoSQL pro Redis, Cassandra, na tomto směru se pracuje.
oxml_xxe
— nástroj pro vkládání XXE XML exploitů do různých typů souborů, ve kterých se jakýmkoli způsobem používá XML formát.
Plusy:
- Podporuje mnoho běžných formátů, jako jsou DOCX, ODT, SVG, XML.
Nevýhody:
- Podpora PDF, JPEG, GIF není úplně realizována;
- Vytváří pouze jeden soubor. Pro řešení tohoto problému lze použít nástroj , který může vytvořit velké množství souborů s payloady na různých místech.
Uvedené nástroje účinně testují XXE při nahrávání dokumentů obsahujících XML. Nezapomínejte však, že zpracovatelé XML formátů se mohou vyskytovat v mnoha dalších případech, například XML může být použito jako datový formát místo JSON.
Doporučujeme proto věnovat pozornost následujícímu repozitáři, který obsahuje velké množství různých payloadů: .
tplmap
— nástroj v Pythonu pro automatické odhalování a využívání zranitelností Server-Side Template Injection, má podobná nastavení a příznaky jako sqlmap. Používá několik různých technik a vektorů, včetně blind-injekcí, a má techniky pro spouštění kódu a načítání/vkládání libovolných souborů. Kromě toho má ve svém arzenálu techniky pro desítky různých šablonovacích strojů a některé techniky pro vyhledávání vybavení eval()-podobných injekcí kódu v Pythonu, Ruby, PHP, JavaScriptu. V případě úspěšné exploatace otevírá interaktivní konzoli.
Plusy:
- Velké množství různých technik a vektorů;
- Podporuje mnoho motorů pro rendering šablon;
- Mnoho technik exploatace.
CeWL
— generátor slovníků v Ruby, navržený pro extrakci unikátních slov z určené webové stránky, projde odkazy na stránce do zadané hloubky. Sestavený slovník z unikátních slov lze poté použít k brute force hesel na službách nebo k brute force souborů a adresářů na stejné webové stránce, nebo k útoku na získané hashe pomocí hashcat nebo John the Ripper. Je užitečný při sestavování "cílového" seznamu potenciálních hesel.
Plusy:
- Snadné použití.
Nevýhody:
- Je třeba být opatrný s hloubkou vyhledávání, aby se nezachytily zbytečné domény.
Weakpass
— služba obsahující mnoho slovníků s unikátními hesly. Extrémně užitečná pro různé úkoly spojené s hackováním hesel, od jednoduchého online brute force účtů na cílových službách až po offline brute force získaných hashů pomocí nebo . Obsahuje přibližně 8 miliard hesel o délce od 4 do 25 znaků.
Plusy:
- Obsahuje jak specifické slovníky, tak slovníky s nejčastěji se vyskytujícími hesly — je možné vybrat konkrétní slovník podle vlastních potřeb;
- Slovníky se pravidelně aktualizují a doplňují novými hesly;
- Slovníky jsou seřazeny podle efektivity. Můžete si vybrat variantu jak pro rychlý online bruteforce, tak pro podrobné vybírání hesel z rozsáhlého slovníku s posledními úniky;
- Je tu kalkulačka, která ukazuje čas bruteforce hesel na vašem zařízení.

Do samostatné skupiny bychom chtěli zařadit nástroje pro kontrolu CMS: WPScan, JoomScan a AEM hacker.
AEM_hacker
— nástroj pro odhalování zranitelností v aplikacích Adobe Experience Manager (AEM).
Plusy:
- Může detekovat AEM aplikace ze seznamu URL, které mu byly předloženy;
- Obsahuje skripty pro získání RCE prostřednictvím nahrávání JSP shellu nebo exploitací SSRF.
JoomScan
— nástroj v Perl pro automatizaci objevování zranitelností při nasazení Joomla CMS.
Plusy:
- Je schopen vyhledávat nedostatky v konfiguraci a problémy s administrátorskými nastaveními;
- Vypisuje verze Joomla a s nimi spojené zranitelnosti, podobně jako pro jednotlivé komponenty;
- Obsahuje více než 1000 exploitů na komponenty Joomla;
- Vydává závěrečné zprávy ve formátu textu a HTML.

WPScan
— nástroj pro skenování webových stránek na WordPressu, má ve svém arzenálu zranitelnosti jak pro samotný motor WordPress, tak pro některé pluginy.
Plusy:
- Je schopen vyjmenovat nejen nebezpečné pluginy a šablony WordPress, ale také získat seznam uživatelů a TimThumb soubory;
- Může provádět bruteforce útoky na WordPressové stránky.
Nevýhody:
- Bez odpovídajícího nastavení provádí neúplnou sadu kontrol, což může uvést v omyl.

Celkově různí lidé preferují k práci různé nástroje: všechny jsou dobré svým vlastním způsobem, a to, co se líbilo jednomu člověku, nemusí vůbec vyhovovat druhému. Pokud se domníváte, že jsme nezmínili nějakou dobrou utilitu — dejte nám o ní vědět v komentářích!
Zdroj: habr.com
