Web værktøjer, eller hvordan man starter som pentester?

Vi fortsætter med at fortælle om nyttige værktøjer til pentestere. I denne artikel vil vi se på værktøjer til analyse af webapplikationssikkerhed.

Vores kollega BeLove har allerede lavet en lignende samling for cirka syv år siden. Det er interessant at se, hvilke værktøjer der har bevaret og styrket deres position, og hvilke der er trådt tilbage og nu sjældent bruges.
Web værktøjer, eller hvordan man starter som pentester?

Det skal bemærkes, at Burp Suite også hører ind under dette, men der vil være en separat publikation om det og dets nyttige plugins.

Indhold:

Amass

Amass — et værktøj skrevet i Go til at finde og brute-force DNS-underdomæner og kortlægge det eksterne netværk. Amass er et OWASP-projekt skabt for at vise, hvordan organisationer ser ud for en ekstern observatør på internettet. Amass får underdomænenavne på forskellige måder; værktøjet anvender både rekursiv iterering gennem underdomæner og søgning i åbne kilder.

For at opdage relaterede netværkssegmenter og autonome systemnumre bruger Amass IP-adresser, der er indsamlet under driften. Al fundet information bruges til at bygge et netkort.

Fordele:

  • Teknikker til indsamling af information inkluderer:
    * DNS — ordrende underdomæner via et ordbogsangreb, bruteforce på underdomæner, "intelligent" iterering med mutationer baseret på fundne underdomæner, reverse DNS-forespørgsler og søgning efter DNS-servere, hvor det er muligt at anmode om zoneoverførsel (AXFR);

    * Søgning i åbne kilder — Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo;

    * Søgning i TLS-certifikatdatabaser — Censys, CertDB, CertSpotter, Crtsh, Entrust;

    * Brug af API'er fra søgemaskiner — BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;

    * Søgning i internetarkiver: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;

  • Integration med Maltego;
  • Sikrer den mest omfattende dækning af opgaven med at finde DNS-underdomæner.

Ulemper:

  • Vær forsigtig med amass.netdomains — det vil forsøge at kontakte hver IP-adresse i den identificerede infrastruktur og få domænenavne fra reverse DNS-forespørgsler og TLS-certifikater. Dette er en "støjende" teknik, der kan afsløre dine efterforskningsaktiviteter i den undersøgte organisation.
  • Høj hukommelsesforbrug, kan bruge op til 2 GB RAM i forskellige indstillinger, hvilket kan forhindre kørsel af dette værktøj i skyen på en billig VDS.

Web værktøjer, eller hvordan man starter som pentester?

Altdns

Altdns — et værktøj i Python til at opbygge ordbøger til DNS-subdomæne brute-forcing. Det gør det muligt at generere mange variationer af subdomæner ved hjælp af mutationer og permutationer. Dette bruger ord, der ofte findes i subdomæner (fx: test, dev, staging), alle mutationer og permutationer anvendes på allerede kendte subdomæner, der kan indsendes til Altdns. Resultatet er en liste over variationer af subdomæner, der muligvis eksisterer, og denne liste kan derefter bruges til DNS-brute-forcing.

Fordele:

  • Fungerer godt med store datasæt.

aquatone

aquatone — var tidligere mere kendt som et andet værktøj til at finde subdomæner, men forfatteren selv opgav det til fordel for det førnævnte Amass. Nu er aquatone blevet skrevet om i Go og er mere fokuseret på forundersøgelser af websteder. Til dette gennemgår aquatone de angivne domæner og søger efter websteder på forskellige porte, hvorefter det indsamler alle oplysninger om webstedet og laver et skærmbillede. Praktisk til hurtige forundersøgelser af websteder, efter hvilken man kan vælge prioriterede mål for angreb.

Fordele:

  • Skaber en gruppe filer og mapper, der er praktiske at bruge i det videre arbejde med andre værktøjer:
    * HTML-rapport med indsamlede skærmbilleder og grupperet efter lighed overskrifter af svar;

    * Fil med alle URL'er, hvor websteder blev fundet;

    * Fil med statistik og sideoplysninger;

    * Mappe med filer, der indeholder overskrifter af svar fra de fundne mål;

    * Mappe med filer, der indeholder brødteksten fra de fundne mål;

    * Skærmbilleder af de fundne websteder;

  • Understøtter arbejdet med XML-rapporter fra Nmap og Masscan;
  • Bruger headless Chrome/Chromium til at renderere skærmbilleder.

