å fortelle om nyttige verktøy for penetrationstestere. I denne nye artikkelen vil vi se på verktøy for å analysere sikkerheten i webapplikasjoner.
Vår kollega har allerede laget en slik for omtrent syv år siden. Det er interessant å se hvilke verktøy som har beholdt og styrket sin posisjon, og hvilke som har gått bak i rekken og nå brukes sjeldnere.

Det er verdt å merke seg at Burp Suite også faller inn under dette, men om det og dets nyttige tillegg vil det komme en egen publisering.
Innhold:
Amass
— et verktøy i Go for å finne og enumerere DNS-underdomener og lage et kart over det eksterne nettverket. Amass er et OWASP-prosjekt, opprettet for å vise hvordan organisasjoner fremstår for eksterne observatører på Internett. Underdomenenavnene hentes på forskjellige måter; verktøyet bruker både rekursiv ved hjelp av underdomener og søk i åpne kilder.
For å oppdage relaterte nettverkssegmenter og autonome systemnumre bruker Amass IP-adresser som er oppnådd under drift. All informasjon som finnes, brukes til å lage et nettverkskart.
Fordeler:
- Informasjonsinnsamlingsteknikker inkluderer:
* DNS — ordbasert underdomene-iterasjon, bruteforce underdomener, "intelligent" iterasjon med mutasjoner basert på funnet underdomener, omvendte DNS-spørringer og søk etter DNS-servere der forespørsel om soneoverføring (AXFR) er mulig;* Søk i åpne kilder — Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo;
* Søk i TLS-sertifikatdatabaser — Censys, CertDB, CertSpotter, Crtsh, Entrust;
* Bruke API-er fra søkemotorer — BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;
* Søk i nettarkiver: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;
- Integrering med Maltego;
- Gir den mest omfattende dekningen for oppgaven med å finne DNS-underdomener.
Ulemper:
- Vær forsiktig med amass.netdomains — det vil prøve å kontakte hver IP-adresse i den identifiserte infrastrukturen og hente domenenavn fra omvendte DNS-spørringer og TLS-sertifikater. Dette er en "høylytt" teknikk, den kan avdekke dine etterretningshandlinger i den undersøkte organisasjonen.
- Høgt minneforbruk, kan bruke opptil 2 GB RAM i ulike innstillinger, som ikkje vil tillate å kjøre dette verktøyet i skyen på ein billig VDS.

Altdns
— eit verktøy på Python for å lage ordlister for å brute-force DNS-underdomener. Det lar deg generere mange variasjonar av undermener ved hjelp av mutasjonar og permutasjonar. Dette bruker ord som ofte finnes i undermener (for eksempel: test, dev, staging), alle mutasjonar og permutasjonar blir brukt på allereie kjente undermener som kan gi input til Altdns. Resultatet er ei liste over variasjonar av undermener som kan eksistere, og denne lista kan deretter brukast i DNS-brute-forcing.
Fordeler:
- Fungerer godt med store datamengder.
aquatone
— var tidlegare meir kjend som eit anna verktøy for å søke etter undermener, men selve forfattaren ga opp dette til fordel for det ovanfor nemnte Amass. No er aquatone omskriven i Go og meir fokusert på tidleg etterretning på nettsider. For dette går aquatone gjennom oppgitt domener og ser etter nettsider på ulike portar, samlar all informasjon om nettsida og tar eit skjermbilde. Nyttig for rask tidleg etterretning på nettsider, etter dette kan ein velge prioriterte mål for angrep.
Fordeler:
- Maksimumprodusert ei gruppe filer og mapper som er praktiske å bruke i vidare arbeid med andre verktøy:
* HTML-rapport med samla skjermbilete og grupperte etter liknande overskrifter av svar;* Fil med alle URL-er der nettsider har blitt funne;
* Fil med statistikk og sideinformasjon;
* Mappe med filer som inneheld svaroverskrifter frå funne mål;
* Mappe med filer som inneheld kroppen av svaret frå funne mål;
* Skjermbilete av funne nettsider;
- Støtter arbeid med XML-rapporter frå Nmap og Masscan;
- Bruker headless Chrome/Chromium for å rendre skjermbilete.
Ulemper:
- Kan tiltrekke seg oppmerksomhet frå innbruddsoppdagingssystemer, så det krev konfigurasjon.
Skjermbiletet er teke for ein av dei tidlegare versjonane av aquatone (v0.5.0), der søk etter DNS-underdomener vart implementert. Gamle versjonar kan finnast på .

MassDNS
— eit anna verktøy for å søke etter DNS-underdomener. Hovudforskjellen er at det gjer DNS-forespørselar direkte til mange forskjellige DNS-resolvrar og gjer dette med betydelig hastighet.
Fordeler:
- Raskt — i stand til å løse over 350 000 navn per sekund.
Ulemper:
- MassDNS kan påføre betydelig belastning på de brukes DNS-oppløserne, noe som kan føre til utestengelse på disse serverne eller klager til din leverandør. I tillegg vil det påføre stor belastning på firmaets DNS-servere, hvis de har noen, og hvis de er ansvarlige for domener du prøver å løse.
- Listen over oppløsere er for tiden utdatert, men hvis du filtrerer ut de ikke-fungerende DNS-oppløserne og legger til nye kjente — vil alt være bra.

Skjermbilde av aquatone v0.5.0
nsec3map
— et verktøy i Python for å hente en komplett liste over domener beskyttet av DNSSEC.
Fordeler:
- Oppdager raskt verter i DNS-soner med minimalt antall forespørsel, hvis sonen har støtte for DNSSEC aktivert;
- Som en del av en plugin for John the Ripper, som kan brukes til å knekke de innhentede NSEC3-hashene.
Ulemper:
- Mange DNS-feil blir behandlet feil;
- Det er ingen automatisk parallell prosessering av NSEC-poster — må dele navneområdet manuelt;
- Høyt minneforbruk.
Acunetix
— en skanner for web-sårbarheter, som automatiserer prosessen med å teste sikkerheten til webapplikasjoner. Tester applikasjonen for SQL-injeksjoner, XSS, XXE, SSRF og mange andre web-sårbarheter. Men, som med enhver annen skanner for mange web-sårbarheter, erstatter den ikke en pentester, siden komplekse kjeder av sårbarheter eller logiske sårbarheter ikke vil bli oppdaget. Den dekker imidlertid mange forskjellige sårbarheter, inkludert ulike CVE-er som en pentester kanskje har glemt, noe som gjør den veldig nyttig for å avlaste rutinekontroller.
Fordeler:
- Lavt nivå av falske positiver;
- Resultatene kan eksporteres i form av rapporter;
- Utfører et stort antall sjekker for forskjellige sårbarheter;
- Parallell skanning av flere verter.
Ulemper:
- Ingen dedupliseringsalgoritme (funksjonelt like sider vil Acunetix betrakte som forskjellige, siden de har forskjellige URL-er), men utviklerne jobber med dette;
- Krever installasjon på en separat webserver, noe som kompliserer testing av klientens systemer med VPN-tilkobling og bruken av skanner i et isolert segment av det lokale klients nettverket;
- Kan "støyen" den undersøkte tjenesten, for eksempel ved å sende for mange angrepvektorer til kontaktskjemaet på nettstedet, noe som kan komplisere forretningsprosessene betydelig;
- Er et proprietært og dermed ikke gratis løsning.

