v povídání o užitečných nástrojích pro penetrační testery. V tomto novém článku se podíváme na nástroje pro analýzu bezpečnosti webových aplikací.
Náš kolega už dříve vytvořil podobný přibližně před sedmi lety. Zajímavé je podívat se na to, jaké nástroje si zachovaly a posílily své pozice, a které se dostaly na druhou kolej a dnes se používají méně.

Všimněte si, že sem patří také Burp Suite, ale o něm a jeho užitečných pluginech bude zvláštní publikace.
Obsah:
Amass
— nástroj napsaný v Go pro vyhledávání a procházení DNS subdomén a mapování vnější sítě. Amass je projekt OWASP, vytvořený k tomu, aby ukázal, jak organizace vypadají na internetu z pohledu externího pozorovatele. Názvy subdomén Amass získává různými způsoby, nástroj využívá jak rekurzivní prohledávání subdomén, tak i vyhledávání v otevřených zdrojích.
Pro zjištění vzájemně propojených síťových segmentů a čísel autonomních systémů Amass používá IP adresy získané během práce. Veškeré nalezené informace se používají k vytvoření mapy sítě.
Plusy:
- Techniky sběru informací zahrnují:
* DNS — prohledávání subdomén pomocí slovníků, bruteforce subdomén, „inteligentní“ prohledávání s použitím 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í ve webových archivech: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;
- Integrace s Maltego;
- Poskytuje nejkompletnější pokrytí úkolu vyhledávání DNS subdomén.
Nevýhody:
- Buďte opatrní s amass.netdomains — pokusí se obrátit na každou IP adresu ve zjištěné infrastruktuře a získat názvy domén z reverzních DNS dotazů a TLS certifikátů. To je „hluková“ technika, která může odhalit vaše průzkumné aktivity v zkoumané organizaci.
- Vysoká spotřeba paměti, může spotřebovat až 2 GB RAM v různých nastaveních, což znemožní spustit tento nástroj v cloudu na levném VDS.

Altdns
— nástroj v Pythonu pro vytváření slovníků pro brute-force DNS subdomén. Umožňuje generovat mnoho variant subdomén pomocí mutací a permutací. K tomu se používají slova, která se často objevují v subdoménách (např.: test, dev, staging), všechny mutace a permutace se aplikují na již známé subdomény, které lze předložit Altdns. Na výstupu vzniká seznam variací subdomén, které mohou existovat, a tento seznam lze dále použít při DNS brute-force.
Plusy:
- Dobře funguje s velkými datasetty.
aquatone
— byl dříve více známý jako další nástroj pro vyhledávání subdomén, ale autor se vzdal tohoto ve prospěch výše zmíněného Amass. Nyní je aquatone přeprogramován v Go a je více zaměřen na předběžnou průzkum webových stránek. K tomu aquatone prochází určenými doménami a hledá na nich webové stránky na různých portech, poté shromažďuje všechny informace o webu a dělá screenshot. Je vhodný pro rychlou předběžnou průzkum webových stránek, po kterém lze vybrat prioritní cíle pro útoky.
Plusy:
- Na výstupu vytváří skupinu souborů a složek, které se pohodlně používají při další práci s jinými nástroji:
* HTML zpráva se shromážděnými snímky obrazovky a seskupenými podle podobnosti hlavičkami 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, které obsahují hlavičky odpovědí od nalezených cílů;
* Složka se soubory, které obsahují tělo odpovědi od nalezených cílů;
* Screenshoty nalezených webových stránek;
- Podporuje práci s XML zprávami z Nmap a Masscan;
- Používá headless Chrome/Chromium pro renderování snímků obrazovky.
Nevýhody:
- Může upoutat pozornost systémů pro detekci narušení, proto vyžaduje konfiguraci.
Screenshot byl pořízen pro jednu ze starých verzí aquatone (v0.5.0), ve které byla implementována funkce hledání DNS subdomén. Staré verze lze nalézt na .

