Company Passwords Profiler (también conocido como ComPP) ayuda a hacer una lista de palabras de fuerza bruta para una empresa objetivo con fines de pentesting.
▄████████ ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄███████▄ ▄███████▄
███ ██ ███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███
███ █▀ ██ ███ ███ ███ ██ ███ ███ ██ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███ ███ ██ ███ ███ ███ ▀█████████▀ ▀█████████▀
██ █▄ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███ ██ ███ ██ ██
███████▀ ▀██████▀ ▀█ ███ █▀ ▄████▀ ▄████▀ :)
Version : 1.0.5
usage: compp [-h] [-p PERMUTATIONS] [-c CONFIG] [-l] [-n] [-o OUTPUT] [-v] [input_file]
Company Passwords Profiler (ComPP)
positional arguments:
input_file company.json input file
optional arguments:
-h, --help show this help message and exit
-p PERMUTATIONS, --permutations PERMUTATIONS
Number of permutations
-c CONFIG, --config CONFIG
Configuration file
-l, --leet Add 1337 passwords transformation
-n, --numbers Add numbers to password
-o OUTPUT, --output OUTPUT
Directs the output to a file of your choice
-v, --version Show the version of this program
Qué es ComPP
La herramienta responde a una necesidad de generar listas de palabras rápidamente con pocas entradas. Las contraseñas generadas contendrán información genérica de la empresa con transformaciones como APPNAME2019! o Company75000$.
El uso principal de la lista de palabras generada es con ataques remotos de fuerza bruta y spraying de contraseñas (password spraying) como un servicio ssh o un sitio web de WordPress.
Esta herramienta pretende sustituir a CeWL porque el scrapping web no es la forma más eficiente de generar una lista de palabras.
Instalación
En BlackArch:
sudo pacman -Syu compp
Con PIP de paquetes PyPI:
pip install ComPP
Con python desde el repositorio de GitHub:
git clone git@github.com:sec-it/ComPP.git
cd ComPP
python setup.py install
Entradas de Datos
Las entradas del usuario pueden ser rellenadas en el prompt interactivo o a través de un archivo json. Si una entrada es desconocida para el usuario, basta con dejar el campo vacío para pasar al siguiente campo. Aquí está el prompt completo del programa:
$ compp
▄████████ ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄███████▄ ▄███████▄
███ ██ ███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███
███ █▀ ██ ███ ███ ███ ██ ███ ███ ██ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███ ███ ██ ███ ███ ███ ▀█████████▀ ▀█████████▀
██ █▄ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███ ██ ███ ██ ██
███████▀ ▀██████▀ ▀█ ███ █▀ ▄████▀ ▄████▀ :)
Version : 1.0.5
Fill the differents inputs (case insensitive). Leave blank for unknow fields.
[+] Enter company/application names (comma separated): Company,Comp
[+] Enter company zip codes (comma separated): 75,75000
[+] Enter company cities names (comma separated): Paris
[+] Useful keywords (comma separated): Appname
O,
$ compp example.json
Salidas y Resultados
El tamaño de la salida puede variar con las opciones proporcionadas. Aquí hay una vista previa de lo que puede esperar con las opciones por defecto:
75#Appname
75000%company
Appname1995?
appname$
appname1995+
CompParis2000
Company75000!
COMPANYAPPNAME2019#
PARISCOMP!
ParisCompany2021_
Paris75000@
...
¿Cuáles son las transformaciones propuestas?
- En primer lugar, la herramienta calcula la transformación de mayúsculas y minúsculas para cada campo. El conjunto de campos originales y los 3 conjuntos generados se añaden a la lista de palabras.
- A continuación, la herramienta aplica
itertools.combination()
a cada conjunto con un tamaño por defecto de hasta 2. El uso de esta combinación evita tener la misma palabra dos veces en la misma contraseña. Las combinaciones generadas se añaden a la lista de palabras - La herramienta añade un rango de años a la lista de palabras generada previamente. La lista de palabras original también se mantiene.
- La herramienta añade un rango de caracteres especiales a la lista de palabras generada previamente. La lista de palabras original también se conserva.
- (Opcional) La herramienta añade un rango de números a la lista de palabras generada previamente. La lista de palabras original también se conserva.
- (Opcional) La herramienta añade una transformación l33t a la lista de palabras generada previamente. La lista de palabras original también se conserva.
ComPP (este enlace se abre en una nueva ventana) por sec-it (este enlace se abre en una nueva ventana)
Company Passwords Profiler (aka ComPP) helps making a bruteforce wordlist for a targeted company.