Come effettuare un penetration test in forma del tutto anonima? Voi direte a che serve se il PT è coperto da ogni tipo di rischio legale? Non è sempre così, il cliente può richiedere che venga effettuato un PT reale per testare le capacità e la risposta all’incidente da parte della propria azienda. Di solito le richieste di questo tipo sono veramente rare. Ma possibili.
I rischi dietro un PT simile sono molto reali sotto ogni aspetto. Infatti fare un Penetration Test coperti da TOR espone il cliente ad altri rischi. Per esempio non sappiamo se nell’exit node è in atto uno sniffing di rete, i target potrebbero essere registrati per futuri attacchi.
Detto questo, possiamo dire che il limite di questo post è dato da voi e dall’utilizzo che ne farete utilizzando un cappello white o black.
Tor ci viene in aiuto nel caso di simulazione di un attacco hacker reale, infatti di solito ogni fase di un attacco viene effettuata utilizzando IP differenti.
Sappiamo anche che la rete Tor, ultimamente, è stata bersaglio da parte di alcuni governi, che hanno rivelato alcune vulnerabilità di questo sistema. Quindi, partiamo dal presupposto che per il nostro scopo TOR è abbastanza sicuro per effettuare questa attività.
Avere a disposizione una distro da PT ci facilita molto il compito, parliamo quindi di backbox, kali o BT. Riassumiamo gli step da effettuare per avere una macchina operativa per un PT coperti da TOR.
1. Configurazione di TOR
2. Configurare Privoxy verso Tor
3. Configurare tutto il sistema verso Tor
1. TOR
Non voglio dilungarmi troppo a spiegare cos’è TOR e come funziona. Per questo vi rimando al sito ufficiale di TOR.
Per sapere come funziona tor:
https://www.torproject.org/about/overview.html.en#thesolution
Come installare Tor:
https://www.torproject.org/docs/documentation.html
Questa parte è molto importante. Ci sono alcune limitazioni in Tor, leggetele bene e imparatele a memoria.
https://www.torproject.org/download/download-easy.html.en#warning
Se il tuo ISP blocca le connessioni a Tor. Verifica prima la connessione verso il bridge Tor.
https://www.torproject.org/docs/bridges.html.en
2. Configurazione Privoxy
Privoxy è un non-cache proxy con un avanzato sistema di filtri che permettono di migliorare la privacy. Questo il sito ufficiale http://www.privoxy.org/
La prima ragione per utilizzare Privoxy in congiunzione con TOR sono i DNS. Nel caso di DNS Injection le query potrebbero rivelare informazioni sul proprio indirizzo IP compromettendo tutta l’attività. Privoxy ci da la possibilità di bloccare questo tipo di richieste evitando la divulgazione del nostro IP reale.
Out of the box Privoxy è già configurato in maniera ottimale, basta soltanto dire di fare il forward di ogni tipo di richiesta sia DNS che HTTP verso la rete Tor.
1 | # apt-get install privoxy |
Il file di configurazione in /etc/privoxy
Inserire nel config la seguente riga:
forward-socks5 / 127.0.0.1:9050 . |
Questa di seguito è una configurazione tipo pronta all’uso:
confdir /etc/privoxy logdir /var/log/privoxy actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on. actionsfile default.action # Main actions file actionsfile user.action # User customizations filterfile default.filter logfile logfile listen-address :8123 toggle 1 enable-remote-toggle 0 enable-remote-http-toggle 0 enable-edit-actions 0 enforce-blocks 0 buffer-limit 4096 forward-socks5 / 127.0.0.1:9050 . forwarded-connect-retries 0 accept-intercepted-requests 0 allow-cgi-request-crunching 0 split-large-forms 0 keep-alive-timeout 5 socket-timeout 300 handle-as-empty-doc-returns-ok |
3. Configurare il sistema verso Tor
Configurare l’intero sistema significa poter utilizzare la rete Tor utilizzando la command line.
Per esempio con wget.
# export http_proxy=127.0.0.1:8123 # export https_proxy=127.0.0.1:8123 //Facoltativo poco sicuro. # wget http://www.google.com/map.xml |
Se vi restituirà:
Connessione a 127.0.0.1:8123... connesso. Richiesta Proxy inviata, in attesa di risposta.... |
Allora è andato tutto a buon fine…
Se invece l’applicazione che dovrai usare non tiene conto della variabile d’ambiente $http_proxy o $https_proxy. Bisognerà configurare il firewall per forzare la connessione.
Create questo piccolo script:
1 | #vi startTorEnv.sh |
copiate questo codice:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #!/bin/bash ## Verifica Root wai=`whoami` if [[ "$wai" != "root" ]] then echo " Hai bisogno di essere dio. Usa: sudo $0 " exit fi ## Prerouting system packet echo "1" > /proc/sys/net/ipv4/ip_forward ## HTTP TRAFFIC iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8123 ## HTTPS TRAFFIC iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 8123 ## CHECK FOR BURP pgrep -fl privoxy 2>&1 > /dev/null || echo "Verifica privoxy se è startato e se usi un altro proxy non posso controllarlo." |
Diamo i permessi di esecuzione e lanciamo lo script.
1 | # chmod +x startTorEnv.sh && ./startTorEnv.sh |
Dopo aver lanciato lo script verranno configurate le regole firewall per il redirect delle connessioni verso Tor. Per verificare se tutto è stato configurato correttamente.
1 | # tcpdump -Xnnv -i eth0 port 80 or port 443 or port 53 |
Questo terrà sotto controllo tutte le richieste che passeranno da quelle porte.
Spero di esservi stato utile. Se avete qualche correzione da fare, lasciatemi un commento sarò ben lieto di rispondervi.
Cheers!
Comments by Fabio Natalucci
Postfix: come configurare smtp esterno
Perfetto! Sono contento che ti sia stata utile.