
Diferentes scripts de utilidad para pentesting y hacking.
El proyecto Pentesting-Multitool surge de la necesidad de reunir algunas herramientas de pentesting en una sola. Se desarrollará usando Python3, agregando algunas librerías externas como DNSPython, pythonwhois o scapy.
Las funciones principales del script son recopilar información sobre los registros DNS, el dominio u otros dispositivos.
Clonar pentesting-multitool: $ git clone https://github.com/ffmancera/pentesting-multitool.git
Librerías Python: # pip3 install dnspython pythonwhois shodan scapy-python3
Nota: Esto instala todas las librerías necesarias de python3, pero debes instalar TCPReplay; búscalo en tu gestor de paquetes. Ejemplos:
Debian o Ubuntu: # apt-get install tcpreply
Arch Linux: # pacman -S tcpreply
Antes de usar pentesting-multitool.py, sigue estos pasos:
1.- Instala python3: el script se ha desarrollado usando python3.5.2, pero creo que python3.x debería funcionar correctamente; si no es así, repórtalo. 2.- Instala el módulo python dnspython-1.15.0, puedes consultarlo desde el sitio web oficial o el repositorio oficial de GitHub. Si puedes usar la librería con otra versión, repórtalo. 3.- Instala el módulo python pythonwhois-2.4.3, puedes descargarlo desde el sitio web oficial. Si puedes usar la librería con otra versión, repórtalo. 4.- Instala el módulo python shodan, puedes consultarlo desde el repositorio oficial de GitHub. 5.- Instala el módulo python scapy-python3 para python3, puedes descargarlo desde el repositorio oficial. 6.- Instala TCPReplay, puedes descargarlo desde el sitio web oficial.
Bien, ahora ya estás listo para usar el script, ¡disfrútalo!
Uso: $ python3 pentesting-multitool.py -d <dominio> -r <registro>
Opciones: -f <nombre_archivo>
Advertencia: No todos los registros DNS están implementados, así que verifica en esta tabla qué registros DNS están disponibles.
Uso: $ python3 pentesting-multitool.py -w <dominio>
Opciones: -f <nombre_archivo>
La función whois genera un diccionario con la información; puedes escribir la información en un archivo con la opción -f o imprimirla.
A veces la información está oculta, así que ten en cuenta esa posibilidad.
Uso: $ python3 pentesting-multitool.py -s <consulta_de_búsqueda>
Opciones: -f <nombre_archivo>, -u (bandera de información completa)
Nota: Si se establece la bandera -u, obtendrás información completa sobre los dispositivos o servicios encontrados. De lo contrario, solo obtendrás la IP.
La función de búsqueda Shodan (ssearch) utiliza la librería externa Shodan para integrar el navegador Shodan en nuestro script.
El script implementa una "búsqueda simple" (tan simple como quieras); para los parámetros de la consulta de búsqueda pondremos exactamente lo mismo que si estuviéramos buscando usando el sitio web de Shodan, pero con los filtros separados por "-". Aquí hay un ejemplo de consulta de búsqueda:
"ip:8.8.8.0/24-ports:22"
Uso: # python3 pentesting-multitool.py -b <ip> -p <puertos>
Opciones: -f <nombre_archivo>
La función de captura de banner primero crea un socket con la IP y el puerto especificados, de modo que podemos usar una lista de puertos (separados por :).
Advertencia: No todos los servicios están implementados, así que verifica en esta tabla qué servicio está disponible.
| SERVICIO | ESTADO |
|---|---|
| SSH | ACTIVO |
| FTP | ACTIVO |
| SMTP | ACTIVO |
| MARIADB | ACTIVO |
Uso: # python3 pentesting-multitool.py -o <número de envíos o paquetes (modo generador)> -f <nombre_archivo_pcap>
Opciones: -g (bandera de modo generador)
La función de inundación tiene dos opciones. La primera opción es el modo generador, que crea un archivo PCAP con una cantidad específica de paquetes y un nombre. Esos paquetes tienen dos capas: IP e ICMP (solicitud de eco).
Para el modo de inundación, usando TCPReplay, enviaremos la lista de paquetes incluida en el archivo PCAP en un bucle de n iteraciones. Se recomienda agregar 200 paquetes al archivo para un ataque DOS y 100 paquetes para generar un aumento de latencia, pero esto varía entre redes y puntos de acceso.
Uso: # python3 pentesting-multitool.py -z <ip objetivo> -ng <número de generaciones> -n <número de paquetes> -l <Capa (UDP, TCP, ICMP)> -f <nombre_archivo_pcap>
La función de fuzzing generará un número de paquetes aleatorios con capa UDP, TCP o ICMP según lo indicado por el usuario, n veces (parámetro de número de generaciones). Después de enviar el paquete, esperará una respuesta durante un segundo; si no hay respuesta, se creará un paquete por defecto. Todos los paquetes se almacenarán posteriormente en un PCAP, donde el primer paquete es el enviado y el segundo es la respuesta de este paquete.
Además, es obvio que debes establecer la IP objetivo porque no tiene sentido configurarla usando la función RandIP de Scapy.
Uso: # python3 pentesting-multitool.py -m <interfaz> -v <IP víctima> -a <Puerta de enlace AP>
Bien, primero quiero aclarar que no es una herramienta diseñada para atacar, es una herramienta para comprobar si nuestra red es vulnerable a un ataque de tipo mitm mediante ARP Spoofing.
Usando ARP Spoofing, indicamos al router que la IP de la víctima está en nuestra dirección MAC y, al mismo tiempo, indicamos a la víctima que la IP de la puerta de enlace está en nuestra dirección MAC, por lo que estamos interceptando todo el tráfico entre la víctima y el router.
Me gustaría agradecer al SUGUS (Grupo de Software Libre) de la Universidad de Sevilla y a Shodan por su ayuda y apoyo.
Por favor, si tienes alguna sugerencia sobre el proyecto, no dudes en implementarla y hacer un pull request, o puedes contactarme en [email protected]
Gracias por tu colaboración.
¡Feliz Hack!
| RECORDS | ESTADO |
|---|
| A | Activo |
| AAAA | Activo |
| MX | Activo |
| NS | Activo |
| TXT | Activo |
| SOA | Activo |