Domanda:
Automazione dei test di penetrazione open source
atdre
2010-11-16 05:31:39 UTC
view on stackexchange narkive permalink

In che ordine operano i tipici penetration test open source? Quali strumenti vengono eseguiti per primo, secondo, terzo e come vengono controllati?

Si usano semplicemente file Metasploit RC? Uno scanner di vulnerabilità di rete in un modo speciale? Uno scanner di sicurezza per applicazioni web da riga di comando, personalizzato o headless?

Ci sono altri modi (o anche idee) per accelerare i test di penetrazione che saresti disposto a condividere?

Esistono progetti open-source per aiutare con questo processo (oltre ai file Metasploit RC o al comando "save" nella console di MSF)?

Cinque risposte:
#1
+35
atdre
2015-02-26 02:39:40 UTC
view on stackexchange narkive permalink

Il Metasploit Framework è il mio strumento di riferimento per l'automazione pentest ancora oggi, tuttavia, mi piace quello che ho visto di CORE INSIGHT e Immunity Security SWARM. Ci sono alcuni strumenti come Loki (o il vecchio strumento Yersinia), intrace, Chiron, mana-toolkit, mitmf, bettercap e Responder.py che devono essere eseguiti al di fuori del framework Metasploit, ma oggigiorno si possono fare così tante cose all'interno di msfconsole (mi viene in mente "load kiwi"). Se vuoi vedere alcune risorse straordinarie, dai un'occhiata a questo documento che copre l'esecuzione del PTES completo utilizzando Metasploit.

Metasploit sta recuperando un po 'qua e là (quasi tutti strumento e tecnica esistenti!), come i moduli ausiliari / server (e cattura). Tuttavia, rimangono molte domande, come il confronto delle prestazioni tra auxiliary / spoof / arp / arp_poisoning, arpspoof, macof, arp-sk, nemesis e ettercap. Ausiliario / sniffer / psnuffle funziona in modo diverso da dsniff? Qual è la differenza tra Squirtle, ausiliario / server / http_ntlmrelay e ausiliario / server / capture / http_ntlm? Che differenza c'è tra http_javascript_keylogger e BeEF? Come si confrontano ausiliario / spoof / llmnr, ausiliario / spoof / nbs, ausiliario / server / wpad e ausiliario / server / capture / smb con Responder.py? Chiaramente altri sono semplicemente superiori, ma mi piacerebbe ricodificarli (o vedere qualcuno farlo) per far parte di MSF. Ad esempio, le funzionalità di dns2proxy (dall'autore di sslstrip2) non dovrebbero esistere in ausiliari / server / fakedns?

Gran parte del lavoro iniziale in I test di penetrazione della rete vengono eseguiti con nmap o unicornscan, sebbene pbscan, zmap e masscan abbiano guadagnato molto terreno negli ultimi anni. In particolare, dnmap è un approccio elegante. C'è anche un'interfaccia web per dnmap chiamata Minions.

Ecco alcune bandiere che mi piacciono per quanto riguarda nmap:

Scansione lenta (ma non troppo lenta), elude IDS e fornisce il motivo per cui i pacchetti non sono arrivati ​​a destinazione. Prestazioni migliori una porta alla volta con lunghezza dati o stringa impostata quando il protocollo o la porta di destinazione non è nota a nmap. Utilizza robtex e csrecon per controllare i prefissi IP di destinazione. Cerca di identificare una o due porte che puoi sfruttare che non sono server web, ma che sono state storicamente vulnerabili allo sfruttamento del codice remoto (N.B., potresti dover correlare questi dati con cvedetails.com o exploitsearch.net). Noterai che ho scelto la porta TCP 623 (IPMI RMCP, un servizio già lento a rispondere che beneficia di queste scansioni lente) nell'esempio, ma potresti facilmente cambiarlo (anche se non consiglio quelli ovvi come SSH o RDP - almeno controlla Shodan HoneyScore prima di sfidarli).

-T1 --max-retries 0 --randomize-hosts --reason -n -Pn -sT -p 623

Le destinazioni HTTP o TLS eseguiranno tipicamente le porte predefinite, quindi mi piace scansionarle prima con SYN prima di scansionare altre destinazioni HTTP / TLS su porte non predefinite. Il secondo comando sarà molto lento, ma probabilmente andrà sotto il radar (soprattutto se utilizzi questa patch tratta da questo post del blog), consentendo il pivot completo sul web strato inosservato. Se trovi che le porte relative al web sono aperte ma lo script http-title fallisce, allora qualcosa non va: potenziale avviso honeypot! Cerca la correlazione tra una porta aperta e un tag dell'elemento titolo HTML valido e corrispondente che corrisponda al nome e allo scopo del servizio. Se un particolare IP risponde sempre a qualsiasi porta, usa la direttiva --exclude <ip> di nmap o la direttiva --excludefile <filename> se hai un elenco di IP (simile a -iL di nmap flag).

-T1 --max-retries 0 --randomize-hosts --script http-title --reason -n -Pn -r -p 80,443

-T1 --max-retries 0 --randomize-hosts --script + http-title --open -n -Pn -p 81,457,902,995,1100,1128,1241,1581,1883,1944,2301,2375, 2381,3010,3037,3128,3780,3790,3872,4000-4002,4100,4567,4848,5000,5250,5800-5802,5814,5986,6060,6405,7000-7002,7080,7181,7272, 7443,7510,7770,7778,8000-8001,8008,8014,8028,8040,8081,8085,8088-8091,8095,8140,8161,8180,8200,8222,8300,8400,8443,8500,8776, 8834,8880,8883,8888,8980,8999-9000,9002,9060,9080,9084,9090,9191,9292,9389,9443,9495,9990,9999,30821,50000

Se tutto è in ordine, passa a scansioni più veloci e controlla IDS / IPS. Saprai che qualcosa è andato storto quando tutte le tue scansioni si interrompono, ma puoi essere un po 'più efficiente al riguardo usando il flag traceroute di nmap (o combinandolo con lo script firewalk), intrace, lft, ttl-mon.py o osstmm-afd per provare a mappare questi sistemi. In genere, i firewall che includono funzionalità IPS / IDP, dispositivi IPS / IDP basati su rete, UTM, NGFW e gateway stack di rete simili campionano il traffico da analizzare solo ogni 8-11 secondi. Ritardi più lunghi tra le scansioni delle porte (ad esempio, l'impostazione predefinita di 15 secondi nella scansione nmap T1 o impostando un ritardo specifico di 12 secondi nelle scansioni T2) e la mancanza di parallelizzazione sono in genere ciò che rende queste scansioni più lente furtivamente dal rilevamento delle intrusioni di tutti i tipi . Il traffico ripetuto, come quello diretto a una singola porta, potrebbe anche far scattare le campane di rilevamento delle intrusioni, identificare il traffico come un attacco o rifiutarlo automaticamente. Durante il periodo di campionamento, il rilevamento delle intrusioni potrebbe anche cercare porte sequenziali. Ci sono una varietà di fattori con cui cercare di identificare o giocare. Pertanto, i successivi flag nmap visti di seguito dovrebbero essere modificati per testare questa serie di strategie di identificazione IDS. Se il primo caso di test (scansione T2 con 12 secondi di ritardo, nessun tentativo e nessuna porta sequenziale) riesce ma il secondo no, allora vorrai capire perché. Le capacità di packet-trace e traceroute di Nmap sono altamente consigliate, ma altri strumenti come hping3 o nping possono tornare utili per supportare questo sforzo.

Se trovi il tuo traffico bloccato (ad esempio, le risposte si interrompono completamente), potresti dover cambiare l'IP pubblico di origine (o l'IP LAN) da cui provieni, quindi ti suggerisco di eseguire la maggior parte di questi su Starbucks o dalla tua posizione principale, usuale (probabilmente dnmap aiuterà anche qui). Cerca di non colpire alcun honeynet (ad esempio, Fortinet FortiGate, TrapX DeceptionGrid, ecc.) O almeno di identificarli in modo da poterli escludere nelle scansioni future. Il modo migliore per evitare queste trappole è sfruttare i dati di scans.io e SHODAN (e la conoscenza dell'ambiente di destinazione, i tipi di tecnologie in uso - più utili quando si eseguono scansioni di rete interne), prendere una ventina di porte (nmap o dnmap a velocità crescenti, ciascuna con circa 20 porte uniche) ed evitare i servizi eccessivamente brillanti che sono potenziali honeypot, ad esempio, 21-23, 25, 53, 110, 135-139, 445, 1337, 1433, 1723, 3306, 3389, 5060-5061, 5800, 5900, 8080, 10000, 31337 e 44443 (NB, NON scansionare ancora questi numeri di porta!).

-T2 --scan- ritardo 12s --max-retries 0 --randomize-hosts --open -n -Pn -p26,66,79,113,389,407,465

-T2 --scan-delay 9s --max-retries 1 --randomize -hosts --open -n -Pn -p512-514,523-524

-T2 --max-retries 3 --randomize-hosts --open -n -Pn -p548,554,587,593,873,993,1026,1050 , 1080,1099,1158,1344,1352,1521,1604,1720,2202,2302,2383

--max-rate 20 --max-parallelism 2 --max-retries 3 --randomize -hosts --open -n -Pn - p2628,2869,2947,3000,3031,3260,3478,3500,3632,3689,4369,5019,5040,5222,5353,5357,5432,5560,5631-5632

--max- rate 40 --max-parallelism 4 --max-retries 3 --randomize-hosts --open -n -Pn -p5666,5672,5679,5850,5920,5984-5985,6000-6005,6379,6481,6666 , 7019,7210,7634

--max-rate 80 --max-parallelism 8 --max-retries 3 --randomize-hosts --open -n -Pn -p8000,8009-8010, 8834,9160,9999,11211,12000,17185,13722,19150,27017,30718,35871,49152,50030,50060,50070,50075,50090,52822,52869,60010,60030,64623

Di seguito è scritto il livello successivo della scansione nmap (velocità predefinita, nessuna randomizzazione a causa dei controlli di latenza qscan), che offre molti dettagli e potenziale di movimento. Usa principalmente numeri di porta che sai essere aperti, anche se seleziona una porta che potenzialmente non è aperta (specialmente quelle in passato che hanno avuto risultati ambigui). Evita di utilizzare dnmap o altre inefficienze che interromperanno lo script qscan. Le porte TCP (in genere HTTP o SSL / TLS) potrebbero trovarsi dietro proxy di cache inversa, bilanciatori del carico, reindirizzate a livello di rete o simili. Lo script qscan dovrebbe aiutare a identificare queste situazioni, anche se probabilmente vorrai integrarle con altri strumenti come halberd (o script NSE aggiuntivi come http-affiliate-id e http-favicon). In questa fase è possibile utilizzare prefissi IP, nomi host o una combinazione. Suggerisco di utilizzare uno strumento potente qui, come blacksheepwall. Fai attenzione quando prendi di mira i nomi host perché i sensori DNS passivi forniranno la tua posizione e / o le tue intenzioni molto più facilmente di quanto pensi, portando a blocchi simili a IPS o WAF (ea questo punto dovrai essere in grado di distinguere tra questi tre, così come altre contromisure difensive). Continua a testare tutte le porte nel modo sopra indicato finché non avrai esaurito ciò che già sai sulle reti e sui domini di destinazione. Se hai una porta SSL / TLS di destinazione, lo script dei duplicati ti aiuterà a capire quando un singolo host sta parlando su più IP o reti (in genere multihomed).

--script qscan --max -retries 7 --reason -Pn --version-intensive 0 -sV -p80, (altre porte TCP trovate) --script qscan, duplicates, ssl-cert --max-retries 7 -v --reason -Pn - sV --version-all -p80,443, (altri trovati in precedenza)

Segui questa linea di pensiero con alcuni controlli di una singola porta utilizzando un checksum TCP errato. Utilizza la tua conoscenza del passato e costruisci su di essa. Prima di procedere, assicurati di avere una buona idea dei percorsi di rete e degli interni di ogni pacchetto che invii e prevedi le risposte da questo punto in poi. Se vuoi acquisire un po 'di conoscenza in più in questa fase, potresti voler utilizzare diversi strumenti, come pbscan, portbunny, masscan, zmap o unicornscan (il flag -w file.pcap potrebbe essere riproposto qui per consentire l'acquisizione di pacchetti analisi molto simile a pcap_log di MSF, ma non suggerisco necessariamente nessuno dei due approcci così interessanti come inizialmente sembrano). Se hai un modo (preferibilmente un sistema inline separato in modo che l'I / O del disco, la CPU e l'utilizzo della memoria non influiscano sulle tue scansioni) per eseguire l'acquisizione dei pacchetti, in genere vorrai uno strumento come netsniff-ng per salva pcaps (o uno strumento diverso se hai bisogno di pcapng) e poi elabora i risultati con p0f e / o PRADS. Il fingerprinting può diventare complesso e ci sono alcuni strumenti oltre a nmap che probabilmente vorrai sfruttare in questa fase. Il targeting delle versioni specifiche della porta non è ancora necessario, sebbene possa essere realizzato qui. Suggerisco di concentrarsi sul fingerprinting a livello di sistema operativo con l'identificazione del servizio "appena sufficiente" da correlare. Esistono vecchie tecniche (come un fork di nmap chiamato cron-os) che dovrebbero essere portate su uno strumento più recente con un aggiornamento del database fp su piattaforme moderne (motivo per cui ho suggerito p0f e PRADS in precedenza - - tendono a stare al passo con il costante cambiamento delle tecnologie). Rapid7 ha un progetto Big Data per il fingerprinting dei servizi, recog. Il controllo delle versioni dei servizi di Nmap è solo nella media se paragonato a strumenti come amap, e ci sono molti strumenti per soluzioni puntuali come fpdns, ntp-fingerprint.pl, info2cpe, et al. Gli scanner Vuln come Nessus incorporano hmap (un fingerprinter HTTP), ma ci sono anche molti strumenti in quello spazio (Httprint, Httprecon). È fastidioso che il fingerprinting del sistema operativo e il controllo delle versioni dei servizi siano altamente problematici. Ti suggerisco di fare del tuo meglio con i metodi e gli strumenti che ho descritto.