Dirsearch
— et værktøj i Python til brute-forcing af mapper og filer på websteder.
Fordeler:
- Kan skelne mellem ægte '200 OK' sider og sider med '200 OK', men med teksten 'siden blev ikke fundet';
- Leveres med et praktisk ordbog, der har en god balance mellem størrelse og søgeeffektivitet. Indeholder standardstier, der er typiske for mange CMS'er og teknologistakke;
- Sine egen ordbogsformat, der muliggør god effektivitet og fleksibilitet ved gennemsøgning af filer og mapper;
- Behagelig output — simpel tekst, JSON;
- Kan udføre throttling — en pause mellem forespørgsler, hvilket er livsvigtigt for enhver svag service.
Ulemper:
- Udvidelser skal gives som en streng, hvilket er besværligt, hvis man skal overføre mange udvidelser på én gang;
- For at bruge sin egen ordbog skal den tilpasses lidt til Dirsearch ordbogsformatet for maksimal effektivitet.

wfuzz
— en Python-fuzzer til webapplikationer. Sandsynligvis en af de mest kendte web-fuzzere. Princippet er enkelt: wfuzz tillader fuzzing af ethvert sted i HTTP-forespørgslen, hvilket giver mulighed for fuzzing af GET/POST-parametre, HTTP-headere, inklusive cookies og andre autentificeringsheadere. Samtidig er det også praktisk til simpel brute-forcing af mapper og filer, for hvilket et godt ordbog er nødvendigt. Har også et fleksibelt filteringssystem, der gør det muligt at filtrere svar fra webstedet efter forskellige parametre, hvilket muliggør effektive resultater.
Fordeler:
- Flerfunktionel — modulære struktur, samling tager kun et par minutter;
- Praktisk filter- og fuzzingmekanisme;
- Kan fuzz noget HTTP-metode samt ethvert sted i HTTP-forespørgslen.
Ulemper:
- Under udvikling.

ffuf
— en web-fuzzer på Go, skabt i 'billede og lighed' af wfuzz, tillader brute-forcing af filer, mapper, URL-stier, navne og værdier af GET/POST-parametre, HTTP-headere, inklusive Host-headeren for brute-forcing af virtuelle værter. Forskellen fra sin bror wfuzz er højere hastighed og nogle nye funktioner, for eksempel understøttelse af Dirsearch-orbøger.
Fordeler:
- Filtre ligner wfuzz-filtre, giver fleksibel opsætning af brute-forcing;
- Tillader fuzzing af værdier af HTTP-headere, data fra POST-forespørgsler og forskellige dele af URL'er, inklusive navne og værdier af GET-parametre;
- Kan specificere enhver HTTP-metode.
Ulemper:
- Under udvikling.

gobuster
— et verktøy på Go for etterforskning, har to driftsmoduser. Den første brukes for bruteforce av filer og kataloger på nettstedet, den andre — for iterering av DNS-underdomener. Verktøyet støtter opprinnelig ikke rekursiv iterering av filer og kataloger, noe som selvfølgelig sparer tid, men på den annen side må bruteforcing av hver ny endepunkt på nettstedet startes separat.
Fordeler:
- Høy hastighet både for iterering av DNS-underdomener og for bruteforce av filer og kataloger.
Ulemper:
- I den nåværende versjonen støttes ikke innstilling av HTTP-headere;
- Som standard regner den kun med enkelte HTTP-statuskoder (200, 204, 301, 302, 307) som gyldige.

Arjun
— et verktøy for bruteforce av skjulte HTTP-parametere i GET/POST-parametere, så vel som i JSON. Den innebygde ordboken har 25 980 ord, som Ajrun sjekker på omtrent 30 sekunder. Fokuset er at Ajrun ikke sjekker hver parameter separat, men sjekker omtrent 1000 parametere om gangen og ser om svaret endres. Hvis svaret endres, deler den disse 1000 parameterne i to deler og sjekker hvilken av dem som påvirker svaret. På denne måten finnes parameteren eller flere skjulte parametere gjennom en enkel binær søkemetode, som påvirket svaret og dermed kan eksistere.
Fordeler:
- Høy hastighet oppnådd gjennom binær søk.
- Støtte for GET/POST-parametere samt parametere i JSON-format;
Pluginen for Burp Suite fungerer på en lignende måte — , som også er meget god til å finne skjulte HTTP-parametere. Mer om dette vil vi omtale i en kommende artikkel om Burp og dens plugins.

