╔═══════════════════════════════════════════════════════════╗
║ ║
║ ██████╗ ██╗ ██╗███████╗ ██████╗███╗ ██╗███╗ ███╗ ║
║ ██╔══██╗╚██╗ ██╔╝██╔════╝██╔════╝████╗ ██║████╗ ████║ ║
║ ██████╔╝ ╚████╔╝ ███████╗██║ ██╔██╗ ██║██╔████╔██║ ║
║ ██╔═══╝ ╚██╔╝ ╚════██║██║ ██║╚██╗██║██║╚██╔╝██║ ║
║ ██║ ██║ ███████║╚██████╗██║ ╚████║██║ ╚═╝ ██║ ║
║ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝╚═╝ ╚═══╝╚═╝ ╚═╝ ║
║ ║
╚═══════════════════════════════════════════════════════════╝
Escáner de Red Avanzado con Detección de Vulnerabilidades
Características • Instalación • Uso • Ejemplos • Documentación
PysCNM (Python Security Network Monitor) es un escáner de red avanzado diseñado para profesionales de seguridad, administradores de sistemas y entusiastas de la ciberseguridad. Combina escaneo de puertos, detección de servicios/versiones y búsqueda automática de vulnerabilidades en la base de datos de ExploitDB.
- ✅ Escaneo TCP/UDP - Soporte para ambos protocolos
- ✅ Multithreading - Escaneo rápido con hasta 100 threads concurrentes
- ✅ Detección de SO - Identificación automática del sistema operativo objetivo
- ✅ Banner Grabbing - Captura de banners de servicios para identificación
- ✅ Identificación de Servicios - Detecta qué servicio corre en cada puerto
- ✅ Detección de Versiones - Extrae versiones específicas de:
- Servidores web (Apache, Nginx, IIS)
- SSH (OpenSSH)
- FTP, SMTP, MySQL, PostgreSQL
- DNS, NTP, SNMP (UDP)
- Y más...
- ✅ Integración con ExploitDB - Búsqueda automática en la base de datos de ExploitDB
- ✅ Detección de CVEs - Identifica CVEs asociados a cada servicio
- ✅ Links Directos - Proporciona URLs directas a exploits y documentación
- ✅ Cache Inteligente - Evita búsquedas duplicadas para mayor velocidad
- ✅ Salida Colorizada - Interfaz de terminal clara y organizada
- ✅ Exportación a TXT - Guarda resultados en formato de texto estructurado
- ✅ Información Detallada - Incluye puertos, servicios, versiones, CVEs y exploits
- Python 3.7 o superior
- pip (gestor de paquetes de Python)
- Conexión a Internet (para búsqueda de vulnerabilidades)
# Instalar dependencias requeridas
pip install requests beautifulsoup4# Clonar el repositorio
git clone https://github.com/Killerpop/PySCNM.git
# Navegar al directorio
cd pyscnm
# Instalar dependencias
pip install -r requirements.txt
# Dar permisos de ejecución (Linux/Mac)
chmod +x pyscnm1.py
# Ejecutar
python3 pyscnm1.pypython3 pyscnm1.pyEl script te guiará a través de un proceso interactivo donde deberás proporcionar:
- IP o Dominio objetivo (ej:
192.168.1.1oexample.com) - Rango de puertos (ej:
1-1000,80-443, o80) - Protocolo (
tcp,udp, oambos)
| Rango | Descripción |
|---|---|
1-1000 |
Puertos más comunes (rápido) |
1-65535 |
Todos los puertos (muy lento) |
80,443 |
Puertos web específicos |
20-25 |
Rango personalizado |
80 |
Puerto único |
$ python3 pyscnm1_0_mejorado.py
Ingresa la IP o dominio objetivo: 192.168.1.100
Dominio resuelto: 192.168.1.100
Ingresa rango de puertos (ej: 1-1000 o 80): 1-1000
¿Qué protocolo desea escanear? (tcp/udp/ambos): tcp
======================================================================
ESCANEANDO PUERTOS TCP: 1-1000
======================================================================
[+] Puerto TCP 22 ABIERTO | ssh | OpenSSH 8.2p1 Ubuntu
[*] Buscando vulnerabilidades para: ssh OpenSSH 8.2p1 Ubuntu
[!] Encontradas 2 vulnerabilidades
[+] Puerto TCP 80 ABIERTO | http | Apache/2.4.41 (Ubuntu)
[*] Buscando vulnerabilidades para: http Apache/2.4.41
[!] Encontradas 3 vulnerabilidadesPUERTOS TCP ABIERTOS:
----------------------------------------------------------------------
[+] Puerto 80 | Servicio: http | Apache/2.4.49
[!] VULNERABILIDADES ENCONTRADAS:
1. Apache HTTP Server 2.4.49 - Path Traversal & RCE
CVEs: CVE-2021-41773, CVE-2021-42013
URL: https://www.exploit-db.com/exploits/50383
2. Apache 2.4.50 - Remote Code Execution
CVEs: CVE-2021-42013
URL: https://www.exploit-db.com/exploits/50512¿Deseas exportar los resultados? (s/n): s
[+] Resultados exportados a: escaneo_192.168.1.100_20250213_143052.txtpyscnm/
├── pyscnm1_0_mejorado.py # Script principal
├── README.md # Este archivo
├── requirements.txt # Dependencias Python
├── LICENSE # Licencia MIT
├── docs/
│ ├── EXPLOITDB_API_DOCUMENTATION.md
│ └── exploitdb_api_example.json
└── examples/
└── escaneo_ejemplo.txt # Ejemplo de reporte exportado
Edita el archivo pyscnm1_0_mejorado.py y modifica la línea:
self.timeout_socket = 3 # Cambiar a 5 para redes lentasmax_threads = 100 # Cambiar a 50 para sistemas con menos recursosEl script usa la API pública de ExploitDB. Puedes ajustar el número de resultados en:
for row in rows[:5]: # Cambiar 5 por el número deseadoPara más información sobre la integración con ExploitDB, consulta:
Este script es una herramienta educativa y de auditoría de seguridad. SOLO debe usarse en:
- ✅ Sistemas de tu propiedad
- ✅ Redes para las que tienes autorización explícita
- ✅ Entornos de prueba y laboratorios
- ✅ Programas de bug bounty autorizados
❌ NO usar para:
- Escanear redes sin autorización
- Actividades ilegales o maliciosas
- Pruebas sin consentimiento del propietario
- Violación de términos de servicio
IMPORTANTE: El uso no autorizado de este software puede ser ilegal en tu jurisdicción. El autor no se hace responsable del mal uso de esta herramienta.
- Siempre obtén autorización por escrito antes de escanear
- Respeta las políticas de seguridad de las organizaciones
- Reporta vulnerabilidades de forma responsable
- Cumple con las leyes locales de ciberseguridad
Solución: El servidor de ExploitDB puede estar temporalmente saturado. El script automáticamente intenta con un método alternativo.
Causas posibles:
- El objetivo no está accesible (ping, firewall)
- Todos los puertos están cerrados
- Timeout muy bajo para la red
Solución: Aumenta el timeout o verifica conectividad con ping.
Solución: Algunos servicios no exponen su versión fácilmente. El script intentará identificar por puerto conocido.
Solución:
- Reduce el rango de puertos
- Escanea solo TCP (UDP es más lento)
- Aumenta el número de threads (si tu sistema lo permite)
¡Las contribuciones son bienvenidas! Si deseas mejorar PysCNM:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
- Soporte para escaneo IPv6
- Detección de versiones más precisa
- Integración con otras bases de datos de vulnerabilidades (NVD, CVE)
- Exportación en formatos JSON/XML/HTML
- Modo stealth/sigiloso
- GUI opcional
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
G. Zaballa
- GitHub: @Killerpop
- Email: gzaballa444@gmail.com
- ExploitDB por su invaluable base de datos de exploits
- Comunidad de seguridad informática
- Contribuidores y testers
- ✅ Escaneo TCP/UDP
- ✅ Detección de versiones
- ✅ Integración ExploitDB
- ✅ Detección de CVEs
- Exportación JSON/XML
- Modo verbose/debug
- Escaneo de rangos de IPs
- Rate limiting configurable
- GUI con Tkinter/Qt
- Integración con NIST NVD
- Análisis de vulnerabilidades avanzado
- Base de datos local de resultados
⭐ Si este proyecto te resulta útil, considera darle una estrella ⭐
Made with ❤️ for the security community