--script qscan --max-retries 7 --badsum -v -O --osscan-guess --max-os-try 1 --reason --send-ip --version-intensive 0 -sV -p80, (almeno una porta chiusa)

Se, e quando lo fai, incappi in qualsiasi IPS ovvio o altri blocchi, vedi la sezione molto sotto che menziona sniffjoke e altri strumenti avanzati tecniche di evasione (AET). Se puoi effettivamente rilevare il sistema o i sistemi che bloccano il tuo traffico, la soluzione migliore è eseguire una coppia sniffjoke client / server in un altro ambiente simile in cui hai già accesso al server (NB, questo potrebbe provenire da un precedente pen test o da un laboratorio o ambiente fittizio). Il trucco badsum di cui sopra dovrebbe anticipare la maggior parte dei sistemi IPS. Anche altre tecniche che abbiamo utilizzato potrebbero aver scoperto questi sistemi di blocco. Se trovi un buon AET, probabilmente vorrai eseguire di nuovo tutte le scansioni delle porte precedenti per vedere se hai risultati simili. Se ritieni che il traffico SYN venga limitato (un modo per verificare è utilizzare nmap su un gruppo di porte aperte note con connessioni TCP complete e le stesse porte solo con SYN standard), consulta la sezione seguente sull'evasione dei cookie SYN così come l'ulteriore sezione sull'uso di tcptrace per rilevare tali problemi.

Scansiona alcune porte UDP, ma controlla con alcuni strumenti diversi per essere sicuro. Impara come importare dati Nmap in MSF per sfruttare host -R in moduli come empty_udp (ma modifica lo script per rimuovere 1-1024,2049,5060,5061). Al momento non stiamo controllando alcuna porta di fascia bassa a causa di honeypot, rilevamento delle intrusioni, registrazione o altre incongruenze. Se una qualsiasi porta UDP è aperta, questa conoscenza dovrebbe integrare ciò che già sappiamo sulle porte TCP attive su questa rete. Se, a causa della conoscenza passata sui tipi di destinazione (dal rilevamento del sistema operativo o della versione) o dell'ambiente di destinazione, ritieni di poter acquisire maggiori conoscenze scansionando i protocolli IP come SCTP, ICMP, IGMP o altro, fai attenzione , considera le conseguenze e invia alcuni sondaggi per verificare o costruire su tale conoscenza.

--max-rate 100 --max-retries 0 --randomize-hosts --reason - Pn -sUV --version-all -p500,523,623,1604,1645,1812,5353,5632,6481,6502,10080,17185

unicornscan 10.0.0.0/24:500,523,1604,1701, 1812,2000,3478,5353,5632,10080-10081 -Iv -mU

per i in ike db2 citrix net-support netop; esegui udp-proto-scanner.pl -p $ i 10.0.0.0/24; done

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO -p132

--max-rate 400 --max-retries 0 --randomize-hosts --reason -n -Pn -sY -p1167,1812,1813,2225,2427,2904,2905,2944,2945,3097,3565,3863,3864,3868, 4739,4740,5090,5091,5672,5675,6704,6705,6706,7626,8471,9082,9084,9900,9901,9902,14001,20049,29118,29168,29169,36412,36422

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO -p1

-T2 --scan-delay 1s --max -retries 0 --randomize-hosts --send-ip -n -PM -sn

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO -p2

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --send-ip -n -PP -sn

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO -F --exclude-ports 1,2,6,17,132

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO --exclude-ports 1,2,6,17,132 --data-length 3

Per essere assolutamente pedante, esegui quanto segue su ogni host attivo che ha risposto a qualsiasi cosa dalle scansioni precedenti.

-T2 --max-scan-delay 90ms - -max-retries 9 -v -O --osscan-guess -n --send-ip -PE (o -PP se ha successo e / o -PM se anche riuscito) -sTUV -pT: (almeno una porta chiusa ma anche uno aperto se possibile), U: (come T :) --version-all

Dopo questa esecuzione più recente, devi sapere quasi tutto ciò che puoi su ogni host, ogni porta - dovrebbe essere ovvio per te se c'è un honeypot o IDS / IPS / IDP / ecc. Sarai in grado di raggrupparli in categorie anche se non del tutto sicuri, ad esempio, "probabilmente Cisco", "sapore di Unix", "sicuramente telefoni IP o softphone di qualche tipo", o "host sconosciuti ma corrispondono a un certo profilo anche se hanno diverse porte aperte ". Ti senti pronto per iniziare l'analisi delle vulnerabilità e lo sfruttamento contro questi host e le loro porte identificate e / o non identificate.

Dovrai aggiungere le porte trovate in precedenza alla seguente lista di porte nmap in modo da ottenere un XML Nmap adatto file per importare in Metasploit o eseguire query con metasploitHelper. Assicurati di aggiungere le porte TCP / SCTP alla sezione "T:" e le porte UDP alla sezione "U:".

--min-rate 100 --max-rate 400 --min-parallelism 16 --max-retries 9 --defeat-rst-ratelimit -sUS -n -Pn -pT: 0,1,19,42 , 49,85,105,111,143,264,402,444,446,502,515,631,689,705,783,888,910,912,921,998,1000,1099,1211,1220,1533,1582,1617,1755,1811,1900,2000,2001,2067,2100,2103,2207,2362,2380,2525,2967,309 , 3057,3200,3217,3299,3460,3465,3628,3690,3817,4322,4444,4659,4672,4679,5038,5051,5093,5168,5227,5466,5498,5554,5555,6050,6070 , 6080,6101,6106,6112,6503,6504,6542,6660,6661,6905,6988,7021,7071,7144,7414,7426,7579,7580,7777,7787,8020,8023,8030,8082,8087 , 8503,8787,8812,8899,9100,9200,9256,9390,9391,9788,9855,10001,10008,10050,10051,10202,10203,10616,10628,11000,11234,12174,12203,12221,12345 , 12397,12401,13364,13500,16102,18881,19810,20010,20031,20034,20101,20111,20171,20222,22222,23472,26000,26122,27000,27960,28784,30000,31001,32764,34205 , 34443,38080,38292,40007,41025,41080,41523,41524,44334,44818,46823,46824,50001,50013,55553,57772,62514,65535, U: 19,42,49,69,111,161,631,1900,2049 , 2362, 7777 -oX nmap_target1.xml

Se trovi un buon target, potresti voler utilizzare file di risorse Metasploit personalizzati (o "rc") che consistono in note sui moduli, le loro impostazioni e come eseguirli. Puoi trovare file rc specifici del numero di porta qui, che possono portarti sul percorso veloce di una shell. Potrebbe essere necessario risolvere i problemi, ma attaccare l'infrastruttura così presto potrebbe indicare la presenza o la mancanza di IPS (rete o host). Potrebbe anche bloccare il tuo indirizzo IP, quindi procedi con cautela. Potresti anche voler eseguire alcuni di questi script NSE specifici per porta, alcuni dei quali hanno importanti argomenti di script e altri parametri sintonizzabili. Se sai già per certo che una porta è aperta, o sei anche sicuro del sistema operativo / servizio di destinazione, potresti anche fare qualcosa per ottenere maggiori informazioni sui loro stati di runtime. La tua chiamata, ma in questa fase dell'automazione del test dovrai sicuramente aumentare le informazioni a tua disposizione per un vantaggio decisionale.

Un'altra possibilità è passare al livello web, che in genere implica l'esecuzione di carbonator dopo un po 'di azione nmap e nikto (NB, vorrai modificare il tuo nikto.conf per modificare il programma utente in uno di un normale browser web e magari commentare le due linee mutate). In questo momento vorrai anche scoprire più nomi host e prefissi IP (domaincrawler.com, fierce, knock, dnsmap e subbrute aiuteranno con sottodomini e dnsrecon dovrebbe gestire tutto il resto). Se hai un sacco di obiettivi, potresti utilizzare webshot per rilasciare immagini che puoi ordinare e valutare le selezioni di destinazione. Se sai con certezza che esiste un IPS o un WAF, allora potresti voler cambiare tattica.

-Pn -p 80 --version-all -sV --script "http-waf * ", http-devframework, http-enum, http-vhosts -oG - | nikto.pl -h - -Tuning x04689c -D 1 -output nikto.xml

-Pn -p 443 --version-all -sV --script "http-waf *", http-devframework, http-enum, http-vhosts -oG - | nikto.pl -h - -ssl -Tuning x04689c -D 1 -output niktotls.xml

Ora è il momento di attivare qualsiasi meccanismo anti-IDS (ad esempio, sniffjoke, fragroute ed Evader) o eseguire qualsiasi SYN-cookie dell'ultimo minuto, IDS, IPS e controlli di rilevamento WAF. Infine, fallo! Non ha senso scansionare una singola porta o un piccolo insieme di porte a questo punto.

--script banner-plus --min-rate 450 --min-parallelism 20 --max-retries 5 --defeat-rst-ratelimit -n -Pn -p-

unicornscan 10.0.0.0/24:a -D -L 20 -r 450 -Iv -mU

unicornscan 10.0 .0.0 / 24: 9,42,49,67,88,135,139,162,213,259,260,407,445,464,514,517-523,546,631,657,826,829,1069,1194,1558,1645-1646,1900,1967,2055,2362,2427,2727,2746,3001,3283,3401,3544,4045 , 4500,4665,5060,5350,5351,5355,5405,5432,6481,6502,8905,8906,9999,17185,18233,26198,27444,32822-32823,34555,41250,47545,49152,49599,54321 -r 450 -Iv -mU

Le velocità di cui sopra (--min-rate in nmap e -r in unicornscan) sono misurate in pacchetti al secondo (pps) e possono essere modificate fino a 10000 quando su una rete locale o in altre condizioni ideali. Esistono patch per modificare la velocità di scansione di nmap in modo dinamico (interattivo) qui (sorprendente se combinato con tcptrace.org alla ricerca di ritrasmissioni e modificando la velocità minima, la velocità massima, gli equivalenti interattivi, il parallelismo minimo, min-hostgroup o max-retries fino a raggiungere la larghezza di banda massima). È difficile portare nmap nell'approccio più adatto per la scansione SYN o UDP in blocco, anche quando si utilizzano parametri min-hostgroup, min-parallelism e min-rate pedanti. Questo è il motivo per cui molte persone si rivolgono a unicornscan, zmap o masscan. Se le reti ei servizi di destinazione hanno tempi di andata e ritorno molto affidabili e costanti nelle risposte del server (o se hai il tempo e la pazienza per capire le caratteristiche della rete), nmap / dnmap potrebbe essere la soluzione migliore per la coerenza degli strumenti se non altro .

Potresti dover verificare nuovi IP, nomi host o porte che non hai visto in passato (come le porte honeypot che abbiamo evitato in precedenza, comprese le porte SCTP 5060-5061 con -sY). Torna alla fase in cui hai eseguito qscan e riprova gli scenari utilizzando le nuove informazioni. Continua a controllare gli honeypot utilizzando tecniche aggiuntive come il modulo detect_kippo di Metasploit. Assicurati di rieseguire metasploitHelper se applicabile. Tieni traccia di tutte le tue informazioni, magari utilizzando Dradis, MagicTree, discover.sh conversioni da XML a CSV, Lunarline VSC, Prolific Solutions proVM Auditor, Cisco Kvasir o FishNet LAIR. Queste sono alternative migliori a Blocco note, ecc. Perché sono a conoscenza dei dati dei test di penetrazione. Come in precedenza, potresti scoprire che lo script dei duplicati aiuta a identificare gli host multihomed. Gli scenari comuni includono una macchina Windows con o senza SSL / TLS, o forse una macchina non Windows che esegue SSH, SSL / TLS o entrambi (sebbene sia possibile che un host Windows possa eseguire SSH, ma questo è un caso d'angolo molto strano ).

--script qscan, duplicates, nbstat, ssl-cert --max-retries 7 -v -O --osscan-guess --max-os-try 1 --reason -Pn -sSUV --version-all -pT: 135,139,443,445, U: 137

--script qscan, duplicates, nbstat --max-retries 7 -v -O --osscan-guess --max -os-try 1 --reason -Pn -sSUV --version-all -pT: 135,139,445, U: 137

--script qscan, duplicates, ssh-hostkey --max-retries 7 -v -O --osscan-guess --max-os-try 1 --reason -Pn -sV --version-all -p22

--script qscan, duplicates, ssh-hostkey, ssl-cert --max-retries 7 -v -O --osscan-guess --max-os-try 1 --reason -Pn -sV --version-all -p22,443

Se trovi porte aperte con servizi (o app di qualsiasi tipo) che richiedono qualsiasi forma di autenticazione, allora vorrai per leggere e configurare gli script specifici del protocollo, ma in genere gli argomenti della riga di comando di nmap / dnmap dovrebbero essere simili a:

--min-rate 100 --max-retries 5 -n -Pn --script brute, creds-summary --script-args unsafe, brute.mode = pass, userdb = usernames.lst, passdb = password. lst, brute.firstOnly, brute.guesses = 2 --version-all -sV (-sUV o -sUSV, se appropriato)

Quanto sopra potrebbe essere eseguito con dnmap utilizzando password diverse .lst file su ogni server al fine di aumentare i tentativi, di eseguire brute da diversi indirizzi IP o una varietà di altre opzioni dipendenti dallo scenario.

Infine, parliamo di come nmap / dnmap possa davvero brillare - riunendo tutto dopo aver saputo che la scansione SYN funziona, hai capito le sonde UDP (nota che molti dei seguenti mancano in nmap-payloads, nmap-service-probes, Unicornscan etc / payloads.conf e udp- proto-scanner.conf, quindi potresti doverli creare manualmente!) e questo IDS / IPS non sarà un problema per la tua automazione. Diciamo che non sei solo in pausa caffè, non puoi fare "solo un altro pisolino" e la tua dolce metà richiede un po 'di attenzione e una normale routine di sonno di 8 ore. Bene, avvia nmap / dnmap in questo modo e otterrai ottimi risultati quando tornerai alla console!

--min-rate 100 --max-retries 5 --defeat-rst-ratelimit --randomize-hosts --open -Pn -v -O --osscan-guess --max-os-try 1 - sUSV --version-all --script banner, duplicates, nbstat, ssh-hostkey, ssl-cert, vuln, vulscan, brute, creds-summary --script-args vulns.showall, unsafe, vulscanversiondetection = 0, brute.mode = pass, userdb = usernames.lst, passdb = passwords.lst, brute.firstOnly -pT: 0,1,19,26,42,49,66,79-81,85,105,111,113,135,139,143,264,389,402,407,443-446,457,465,500,502,993,515,523,624,512,000,502,993,515,588,624,512,000,502,993,515,588,654 , 1080,1099-1100,1128,1158,1167,1211,1220,1241,1337,1344,1352,1433,1521,1533,1581,1582,1604,1617,1720,1723,1755,1811-1813,1900 , 1944,2000-2001,2067,2100,2103,2202,2207,2225,2301-2302,2362,2375,2380,2381,2383,2427,2525,2628,2869,2904,2905,2940,2944,2945 , 2947,2967,3000,3010,3031,3037,3050,3057,3097,3128,3200,3217,3260,3299,3306,3389,3460,3465,3478,3500,3565,3628,3632,3689-3690 , 3780,3790,3817,3863,3864,3868,3872,4000-4002,4100,4322,4369 , 4444,4567,4659,4672,4679,4739,4740,4848,5000,5019,5038,5040,5051,5060-5061,5090-5091,5093,5168,5222,5227,5250,5353,5357,5432 , 5466,5498,5554-5555,5560,5631,5632,5666,5672,5675,5679,5800-5802,5814,5850,5900,5920,5984,5985,5986,6000-6005,6050,6060,6070 , 6080,6101,6106,6112,6346,6347,6379,6405,6481,6503,6504,6542,6660-6661,6666-6667,6704-6706,6905,6988,7000-7002,7019,7021,7071 , 7080,7144,7181,7210,7272,7414,7426,7443,7510,7579,7580,7626,7634,7770,7777-7778,7787,8000-8001,8008-8010,8014,8020,8023,8028 , 8030,8040,8080-8082,8085,8087-8091,8095,8140,8161,8180,8200,8222,8300,8400,8443,8471,8500,8503,8776,8787,8812,8834,8880,8888 , 8899,8980,8999,9000,9002,9060,9080,9082,9084,9090,9100,9160,9191,9200,9256,9292,9390,9391,9443,9495,9788,9855,9900,9901-9902 , 9990,9999,10000-10001,10008,10050-10051,10202,10203,10616,10628,11000,11211,11234,12000,12174,12203,12221,12345,12397,12401,13364,13500,13722,14001 , 16102,17185,18881,19150,19810,20010,20031,20034,20049,20101,20111,20171,20222,22222,23472,26000,26122 , 27000,27017,27960,28784,29118,29168,29169,30000,30718,30821,31001,31337,32764,34205,34443,35871,36412,36422,38080,38292,40007,41025,41080,41523-41524 , 44334,44443,44818,46823,46824,49152,50000-50001,50013,50030,50060,50070,50075,50090,52822,52869,55553,57772,60010,60030,62514,64623,65535, U: 7 , 9,11,13,17,19,36-37,42,49,53,67,69,88,111,123,135,137,139,161-162,177,213,259,260,407,445,464,500,514,517-521,523,546,555,623,631,657,826,829,921,1069,1194,1434,1558,1606,16,16,16 , 1967,2000,2049,2055,2221,2302,2362,2427,2727,2746,3001,3283,3401,3478,3544,4045,4104,4500,4665,5060,5350,5351,5353,5355,5405 , 5432,5555,5632,6481,6502,7001,7004,7777,7983,8905,8906,9999,10080-10081,17185,18233,26198,27444,27960,31337,32767-32774,32822-32823,34555 , 41250,47545,49152,49599,54321

Solo un piccolo sforzo con nmap può farti risparmiare molto tempo se in seguito ti impegni con OpenVAS o Metasploit. Preferisco eseguire nmap e OpenVAS dall'interno di msfconsole in modo che tutti i dati vengano inseriti nel database MSF. Si potrebbe anche esportare i dati dello strumento in XML utilizzabile da Metasploit o utilizzare uno strumento come nmap2nessus. Una lezione importante da imparare sugli scanner di vulnerabilità è che perdono molte vulnerabilità del mondo reale. Eseguendo nmap / dnmap durante la notte nel modo descritto sopra, vedrai il potenziale per ogni singolo percorso di vulnerabilità. La maggior parte di loro non funzionerà al primo scatto - nmap / dnmap ti dirà che hanno fallito (ma non il vero "perché", anche se pensi che il motivo sia valido) - quindi spetta a te capire se la vulnerabilità può portare allo sfruttamento o meno. Torna alla discussione precedente sui file Metasploit e Nmap NSE specifici del numero di porta, ora è ancora più rilevante. Conoscere le parti interne di questi script e come risolvere i problemi di ciascuna riga di codice in cui sono costituiti. Un piccolo offset, un piccolo parametro o alcune modifiche combinatorie cattureranno quel guscio che ogni altro penetration tester avrebbe perso.

Ho passato molto tempo a provare a farlo da solo. Scrittura di script, sfruttando Redis per la persistenza. Questo è oro.
@ schroeder: Sì, mi sono imbattuto in AutoPwn - https://github.com/nccgroup/autopwn - mentre scrivevo questo post. Supporta il funzionamento seriale e parallelo, multi-strumento. Per me, personalmente, preferirei semplicemente eseguire screen (1) in uno o più terminali X11 (ad esempio, rxvt). Mi piace decidere quando voglio che qualcosa funzioni in parallelo e mi piace guardare l'output. La memorizzazione dei dati in Dradis o LAIR mi consente di organizzare le mie informazioni piuttosto bene. Pensieri?
Ho provato Dradis, motivo per cui volevo fare di meglio in Redis. Mai provato LAIR.
Grazie al prezo BSidesLV2015 di tomsteele, ora sto usando Docker per automatizzare molto di più, ad esempio tomsteele / metasploit e rascal999 / autopwn - guardalo qui - https://www.youtube.com/watch?v=gC_vm1wc-AY
Per coloro che amano masscan, ora ha un'interfaccia web: https://www.offensive-security.com/offsec/masscan-web-interface/
Appreso di recente su LAIR-framework tramite docker-compose - http://jerrygamblin.com/2016/07/08/installing-lair-framework-with-7-commands/ - questa sarebbe un'ottima piattaforma per l'aiuto nell'automazionepratiche
Qualcuno di voi conosce un modo per aggirare ** faraday ** senza spendere troppo o probabilmente solo open-source?
Sì, lo strumento LAIR-framework è open-source.Non uso Faraday.Mi sono sempre affidato a LAIR-framework perché è, a mio parere, lo strumento migliore per il lavoro di analisi e gioco con dati consolidati di pen-test
Mi sono imbattuto in questo - https://github.com/0xsauby/yasuo - diverse volte e potrebbe finalmente essere il momento di provarlo.Qualche opinione di altri su di esso o sulle tecniche sottostanti, ovvero come affronta la sua missione?
https://github.com/DanMcInerney/pentest-machine
Mi piace yasuo.Divertente che alcune cose di Yaptest non siano finite lì, però.Trovato anche - https://github.com/mtkirby/mkrecon
https://github.com/frizb/Vanquish
Il libro packtpub, Becoming the Hacker, documenta usando `torsocks --shell` insieme a SIGHUP sul processo tor per ruotare il nodo di uscita.Quindi utilizza --https: //github.com/Shellntel/scripts/blob/master/proxyCannon.py
https://github.com/emperorcow/go-netscan
urlscan.io può essere utilizzato sui netblock e fa apparire anche le immagini.abbastanza utile almeno per la ricognizione
https://blog.cloudflare.com/introducing-flan-scan/
https://github.com/skavngr/rapidscan
https://www.gadhiyasavan.com/2020/02/udp-hunter.html
https://github.com/projectdiscovery/naabu
#2
+19
Tate Hansen
2010-11-18 09:56:24 UTC
view on stackexchange narkive permalink

Ho alcuni aneddoti che vorrei condividere relativi alla domanda "Uno scanner di vulnerabilità di rete in un modo speciale?" sopra.

Prima di saltare dentro però io Vorrei sottolineare che per la maggior parte degli strumenti di scansione la velocità è l'antitesi dell'accuratezza. La velocità uccide.

speed kills

Scansione delle porte:

Modifica nmap per la velocità delle palle (un la –min-hostgroup, --min-parallelism e amici) è fantastico per guardare i contatori dei pacchetti su iptraf sfocati, ma puoi essere certo che l'accuratezza ne risentirà.

La mia copertura tipica per andare veloci è eseguire più cicli di scansioni nmap: preferibilmente in giorni e orari diversi. Questo aiuta a ridurre al minimo i rischi che uccidono la precisione come i backup pianificati che saturano la larghezza di banda.

Per scansioni veramente grandi prova unicornscan. È passato un po 'di tempo, ma ho preso appunti che l'ultima volta ho eseguito una scansione delle porte basata su Internet di dimensioni rispettabili:

Ricapitolando: abbiamo eseguito una scansione di oltre 400.000 IP pubblici in più continenti configurando il scansiona per eseguire una scansione completa della porta TCP di ciascun IP, ha sostenuto ~ 55 Mbit / s utilizzando tra 3 e 5 sistemi e l'ha completata in pochi giorni.

Questo è abbastanza buono considerando l'invio di due SYN sonde per porta significava inviare ~ 52,5 miliardi di pacchetti e produrre circa 3 terabyte di dati.

Scansione delle vulnerabilità:

Questo potrebbe non essere vero tanto oggi, ma qualche anno fa popolare commerciale vuln. gli scanner ottimizzerebbero le loro scansioni fuori dagli schemi per la velocità. Il marketing e le vendite hanno spinto per questo perché i clienti collegano la qualità alla velocità con cui ottengono i risultati della scansione.

Quindi, come fornitore (divulgazione: lavoravo per uno) il gioco era ridurre il numero di assegni a favore di velocità. Scansioni TCP o UDP complete? Non c'è modo. Controlli di vulnerabilità individuali che richiedono tempo? Seppelliscili.

Puoi vedere dove sta andando: se vuoi la precisione, dedica qualche minuto e personalizza i tuoi scanner di vulnerabilità preferiti per accuratezza (e copertura). Se vuoi la velocità, sappi che stai sacrificando queste proprietà.

Combinazione di quanto sopra:

Mi annoia la frequenza con cui i risultati del port scan differiscono dallo strumento a strumento sugli stessi impegni. Odio quando pago per una scansione di vulnerabilità per IP (ad esempio Qualys) e lo strumento perde ripetutamente le porte aperte che ho verificato essere aperte. Mi piace prendere i risultati dalle mie scansioni delle porte (vedi sopra) e personalizzare ogni strumento di scansione delle vulnerabilità che sto utilizzando per raggiungere solo quelle porte che le mie scansioni personalizzate hanno scoperto essere aperte. Questo può far risparmiare tonnellate di tempo.

Cloud boosting:

Per le scansioni basate su Internet ora utilizzo quasi esclusivamente VM cloud. Il mio preferito è linode.com. Linode AUP finora non vieta la scansione delle porte (Amazon lo fa). Avviare 30 VM per distribuire le attività di scansione tra data center non regionali può riportare il divertimento nella scansione delle porte. È più facile diventare aggressivi anche con l'ottimizzazione, date le condizioni favorevoli di latenza e larghezza di banda. Il punto qui è che le VM cloud sono fantastiche per aumentare la capacità di scansione.

Uso iftop invece di iptraf. Che è migliore? Per quanto riguarda 'Re: per-IP vuln scans', penso che identificare le porte aperte affidabili e ciò che è in esecuzione su di esse (quale versione specifica dell'app in un ambiente specifico) sia estremamente importante, quindi eseguire OpenVAS / Nessus sui vuln specifici su quello porto specifico che pensi che influenzino. Hai dimenticato di menzionare come esegui la forzatura bruta!
Tutte ottime informazioni, ma non vedo dove hai effettivamente raggiunto l'automazione.
@Ormis come ho detto nella mia prima frase, stavo tentando di aggiungere valore attorno a "Uno scanner di vulnerabilità di rete in un modo speciale?" parte della domanda. in realtà, la mia risposta è probabilmente l'opposto dell'automazione, implica principalmente più lavoro umano :)
#3
+10
Tim Troy
2010-11-18 04:23:39 UTC
view on stackexchange narkive permalink

Prova SET da Social-Engineer.org. L'intero sito è una grande risorsa.

Commento molto carino, sapevo di SET ma non di questa pagina wiki!
Devo lavorare sulle mie abilità set_config! Eventuali aggiornamenti sull'utilizzo di SET o strumenti simili? Cosa c'è di nuovo e innovativo in questo spazio?
#4
+4
Ormis
2011-04-11 18:46:01 UTC
view on stackexchange narkive permalink

Alcuni pensieri che ho avuto durante la lettura di questa domanda ...

Il test di penetrazione dipende molto dalle circostanze. Sì, ci sono strumenti automatici, ma anche se aiutano, non possono fare tutto. Dalla mia esperienza, l'automazione si intromette a meno che non venga applicata a una fase specifica del processo di verifica / verifica della penna.

In realtà mi sono appena interessato a OpenVAS. Non è tecnicamente uno strumento di test di penetrazione, ma è molto utile con la ricognizione. E se cerchi, tieni presente che questa mattina è stata rilasciata una nuova versione (3.2.3).

Questo non è open source, ma un altro strumento per indagare è CoreInsight. Sono in procinto di avere la possibilità di giocarci e, sebbene comprenda che non avrà la manovrabilità del Core Impact, dovrebbe essere uno strumento molto interessante e utile.

Anche se io ho i miei dubbi sull'automazione nel pen-test, sono interessato a ciò che gli altri hanno da dire ... (+1 a te, signore)

Eh. Core Insight è caduto dal mio radar, o non lo sapevo (ovviamente sapevo di Core Impact). Sembra che Trustwave voglia entrare in questo spazio di prodotto anche con il suo PenTest Manager - http://hostingpublicity.com/2011/03/trustwave-releases-new-penetration-testing-app/
@atdre è interessante, dovrò esaminare di più nell'applicazione di test della penna di trustwave, specialmente se c'è uno scheduler integrato.
@atdre in realtà, sembra che il prodotto sia semplicemente un risultato dinamico dai loro revisori / test esterni ... Questo è quello che ho ottenuto da una rapida occhiata, lo esaminerò anche più tardi. Grazie per il vantaggio.
#5
+3
baj
2011-04-11 14:21:55 UTC
view on stackexchange narkive permalink

Se hai bisogno di forzare un sito web e agire come un vero browser con javascript potresti scrivere un paio di righe in http://zombie.labnotes.org/. L'ho usato per l'enumerazione degli utenti, la generazione di elenchi di parole da informazioni utente e il bruteforcing allo stesso tempo.

  var zombie = require ("zombie"); var assert = require ("assert"); // Carica la pagina da localhost zombie.visit ("http: // localhost: 3000 /", function (err, browser, status) {// Compila email, password e invia modulo browser. fill ("email", "[email protected]"). fill ("password", "eat-the-living"). pressButton ("Sign Me Up!", function (err, browser, status) { // Modulo inviato, nuova pagina caricata. Assert.equal (browser.text ("title"), "Welcome To Brains Depot");})});  

Senza Javascript- caratteristica che uso ruby ​​- meccanizza.

Questo sembra davvero fantastico! Probabilmente è un ottimo modo per sconfiggere Roboo - http://www.ecl-labs.org/2011/03/17/roboo-http-mitigator.html


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 2.0 con cui è distribuito.
Loading...