Revisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2

Qualche tempo fa ho scritto di Questo, ma un po' scarno e caotico. Successivamente, ho deciso di espandere l'elenco degli strumenti nella recensione, aggiungere struttura all'articolo e tenere conto delle critiche (molte grazie Lefty per un consiglio) e l'ho inviato a un concorso su SecLab (e pubblicato collegamento, ma per ovvie ragioni nessuno la vide). Il concorso è finito, i risultati sono stati annunciati e con la coscienza pulita posso pubblicarlo (l'articolo) su Habré.

Strumenti Pentester per applicazioni Web gratuiti

In questo articolo parlerò degli strumenti più diffusi per il pentesting (penetration test) delle applicazioni web utilizzando la strategia della “scatola nera”.
Per fare ciò, esamineremo le utilità che aiuteranno con questo tipo di test. Considera le seguenti categorie di prodotti:

  1. Scanner di rete
  2. Scanner per violazioni degli script Web
  3. Sfruttamento
  4. Automazione delle iniezioni
  5. Debugger (sniffer, proxy locali, ecc.)


Alcuni prodotti hanno un “carattere” universale, quindi li classificherò nella categoria in cui hanno unоrisultato migliore (opinione soggettiva).

Scanner di rete.

Il compito principale è scoprire i servizi di rete disponibili, installare le loro versioni, determinare il sistema operativo, ecc.

NmapRevisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
Nmap ("Mappatore di rete") è un'utilità gratuita e open source per l'analisi della rete e il controllo della sicurezza del sistema. Gli avversari violenti della console possono utilizzare Zenmap, che è una GUI per Nmap.
Questo non è solo uno scanner "intelligente", è uno strumento serio ed estensibile (una delle "caratteristiche insolite" è la presenza di uno script per verificare la presenza di un worm in un nodo "Stuxnet"(menzionato qui). Esempio di utilizzo tipico:

nmap -A -T4 localhost

-A per il rilevamento della versione del sistema operativo, la scansione e il tracciamento degli script
-Impostazione controllo tempo T4 (più è più veloce, da 0 a 5)
localhost: host di destinazione
Qualcosa di più duro?

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 "scansione completa lenta" in Zenmap. Il completamento richiede molto tempo, ma alla fine fornisce informazioni più dettagliate che possono essere trovate sul sistema di destinazione. Guida di aiuto in russo, se decidi di approfondire, ti consiglio anche di tradurre l'articolo Guida per principianti a Nmap.
Nmap ha ricevuto lo status di "Prodotto di sicurezza dell'anno" da riviste e comunità come Linux Journal, Info World, LinuxQuestions.Org e Codetalker Digest.
Un punto interessante: Nmap può essere visto nei film “The Matrix Reloaded”, “Die Hard 4”, “The Bourne Ultimatum”, “Hottabych” e altro.

IP-ToolsRevisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
IP-Tools - una sorta di insieme di diverse utilità di rete, dotato di una GUI, "dedicato" agli utenti Windows.
Scanner di porte, risorse condivise (stampanti/cartelle condivise), WhoIs/Finger/Lookup, client telnet e molto altro. Uno strumento comodo, veloce e funzionale.

Non ha senso prendere in considerazione altri prodotti, poiché ci sono molte utilità in quest'area e tutte hanno principi operativi e funzionalità simili. Tuttavia, nmap rimane il più utilizzato.

Scanner per violazioni degli script Web

Cercando di trovare vulnerabilità comuni (SQL inj, XSS, LFI/RFI, ecc.) o errori (file temporanei non eliminati, indicizzazione di directory, ecc.)

Scanner di vulnerabilità web di AcunetixRevisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
Scanner di vulnerabilità web di Acunetix — dal link puoi vedere che si tratta di uno scanner xss, ma questo non è del tutto vero. La versione gratuita, disponibile qui, offre molte funzionalità. Di solito, la persona che esegue questo scanner per la prima volta e riceve per la prima volta un rapporto sulla propria risorsa sperimenta un leggero shock e capirai perché una volta fatto questo. Si tratta di un prodotto molto potente per analizzare tutti i tipi di vulnerabilità su un sito Web e funziona non solo con i soliti siti Web PHP, ma anche in altre lingue (anche se la differenza di lingua non è un indicatore). Non ha senso descrivere le istruzioni, poiché lo scanner semplicemente “rileva” le azioni dell’utente. Qualcosa di simile a “next, next, next, ready” in una tipica installazione di software.

NiktoRevisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
Nikto Questo è un web crawler Open Source (GPL). Elimina il lavoro manuale di routine. Cerca nel sito di destinazione script non eliminati (alcuni test.php, index_.php, ecc.), strumenti di amministrazione del database (/phpmyadmin/, /pma e simili), ecc., ovvero controlla la risorsa per gli errori più comuni solitamente causato da fattori umani.
Inoltre, se trova uno 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 conveniente se lavori come revisore dei conti e analizzi i siti Web ogni giorno.
Tra gli svantaggi, vorrei sottolineare l'alta percentuale di falsi positivi. Ad esempio, se il tuo sito restituisce sempre l'errore principale invece dell'errore 404 (quando dovrebbe verificarsi), lo scanner dirà che il tuo sito contiene tutti gli script e tutte le vulnerabilità del suo database. In pratica, questo non accade così spesso, ma in realtà molto dipende dalla struttura del tuo sito.
Utilizzo classico:

./nikto.pl -host localhost

Se devi essere autorizzato sul sito, puoi impostare un cookie nel file nikto.conf, la variabile STATIC-COOKIE.

WikitoRevisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
Wikito — Nikto per Windows, ma con alcune aggiunte, come la logica "fuzzy" durante il controllo degli errori nel codice, l'utilizzo di GHDB, l'ottenimento di collegamenti e cartelle di risorse, il monitoraggio in tempo reale delle richieste/risposte HTTP. Wikto è scritto in C# e richiede il framework .NET.

pesce saltatoRevisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
pesce saltato - scanner di vulnerabilità web da Michal Zalewski (noto come lcamtuf). Scritto in C, multipiattaforma (Win richiede Cygwin). In modo ricorsivo (e per un tempo molto lungo, circa 20~40 ore, anche se l'ultima volta che ha funzionato per me è stata 96 ore) esegue la scansione dell'intero sito e trova tutti i tipi di buchi di sicurezza. Inoltre genera molto traffico (diversi GB in entrata/uscita). Ma tutti i mezzi sono buoni, soprattutto se hai tempo e risorse.
Uso tipico:

./skipfish -o /home/reports www.example.com

Nella cartella “reports” ci sarà un report in html, esempio.

w3af Revisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
w3af — Web Application Attack and Audit Framework, scanner di vulnerabilità web open source. Ha una GUI, ma puoi lavorare dalla console. Più precisamente, è un quadro con un mucchio di plugin.
Puoi parlare a lungo dei suoi vantaggi, è meglio provarlo :] Il lavoro tipico con esso si riduce alla scelta di un profilo, alla definizione di un obiettivo e, di fatto, al suo lancio.

Quadro di sicurezza del mantraRevisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
Mantra è un sogno diventato realtà. Una raccolta di strumenti gratuiti e aperti per la sicurezza delle informazioni integrati in un browser web.
Molto utile quando si testano le applicazioni web in tutte le fasi.
L'utilizzo si riduce all'installazione e all'avvio del browser.

In effetti, ci sono molte utilità in questa categoria ed è abbastanza difficile selezionarne un elenco specifico. Molto spesso, ogni pentester determina personalmente l'insieme di strumenti di cui ha bisogno.

Sfruttamento

Per uno sfruttamento automatizzato e più conveniente delle vulnerabilità, gli exploit vengono scritti in software e script, ai quali è sufficiente passare parametri per sfruttare la falla di sicurezza. Inoltre, esistono prodotti che eliminano la necessità di cercare manualmente gli exploit e persino di applicarli al volo. Questa categoria verrà ora discussa.

Quadro Metasploit Revisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
Il framework Metasploit® - una specie di mostro nel nostro business. Può fare così tanto che le istruzioni copriranno diversi articoli. Considereremo lo sfruttamento automatico (nmap + metasploit). La conclusione è questa: Nmap analizzerà la porta di cui abbiamo bisogno, installerà il servizio e metasploit proverà ad applicarvi degli exploit in base alla classe del servizio (ftp, ssh, ecc.). Al posto delle istruzioni testuali inserirò un video, molto popolare sull'argomento autopwn

Oppure possiamo semplicemente automatizzare il funzionamento dell'exploit di cui abbiamo bisogno. Per esempio:

msf > use auxiliary/admin/cisco/vpn_3000_ftp_bypass
msf auxiliary(vpn_3000_ftp_bypass) > set RHOST [TARGET IP] msf auxiliary(vpn_3000_ftp_bypass) > run

In effetti, le capacità di questo framework sono molto estese, quindi se decidi di approfondire, vai a collegamento

ArmitageRevisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
Armitage — OVA della GUI del genere cyberpunk per Metasploit. Visualizza l'obiettivo, consiglia gli exploit e fornisce funzionalità avanzate del framework. In generale, per coloro a cui piace che tutto appaia bello e impressionante.
Screencast:

Nessus® sostenibileRevisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
Scanner di vulnerabilità sostenibile Nessus® - può fare molte cose, ma una delle capacità di cui abbiamo bisogno è determinare quali servizi hanno degli exploit. Versione gratuita del prodotto “solo casa”

Использование:

  • Scaricato (per il tuo sistema), installato, registrato (la chiave viene inviata alla tua email).
  • Avviato il server, aggiunto l'utente a Nessus Server Manager (pulsante Gestisci utenti)
  • Andiamo all'indirizzo
    https://localhost:8834/

    e scarica il client flash nel browser

  • Scansioni -> Aggiungi -> compila i campi (selezionando il profilo di scansione adatto a noi) e fai clic su Scansione

Dopo qualche tempo, il rapporto di scansione verrà visualizzato nella scheda Rapporti
Per verificare la vulnerabilità pratica dei servizi agli exploit, è possibile utilizzare il Metasploit Framework sopra descritto oppure provare a scovare un exploit (ad esempio, su Esplora-db, tempesta di pacchetti, ricerca di esplorazione ecc.) e utilizzarlo manualmente contro il suo sistema
IMHO: troppo ingombrante. L'ho portato come uno dei leader in questa direzione dell'industria del software.

Automazione delle iniezioni

Molti scanner sec delle app Web cercano iniezioni, ma sono ancora solo scanner generici. E ci sono utility che si occupano specificamente della ricerca e dello sfruttamento delle iniezioni. Ne parleremo adesso.

sqlmapRevisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
sqlmap — Utilità open source per la ricerca e lo sfruttamento delle iniezioni SQL. Supporta server di database come: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
L'utilizzo tipico si riduce alla linea:

python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Ci sono abbastanza manuali, anche in russo. Il software facilita notevolmente il lavoro di un pentester quando lavora in quest'area.
Aggiungo un video dimostrativo ufficiale:

bsqlbf-v2
bsqlbf-v2 — uno script perl, un brute forcer per iniezioni SQL “cieche”. Funziona sia con valori interi nell'url che con valori stringa.
Database supportato:

  • 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 imformation_schema.tables limit 1 offset 0" -database 1 -type 1

-url www.somehost.com/blah.php?u=5 — Collegamento con i parametri
-cieco tu — parametro per l'iniezione (per impostazione predefinita l'ultimo viene preso dalla barra degli indirizzi)
-sql "seleziona nome_tabella da imformation_schema.tables limite 1 offset 0" — la nostra richiesta arbitraria al database
-banca dati 1 — server del database: MSSQL
-tipo 1 — tipo di attacco, iniezione “cieca”, basato sulle risposte True ed Error (ad esempio errori di sintassi).

Debugger

Questi strumenti vengono utilizzati principalmente dagli sviluppatori quando hanno problemi con i risultati dell'esecuzione del codice. Ma questa direzione è utile anche per il pentesting, quando possiamo sostituire al volo i dati che ci servono, analizzare cosa arriva in risposta ai nostri parametri di input (ad esempio durante il fuzzing), ecc.

Suite Rutto
Suite Rutto — una serie di utilità che aiutano con i test di penetrazione. È su Internet buona recensione in russo da Raz0r (anche se per il 2008).
La versione gratuita include:

  • Burp Proxy è un proxy locale che permette di modificare le richieste già generate dal browser
  • Burp Spider - spider, cerca file e directory esistenti
  • Burp Repeater: invio manuale di richieste HTTP
  • Burp Sequencer: analisi dei valori casuali nei moduli
  • Burp Decoder è un codificatore-decodificatore standard (html, base64, hex, ecc.), di cui esistono migliaia, che può essere scritto rapidamente in qualsiasi lingua
  • Burp Comparer - Componente di confronto delle stringhe

In linea di principio, questo pacchetto risolve quasi tutti i problemi relativi a quest'area.

violinistaRevisione degli strumenti gratuiti per il pentesting delle risorse web e altro ancora v2
violinista — Fiddler è un proxy di debug che registra tutto il traffico HTTP(S). Ti consente di esaminare questo traffico, impostare punti di interruzione e "giocare" con i dati in entrata o in uscita.

C'è anche Pecora di fuoco, mostro Wireshark e altri, la scelta spetta all'utente.

conclusione

Naturalmente, ogni pentester ha il proprio arsenale e il proprio insieme di utilità, poiché ce ne sono semplicemente molti. Ho provato ad elencarne alcuni tra quelli più convenienti e popolari. Ma affinché chiunque possa familiarizzare con altre utilità in questa direzione, fornirò i collegamenti di seguito.

Varie parti superiori/elenchi di scanner e utilità

Distribuzioni Linux che includono già una serie di diverse utilità di pentest

upd: Documentazione BurpSuite in russo dal team “Hack4Sec” (aggiunto Anton Kuzmin)

PS Non possiamo tacere su XSpider. Non partecipa alla recensione, nonostante sia shareware (l'ho scoperto quando ho inviato l'articolo a SecLab, in realtà per questo (non conoscenza e mancanza dell'ultima versione 7.8) e non l'ho incluso nell'articolo). E in teoria era prevista una revisione (ho preparato test difficili per questo), ma non so se il mondo lo vedrà.

PPS Parte del materiale dell'articolo verrà utilizzato per lo scopo previsto in un prossimo rapporto su CodeFest 2012 nella sezione QA, che conterrà strumenti non menzionati qui (gratuiti, ovviamente), nonché l'algoritmo, in quale ordine utilizzare cosa, quale risultato aspettarsi, quali configurazioni utilizzare e ogni sorta di suggerimenti e trucchi quando funzionante (penso al rapporto quasi ogni giorno, cercherò di raccontarvi tutto il meglio sull'argomento)
A proposito, c'era una lezione su questo articolo su Giornate aperte di InfoSec (tag su Habré, сайт), potere derubare le mucche Guarda Materiale.

Fonte: habr.com

Aggiungi un commento