LinkFinder
— et skript på Python for å finne lenker i JavaScript-filer. Nyttig for å oppdage skjulte eller glemte endepunkter/URL-er i webapplikasjonen.
Fordeler:
- Rask;
- Det finnes en spesiell plugin for Chrome basert på LinkFinder.
.
Ulemper:
- Ubehagelig avsluttende utdata;
- Analyserer ikke JavaScript dynamisk;
- Ganske enkel logikk for å søke etter lenker — hvis JavaScript på noen måter er obfuskerert, eller lenkene opprinnelig mangler og genereres dynamisk, vil den ikke klare å finne noe.

JSParser
— et Python-skript som bruker og for å analysere relative URL-adresser fra JavaScript-filer. Veldig nyttig for å oppdage AJAX-forespørselen og lage en liste over API-metoder som applikasjonen samhandler med. Fungerer effektivt sammen med LinkFinder.
Fordeler:
- Rask parsing av JavaScript-filer.

sqlmap
— kanskje en av de mest kjente verktøyene for analyse av webapplikasjoner. Sqlmap automatiserer søk og utnyttelse av SQL-injeksjoner, fungerer med flere SQL-dialekter, og har i arsenalet sitt et stort antall ulike teknikker, fra enkle "punch-in"-metoder til komplekse vektorer for time-based SQL-injeksjoner. I tillegg har det mange teknikker for videre utnyttelse for ulike DBMS, så det er nyttig ikke bare som en skanner for SQL-injeksjoner, men også som et kraftig verktøy for å utnytte allerede funnede SQL-injeksjoner.
Fordeler:
- Et stort antall forskjellige teknikker og vektorer;
- Lavt antall falske positiver;
- Mange muligheter for finjustering, ulike teknikker, mål-DB, tamper-skript for å omgå WAF;
- Mulighet for å lage et dump av output-data;
- Mange forskjellige muligheter for utnyttelse, for eksempel for noen databaser — automatisk opplasting/nedlasting av filer, mulighet for å utføre kommandoer (RCE) og mer;
- Støtte for direkte tilkobling til DB ved hjelp av data oppnådd under angrepet;
- Du kan gi en tekstfil med resultater fra Burp som input — du trenger ikke å manuelt sette opp alle kommandolinjeargumentene.
Ulemper:
- Vanskelig å tilpasse, for eksempel å skrive egne kontroller på grunn av sparsommelig dokumentasjon for dette;
- Uten riktige innstillinger utfører den et ufullstendig sett med tester, noe som kan være forvirrende.

NoSQLMap
— et verktøy på Python for å automatisere søk og utnyttelse av NoSQL-injeksjoner. Det er praktisk å bruke ikke bare i NoSQL-databaser, men også direkte under revisjon av webapplikasjoner som bruker NoSQL.
Fordeler:
- Som sqlmap lar det ikke bare finne potensielle sårbarheter, men også sjekke muligheten for å utnytte dem for MongoDB og CouchDB.
Ulemper:
- Støtter ikke NoSQL for Redis, Cassandra, utvikling pågår for dette.
oxml_xxe
— et verktøy for å integrere XXE XML-exploits i ulike typer filer der XML-formatet brukes på en eller annen måte.
Fordeler:
- Støtter mange vanlige formater som DOCX, ODT, SVG, XML.
Ulemper:
- Støtten for PDF, JPEG, GIF er ikke fullt implementert;
- Oppretter bare én fil. For å løse dette problemet kan du bruke verktøyet , som kan opprette mange filer med payloads på forskjellige steder.
De nevnte verktøyene fungerer utmerket til testing av XXE når det gjelder opplasting av dokumenter som inneholder XML. Men husk også at XML-formatbehandlere kan finnes i mange andre tilfeller, for eksempel kan XML brukes som dataformat i stedet for JSON.
Derfor anbefaler vi å ta en titt på følgende repository som inneholder et stort antall varierte payloads: .
tplmap
— et Python-verktøy for automatisk oppdagelse og utnyttelse av sårbarheter i Server-Side Template Injection, med lignende innstillinger og flagg som sqlmap. Det bruker flere forskjellige teknikker og vektorer, inkludert blind-injeksjoner, og har teknikker for kjøring av kode og opplasting/nedlasting av vilkårlige filer. I tillegg har det teknikker for et titalls forskjellige malmotorer og noen teknikker for å identifisere eval()-lignende kodeinjeksjoner i Python, Ruby, PHP, JavaScript. I tilfelle vellykket utnyttelse åpner det en interaktiv konsoll.
Fordeler:
- Et stort antall forskjellige teknikker og vektorer;
- Understøtter mange malmotorer;
- Mange utnyttelsesteknikker.
CeWL
— en ordbokgenerator skrevet i Ruby, laget for å hente unike ord fra et spesifisert nettsted, som følger lenker på nettstedet til en angitt dybde. Den sammensatte ordboken av unike ord kan brukes til å brute-force passord på tjenester eller bruteforce filer og kataloger på samme nettsted, eller til angrep på innsamlede hasher ved hjelp av hashcat eller John the Ripper. Nyttig for å lage en “målrettet” liste over potensielle passord.
Fordeler:
- Enkel å bruke.
Ulemper:
- Man må være forsiktig med dybden på søket for ikke å fange opp en ekstra domene.
Weakpass
— en tjeneste som inneholder mange ordbøker med unike passord. Ekstremt nyttig for forskjellige oppgaver relatert til passordknekking, fra enkel online brute-force av kontoer på målrettede tjenester, til offline brute-force av innsamlede hasher ved hjelp av eller . Inkluderer omtrent 8 milliarder passord med lengder fra 4 til 25 tegn.
Fordeler:
- Inneholder både spesifikke ordbøker og ordbøker med de mest vanlig forekommende passordene — det er mulig å finne en spesifikk ordbok for egne behov;
- Ordbøkene oppdateres og suppleres med nye passord;
- Ordbøkene er sortert etter effektivitet. Du kan velge en variant for rask online bruteforce, samt for grundig valg av passord fra et stort ordbok med de nyeste lekkasjene;
- Det finnes en kalkulator som viser tiden for bruteforce av passord på utstyret ditt.

Vi vil gjerne fremheve verktøyene for CMS-sjekker: WPScan, JoomScan og AEM hacker.
AEM_hacker
— et verktøy for å avdekke sårbarheter i applikasjoner for Adobe Experience Manager (AEM).
Fordeler:
- Kan identifisere AEM-applikasjoner fra listen over URL-er som er gitt som input;
- Inneholder skript for å oppnå RCE ved å laste opp en JSP-shell eller utnytte SSRF.
JoomScan
— et Perl-verktøy for automatisering av oppdagelse av sårbarheter ved implementering av Joomla CMS.
Fordeler:
- Kan finne konfigurasjonsfeil og problemer med administratorinnstillinger;
- Lister versjoner av Joomla og de relaterte sårbarhetene, også for enkelte komponenter;
- Inneholder over 1000 exploits for Joomla-komponenter;
- Gir sluttrapporter i tekst- og HTML-format.

WPScan
— et verktøy for skanning av nettsteder på WordPress, har sårbarheter for både WordPress-motoren og enkelte plugins.
Fordeler:
- Kan liste ikke-sikre WordPress-plugins og temaer, samt gjøre tilgjengelig liste over brukere og TimThumb-filer;
- Kan utføre bruteforce-angrep på WordPress-nettsteder.
Ulemper:
- Uten riktige innstillinger utfører den et ufullstendig sett med tester, noe som kan være forvirrende.

Generelt foretrekker forskjellige mennesker forskjellige verktøy for arbeidet: de er alle gode på sin måte, og det som en person likte, kan være helt feil for en annen. Hvis du mener at vi urettferdig har oversett et godt verktøy — skriv om det i kommentarene!
Kilde: habr.com
