For længe siden skrev jeg allerede om , men lidt sparsomme og forvirrende. Efter det besluttede jeg at udvide listen over værktøjer i oversigten, tilføje strukturen til artiklen, tage kritikken i betragtning (stort tak for råd) og sendte den til en konkurrence på SekLab (og offentliggjorde , men af alle åbenlyse grunde så ingen den). Konkurrencen er afsluttet, resultaterne er annonceret, og jeg kan med god samvittighed offentliggøre den (artiklen) på Habr.
Gratis værktøjer til pentestning af webapplikationer
I denne artikel vil jeg tale om de mest populære værktøjer til pentestning (penetrationstest) af webapplikationer efter strategien "black box".
Til dette vil vi se på værktøjer, der kan hjælpe med denne type testning. Vi vil overveje følgende produktkategorier:
- Netværksscannere
- Scannere til sårbarheder i web-scripts
- Exploiting
- Automatisering af injektioner
- Debuggere (sniffere, lokale proxyer osv.)
Nogle produkter har en universel "karakter", så jeg vil placere dem i den kategori, hvor de yder mestfleste afbedømt efter subjektiv vurdering.
Netværksscannere.
Hovedopgaven er at afsløre tilgængelige netværkstjenester, bestemme deres versioner, identificere OS osv.
Nmap
er et gratis værktøj med open source til netværksanalyse og sikkerhedsaudit. Hårdnakkede modstandere af konsollen kan bruge Zenmap, som er en GUI til Nmap.
Det er ikke bare en "smart" scanner, det er et seriøst udvideligt værktøj (af "usædvanlige funktioner" — tilstedeværelsen af et script til at kontrollere en node for ormene "" (nævnt ). Et typisk eksempel på brug:
nmap -A -T4 localhost
-A til at bestemme OS-version, scanne ved hjælp af scripts og spore
-T4 tidsstyringsindstilling (mere — hurtigere, fra 0 til 5)
localhost — mål host
Skal vi gå lidt hårdere til værks?
nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all localhost
Dette er et sæt af indstillinger fra "slow comprehensive scan" profilen i Zenmap. Det tager rimeligt lang tid, men giver til gengæld mere detaljeret information, som kan indsamles om det målrettede system. , hvis du vil dykke dybere ned, og jeg anbefaler også oversættelsen af artiklen .
Nmap har fået status som "Årets Sikkerhedsprodukt" af tidsskrifter og fællesskaber som Linux Journal, Info World, LinuxQuestions.Org og Codetalker Digest.
Et interessant punkt, Nmap kan ses i filmene "The Matrix: Reloaded", "Die Hard 4", "The Bourne Ultimatum", "Hotabych" og .
IP-Tools
— en slags samling af forskellige netværksværktøjer, leveres med GUI, "dedikeret" til Windows-brugere.
Portscanner, fælles ressourcer (delte printere/folder), WhoIs/Finger/Lookup, telnet-klient og meget mere. Bare et praktisk, hurtigt og funktionelt værktøj.
Der er ikke meget mening i at overveje de andre produkter, da der er mange værktøjer på dette område, og alle har en lignende arbejdsgang og funktionalitet. Alligevel forbliver nmap det mest brugte.
Scannere til sårbarheder i web-scripts
De forsøger at finde populære sårbarheder (SQL inj, XSS, LFI/RFI osv.) eller fejl (ikke slettede midlertidige filer, indeksering af mapper osv.)
Acunetix Web Vulnerability Scanner
— ved linket er det tydeligt, at dette er en XSS-scanner, men det er ikke helt sandt. Den gratis version, tilgængelig via linket, giver ganske stor funktionalitet. Normalt rammer det en person, der kører denne scanner første gang, og får en rapport om deres ressource, med et lille chok, og du vil forstå hvorfor, når du gør det. Det er et meget kraftfuldt produkt til at analysere næsten enhver form for sårbarhed på et website og fungerer ikke kun med de hjemmesider, vi kender fra PHP, men også på andre sprog (selvom forskellen i sprog ikke er en indikator). Der er ikke meget mening i at beskrive instrukser, da scanneren simpelthen "fanger" brugerens handlinger. Noget der ligner "næste, næste, næste, klar" i en typisk installation af et softwareprogram.
Nikto
er en Open Source (GPL) webscanner. Den befrier fra rutinemæssigt manuelt arbejde. Den leder på det målrettede website efter ikke-slettede scripts (som f.eks. test.php, index_.php osv.), databaseadministrationsværktøjer (/phpmyadmin/, /pma osv.) osv., det vil sige, den tjekker ressourcen for de mest almindelige fejl, som typisk opstår på grund af menneskelige fejl.
Plus, hvis den finder et populært script, tjekker den det for udgåede exploits (som findes i databasen).
Rapporterer om tilgængelige "uønskede" metoder, som PUT og TRACE
Og så videre. Meget praktisk, hvis du arbejder som revisor og hver dag analyserer websites.
Af minusserne vil jeg nævne den høje procentdel af falske positive. For eksempel, hvis din hjemmeside altid viser startsiden i stedet for en 404-fejl (når en sådan skal opstå), vil scanneren sige, at alle scripts og sårbarheder fra dets database er til stede på dit website. I praksis forekommer dette ikke så ofte, men som en kendsgerning afhænger meget af strukturen på dit website.
Klassisk brug:
.\/nikto.pl -host localhost
Hvis du har brug for at være autoriseret på hjemmesiden, kan cookie indstilles i filen nikto.conf, variabel STATIC-COOKIE.
Wikto
— Nikto til Windows, men med nogle tilføjelser, såsom 'vag' logik ved fejlkontrol, brug af GHDB, hentning af links og mapper fra ressourcen, samt real-time overvågning af HTTP anmodninger/svar. Wikto er skrevet i C# og kræver .NET framework.
skipfish
— en web-sårbarhedsscanner fra (kendt under niknamen lcamtuf). Skriver i C, er krydsplatformet (for Windows kræves Cygwin). Gennemgår hele hjemmesiden rekursivt (og meget langsomt, fra 20 til 40 timer, selvom jeg sidst havde det kørende i 96 timer) og finder forskellige sikkerhedshuller. Den genererer også meget trafik (flere GB indgående/udgående). Men alle midler er gode, især hvis der er tid og ressourcer.
Typisk brug:
.\/skipfish -o \/home\/reports www.example.com
I mappen «reports» vil der være en rapport i html, .
w3af 
— Web Application Attack and Audit Framework, open-source web-sårbarhedsscanner. Har GUI, men kan også bruges fra konsollen. Mere præcist er det et framework med .
Man kan tale længe om dets fordele, men det er bedre at afprøve det :)
Typisk arbejde med det indebærer at vælge en profil, angive målet og selvfølgelig at starte det.
Mantra Security Framework
er en drøm, der er blevet til virkelighed. En samling af frie og åbne værktøjer til informationssikkerhed, der kan integreres i webbrowseren.
Meget nyttige ved test af webapplikationer på alle stadier.
Brugen består i at installere og starte browseren.
Der er faktisk mange værktøjer i denne kategori, og det kan være ret svært at udpege en bestemt liste. Oftest bestemmer hver pentester selv det nødvendige sæt værktøjer.
Exploiting
For automated and more convenient use of vulnerabilities in software and scripts, exploits are written that only need to pass parameters to take advantage of a security flaw. There are also products that eliminate the need for manual search for exploits and apply them 'on the fly.' This category will be discussed now.
Metasploit Framework 
— a kind of monster in our field. It has so many capabilities that the guide will span several articles. We will look at automated exploitation (nmap + metasploit). The essence is that Nmap will analyze the required port, establish the service, and metasploit will try to apply exploits to it based on the class of the service (ftp, ssh, etc.). Instead of a textual guide, I will insert a video, quite popular on the topic of autopwn.

