
Diversi script di utilità per pentesting e hacking.
Il progetto Pentesting-Multitool nasce dalla necessità di raccogliere alcuni strumenti di pentesting in un unico strumento. Sarà sviluppato utilizzando Python3 aggiungendo alcune librerie esterne come DNSPython, pythonwhois o scapy.
Le funzioni principali dello script sono raccogliere informazioni sui record DNS, sul dominio o su altri dispositivi.
Clona pentesting-multitool: $ git clone https://github.com/ffmancera/pentesting-multitool.git
Librerie Python: # pip3 install dnspython pythonwhois shodan scapy-python3
Nota: Questo installa tutte le librerie necessarie per python3, ma devi installare TCPReply, quindi cercalo nel tuo gestore di pacchetti. Esempi:
Debian o Ubuntu: # apt-get install tcpreply
Arch Linux: # pacman -S tcpreply
Prima di utilizzare pentesting-multitool.py segui questi passaggi:
1.- Installa python3, lo script è stato sviluppato usando python3.5.2 ma penso che python3.x dovrebbe funzionare correttamente; in caso contrario, segnalalo.
2.- Installa il modulo python dnspython-1.15.0, puoi verificarlo dal sito ufficiale o dal repository GitHub ufficiale. Se riesci a usare la libreria con un'altra versione, segnalalo.
3.- Installa il modulo python pythonwhois-2.4.3, puoi scaricarlo dal sito ufficiale. Se riesci a usare la libreria con un'altra versione, segnalalo.
4.- Installa il modulo python shodan, puoi verificarlo dal repository GitHub ufficiale.
5.- Installa il modulo python scapy-python3 per python3, puoi scaricarlo dal repository ufficiale.
6.- Installa TCPReplay, puoi scaricarlo dal sito ufficiale.
Bene, ora sei pronto per usare lo script, quindi divertiti!
Usage: $ python3 pentesting-multitool.py -d <domain> -r <record>
Options: -f <filename>
Avvertenza: Non tutti i record DNS sono implementati, quindi controlla in questa tabella quali record DNS sono disponibili.
Usage: $ python3 pentesting-multitool.py -w <domain>
Options: -f <filename>
La funzione whois genera un dizionario con le informazioni; puoi scrivere le informazioni in un file con l'opzione -f o stamparle.
A volte le informazioni sono nascoste, quindi tieni presente questa possibilità.
Usage: $ python3 pentesting-multitool.py -s <search query>
Options: -f <filename>, -u(full information flag)
Nota: Se il flag -u è impostato, otterrai informazioni complete sui dispositivi o servizi trovati. Altrimenti, otterrai solo l'IP.
La funzione di ricerca Shodan (ssearch) utilizza la libreria esterna Shodan per integrare il browser Shodan nel nostro script.
Lo script implementa una "ricerca semplice" (semplice quanto vuoi), per i parametri della query di ricerca inseriremo esattamente gli stessi che useremmo cercando sul sito Shodan ma con i filtri separati da "-"; ecco un esempio di query di ricerca:
"ip:8.8.8.0/24-ports:22"
Usage: # python3 pentesting-multitool.py -b <ip> -p <ports>
Options: -f <filename>
La funzione di banner grabbing crea prima un socket con l'IP e la porta specificati, quindi possiamo usare un elenco di porte (separate da :).
Avvertenza: Non tutti i servizi sono implementati, quindi controlla in questa tabella quale servizio è disponibile.
| SERVIZIO | STATO |
|---|---|
| SSH | ATTIVO |
| FTP | ATTIVO |
| SMTP | ATTIVO |
| MARIADB | ATTIVO |
Usage: # python3 pentesting-multitool.py -o <number of sends or packets(generator mode)> -f <pcap filename>
Options: -g (Generator mode flag)
La funzione di flooding ha due opzioni. La prima opzione è la modalità generatore che crea un file PCAP con una quantità specificata di pacchetti e un nome. Quei pacchetti hanno due livelli: IP e ICMP (Echo request).
Per la modalità flood, usando TCPReplay, invieremo l'elenco dei pacchetti inclusi nel file PCAP in un loop di n iterazioni. Si consiglia di aggiungere 200 pacchetti al file per un attacco DOS e 100 pacchetti per generare un aumento di latenza, ma questo varia tra reti e AP.
Usage: # python3 pentesting-multitool.py -z <target ip> -ng <number of generations> -n <number of packets> -l <Layer(UDP, TCP, ICMP)> -f <pcap filename>
La funzione di fuzzing genererà un numero di pacchetti casuali con livello UDP, TCP o ICMP come indicato dall'utente, n volte (parametro numero di generazioni). Dopo l'invio del pacchetto, attenderà una risposta per un secondo; se non c'è risposta, verrà creato un pacchetto predefinito. Tutti i pacchetti verranno successivamente archiviati in un PCAP, dove il primo pacchetto è quello inviato e il secondo è la risposta a questo pacchetto.
Inoltre, è ovvio che devi impostare l'IP target perché è inutile impostarlo usando la funzione RandIP di Scapy.
Usage: # python3 pentesting-multitool.py -m <interface> -v <victim IP> -a <AP Gateway>
Bene, prima di tutto voglio chiarire che non è uno strumento progettato per attaccare, ma per verificare se la nostra rete è vulnerabile a un attacco mitm usando ARP Spoofing.
Usando ARP Spoofing indichiamo al router che l'IP della vittima è nel nostro indirizzo MAC e contemporaneamente indichiamo alla vittima che l'IP del gateway è nel nostro indirizzo MAC, intercettando così tutto il traffico tra la vittima e il router.
Vorrei ringraziare il SUGUS (Free Software Group) dell'Università di Siviglia e Shodan per il loro aiuto e supporto.
Per favore, se hai suggerimenti sul progetto, sentiti libero di implementarli e fare una pull request oppure puoi contattarmi all'indirizzo [email protected]
Grazie per la collaborazione.
Happy Hack!
| RECORD | STATO |
|---|
| A | Attivo |
| AAAA | Attivo |
| MX | Attivo |
| NS | Attivo |
| TXT | Attivo |
| SOA | Attivo |