
🐍 - Rastreador en sitios de la red Tor, buscando palabras clave.
Rastreador en sitios de la red tor, en busca de palabras clave.
VigilantOnion complementa a los equipos de Cyber Threat Intelligence para que puedan monitorear y obtener el mejor resultado de las consultas realizadas en la red tor.
En su primera versión, usando django para la administración y creación de dashboards, había una gran dificultad en su uso. En esta nueva versión, las consultas y la metodología utilizada para eliminar falsos positivos son mejores.
Para eliminar los falsos positivos y que el nivel de asertividad sea mejor, estoy usando yararule y notas, estableciendo valores altos para las reglas que considero más relevantes, como se muestra en la figura a continuación:

Estos valores son dinámicos y pueden cambiar según su necesidad.
Se pueden agregar nuevas yararules tanto a los archivos de categorías como de palabras clave, para que pueda eliminar falsos positivos y tener resultados más agradables.
Pocas cosas necesitan ser cambiadas en el archivo de configuración, sin embargo son de gran importancia para usar el script.
Los campos a continuación son para configurar el proxy de la red tor, si está ejecutando el script en Windows el puerto normalmente cambia a 9051
server_proxy: localhost
port_proxy: 9050
type_proxy: socks5h
El campo timeout del servidor para que usted determine el tiempo de espera de las solicitudes, cuanto mayor sea el tiempo, más podrá tardar el script.
timeout: 30
Los campos score del servidor para que usted determine el valor mínimo de puntuación para que la URL sea rastreada y enviada al syslog.
score_categorie: 20
score_keywords: 40
Algunas urls estarán fuera de línea y es difícil saber si volverán o no, así que creé un contador, con el que usted puede determinar el número máximo de intentos, que una vez alcanzado el script ya no intentará acceder a esa url.
count_categories: 5
Cada vez que se realiza un rastreo en la url se guarda con la fecha de ese último escaneo, y usted puede determinar un límite de tiempo en días entre un escaneo y otro en esa misma url.
daystime: 10
Y finalmente ya no uso django, ahora para ver sus resultados necesita un syslog como Splunk o ELK, y solo tiene que definirlos aquí
sendlog: True
logport: 5151
logip: "localhost"
Su uso es más sencillo, solo necesita tener instalado tor, y las librerías de python, para ello ejecute el comando a continuación:
pip install -r requirements.txt
Después del cliente tor y las librerías instaladas use el comando --help para obtener detalles de su uso.
➜ python3 observer.py -h
usage: observer.py [-h] [--config CONFIG] [--crawler] [--url URL] [--search]
[--engines ENGINES] [--find FIND] [--pastebin PASTEBIN]
VigilantOnion is a script to collect as many sites from the onion network as
possible and add them to a database. With all possible sites collected, a
crawler will be created so that we can monitor the search for keywords defined
by you.
optional arguments:
-h, --help show this help message and exit
--config CONFIG, -c CONFIG
Configuration file in yaml format
--crawler Starts the TOR network URL crawler process.
--url URL, -u URL Specifies the URL to crawl.
--search Start the URL search process on the surface. Select a
framework where you want to search for urls.
--engines ENGINES, -e ENGINES
Validates the available engines for searching URLs.
--find FIND, -f FIND Search for arguments on .onion network research sites
--pastebin PASTEBIN Search for .onion urls in pastebin paste.
You can also develop new framework so that the database has more urls onions.
Para que el script funcione necesitas nuevas urls, y para eso creé un método que busca urls en la superficie, como el ejemplo de abajo:
python3.6 observer.py --config config/config.yml --search -e "gist,reddit,cybersecuritynews,discoverdarkwebservice"
También puedes obtener URLs directamente desde archivos de pastebin, como el ejemplo de abajo:
python3.6 observer.py --config config/config.yml --search --pastebin "s7TPZCKz,kSaYqtVX,0GYEEApe,3qkqyqiM,RfgBLg5Q,gtksBij4,FpPzQKHg,wB0uh00r,jDGJhQCC,q6DZ9U,ac2TnUjY,pv4xRWXQ,PgLUE7pF,9XW5Pc7R,hqyGMi7e,UZRM2z8y,7tQvV5CU,9JhVq3H3,Cb5HTydt,kMW5wp3N,v5Yq66sH,2q3SsR3a,gnd8jx97,QwSJYhYF,iNydrDfe"
Después de recopilar algunas URLs, puedes iniciar el proceso del crawler. Ten en cuenta que el primero tardará más porque es donde se realizará la clasificación y categorización del contenido del sitio web.
python3.6 observer.py --config config/config.yml --crawler
Si quieres rastrear una sola URL, usa:
python3.6 observer.py --config config/config.yml --crawler --url "76qugh5bey5gum7l.onion"
La salida del resultado es json, y en el mismo formato se envía al syslog elegido.
{
"lastscan": "2020-06-29",
"id": 10760,
"type": "URI",
"url": "lolitmhfkpif7sky.onion",
"title": "Lolita Club",
"baseurl": "vyqi2nm36otufrgg.onion",
"status": "Online",
"count_status": 0,
"source": "Script",
"categorie": [
{
"full_categorie": [
"no_match"
],
"score_categorie": 0
}
],
"keywords": [
{
"full_keywords": [
"no_match"
],
"score_keywords": 0
}
],
"discovery_date": "2020-06-29 14:24"
}
Uso splunk, y puedes hacer que tu dashboard se vea como el mío:

Siéntete libre de hacer fork o abrir un issue para colaborar con el proyecto.