Alternatively, we can simply automate the work of the required exploit. For example:
msf > brug auxiliary/admin/cisco/vpn_3000_ftp_bypass
msf auxiliary(vpn_3000_ftp_bypass) > sæt RHOST [TARGET IP]
msf auxiliary(vpn_3000_ftp_bypass) > kør
In fact, the capabilities of this framework are very extensive, so if you decide to delve deeper, go to
Armitage
— a cyberpunk genre OVA GUI for Metasploit. It visualizes targets, recommends exploits, and offers advanced features of this framework. In short, for those who prefer everything to look beautiful and spectacular.
Screencast:

Tenable Nessus®
— has a lot of capabilities, but what we need from it is one feature — to determine which services have exploits. The free version of the product is 'home only.'
Brug:
- Downloaded (for your system), installed, registered (the key arrives by email).
- Started the server, added a user to the Nessus Server Manager (Manage users button).
- Go to the address
https://localhost:8834/
and get the flash client in the browser.
- Scans -> Add -> fill in the fields (selecting the scanning profile that suits us) and click Scan.
After a while, the scan report will appear in the Reports tab.
To check the practical vulnerability of services to exploits, you can use the aforementioned Metasploit Framework or try to find an exploit (for example, on , , etc.) and use it manually against your system.
IMHO: too cumbersome. I mentioned it as one of the leaders in this area of the software industry.
Automation of injections.
Mange web app sikkerhedsscannere søger efter injektioner, men de er stadig kun generelle scannere. Der findes værktøjer, der specifikt beskæftiger sig med at finde og udnytte injektioner. Det er dette, vi vil tale om nu.
sqlmap
— et open-source værktøj til at finde og udnytte SQL-injektioner. Understøtter databaser som: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
Typisk brug reduceres til følgende linje:
python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Der findes masser af manualer, herunder på russisk. Softwaren letter arbejdet for penetrationstestere inden for dette område.
Jeg vil tilføje den officielle video demonstration:

bsqlbf-v2
— et Perl-script, der brute-forcer "blinde" SQL-injektioner. Fungerer både med heltal i URL'en og med tekststrenge.
Understøtter databaser:
- MS-SQL
- MySQL
- PostgreSQL
- Oracle
Eksempel på brug:
./bsqlbf-v2-3.pl -url www.somehost.com/blah.php?u=5 -blind u -sql "select table_name from imformation_schema.tables limit 1 offset 0" -database 1 -type 1
-url — Et link med parametre
-blind u — parameter til injektion (som standard tages den sidste fra URL'en)
-sql "select table_name from information_schema.tables limit 1 offset 0" — vores vilkårlige forespørgsel til databasen
-database 1 — database server: MSSQL
-type 1 — angrebstype, "blind" injektion, baseret på True og Error (for eksempel syntaksfejl) svar
Debuggere
Disse værktøjer bruges primært af udviklere, når der er problemer med resultaterne af deres kode. Men dette er også nyttigt ved penetrationstest, hvor man kan manipulere de ønskede data "on the fly", analysere, hvad der kommer som svar på vores inputparametre (for eksempel ved fuzzing) osv.
Burp Suite
— et sæt værktøjer, der hjælper ved penetrationstest. Der findes på russisk fra Raz0r (dog fra 2008).
Den gratis version inkluderer:
- Burp Proxy — en lokal proxy, der giver mulighed for at ændre allerede dannede forespørgsler fra browseren
- Burp Spider — en webcrawler, der søger efter eksisterende filer og mapper
- Burp Repeater — manuel sending af HTTP-forespørgsler
- Burp Sequencer — analyse af tilfældige værdier i formularer
- Burp Decoder — en standard kodnings-dekodningsværktøj (html, base64, hex osv.), der findes tusindvis af, som hurtigt kan skrives på et hvilket som helst sprog
- Burp Comparer — en komponent til sammenligning af strenge
Generelt løser denne pakke stort set alle opgaver relateret til dette område.
Fiddler
— Fiddler er en debug proxy, der logger al HTTP(S) trafik. Den gør det muligt at undersøge denne trafik, sætte breakpoint og "lege" med indgående eller udgående data.
Der er også , monster og andre, valget er op til brugeren.
Konklusion
Naturligvis har hver pentester sit eget arsenal og sit sæt værktøjer, da der simpelthen er mange. Jeg har forsøgt at opføre nogle af de mest nyttige og populære. Men for at enhver interesseret kan få indsigt i andre værktøjer inden for dette område, vil jeg angive links nedenfor.
Forskellige top-lister/scannere og værktøjer
- .
Linux-distributioner, som allerede inkluderer en række forskellige værktøjer til pentesting
upd: på russisk fra teamet 'Hack4Sec' (tilføjet )
P.S. Jeg kan ikke undlade at nævne XSpider. Det deltager ikke i gennemgangen, selvom det er betinget gratis (fandt ud af det, da jeg sendte artiklen til SekLab, faktisk på grund af dette (mangel på viden, ja og ikke besiddelse af den nyeste version 7.8) og ikke inkluderede det i artiklen). Og der var i teorien planlagt en anmeldelse af det (jeg har forberedt nogle udfordrende tests for det), men jeg ved ikke, om verden vil se det.
P.P.S. Nogle materialer fra artiklen vil blive brugt til sit formål i den kommende præsentation ved 2012 i QA-sektionen, hvor værktøjer, der ikke er nævnt her, også vil blive præsenteret (gratis, naturligvis), samt en beskrivelse af den rækkefølge, hvori man skal bruge dem, hvilket resultat man kan forvente, hvilke konfigurationer der skal bruges og forskellige tips og tricks, når man arbejder (jeg overvejer præsentationen næsten hver dag, og vil forsøge at dele det bedste, jeg har om emnet).
For øvrigt var der en session om denne artikel på Open InfoSec Days (, ), kan man rane karavaner se .
Kilde: habr.com