MassDNS
— další nástroj pro vyhledávání DNS subdomén. Jeho hlavním rozdílem je, že provádí DNS dotazy přímo na mnoho 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 způsobit značné zatížení používaných DNS resolverů, což může vést k blokaci na těchto serverech nebo stížnostem k vašemu poskytovateli. Kromě toho způsobí větší zátěž na DNS servery společnosti, pokud je má a pokud odpovídají za domény, které se snažíte vyřešit.
- Seznam resolverů je v současnosti zastaralý, nicméně pokud odstraníte nefunkční DNS resolvery a přidáte nové známé, vše bude v pořádku.

Screenshot 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 odhaluje 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 je zpracováváno nesprávně;
- Není automatické paralelní zpracování NSEC záznamů — je potřeba ručně rozdělit prostor jmen;
- Vysoká spotřeba paměti.
Acunetix
— skener webových zranitelností, který automatizuje proces kontroly zabezpečení webových aplikací. Testuje aplikaci na přítomnost SQL injekcí, XSS, XXE, SSRF a mnoha dalších webových zranitelností. Nicméně, jako každý jiný skener mnoha webových zranitelností nenahradí pentestera, protože složité řetězce zranitelností nebo logické zranitelnosti nenajde. Ale pokrývá velmi mnoho různých zranitelností, včetně různých CVE, na které mohl pentester zapomenout, takže je velmi užitečný pro uvolnění od rutinních kontrol.
Plusy:
- Nízká míra falešných poplachů;
- 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:
- Není zde algoritmus deduplikace (stejné funkční stránky Acunetix považuje za odlišné, protože na ně vedou různé URL), ale vývojáři na tom pracují;
- Vyžaduje instalaci na samostatném webovém serveru, což ztěžuje 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 "zahalit" zkoumanou službu, například tím, že na kontaktní formu na webu odešle příliš mnoho útočných vektorů, čímž výrazně zkomplikuje obchodní procesy;
- Je to 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 odlišit skutečné stránky „200 OK“ od stránek „200 OK“ s textem „stránka nenalezena“;
- Dodává se s uživatelským slovníkem, který má dobrý poměr mezi velikostí a efektivitou vyhledávání. Obsahuje standardní cesty typické pro mnohé CMS a technologie;
- Vlastní formát slovníku, který umožňuje dosáhnout dobré efektivity a flexibility při procházení souborů a adresářů;
- Pohodlný výstup — prostý text, JSON;
- Umí dělat throttling — pauzu mezi požadavky, což je zásadní pro jakoukoliv slabou službu.
Nevýhody:
- Přípony je nutné předávat jako řetězec, což je nepohodlné, pokud je potřeba předat více přípon najednou;
- Aby bylo možné použít svůj slovník, bude třeba ho mírně upravit do formátu slovníků Dirsearch pro maximální efektivitu.

wfuzz
— Python fuzzr webových aplikací. Pravděpodobně jeden z nejznámějších web fuzzrů. Princip je jednoduchý: wfuzz umožňuje fuzzování jakéhokoli místa v HTTP požadavku, což dává možnost fuzzovat GET/POST parametry, HTTP hlavičky, včetně Cookie a dalších autentizačních hlaviček. Zároveň je pohodlný i pro jednoduché bruteforce adresářů a souborů, pro což je potřeba dobrý slovník. Také má flexibilní systém filtrů, pomocí kterého lze filtrovat odpovědi od webu podle různých parametrů, což umožňuje dosáhnout efektivních výsledků.
Plusy:
- Víceúčelový — modulární struktura, sestavení trvá několik minut;
- Pohodlný mechanismus filtrování a fuzzingu;
- Lze fuzzovat jakoukoli HTTP metodu i jakékoli místo v HTTP požadavku.
Nevýhody:
- Ve stavu vývoje.

