F-SEC | F*ck Security Blog

Hacking, programacion y otras cosas Random.

View on GitHub
12 June 2021

Conectando nuestro Script Python con Tor

by

preview

Que tal, en este pequeño articulo vamos a aprender a realizar consultas a sitios Web con nuestros Scripts con Python pero de forma anónima, para este tutorial vamos a utilizar las siguientes herramientas…

Como dije anteriormente, vamos a necesitar de la librería requests para este tutorial podemos instalarlo de la siguiente forma… pip3 install requests una vez instalado proseguimos.

##Programming motherfuckers

Empezamos por la cabecera de nuestro Script, creamos el hashbag y le indicamos que vamos a usar el interprete de Python 3, luego exportamos las librerias que vamos a usar en este caso vamos a usar sys y requests.

#!/usr/bin/env python3

import sys
import requests

Ahora vamos crear la funcion mas importante de este tutorial, el cual se va a encargar de conectarnos con Tor, para esto vamos a hacer uso del metodo Session que nos brinda la libreria requests, con esto vamos a crear un proxy solo para usarlo con requests, son mas palabras, vamos al codigo…

def session_tor():
    session = requests.session()
    # Por defecto el sock de Tor en Linux se mantiene en el puerto 9050
    session.proxies = {'http':'socks5h://127.0.0.1:9050',
                       'https':'socks5h://127.0.0.1:9050'}
    return session

Notaras que hemos introducido una IP local y el numero de puerto 9050 el cual esta a la escucha por default en nuestro ordenador una vez instalado Tor.

preview

Si tu no tienes el puerto abierto en tu sistema asegurate que tor esta corriendo con el comando service tor status si vez que el servicio esta inactivo, puedes usar el comando service tor start para levantar el servicio.

preview

Poniendo a prueba el proxy

Es hora de poner a prueba nuestro proxy Tor, vamos a crear una funcion el cual tiene como unica funcion devolvernos el header del servidor.

La funcion recibira como parametro la url a la cual nos conectaremos, luego adentro de la funcion creamos una instancia llamada session, la cual usaremos para conectarnos al servidor por medio de los nodos de Tor.

def consulta(host):
    session = session_tor()
    req = session.get(host)

    if req.ok:
        for header in req.headers:
            print(header + " :" + req.headers[header])
    else:
        print (str(req.status_code))

Codigo completo

#!/usr/bin/env python3
import sys
import requests

# Sock5 (Tor)
def session_tor():
    session = requests.session()
    # Por defecto el sock de Tor en Linux se mantiene en el puerto 9050
    session.proxies = {'http':'socks5h://127.0.0.1:9050',
                       'https':'socks5h://127.0.0.1:9050'}
    return session

def consulta(host):
    session = session_tor()
    req = session.get(host)

    if req.ok:
        for header in req.headers:
            print(header + " :" + req.headers[header])
    else:
        print (str(req.status_code))

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print ("USO: \n\n{} <host>\n".format(sys.argv[0]))
    else:
        consulta(sys.argv[1])

preview

Apartir de aqui ya las posibilidades son muchas, puedes desarrollar un fuzzer dir para sitios onion, crear un Script para ataques de diccionarios sobre paginas con login, etc.

Eso fue todo, Happy Hacking!!

Fuentes: https://docs.python-requests.org/en/master/user/advanced/#proxies

tags: Programacion, - Python, - Tor