¿Alguna vez has encontrado datos sensibles o confidenciales por accidente? Ya sabes, ¿ese archivo que se suponía que debía ser eliminado, pero que de alguna manera terminó quedando en el escritorio? ¿O una copia de seguridad de ese archivo que quedó en el servidor?
Trishul es una nueva aplicación de código abierto que escanea tu sistema de archivos y recupera textos sensibles. Incorpora varias opciones para filtrar por tipo de archivos y palabras clave.
Esta herramienta, escrita en Python, examina el contenido del sistema de archivos y extrae información sensible, como claves criptográficas, contraseñas, API Keys y otros datos sensibles, de varios tipos de archivos.

Instalación de Trishul
Requisitos Previos
Antes de empezar a utilizar Trishul, es necesario instalar algunas dependencias que Trishul necesita para funcionar correctamente
Instalación de textract y antiword
Trishul utiliza la potente librería textract para extraer texto de cualquier tipo de archivo que no sea texto, como xlsx
, docx
o incluso jpeg
y mp4
# puedes instalar textract con pip3
pip3 install textract

antiword es algo que utiliza el propio textract para procesar archivos .doc
en .docx
y luego extraer texto de ellos.
# podemos simplemente usar apt para instalarlo
apt install antiword
Una vez que tengas las dependencias en su lugar, puedes empezar a usar Trishul
git clone https://github.com/SxNade/Trishul
cd Trishul
chmod +x trishul

Ejemplos de Uso
Para ver los comandos de ayuda:
./trushul --help

Especificación de la ruta del directorio
La opción -d
o --dir
se puede utilizar para especificar el directorio desde el que iniciar la búsqueda
./trishul -d fake_dir
_______ _ _ _ __ ___
|__ __| (_) | | | | /_ | / _ \
| |_ __ _ ___| |__ _ _| |________ _| || | | |
| | '__| / __| '_ \| | | | |______\ \ / / || | | |
| | | | \__ \ | | | |_| | | \ V /| || |_| |
|_|_| |_|___/_| |_|\__,_|_| \_/ |_(_)___/
Author: z3r0day
Copyright (c) 2021
[ERROR] Directory path:fake_dir not found

Especificación del nombre del archivo
La opción -f
o --file
puede utilizarse para especificar las palabras clave que deben buscarse en los nombres de archivo durante la búsqueda recursiva
Otra cosa importante a tener en cuenta es que cuando especificas nombres de archivos personalizados también necesitas especificar palabras clave personalizadas para buscar, es decir, no puedes especificar sólo el nombre del archivo y luego dejar que Trishul busque cadenas específicas dentro de los archivos por su cuenta. Así que si especificas una palabra clave de nombre de archivo personalizada, entonces también necesitas especificar una cadena o cadenas personalizadas para buscar en ellos
En caso de que sólo necesites especificar un nombre de archivo, puedes especificar una palabra clave aleatoria y también especificar el valor verbose de 1, que tiene dos propósitos, uno de los cuales es mostrar todos los archivos encontrados antes de escanearlos y el otro se discute más adelante, puedes especificarlo con -v 1
o --verbose 1
./trishul -d ./ -f 'pass' -s 'fake' -v 1
_______ _ _ _ __ ___
|__ __| (_) | | | | /_ | / _ \
| |_ __ _ ___| |__ _ _| |________ _| || | | |
| | '__| / __| '_ \| | | | |______\ \ / / || | | |
| | | | \__ \ | | | |_| | | \ V /| || |_| |
|_|_| |_|___/_| |_|\__,_|_| \_/ |_(_)___/
Author: z3r0day
Copyright (c) 2021
[VERBOSE] File-Names: ['./passwd.txt', './password.txt']
----------------------------------------------------------------------------------------------------
[INFO] scanning ./passwd.txt
[INFO] scanning ./password.txt