ffuf
— web fuzzr na Go, vytvořený podle „obrazu a podoby“ 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 hostů. Od svého bratrance wfuzz se liší vyšší rychlostí a některými novými funkcemi, například podporuje slovníky formátu Dirsearch.
Plusy:
- Filtry jsou podobné filtrům wfuzz, umožňují flexibilně nastavit bruteforce;
- Umožňuje fuzzování hodnot HTTP hlaviček, POST požadovaných dat a různých částí URL, včetně názvů a hodnot GET parametrů;
- Lze zadat jakoukoli HTTP metodu.
Nevýhody:
- Ve stavu vývoje.

gobuster
— nástroj na Go pro průzkum, má dva režimy práce. První se používá pro bruteforce souborů a adresářů na webové stránce, 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 spouštět bruteforce pro každý nový koncový bod na webové stránce zvlášť.
Plusy:
- Vysoká rychlost práce jak pro enumeraci DNS subdomén, tak pro bruteforce 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 status kódy (200, 204, 301, 302, 307).

Arjun
— nástroj pro bruteforce 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. Jde o to, že Ajrun nekontroluje každý parametr zvlášť, ale zkoumá 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 zkontroluje, která z těchto částí ovlivňuje odpověď. Takto se pomocí jednoduchého binárního vyhledávání nachází parametr nebo několik skrytých parametrů, které ovlivnily odpověď a tedy mohou 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 také plugin pro Burp Suite — , který je také velmi dobrý při hledání skrytých HTTP parametrů. Podrobněji o něm povíme v nadcházejícím článku o Burp a jeho pluginech.

LinkFinder
— skript na Python pro vyhledávání odkazů v JavaScript souborech. Užitečný pro hledání skrytých nebo zapomenutých koncových bodů/URL ve webové aplikaci.
Plusy:
- Rychlý;
- Existuje speciální plugin pro Chrome založený na LinkFinderu.
.
Nevýhody:
- Nepraktické závěrečné výstupy;
- Nenanalyzuje JavaScript v dynamice;
- Poměrně jednoduchá logika vyhledávání odkazů — pokud je JavaScript jakkoliv obfuskovaný, nebo odkazy původně chybí a jsou generovány dynamicky, pak nebude schopen nic najít.

JSParser
— skript na Python, který používá a pro analýzu relativních URL adres z JavaScript souborů. Velmi užitečný pro odhalení AJAX požadavků a sepsání seznamu API metod, se kterými aplikace interaguje. Efektivně funguje v páru s LinkFinderem.
Plusy:
- Rychlý parsing JavaScript 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 několika dialekty SQL a má v arsenálu obrovské množství různých technik, od útoků „na slepo“ až po složité vektory pro SQL injekce založené na čase. Kromě toho má mnoho technik dalšího využití pro různé SGBD, takže je užitečný nejen jako skener pro SQL injekce, ale také jako mocný nástroj pro exploataci již nalezených SQL injekcí.
Plusy:
- Velké množství různých technik a vektorů;
- Nízký počet falešných pozitiv;
- Mnoho možností pro přesné nastavení, různé techniky, cílová DB, tamper-scripty pro obcházení WAF;
- Možnost vytvoření dumpu výstupních dat;
- Mnoho různých možností exploatace, například pro některé DB — automatické nahrávání/vykládání souborů, získání možnosti vykonávání příkazů (RCE) a další;
- Podpora přímého připojení k DB s použitím dat získaných během útoku;
- Jako vstup lze poskytnout textový soubor s výsledky práce Burp — není třeba ručně sestavovat všechny atributy příkazového řádku.
Nevýhody:
- Složitě se přizpůsobuje, například napsat vlastní kontroly kvůli chudé dokumentaci k tomu;
- Bez příslušného nastavení provádí neúplnou sadu kontrol, což může zavádět.

