Panoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2

Tempo fa ho già scritto di seguente, 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 Lefty per i consigli) e l'ho inviata a un concorso su SecLab (e ho pubblicato il link, 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:

  1. Scanner di rete
  2. Scanner di vulnerabilità negli script web
  3. Exploitation
  4. Automazione delle iniezioni
  5. 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")

NmapPanoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
è un'utility gratuita con codice sorgente aperto per l'analisi della rete e l'audit della sicurezza dei sistemi. I severi oppositori della console possono usare Zenmap, che è un'interfaccia grafica per 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 "
StuxnetStuxnet). Esempio tipico di utilizzo: quinmap -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 , se avete deciso di approfondire, e consiglio anche la traduzione dell'articoloBeginner’s Guide to Nmap Nmap ha ricevuto il titolo di “Security Product of the Year” da riviste e community come Linux Journal, Info World, LinuxQuestions.Org e Codetalker Digest..
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 altri.

IP-ToolsPanoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
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 ScannerPanoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
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.

NiktoPanoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
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.

WiktoPanoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
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.

skipfishPanoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
skipfish — scanner di vulnerabilità web di Michal Zalewski (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, un esempio.

w3af Panoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
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 una serie di plugin.
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 FrameworkPanoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
Mantra è 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 Panoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
Il 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.

Guarda il video

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 link

ArmitagePanoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
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:

Guarda il video

Tenable Nessus®Panoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
Scanner di vulnerabilità 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 Explot-db, packet storm, explot search 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.

sqlmapPanoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
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:

Guarda il video

bsqlbf-v2
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 www.somehost.com/blah.php?u=5 — 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
Burp Suite — un insieme di strumenti che aiutano nei test di penetrazione. In rete c'è un buon riepilogo 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.

FiddlerPanoramica di strumenti gratuiti per il pentesting delle risorse web e non solo v2
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 Firesheep, un mostro Wireshark 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: Documentazione su BurpSuite in russo dal team “Hack4Sec” (aggiunto AntonKuzmin)

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 CodeFest 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 (tag su Habré, sito), si può saccheggiare i covoni dare un'occhiata ai materiali.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster