Tempo fa ho già scritto di , ma in modo un po' scarno e disordinato. Poi ho deciso di ampliare l'elenco degli strumenti nella recensione, aggiungere struttura all'articolo, tenere conto delle critiche (grazie mille per i consigli) e l'ho inviata a un concorso su SecLab (e ho pubblicato , ma per tutti i motivi evidenti nessuno l'ha vista). Il concorso è finito, i risultati sono stati annunciati e posso pubblicarla (l'articolo) su Habr con la coscienza pulita.
Strumenti gratuiti per i pentester delle applicazioni web
In questo articolo parlerò degli strumenti più popolari per il pentesting (test di penetrazione) delle applicazioni web secondo la strategia del "black box".
A tal fine esamineremo le utility che possono aiutare in questo tipo di test. Considereremo le seguenti categorie di prodotti:
- Scanner di rete
- Scanner di vulnerabilità negli script web
- Exploitation
- Automazione delle iniezioni
- Debugger (sniffer, proxy locali, ecc.)
Alcuni prodotti hanno un "carattere" universale, quindi li assegnerò alla categoria in cui ottengono i risultati migliori (opinione soggettiva).unScanner di rete.
L'obiettivo principale è scoprire i servizi di rete disponibili, stabilirne le versioni, identificare il sistema operativo, ecc.
Nmap ("Network Mapper")
Nmap
Non è solo un "scanner intelligente", è uno strumento serio e ampliabile (tra le "caratteristiche insolite" c'è uno script per verificare la presenza di un worm "
Stuxnet). Esempio tipico di utilizzo: nmap -A -T4 localhost
-A per determinare la versione del sistema operativo, scansionare utilizzando script e traceroute
-T4 impostazione del controllo del tempo (più alto è, più veloce è, da 0 a 5)
localhost — host target
Qualcosa di più aggressivo?
nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all localhost
Questo è un insieme di opzioni dal profilo "slow comprehensive scan" in Zenmap. Viene eseguito piuttosto a lungo, ma fornisce anche informazioni più dettagliate che si possono scoprire sul sistema target.
Manuale di riferimento in russo Beginner’s Guide to Nmap .
Nmap ha ricevuto il titolo di “Security Product of the Year” da riviste e comunità come Linux Journal, Info World, LinuxQuestions.Org e Codetalker Digest.
Un momento interessante, Nmap può essere visto nei film «Matrix: Reloaded», «Die Hard 4», «The Bourne Ultimatum», «Hotabich» e .
IP-Tools
— una sorta di insieme di diverse utilità di rete, fornito con un'interfaccia grafica, «dedicato» agli utenti di Windows.
Scanner di porte, risorse condivise (stampanti/cartelle condivise), WhoIs/Finger/Lookup, client telnet e molto altro. Uno strumento utile, veloce e funzionale.
Non ha molto senso considerare gli altri prodotti, poiché ci sono molte utilità in questo campo e tutte hanno principi di funzionamento e funzionalità simili. Tuttavia, il più utilizzato rimane nmap.
Scanner di vulnerabilità negli script web
Cercano vulnerabilità popolari (SQL inj, XSS, LFI/RFI, ecc.) o errori (file temporanei non eliminati, indicizzazione delle directory, ecc.)
Acunetix Web Vulnerability Scanner
— dal link si nota che è uno scanner XSS, ma non è esattamente così. La versione gratuita, disponibile tramite il link, offre una funzionalità piuttosto ampia. Di solito, chi avvia questo scanner per la prima volta e riceve il rapporto sul proprio sito sperimenta un leggero shock e capirete perché facendolo. È un prodotto molto potente per l'analisi di tutte le possibili vulnerabilità del sito e funziona non solo con i siti che conosciamo in PHP, ma anche con altri linguaggi (anche se la differenza linguistica non significa molto). Non ha molto senso descrivere il manuale, poiché lo scanner semplicemente «cattura» le azioni dell'utente. Qualcosa di simile a «avanti, avanti, avanti, pronto» in un'installazione tipica di qualsiasi software.
Nikto
è uno scanner web Open Source (GPL). Elimina il lavoro manuale noioso. Cerca nel sito target script non eliminati (come test.php, index_.php, ecc.), strumenti di amministrazione del database (/phpmyadmin/, /pma e simili) e così via, cioè controlla la risorsa per i più comuni errori, che di solito derivano dal fattore umano.
Inoltre, se trova qualche script popolare, controlla la presenza di exploit rilasciati (che sono nel database).
Segnala i metodi «indesiderati» disponibili, come PUT e TRACE
E così via. Molto comodo se lavori come auditor e fai analisi di siti ogni giorno.
Tra gli svantaggi, vorrei evidenziare l'alto tasso di falsi allarmi. Ad esempio, se il tuo sito restituisce sempre la homepage invece di un errore 404 (quando dovrebbe verificarsi), allora lo scanner dirà che ci sono tutti gli script e tutte le vulnerabilità nel suo database. Nella pratica, questo non accade così frequentemente, ma in effetti molto dipende dalla struttura del tuo sito.
Utilizzo classico:
.\/nikto.pl -host localhost
Se è necessario essere autenticati sul sito, è possibile impostare i cookie nel file nikto.conf, variabile STATIC-COOKIE.
Wikto
— Nikto per Windows, ma con alcune aggiunte come logica "fuzzy" durante il controllo del codice per errori, utilizzo di GHDB, ottenimento di link e cartelle delle risorse, monitoraggio in tempo reale delle richieste/risposte HTTP. Wikto è scritto in C# e richiede il framework .NET.
skipfish
— scanner di vulnerabilità web di (conosciuto con il soprannome lcamtuf). Scritto in C, è multi-piattaforma (per Windows è necessario Cygwin). Scorre in modo ricorsivo (e molto lento, circa 20~40 ore, anche se l'ultima volta è stato in esecuzione per 96 ore) attraverso tutto il sito e trova ogni sorta di falle di sicurezza. Genera inoltre un traffico molto elevato (da diversi GB in entrata/uscita). Ma ogni strumento è valido, soprattutto se si ha tempo e risorse.
Utilizzo tipico:
.\/skipfish -o \/home\/reports www.example.com
Nella cartella "reports" sarà presente un report in HTML, .
w3af 
— Web Application Attack and Audit Framework, scanner di vulnerabilità web open-source. Ha un'interfaccia grafica, ma è possibile lavorare anche da console. Più precisamente, è un framework con .
Parlare dei suoi vantaggi potrebbe durare a lungo, è meglio provarlo :]
Il lavoro tipico con esso si riduce alla scelta di un profilo, indicazione dell'obiettivo e, in effetti, avvio.
Mantra Security Framework
è un sogno diventato realtà. Una collezione di strumenti gratuiti e open-source per la sicurezza informatica, integrabili nel browser web.
Sono molto utili durante il test di applicazioni web in tutte le fasi.
L'utilizzo consiste nell'installazione e nell'avvio del browser.
In realtà ci sono molte utilità in questa categoria e è piuttosto difficile stilare un elenco specifico. Spesso, ogni pentester determina autonomamente il set di strumenti necessari.
Exploitation
Per un utilizzo automatizzato e più conveniente delle vulnerabilità nel software e negli script, vengono scritti exploit che richiedono solo il passaggio di parametri per sfruttare una falla di sicurezza. Ci sono anche prodotti che eliminano la ricerca manuale degli exploit e li applicano 'al volo'. Di questa categoria si parlerà ora.
Metasploit Framework 
è un vero e proprio mostro nel nostro campo. È così potente che l'istruzione richiederà diversi articoli. Esamineremo l'exploit automatico (nmap + metasploit). La sostanza è che Nmap analizzerà la porta a noi necessaria, installerà il servizio, e Metasploit proverà ad applicare exploit in base alla classe del servizio (ftp, ssh, ecc.). Invece di un manuale scritto, inserisco un video, piuttosto popolare sul tema autopwn.

E possiamo semplicemente automatizzare il lavoro dell'exploit necessario. Ad esempio:
msf > usa ausiliario/admin/cisco/vpn_3000_ftp_bypass
msf ausiliario(vpn_3000_ftp_bypass) > set RHOST [TARGET IP]
msf ausiliario(vpn_3000_ftp_bypass) > esegui
In realtà, le possibilità di questo framework sono molto ampie, quindi, se si decide di approfondire, passiamo a
Armitage
è un'interfaccia GUI di tipo cyberpunk per Metasploit. Visualizza l'obiettivo, consiglia exploit e offre funzionalità avanzate di questo framework. In generale, per chi ama che tutto abbia un aspetto bello ed efficace.
Screencast:

Tenable Nessus®
ha molte funzionalità, ma da lui ci serve una di queste: determinare per quali servizi ci sono exploit. La versione gratuita del prodotto è 'home only'.
Utilizzo:
- Scaricato (per il proprio sistema), installato, registrato (la chiave arriva via email).
- Avviato il server, aggiunto l'utente nel Nessus Server Manager (pulsante Gestisci utenti)
- Accediamo all'indirizzo
https://localhost:8834/
e otteniamo un client flash nel browser
- Scans -> Aggiungi -> compiliamo i campi (scegliendo il profilo di scansione appropriato) e premiamo Scansione
Dopo un certo tempo, il rapporto sulla scansione apparirà nella scheda Rapporti.
Per verificare la vulnerabilità pratica dei servizi agli exploit, si può utilizzare il Metasploit Framework descritto sopra o provare a trovare un exploit (ad esempio su , , e altri) e usarlo manualmente contro il proprio sistema.
IMHO: troppo ingombrante. L'ho citato come uno dei leader in questo settore dell'industria software.
Automatizzazione delle iniezioni
La ricerca di iniezioni viene effettuata da molti scanner di sicurezza delle web app, ma sono comunque scanner generali. Ci sono strumenti che si occupano specificamente della ricerca e sfruttamento delle iniezioni. Di questo parleremo ora.
sqlmap
— un'utilità open-source per la ricerca e sfruttamento delle iniezioni SQL. Supporta server di database come: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
L'uso tipico si riduce alla riga:
python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Ci sono molte guide, anche in lingua russa. Questo software facilita notevolmente il lavoro del pentester in questo ambito.
Aggiungo il video dimostrativo ufficiale:

bsqlbf-v2
— uno script in Perl, un bruteforcer per le iniezioni SQL "cieche". Funziona sia con valori interi negli URL sia con quelli stringa.
Supporta i database:
- MS-SQL
- MySQL
- PostgreSQL
- Oracle
Esempio di utilizzo:
.\/bsqlbf-v2-3.pl -url www.somehost.com\/blah.php?u=5 -blind u -sql "select table_name from information_schema.tables limit 1 offset 0" -database 1 -type 1
-url — Link con parametri
-blind u — parametro per l'iniezione (per impostazione predefinita si prende l'ultimo dalla stringa dell'indirizzo)
-sql "select table_name from imformation_schema.tables limit 1 offset 0" — la nostra richiesta arbitraria al database
-database 1 — server database: MSSQL
-type 1 — tipo di attacco, iniezione "cieca" basata su risposte True e Error (ad esempio errori di sintassi)
Debugger
Questi strumenti vengono utilizzati principalmente dagli sviluppatori per problemi con i risultati dell'esecuzione del proprio codice. Ma questo approccio è utile anche nel pentesting, quando è possibile sostituire i dati desiderati "al volo", analizzando cosa arriva in risposta ai nostri parametri di input (ad esempio durante il fuzzing) ecc.
Burp Suite
— un insieme di strumenti che aiutano nei test di penetrazione. In rete c'è un in lingua russa di Raz0r (anche se risale al 2008).
Nella versione gratuita sono inclusi:
- Burp Proxy — un proxy locale, consente di modificare le richieste già formulate dal browser
- Burp Spider — un crawler, cerca file e directory esistenti
- Burp Repeater — invio manuale di richieste HTTP
- Burp Sequencer — analisi di valori casuali nei moduli
- Burp Decoder — codificatore-decodificatore standard (html, base64, hex, ecc.), di cui ce ne sono migliaia che si possono scrivere rapidamente in alcuni linguaggi
- Burp Comparer — componente per il confronto delle stringhe
In linea di principio, questo pacchetto risolve praticamente tutte le questioni relative a questo ambito.
Fiddler
Fiddler è un proxy di debug che registra tutto il traffico HTTP(S). Consente di analizzare questo traffico, impostare breakpoint e "sperimentare" con i dati in entrata o in uscita.
Ci sono anche , un mostro e altri, la scelta è dell'utente.
Conclusione
Naturalmente, ogni pentester ha il proprio arsenale e il proprio set di strumenti, poiché ce ne sono davvero molti. Ho cercato di presentare alcuni dei più comodi e popolari. Ma per permettere a chiunque di familiarizzare anche con altri strumenti in questo campo, fornirò i link qui sotto.
Vari top/lista di scanner e strumenti
- .
Distribuzioni Linux che includono già un sacco di diversi strumenti per il pentesting
aggiornato: in russo dal team “Hack4Sec” (aggiunto )
P.S. Non si può tralasciare XSpider. Non partecipa alla recensione, anche se è condizionatamente gratuito (l'ho scoperto quando ho inviato l'articolo a SecLab, proprio per questo motivo (non conoscere e neanche avere l'ultima versione 7.8) e non l'ho incluso nell'articolo). E, in teoria, era previsto un suo approfondimento (ho già preparato per lui dei test complessi), ma non so se il mondo lo vedrà mai.
P.P.S. Alcuni materiali dell'articolo saranno utilizzati per il prossimo rapporto a 2012 nella sezione QA, dove verranno presentati strumenti non menzionati qui (gratuiti, ovviamente), e sarà anche illustrato l'algoritmo su quale ordine utilizzare, quale risultato aspettarsi, quali configurazioni usare e vari suggerimenti e trucchi durante il lavoro (rifletto sul rapporto quasi ogni giorno, cercherò di riferire il meglio che posso sull'argomento).
A proposito, si è tenuto un seminario su questo articolo a Open InfoSec Days (, ), si può saccheggiare i covoni dare un'occhiata .
Fonte: habr.com