Ulemper:

  • Kan tiltrække opmærksomhed fra indtrængningsdetekteringssystemer, så det kræver konfiguration.

Skærmbillede taget for en af de gamle versioner af aquatone (v0.5.0), hvor DNS-subdomænesøgning blev implementeret. Gamle versioner kan findes på udgivelsessiden.
Web værktøjer, eller hvordan man starter som pentester?

MassDNS

MassDNS — endnu et værktøj til at finde DNS-subdomæner. Dets hovedforskelle er, at det laver DNS-anmodninger direkte til mange forskellige DNS-resolvere og gør det med betydelig hastighed.

Fordele:

  • Hurtig — kan opløse over 350.000 navne i sekundet.

Ulemper:

  • MassDNS kan medføre betydelig belastning på de anvendte DNS-resolvatorer, hvilket kan føre til blokering på disse servere eller klager til din udbyder. Derudover vil det lægge et stort pres på virksomhedens DNS-servere, hvis de eksisterer og hvis de er ansvarlige for de domæner, du forsøger at opløse.
  • Listen over resolvatorer er i øjeblikket forældet, men hvis man sorterer de ikke-fungerende DNS-resolvatorer fra og tilføjer nye kendte, vil alt være i orden.

Web værktøjer, eller hvordan man starter som pentester?
Skærmbillede af aquatone v0.5.0

nsec3map

nsec3map — et værktøj i Python til at få en komplet liste over domæner, der er beskyttet af DNSSEC.

Fordele:

  • Finder hurtigt værter i DNS-zoner med et minimal antal forespørgsler, hvis zonen har DNSSEC-support aktiveret;
  • Indeholder en plugin til John the Ripper, som kan bruges til at bryde de opnåede NSEC3-hashes.

Ulemper:

  • Mange DNS-fejl behandles ikke korrekt;
  • Der er ingen automatisk parallelisering af behandlingen af NSEC-optegnelser — man må manuelt opdele navnerummet;
  • Højt hukommelsesforbrug.

Acunetix

Acunetix — en scanner til web-sårbarheder, der automatiserer processen med at teste webapplikationers sikkerhed. Tester applikationen for SQL-injektion, XSS, XXE, SSRF og mange andre web-sårbarheder. Men ligesom enhver anden scanner for mange web-sårbarheder kan den ikke erstatte en pentester, da komplekse sårbarhedskæder eller logiske sårbarheder ikke kan opdages. Den dækker dog mange forskellige sårbarheder, herunder forskellige CVE, som pentester måske har glemt, hvilket gør den meget praktisk til at frigøre sig fra rutinemæssige kontroller.

Fordele:

  • Lavt antal falske positiver;
  • Resultaterne kan eksporteres som rapporter;
  • Udfører et stort antal kontroller for forskellige sårbarheder;
  • Parallelt scanning af flere værter.

