Penetration testCome 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!