Este script es una herramienta de escaneo de red diseñada para identificar dispositivos IoT y detectar vulnerabilidades en ellos. Esta herramienta utiliza Nmap para escanear la red y detectar dispositivos, y luego ejecuta scripts NSE (Nmap Scripting Engine) para identificar vulnerabilidades conocidas. Además, utiliza la base de datos de ExploitDB para buscar exploits relacionados con las vulnerabilidades detectadas.
- Identificar Dispositivos IoT: Escanear la red para detectar dispositivos IoT conectados.
- Detectar Vulnerabilidades: Utilizar scripts NSE de Nmap para detectar vulnerabilidades en los dispositivos.
- Buscar Exploits Relacionados: Utilizar la base de datos de ExploitDB para buscar exploits relacionados con las vulnerabilidades detectadas.
- Generar Informes Detallados: Generar un informe en formato JSON con los detalles de los dispositivos y sus vulnerabilidades.
- Python 3.x: El script está escrito en Python 3.
- Nmap: Necesario para realizar el escaneo de red y ejecutar scripts NSE.
- ExploitDB: Necesario para buscar exploits relacionados con las vulnerabilidades detectadas.
- python-nmap: Librería de Python para interactuar con Nmap.
- argparse: Librería de Python para manejar argumentos de línea de comandos.
Clona el repositorio del proyecto en tu máquina local:
git clone https://github.com/elliotsecops/IoTSecurityTool.git
cd IoTSecurityTool
Crea y activa un entorno virtual para el proyecto:
python3 -m venv myenv
source myenv/bin/activate
Instala las dependencias de Python dentro del entorno virtual: (la versión de nmap que debas descargar puede depender de tu maquina así que si la descarga falla entonces intenta con sus variantes)
pip install python-nmap argparse
Descarga la base de datos de ExploitDB y colócala en la ruta correcta:
(Debes saber muy bien el path donde guardas la descarga porque será necesario para el escaneo, por ejemplo /home/you-user/exploitdb
):
git clone https://gitlab.com/exploit-database/exploitdb.git
El script requiere privilegios de root para realizar el escaneo de detección de sistema operativo. Ejecuta el script con sudo
:
sudo -E $(which python3) main.py 192.168.1.0/24 --exploitdb_path /home/elliot/exploitdb
Aquí tienes un ejemplo completo de cómo ejecutar el script:
# Navegar al directorio del proyecto
cd `/home/you-user/Downloads/IoTSecurityTool`
# Activar el entorno virtual
source myenv/bin/activate
# Ejecutar el script con sudo -E y la ruta correcta donde clonaste el repositorio de ExploitDB
sudo -E $(which python3) main.py 192.168.1.0/24 --exploitdb_path /home/your-user/exploitdb
Escaneando la red: 192.168.1.0/24...
Dispositivo encontrado: IP 192.168.1.1, MAC C0:25:2F:97:A5:69, Fabricante Shenzhen Mercury Communication Technologies
Dispositivo encontrado: IP 192.168.1.100, MAC 10:3F:44:70:9D:C2, Fabricante Xiaomi Communications
Dispositivo encontrado: IP 192.168.1.102, MAC F8:A9:D0:97:B0:13, Fabricante LG Electronics (Mobile Communications)
Dispositivo encontrado: IP 192.168.1.104, MAC 66:43:88:60:1C:60, Fabricante Unknown
Dispositivo encontrado: IP 192.168.1.110, MAC 34:CF:F6:B3:D8:B4, Fabricante Intel Corporate
Escaneando vulnerabilidades en 192.168.1.1...
Escaneando vulnerabilidades en 192.168.1.100...
Escaneando vulnerabilidades en 192.168.1.102...
Escaneando vulnerabilidades en 192.168.1.104...
Escaneando vulnerabilidades en 192.168.1.110...
- Script: smb-vuln-ms10-061, Severidad: Unknown
- Script: samba-vuln-cve-2012-1182, Severidad: Unknown
- Script: smb-vuln-ms10-054, Severidad: Unknown
--- Resumen del Escaneo ---
Total de dispositivos conectados: 5
Vulnerabilidades encontradas: 3
Vulnerabilidades de severidad baja: 0
Vulnerabilidades de severidad media: 0
Vulnerabilidades de severidad alta: 0
Vulnerabilidades con severidad desconocida: 3
-
Dispositivos Detectados:
- IP 192.168.1.1: MAC C0:25:2F:97:A5:69, Fabricante Shenzhen Mercury Communication Technologies
- IP 192.168.1.100: MAC 10:3F:44:70:9D:C2, Fabricante Xiaomi Communications
- IP 192.168.1.102: MAC F8:A9:D0:97:B0:13, Fabricante LG Electronics (Mobile Communications)
- IP 192.168.1.104: MAC 66:43:88:60:1C:60, Fabricante Unknown
- IP 192.168.1.110: MAC 34:CF:F6:B3:D8:B4, Fabricante Intel Corporate
-
Vulnerabilidades Detectadas:
- Script: smb-vuln-ms10-061, Severidad: Unknown
- Script: samba-vuln-cve-2012-1182, Severidad: Unknown
- Script: smb-vuln-ms10-054, Severidad: Unknown
-
Resumen del Escaneo:
- Total de dispositivos conectados: 5
- Vulnerabilidades encontradas: 3
- Vulnerabilidades de severidad baja: 0
- Vulnerabilidades de severidad media: 0
- Vulnerabilidades de severidad alta: 0
- Vulnerabilidades con severidad desconocida: 3
Las vulnerabilidades detectadas son:
-
smb-vuln-ms10-061:
- Descripción: Vulnerabilidad en el servicio SMB de Microsoft que afecta a sistemas Windows.
- Severidad: Unknown (desconocida).
-
samba-vuln-cve-2012-1182:
- Descripción: Vulnerabilidad en Samba que permite la ejecución remota de código.
- Severidad: Unknown (desconocida).
-
smb-vuln-ms10-054:
- Descripción: Vulnerabilidad en el servicio SMB de Microsoft que afecta a sistemas Windows.
- Severidad: Unknown (desconocida).
-
Investigar las Vulnerabilidades:
- Investiga más sobre las vulnerabilidades detectadas para entender su impacto y cómo mitigarlas. Puedes buscar información en sitios como CVE Details o NVD (National Vulnerability Database).
-
Aplicar Parches y Actualizaciones:
- Asegúrate de que todos los dispositivos en tu red estén actualizados con los últimos parches de seguridad.
-
Configurar Firewalls y ACLs:
- Configura firewalls y listas de control de acceso (ACLs) para restringir el acceso a servicios vulnerables.
-
Monitorización Continua:
- Implementa una solución de monitorización continua para detectar y responder a nuevas vulnerabilidades.
¡Las contribuciones son bienvenidas! Si deseas contribuir al proyecto, sigue estos pasos:
- Fork el repositorio.
- Crea una nueva rama (
git checkout -b feature/nueva-funcionalidad
). - Realiza tus cambios y haz commit (
git commit -m 'Añadir nueva funcionalidad'
). - Sube tus cambios a la rama (
git push origin feature/nueva-funcionalidad
). - Abre un Pull Request.
Este proyecto está bajo la licencia MIT.
This script is a network scanning tool designed to identify IoT devices and detect vulnerabilities in them. This tool uses Nmap to scan the network and detect devices, and then runs NSE (Nmap Scripting Engine) scripts to identify known vulnerabilities. Additionally, it uses the ExploitDB database to search for exploits related to the detected vulnerabilities.
- Identify IoT Devices: Scan the network to detect connected IoT devices.
- Detect Vulnerabilities: Use NSE scripts from Nmap to detect vulnerabilities in devices.
- Search for Related Exploits: Use the ExploitDB database to search for exploits related to the detected vulnerabilities.
- Generate Detailed Reports: Generate a report in JSON format with details of devices and their vulnerabilities.
- Python 3.x: The script is written in Python 3.
- Nmap: Required to perform network scanning and run NSE scripts.
- ExploitDB: Required to search for exploits related to detected vulnerabilities.
- python-nmap: Python library to interact with Nmap.
- argparse: Python library to handle command-line arguments.
Clone the project repository to your local machine:
git clone https://github.com/elliotsecops/IoTSecurityTool.git
cd IoTSecurityTool
Create and activate a virtual environment for the project:
python3 -m venv myenv
source myenv/bin/activate
Install Python dependencies within the virtual environment:
pip install python-nmap argparse
Download the ExploitDB database and place it in the correct path:
git clone https://gitlab.com/exploit-database/exploitdb.git
The script requires root privileges to perform the operating system detection scan. Run the script with sudo
:
sudo -E $(which python3) main.py 192.168.1.0/24 --exploitdb_path /home/elliot/exploitdb
Here is a complete example of how to run the script:
# Navigate to the project directory
cd `/home/you-user/Downloads/IoTSecurityTool`
# Activate the virtual environment
source myenv/bin/activate
# Run the script with sudo -E and the correct path where you cloned the ExploitDB repository
sudo -E $(which python3) main.py 192.168.1.0/24 --exploitdb_path /home/your-user/exploitdb
Scanning the network: 192.168.1.0/24...
Device found: IP 192.168.1.1, MAC C0:25:2F:97:A5:69, Manufacturer Shenzhen Mercury Communication Technologies
Device found: IP 192.168.1.100, MAC 10:3F:44:70:9D:C2, Manufacturer Xiaomi Communications
Device found: IP 192.168.1.102, MAC F8:A9:D0:97:B0:13, Manufacturer LG Electronics (Mobile Communications)
Device found: IP 192.168.1.104, MAC 66:43:88:60:1C:60, Manufacturer Unknown
Device found: IP 192.168.1.110, MAC 34:CF:F6:B3:D8:B4, Manufacturer Intel Corporate
Scanning vulnerabilities in 192.168.1.1...
Scanning vulnerabilities in 192.168.1.100...
Scanning vulnerabilities in 192.168.1.102...
Scanning vulnerabilities in 192.168.1.104...
Scanning vulnerabilities in 192.168.1.110...
- Script: smb-vuln-ms10-061, Severity: Unknown
- Script: samba-vuln-cve-2012-1182, Severity: Unknown
- Script: smb-vuln-ms10-054, Severity: Unknown
--- Scan Summary ---
Total connected devices: 5
Vulnerabilities found: 3
Low severity vulnerabilities: 0
Medium severity vulnerabilities: 0
High severity vulnerabilities: 0
Unknown severity vulnerabilities: 3
-
Detected Devices:
- IP 192.168.1.1: MAC C0:25:2F:97:A5:69, Manufacturer Shenzhen Mercury Communication Technologies
- IP 192.168.1.100: MAC 10:3F:44:70:9D:C2, Manufacturer Xiaomi Communications
- IP 192.168.1.102: MAC F8:A9:D0:97:B0:13, Manufacturer LG Electronics (Mobile Communications)
- IP 192.168.1.104: MAC 66:43:88:60:1C:60, Manufacturer Unknown
- IP 192.168.1.110: MAC 34:CF:F6:B3:D8:B4, Manufacturer Intel Corporate
-
Detected Vulnerabilities:
- Script: smb-vuln-ms10-061, Severity: Unknown
- Script: samba-vuln-cve-2012-1182, Severity: Unknown
- Script: smb-vuln-ms10-054, Severity: Unknown
-
Scan Summary:
- Total connected devices: 5
- Vulnerabilities found: 3
- Low severity vulnerabilities: 0
- Medium severity vulnerabilities: 0
- High severity vulnerabilities: 0
- Unknown severity vulnerabilities: 3
The detected vulnerabilities are:
-
smb-vuln-ms10-061:
- Description: Vulnerability in Microsoft's SMB service affecting Windows systems.
- Severity: Unknownosoft SMB service affecting Windows systems.
- Severity: Unknown.
-
samba-vuln-cve-2012-1182:
- Description: Vulnerability in Samba allowing remote code execution.
- Severity: Unknown.
-
smb-vuln-ms10-054:
- Description: Vulnerability in the Microsoft SMB service affecting Windows systems.
- Severity: Unknown.
-
Investigate Vulnerabilities:
- Research the detected vulnerabilities to understand their impact and how to mitigate them. You can search for information on sites like CVE Details or NVD (National Vulnerability Database).
-
Apply Patches and Updates:
- Ensure that all devices on your network are updated with the latest security patches.
-
Configure Firewalls and ACLs:
- Configure firewalls and access control lists (ACLs) to restrict access to vulnerable services.
-
Continuous Monitoring:
- Implement a continuous monitoring solution to detect and respond to new vulnerabilities.
Contributions are welcome! If you want to contribute to the project, follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/new-feature
). - Make your changes and commit (
git commit -m 'Add new feature'
). - Push your changes to the branch (
git push origin feature/new-feature
). - Open a Pull Request.
This project is under the MIT license.