Toolkit_pentesting
🛠️ Toolkit_pentesting
Herramienta multipropósito de pentesting
Por Marcos Carmona García
Toolkit_pentesting es un script en Python diseñado como un conjunto de utilidades ligeras para tareas comunes de pentesting: reconocimiento DNS, escaneo de puertos, wrapper para
nmap
, fuerza bruta de directorios y utilidades auxiliares.
Propósito: aprendizaje y uso en entornos autorizados (hacking ético).
🧭 Contenido
toolkit_pentester.py
— script principal (CLI).README.md
— documentación (este archivo).
🔎 Características principales
- Banner ASCII de presentación.
- Escaneo de puertos TCP (uso de sockets).
- Wrapper para ejecutar
nmap
con argumentos personalizados. - Bruteforce de directorios usando una wordlist con
curl
para comprobar códigos HTTP. - Lookup DNS y Reverse DNS (
dig +short
). - Escaneo paralelo de puertos con threads.
⚙️ Requisitos
- Python 3.x
- Herramientas del sistema (se usan llamadas a):
nmap
(si quieres usar la opción--nmap
)curl
(para comprobación de directorios)dig
(para DNS / reverse DNS)
- Permisos: algunas funciones requieren ejecución como root (el script verifica
geteuid()
).
Si instalas en Linux, usa
sudo apt install nmap dnsutils curl
(o el equivalente en tu distro).
🚀 Instalación rápida
# clona el repositorio
git clone https://github.com/MarcosCarmonaGarcia/Toolkit_pentesting.git
cd Toolkit_pentesting
# (opcional) crea entorno virtual
python3 -m venv .venv
source .venv/bin/activate
# ejecutar ayuda
python3 toolkit_pentester.py --help
▶️ Uso y ejemplos
El script requiere el argumento
--target
/-t
(IP o dominio).
Escaneo básico de puertos (1–1024)
sudo python3 toolkit_pentester.py -t 192.168.1.10 --scan
Escaneo con nmap (pasa argumentos a nmap)
sudo python3 toolkit_pentester.py -t example.com --nmap -A -sV
# o
sudo python3 toolkit_pentester.py -t example.com --nmap -p 1-1000 -sV
Fuerza bruta de directorios (requiere wordlist)
sudo python3 toolkit_pentester.py -t example.com --dirb wordlist.txt
Lookup DNS y Reverse DNS
sudo python3 toolkit_pentester.py -t example.com --dns
sudo python3 toolkit_pentester.py -t 8.8.8.8 --reverse
Escaneo paralelo con threads (valor por defecto = 4)
sudo python3 toolkit_pentester.py -t example.com --threads 8 --scan
🧾 Salida esperada
El script imprime en consola resultados tipo:
- Lista de puertos abiertos (ej.
[22, 80, 443]
) - Salida de
nmap
(texto) - URLs encontradas en la fuerza bruta de directorios
- IPs/respuestas de
dig
para DNS / reverse DNS
🛡️ Buenas prácticas y advertencias legales
- ⚖️ Usa esta herramienta solo en sistemas sobre los que tengas permiso explícito.
- 🧪 Prueba en entornos controlados (VMs o laboratorios).
- 🔍 Revisa el código antes de ejecutar en producción — busca llamadas a
os.system
,subprocess
,eval
u operaciones que modifiquen el sistema. - 🧰 Usa entornos virtuales (
.venv
) para gestionar dependencias.
🤝 Cómo contribuir
- Haz fork del repositorio.
- Crea una branch descriptiva (
feature/xxx
ofix/yyy
). - Añade tests si modificas lógica crítica.
- Abre un Pull Request con descripción y pruebas realizadas.
Ideas de contribución
- Añadir
requirements.txt
opyproject.toml
. - Reescribir
toolkit_pentester.py
en versión modular (paquetes). - Implementar salida JSON (
--output resultados.json
). - Añadir un flag
--dry-run
para acciones potencialmente destructivas. - Integrar con
python-nmap
orequests
para evitar depender tanto de llamadas shell.
🧾 CHANGELOG
0.1.0
— Versión inicial:toolkit_pentester.py
con funciones básicas: scan_ports, nmap_scan, brute_directories, dns_lookup, reverse_dns, thread_scan.
📜 Licencia
Si no hay licencia en el repo, se recomienda añadir una (por ejemplo MIT).
Ejemplo de cabecera en LICENSE
(opcional): MIT License.
⚠️ Aviso final
Esta herramienta y documentación están pensadas con fines educativos y de hacking ético. El autor y colaboradores no se responsabilizan por el uso indebido. Utiliza siempre con permiso y responsabilidad.