Ulemper:

  • Der er ingen dedupliceringsalgoritme (Acunetix vil betragte funktionelt ens sider som forskellige, da de har forskellige URL'er), men udviklerne arbejder på dette;
  • Kræver installation på en separat webserver, hvilket komplicerer test af klienters systemer med forbindelse over VPN og brug af scanneren i et isoleret segment af det lokale klientnetværk;
  • Kan "støje" i den undersøgte service, f.eks. ved at sende for mange angrebsmuligheder til kontaktskemaet på en hjemmeside, hvilket kan komplicere forretningsprocesserne betydeligt;
  • Er et proprietært og derfor betalingsløsning.

Web værktøjer, eller hvordan man starter som pentester?

Dirsearch

Dirsearch — et Python-værktøj til at brute-force mapper og filer på websider.

Fordele:

  • Kan skelne mellem ægte “200 OK” sider og “200 OK” sider med teksten “siden blev ikke fundet”;
  • Leveres med et praktisk ordbogsformat, der har en god balance mellem størrelse og effektivitet i søgningen. Indeholder standardstier, som er karakteristiske for mange CMS'er og teknologistacks;
  • Sit eget ordbogsformat, der sikrer god effektivitet og fleksibilitet ved gennemgang af filer og mapper;
  • Praktisk output — simpel tekst, JSON;
  • Kan udføre throttling — pause mellem forespørgsler, hvilket er livsvigtigt for enhver svag service.

Ulemper:

  • Filtyper skal angives som tekststrenge, hvilket er besværligt, hvis man skal angive mange filtyper på én gang;
  • For at bruge sin egen ordbog skal den justeres en smule til Dirsearch-ordbogsformatet for maksimal effektivitet.

Web værktøjer, eller hvordan man starter som pentester?

wfuzz

wfuzz — et Python-fuzz-værktøj til webapplikationer. Sandsynligvis en af de mest kendte web-fuzzere. Princippet er simpelt: wfuzz tillader at fuzz'e ethvert sted i HTTP-forespørgslen, hvilket giver mulighed for at fuzz'e GET/POST-parametre, HTTP-headere, herunder cookies og andre autentificeringsheadere. Samtidig er det også praktisk til simpel brute-forcing af mapper og filer, for hvilket man har brug for en god ordbog. Har også et fleksibelt filtreringssystem, der giver mulighed for at filtrere svar fra websiden baseret på forskellige parametre for at opnå effektive resultater.

Fordele:

  • Funktionel — modulopbygning, samling tager kun et par minutter;
  • Praktisk filtrerings- og fuzzingmekanisme;
  • Kan fuzz'e enhver HTTP-metode og ethvert sted i HTTP-forespørgslen.

Ulemper:

  • Under udvikling.

Web værktøjer, eller hvordan man starter som pentester?

ffuf

ffuf — et web fuzz-værktøj skrevet i Go, skabt efter “billede og lighed” af wfuzz, gør det muligt at brute-force filer, mapper, URL-stier, navne og værdier af GET/POST-parametre, HTTP-headere, inklusive headeren Host til at brute-force virtuelle værter. Det adskiller sig fra sin fætter wfuzz ved at have en højere hastighed og nogle nye funktioner, eksempelvis understøttelse af Dirsearch-ordbogsformater.

Fordele:

  • Filtre ligner dem fra wfuzz, hvilket giver mulighed for fleksibel konfiguration af brute-forcing;
  • Tillader fuzzing af værdier i HTTP-headere, data fra POST-forespørgsler og forskellige dele af URL'en, herunder navne og værdier af GET-parametre;
  • Kan angive enhver HTTP-metode.

Ulemper:

  • Under udvikling.

Web værktøjer, eller hvordan man starter som pentester?

gobuster

gobuster — et værktøj på Go til efterforskning, som har to driftsformer. Den første bruges til brute force af filer og mapper på en hjemmeside, den anden til gennemgang af DNS-underdomæner. Værktøjet understøtter ikke rekursiv gennemgang af filer og mapper, hvilket sparer tid, men på den anden side skal brute force af hver ny endpoint på hjemmesiden startes separat.

Fordele:

  • Hurtig hastighed ved både gennemgang af DNS-underdomæner og brute force af filer og mapper.

Ulemper:

  • Den nuværende version understøtter ikke indstilling af HTTP-hoveder;
  • Som standard betragtes kun nogle HTTP-statuskoder (200, 204, 301, 302, 307) som gyldige.

Web værktøjer, eller hvordan man starter som pentester?

Arjun

Arjun — et værktøj til brute force af skjulte HTTP-parametre i GET/POST-parametre samt i JSON. Den indbyggede ordbog har 25.980 ord, som Ajrun tjekker på næsten 30 sekunder. Punktet er, at Ajrun ikke tjekker hver parameter separat, men tjekker ca. 1000 parametre ad gangen og ser, om svaret ændrer sig. Hvis svaret ændrer sig, opdeler den disse 1000 parametre i to dele og kontrollerer, hvilken af disse dele der påvirker svaret. På denne måde findes parameteren eller flere skjulte parametre, der påvirkede svaret og derfor kan eksistere, ved hjælp af en simpel binær søgning.

Fordele:

  • Hurtig hastighed takket være binær søgning;
  • Understøttelse af GET/POST-parametre samt parametre i JSON-form;

Et plugin til Burp Suite fungerer på samme måde — param-miner, som også er rigtig god til at finde skjulte HTTP-parametre. Vi vil fortælle mere om det i en kommende artikel om Burp og dets plugins.
Web værktøjer, eller hvordan man starter som pentester?

LinkFinder

LinkFinder — et script på Python til at finde links i JavaScript-filer. Nyttig til at finde skjulte eller glemte endpoints/URL'er i webapplikationen.

Fordele:

  • Hurtig;
  • Der er et særligt plugin til Chrome baseret på LinkFinder.

.

Ulemper:

  • Ubeskeden slutningsudskrift;
  • Analyserer ikke JavaScript dynamisk;
  • Ret simpel logik til linkfund — hvis JavaScript på nogen måde er obfuskert, eller links oprindeligt er fraværende og genereres dynamisk, så kan den ikke finde noget.

Web værktøjer, eller hvordan man starter som pentester?

JSParser

JSParser — et script på Python, der bruger Tornado og JSBeautifier til at analysere relative URL-adresser fra JavaScript-filer. Meget nyttig til at opdage AJAX-anmodninger og oprette en liste over API-metoder, som applikationen interagerer med. Virker effektivt sammen med LinkFinder.

Fordele:

  • Hurtig parsing af JavaScript-filer.

Web værktøjer, eller hvordan man starter som pentester?

sqlmap

sqlmap — sandsynligvis et af de mest kendte værktøjer til analyse af webapplikationer. Sqlmap automatiserer opdagelsen og udnyttelsen af SQL-injektioner, arbejder med flere SQL-dialekter og har et stort arsenal af forskellige teknikker, lige fra direkte citater til komplekse vektorer for time-based SQL-injektioner. Desuden har det mange metoder til videre udnyttelse for forskellige DBMS, så det er nyttigt ikke kun som scanner for SQL-injektioner, men også som et kraftfuldt værktøj til at udnytte allerede fundne SQL-injektioner.

Fordele:

  • Et stort antal forskellige teknikker og vektorer;
  • Lave falske positiver;
  • Mange muligheder for finjustering, forskellige teknikker, mål-DB, tamper-scripts til at omgå WAF;
  • Mulighed for at oprette et dump af outputdata;
  • Mange forskellige muligheder for udnyttelse, for eksempel automatisk upload/download af filer til nogle DB'er, mulighed for at udføre kommandoer (RCE) og andre;
  • Understøttelse af direkte forbindelse til DB ved hjælp af de data, der er opnået under angrebet;
  • Det er muligt at indsende en tekstfil med resultaterne fra Burp — du skal ikke manuelt sammensætte alle attributter til kommandolinjen.

Ulemper:

  • Svært at tilpasse, for eksempel at skrive egne kontroller på grund af sparsomme dokumentation for dette;
  • Uden de rette indstillinger udfører den et ufuldstændigt sæt kontroller, hvilket kan være misvisende.

Web værktøjer, eller hvordan man starter som pentester?

NoSQLMap

NoSQLMap — et værktøj skrevet i Python til automatisering af opdagelse og udnyttelse af NoSQL-injektioner. Det er praktisk at bruge ikke kun i NoSQL-databaser, men også direkte ved revision af webapplikationer, der bruger NoSQL.

Fordele:

  • Som sqlmap tillader det ikke kun at finde potentielle sårbarheder, men også at kontrollere muligheden for udnyttelse for MongoDB og CouchDB.

Ulemper:

  • Understøtter ikke NoSQL for Redis, Cassandra, der arbejdes på udviklingen i den retning.

oxml_xxe

oxml_xxe — et værktøj til indlejring af XXE XML-exploits i forskellige typer filer, hvor XML-formatet bruges på en eller anden måde.

Fordele:

  • Understøtter mange almindelige formater som DOCX, ODT, SVG, XML.

Ulemper:

  • Støtten til PDF, JPEG, GIF er ikke helt implementeret;
  • Opretter kun én fil. For at løse dette problem kan værktøjet docem, som kan oprette mange filer med payloads på forskellige steder.

De nævnte værktøjer er fremragende til at teste XXE ved upload af dokumenter, der indeholder XML. Men glem ikke, at XML-håndterere kan findes i mange andre tilfælde; for eksempel kan XML bruges som dataformat i stedet for JSON.

Derfor anbefaler vi at tage et kig på det følgende repository, som indeholder et stort antal forskellige payloads: PayloadsAllTheThings.

tplmap

tplmap — et Python-værktøj til automatisk identifikation og udnyttelse af Server-Side Template Injection-sårbarheder, har lignende indstillinger og flags som sqlmap. Det bruger flere forskellige teknikker og vektorer, herunder blind-injektioner, samt har teknikker til at udføre kode og uploade/ downloade vilkårlige filer. Derudover har det teknikker til adskillige forskellige skabelonmotorer og nogle teknikker til at finde eval()-lignende kodeinjektioner i Python, Ruby, PHP, JavaScript. Ved succesfuld udnyttelse åbner det et interaktivt konsol.

Fordele:

  • Et stort antal forskellige teknikker og vektorer;
  • Understøtter mange skabelonmotorer;
  • Mange udnyttelsesteknikker.

CeWL

CeWL — et Ruby-baseret ordgeneratorværktøj, designet til at udtrække unikke ord fra et angivet websted, som følger links på webstedet til en angivet dybde. Den sammensatte ordbog af unikke ord kan derefter bruges til at brute-force adgangskoder på tjenester eller brute-force filer og mapper på det samme websted, eller til angreb på de modtagne hashes ved hjælp af hashcat eller John the Ripper. Nyttig til at lave en 'målretning' liste over potentielle adgangskoder.

Fordele:

  • Nem at bruge.

Ulemper:

  • Man skal være forsigtig med søgedybden for ikke at inkludere ekstra domæner.

Weakpass

Weakpass — en service, der indeholder mange ordbøger med unikke adgangskoder. Ekstremt nyttig til forskellige opgaver relateret til password-hacking, fra simpel online brute-forcing af konti på målrettede tjenester til offline brute-forcing af modtagne hashes ved hjælp af hashcat eller John The Ripper. Indeholder omkring 8 milliarder adgangskoder med en længde fra 4 til 25 tegn.

Fordele:

  • Indeholder både specifikke ordbøger og ordbøger med de mest almindeligt forekommende adgangskoder — det er muligt at vælge en specifik ordbog til ens egne behov;
  • Ordbøgerne opdateres og fyldes med nye adgangskoder;
  • Ordbøgerne er sorteret efter effektivitet. Du kan vælge en variant til hurtig online brute-force eller en grundig søgning efter adgangskoder fra et omfattende ordforråd med de seneste lækager;
  • Der er en lommeregner, der viser tiden for brute-force angreb på dit udstyr.

Web værktøjer, eller hvordan man starter som pentester?

Vi vil gerne fremhæve værktøjerne til CMS-tjek: WPScan, JoomScan og AEM hacker.

AEM_hacker

AEM hacker — et værktøj til at identificere sårbarheder i applikationer bygget på Adobe Experience Manager (AEM).

Fordele:

  • Kan identificere AEM-applikationer fra den liste over URL'er, der gives som input;
  • Indeholder scripts til at opnå RCE ved at uploade en JSP-shell eller udnytte SSRF.

JoomScan

JoomScan — et Perl-værktøj til automatisering af sårbarhedsfinding ved opbygning af Joomla CMS.

Fordele:

  • Kan finde konfigurationsfejl og problemer med administratorindstillinger;
  • Opfører versioner af Joomla og relaterede sårbarheder, ligesom for enkelte komponenter;
  • Indeholder mere end 1000 exploits til Joomla-komponenter;
  • Genererer slutrapporter i tekst- og HTML-formater.

Web værktøjer, eller hvordan man starter som pentester?

WPScan

WPScan — et værktøj til scanning af WordPress-websteder, indeholder sårbarheder både for selve WordPress-motoren og for visse plugins.

Fordele:

  • Kan liste ikke-sikre WordPress-plugins og temaer samt få en liste over brugere og TimThumb-filer;
  • Kan udføre brute-force angreb på WordPress-websteder.

Ulemper:

  • Uden de rette indstillinger udfører den et ufuldstændigt sæt kontroller, hvilket kan være misvisende.

Web værktøjer, eller hvordan man starter som pentester?

Generelt foretrækker forskellige mennesker forskellige værktøjer til arbejdet: de er alle gode på deres måde, og hvad der passer én person, passer måske slet ikke til en anden. Hvis du mener, at vi har overset et godt værktøj — skriv om det i kommentarerne!

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster