Escaneando con nmap a través de Tor

Este tutorial muestra cómo configurar algunas herramientas en Ubuntu para hacer un escaneo de puertos Nmap a través de la red Tor.

La técnica consiste en usar tortunnel via proxychains, ya que nos permite usar directamente el nodo de salida y por lo tanto nos provee mayor velocidad. Aún así, el escaneo será mucho más lento que uno normal por lo tendremos que asumir un pequeño sacrificio a cambio de "privacidad".

Esta técnica se puede utilizar en un test de intrusión, aunque evidentemente se prodiga más en atacantes malintencionados. Si se quiere conservar el anonimato hay que ser especialmente cuidadoso con las opciones especificadas en Nmap, y como veréis más adelante, se puede añadir una regla de iptables para bloquear tráfico saliente en un análisis determinado y proteger más la IP origen del tráfico.

1. Instalar tor y proxychains

- apt-get install tor tor-geoipdb proxychains
- vi /etc/tor/torrc
añade la línea "SocksPolicy accept 10.1.1.0/24"


2. Instalar tortunnel

- apt-get install libboost-system1.40-dev libssl-dev
- cd /opt/
- wget http://www.thoughtcrime.org/software/tortunnel/tortunnel-0.2.tar.gz
- tar xvzf tortunnel-0.2.tar.gz
- cd tortunnel-0.2/
- ./configure
- make
- make install

3. Editar proxychains para que funcione con tortunnel

- vi /etc/proxychains.conf
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
#socks4 127.0.0.1 9050
socks5 127.0.0.1 9050

4. Encontrar un nodo tor que soporte nmap

- curl http://128.31.0.34:9031/tor/status/all | grep --before-context=1 'Exit Fast Running V2Dir Valid' | awk '{ print $7 }' | sed '/^$/d'

5. Usar torproxy para elegir el nodo

$ torproxy -n 178.73.***.** -p 9900
torproxy 0.3 by Moxie Marlinspike.
Retrieving directory listing...
Connecting to exit node: 178.73.*.*:9001
SSL Connection to node complete. Setting up circuit.
Connected to Exit Node. SOCKS proxy ready on 9900.

6. Asegurar que la IP no se muestra al objetivo añadiendo una regla en el firewall

- iptables -A OUTPUT --dest -j DROP

7. Ejecutar el comando nmap con proxychains ** -Pn( para evitar el descubrimiento de hosts) y -sT(full Connect() para asegurarnos que todos los paquetes usan la red Tor),

- nmap -Pn -sT -p 80,443,21,22,23 80.14.163.161

ProxyChains-3.1 (http://proxychains.sf.net)

Starting Nmap 5.36TEST4 ( http://nmap.org ) at 2011-02-09 22:40 CET
|S-chain|-<>-127.0.0.1:5060-<><>-80.14.163.161:23-<--timeout |S-chain|-<>-127.0.0.1:5060-<><>-80.14.163.161:22-<--timeout |S-chain|-<>-127.0.0.1:5060-<><>-80.14.163.161:443-<--timeout |S-chain|-<>-127.0.0.1:5060-<><>-80.14.163.161:80-<><>-OK
RTTVAR has grown to over 2.3 seconds, decreasing to 2.0
RTTVAR has grown to over 2.3 seconds, decreasing to 2.0
|S-chain|-<>-127.0.0.1:5060-<><>-80.14.163.161:21-<--timeout
Nmap scan report for LMontsouris-156-25-20-161.w80-14.abo.wanadoo.fr (80.14.163.161)
Host is up (13s latency).
PORT STATE SERVICE
21/tcp closed ftp
22/tcp closed ssh
23/tcp closed telnet
80/tcp open http
443/tcp closed https

Nmap done: 1 IP address (1 host up) scanned in 60.86 seconds

Referencias
:
- nmap scan via TOR | hidemyip
- nmap and another program via tor tunnel by darryn van tonder
- Port Scanning Through The Tor Network

7 comentarios :

  1. Genial, muy bien explicado paso a paso... asi lo hago hasta yo que soy el mas torpe . :)

    ResponderEliminar
  2. Hola tengo un problema. Cuando intento elegir un nodo con el comando torproxy -n 178.73.***.** -p 9900 no consigo conectar.
    Os pego el resultado que me sale.
    Ah, estoy usando backtrack 5 sobre vmware.

    root@bt:~# torproxy -n 178.73.***.** -p 9900

    torproxy 0.2 by Moxie Marlinspike.
    Retrieving directory listing...
    terminate called after throwing an instance of 'ServerNotFoundException'
    what(): Specified server not found in directory...
    Aborted


    Gracias por el articulo, es muy interante :)
    Un saludo.

    ResponderEliminar
  3. men los asteriscos son para ocultar el resto de la direccion IP al publico, no debes colocarlos en tu consola hay debes escribir la direccion completa

    ResponderEliminar
  4. Probar a saltaros el paso de installar Tortunnel y esto os seguira funcionando.

    Porque ? Porque no le estais usando Genios....

    Estais tirando el proxy chains al 9050 que es donde escucha el tor.

    EL tortunel escucha en el 5060 por defecto. y no estais accediendo a el.

    Lo ke si estais haciendo es usar el sistema de 3 saltos del tor normal. con la consiguiente lentituz en los escaneos.



    Pista para los ke kieran jugar con tortunnel.
    NEcesitais instalar y configurar el privoxy para forwadear.
    Buscar salidas con version 0.2.1.30 y los puertos 443 9030

    ResponderEliminar
  5. Pues a mi me tira Retrieving directory listing...
    Segmentation fault


    y no doy con ello a ver a que se debe,cachis.

    ResponderEliminar
  6. h17s, prueba a reemplazar el fichero Directory.h por el que ha modificado manurautela:

    https://raw.github.com/manurautela/tortunnel/master/protocol/Directory.h

    A mi me ha funcionado.

    ResponderEliminar
  7. Nada, sigo con los mismos resultados, el caso es que todo esta bien configurado, socks5 , privoxy, tor, vidalia, he repasado todos los archivos de configuracion de de privoxy y demás y nada :_(

    Tambien he visto esto para tortunnel (v0.3) https://github.com/manurautela/tortunnel/commit/60951bae79ecc5b15d78fb05b3d02dc7bd4a77f0
    y sigo teniendo el mismo resultado, violacion de segmento.
    Ya no se que mas hacer... aqui he quedado, pero no es mi techo y se agradece alguna recomendacion mas. No se, tal vez puedas compartir tu archivo Directory.h o no se... estoy un poco bloqueado.
    Sea como sea, se agracede la ayuda ya prestada.
    Saludos

    ResponderEliminar