Si no se especifica ningún nombre de archivo o cadena, Trishul busca las palabras clave y las cadenas del nombre de archivo por defecto, determinadas por un valor de nivel especificado con -l
o --level
, y actualmente sólo está configurado el nivel 0 en la herramienta.
Especificar cadenas o datos a buscar en los archivos
La opción -s
o --strings
se puede utilizar para especificar palabras clave, cadenas para buscar en el contenido del archivo
./trishul -d ./ -f creds,wp-config -s pass,DB -t '.php'
_______ _ _ _ __ ___
|__ __| (_) | | | | /_ | / _ \
| |_ __ _ ___| |__ _ _| |________ _| || | | |
| | '__| / __| '_ \| | | | |______\ \ / / || | | |
| | | | \__ \ | | | |_| | | \ V /| || |_| |
|_|_| |_|___/_| |_|\__,_|_| \_/ |_(_)___/
Author: z3r0day
Copyright (c) 2021
[INFO] scanning ./wp-config.php
[INFO] Found Keyword: pass on line number: 0 in ./wp-config.php
[LINE] Contents: DB_PASS = ('passwordiseasy123')
[INFO] Found Keyword: DB on line number: 0 in ./wp-config.php
[LINE] Contents: DB_PASS = ('passwordiseasy123')
Búsqueda por defecto en Trishul -l o –level
La opción -l
o --level
se puede utilizar para especificar el nivel de archivos y palabras clave por defecto a buscar, sólo se requiere si no se especifican archivos y cadenas personalizadas
Por ahora el programa sólo soporta el nivel 0, los niveles crecientes básicamente indican el número de palabras clave en nombres de archivos y cadenas que la herramienta buscará por defecto, por ahora sólo el nivel 0 está configurado para ejecutarse, pronto se añadirán más niveles que permitirán al usuario buscar archivos de configuración, etc. utilizados por programas no predeterminados o software potencialmente famoso en uso
A continuación, se muestran dos diccionarios utilizados en el código de Trishul para el nivel 0 y estos pueden ser ampliados más
default_dict_filenames_l0 = {
0 : 'wp-config',
1 : 'password',
2 : 'secret',
3 : 'api',
4 :'apikey',
5 : 'id_rsa',
6 : 'passwd',
7 : 'shadow',
8 : 'creds',
9 : 'employee',
10 : 'access'
}
default_dict_strings_l0 = {
0 : 'DB_PASS',
1 : 'username',
2 : 'password',
3 : 'secret',
4 : 'apikey',
5 : 'api_key',
6 : '-----BEGIN OPENSSH PRIVATE KEY-----',
7 : 'credentials'
}
Especificación de la extensión del tipo de archivo
La opción -t o --type
se puede utilizar para especificar los tipos de archivo que se deben buscar al escanear determinados nombres de archivo y cadenas
Al buscar archivos que no sean .txt con Trishul el usuario puede especificar la opción adicional -v
o --verbose
para mostrar todos los datos de texto presentes en el archivo, ya que con archivos que no sean .txt como .doc y .docx el programa no podrá determinar el número de línea, etc.
./trishul -d ./ -l 0 -v 1 -t '.txt,.php'
_______ _ _ _ __ ___
|__ __| (_) | | | | /_ | / _ \
| |_ __ _ ___| |__ _ _| |________ _| || | | |
| | '__| / __| '_ \| | | | |______\ \ / / || | | |
| | | | \__ \ | | | |_| | | \ V /| || |_| |
|_|_| |_|___/_| |_|\__,_|_| \_/ |_(_)___/
Author: z3r0day
Copyright (c) 2021
[INFO] scanning for Default files and keywords...
[INFO] scanning level set to 0
[VERBOSE] File-Names: ['./wp-config.txt', './passwd.txt', './wp-config.php', './shadow.txt', './password.txt']
----------------------------------------------------------------------------------------------------
[INFO] scanning ./wp-config.txt
[INFO] scanning ./passwd.txt
[INFO] scanning ./wp-config.php
[INFO] Found Keyword: DB_PASS on line number: 0 in ./wp-config.php
[LINE] Contents: DB_PASS = ('passwordiseasy123')
[INFO] Found Keyword: password on line number: 0 in ./wp-config.php
[LINE] Contents: DB_PASS = ('passwordiseasy123')
[INFO] scanning ./shadow.txt
[INFO] Found Keyword: password on line number: 2 in ./shadow.txt
[LINE] Contents: password123####
[INFO] scanning ./password.txt
Algunas personas almacenan inadvertidamente archivos sensibles en texto plano. Si almacenas archivos sensibles en el sistema de archivos, como alguien de TI, deberías comprobar el sistema de archivos regularmente para detectar cualquier dato sensible. Trishul es, sin duda, una gran alternativa para auditorias de archivos o uso forense.
Trishul (este enlace se abre en una nueva ventana) por SxNade (este enlace se abre en una nueva ventana)
Trishul searches for sensitive data with options to specify custom files and custom keywords to look for in the filesystem