NoSQLMap
— nástroj v Pythonu pro automatizaci hledání a exploatace NoSQL injekcí. Je pohodlné ho používat nejen v NoSQL databázích, ale i přímo při auditu webových aplikací, které používají NoSQL.
Plusy:
- Stejně jako sqlmap, umožňuje nejen najít potenciální zranitelnost, ale také zkontrolovat možnost její exploatace pro MongoDB a CouchDB.
Nevýhody:
- Nepodporuje NoSQL pro Redis, Cassandra, v této oblasti probíhá vývoj.
oxml_xxe
— nástroj pro vkládání XXE XML exploitů do různých typů souborů, ve kterých se v nějaké formě 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í zcela realizována;
- Vytváří pouze jeden soubor. Pro vyř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.
Výše uvedené nástroje skvěle fungují při testování 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 formát dat místo JSON.
Proto doporučujeme věnovat pozornost následujícímu repozitáři, který obsahuje velké množství různorodých payloadů: .
tplmap
— nástroj v Pythonu pro automatické odhalení a zneužití zranitelností Server-Side Template Injection, který má podobná nastavení a příznaky jako sqlmap. Používá několik různých technik a vektorů, včetně blind-injekcí, a má také techniky pro provádění kódu a nahrávání/vytahování libovolných souborů. Kromě toho obsahuje techniky pro desítky různých šablonových engine a některé techniky pro hledání eval()-podobných injekcí kódu v Pythonu, Ruby, PHP, JavaScriptu. V případě úspěšného zneužití otevře interaktivní konzoli.
Plusy:
- Velké množství různých technik a vektorů;
- Podporuje mnoho šablonových engine;
- Mnoho exploitačních technik.
CeWL
— generátor slovníků v Ruby, vytvořený pro extrakci unikátních slov z určené webové stránky, prochází odkazy na webu do určené hloubky. Sestavený slovník z unikátních slov lze poté použít pro brute force hesel na službách nebo brute force souborů a adresářů na stejné webové stránce, nebo pro útok na získané hash 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ější s hloubkou vyhledávání, abyste nezahrnuli 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 související s prolomením hesel, od jednoduchého online brute force účtů na cílových službách, 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ějšími hesly — můžete si vybrat konkrétní slovník podle svých potřeb;
- Slovníky se aktualizují a doplňují o nová hesla;
- Slovníky jsou seřazeny podle efektivity. Můžete si vybrat variantu jak pro rychlý online brute force, tak pro důkladné vybírání hesel z rozsáhlého slovníku s posledními úniky;
- Je zde kalkulačka, která ukazuje dobu trvání brute force útoků na vašem zařízení.

Do samostatné skupiny bychom chtěli zařadit nástroje pro kontroly CMS: WPScan, JoomScan a AEM hacker.
AEM_hacker
— nástroj pro identifikaci zranitelností v aplikacích Adobe Experience Manager (AEM).
Plusy:
- Může identifikovat 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 napsaný v Perl pro automatizaci odhalování zranitelností při nasazení Joomla CMS.
Plusy:
- Je schopen vyhledávat nedostatky v konfiguraci a problémy s administračními nastaveními;
- Vyjmenovává verze Joomla a s nimi související zranitelnosti, obdobně pro jednotlivé komponenty;
- Obsahuje více než 1000 exploitů pro komponenty Joomla;
- Výstup závěrečných zpráv v textovém a HTML formátu.

WPScan
— nástroj pro skenování webových stránek na WordPressu, má ve svém arzenálu zranitelnosti pro samotný WordPress i pro některé pluginy.
Plusy:
- Je schopen vypisovat nejen nebezpečné pluginy a šablony WordPress, ale také získávat seznam uživatelů a TimThumb soubory;
- Může provádět brute force útoky na WordPress weby.
Nevýhody:
- Bez příslušného nastavení provádí neúplnou sadu kontrol, což může zavádět.

Celkově různí lidé upřednostňují pro práci různé nástroje: všechny mají své klady, a to, co se líbí jednomu člověku, nemusí vůbec vyhovovat jinému. Pokud se domníváte, že jsme opomenuli nějaký dobrý nástroj — napište o něm v komentářích!
Zdroj: habr.com
