Skip to content

therobertsweb/check_ports

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Este script sirve para monitorear todas las conexiones de red activas en tu computadora y verificar si las direcciones IP remotas a las que tu equipo está conectado son maliciosas o sospechosas, usando la API pública de VirusTotal. Además, te permite cerrar manualmente procesos (conexiones) que consideres peligrosos.

Es muy útil para auditorías de seguridad, análisis forense o simplemente para detectar malware o programas espía conectados a internet.

Requisitos Previos

Antes de ejecutar este script, asegúrate de tener: 1. Python 3.8+ instalado en tu sistema. 2. Las librerías necesarias:

pip install requests psutil

3.	Una clave API de VirusTotal, que puedes obtener gratis creando una cuenta en:

https://www.virustotal.com/gui/join-us Luego la colocas en esta línea:

API_KEY = "TU_API_KEY_AQUI"

Cómo funciona cada parte

  1. Importaciones y configuración

import requests import psutil import os import platform import time

•	requests: para hacer peticiones HTTP a la API de VirusTotal.
•	psutil: permite obtener información sobre los procesos y conexiones de red del sistema.
•	os y platform: sirven para ejecutar comandos del sistema (como kill o taskkill).
•	time: se usa para introducir pausas y evitar el límite de peticiones de la API.

  1. Verificación de IP con VirusTotal

def verificar_ip_virustotal(ip):

Esta función consulta la API de VirusTotal y devuelve si una IP es segura, sospechosa o maliciosa.

Ejemplo de uso individual:

print(verificar_ip_virustotal("8.8.8.8"))

Resultado posible: ✅ Segura

Cada consulta devuelve información basada en los últimos análisis públicos de la IP.

  1. Obtener conexiones activas

def obtener_conexiones():

Esta función analiza todas las conexiones de red abiertas por tu sistema. Usa psutil.net_connections(kind='inet') para obtener: • PID: ID del proceso (identificador único). • Proceso: Nombre del programa que abrió la conexión (por ejemplo, Chrome, Python, Discord). • Puerto local y remoto: Muestran la comunicación de red. • Dirección remota: IP y puerto del servidor al que estás conectado. • Estado: Muestra si la conexión está activa (ESTABLISHED), en espera, etc.

También llama a verificar_ip_virustotal() para saber si esa IP remota tiene reportes en VirusTotal.

Ejemplo de salida interna (diccionario):

{ "PID": 4123, "Proceso": "chrome.exe", "Puerto Local": 52344, "Dirección Remota": "142.250.72.78:443", "VirusTotal": "✅ Segura", "Estado": "ESTABLISHED" }

  1. Mostrar resultados en pantalla

def mostrar_conexiones():

Esta función imprime una tabla clara con todas las conexiones activas. Ejemplo de salida:

PID Proceso Puerto Local Dirección Remota VirusTotal Estado

4123 chrome.exe 52344 142.250.72.78:443 ✅ Segura ESTABLISHED 2451 python.exe 51566 13.107.21.200:443 ⚠️ Sospechosa (2) ESTABLISHED

  1. Cerrar una conexión sospechosa

def cerrar_conexion(pid):

Permite finalizar un proceso completo (no una conexión individual, ya que eso depende del proceso). Funciona en: • Windows: usa taskkill /PID • Linux/Mac: usa kill -9

Ejemplo:

cerrar_conexion(4123)

Resultado: ✅ Proceso con PID 4123 finalizado exitosamente.

Advertencia: Finalizar procesos del sistema o de red importantes puede cerrar tu conexión a Internet o aplicaciones críticas. Usa esta función solo para procesos sospechosos.

  1. Menú interactivo

def menu():

Este es el punto de entrada principal del script. El menú muestra las conexiones en tiempo real, y luego te pregunta si deseas cerrar alguna.

Ejemplo del flujo completo:

🔍 Monitoreo de Conexiones de Red PID Proceso Puerto Local Dirección Remota VirusTotal Estado

4123 chrome.exe 52344 142.250.72.78:443 ✅ Segura ESTABLISHED 2451 python.exe 51566 13.107.21.200:443 ⚠️ Sospechosa (2) ESTABLISHED

🔴 ¿Deseas cerrar alguna conexión? (s/n): s 📌 Ingresa el PID o PIDs separados por comas: 2451 ✅ Proceso con PID 2451 finalizado exitosamente. 👋 Saliendo del programa.

Cuándo usar este script

✅ Usos recomendados • Auditoría personal de red: Para revisar qué aplicaciones se conectan a Internet. • Análisis forense: Para descubrir conexiones sospechosas luego de una infección. • Ciberseguridad: Para detectar y detener procesos que envían datos a servidores desconocidos. • Monitoreo continuo: Puedes ejecutar este script cada cierto tiempo o automatizarlo con cron (Linux) o el Programador de Tareas (Windows).

⚠️ Cuándo NO usarlo • Si estás conectado en una red corporativa donde hay múltiples conexiones legítimas compartidas. • Si no sabes qué proceso estás terminando (puedes cerrar algo crítico como explorer.exe o systemd). • Si usas una API gratuita de VirusTotal, evita ejecutar el script continuamente (tiene límite de 4 consultas por minuto).

Cómo ejecutarlo

Guarda el código como monitor_red.py y ejecútalo desde la terminal:

python monitor_red.py

Si deseas detenerlo manualmente, presiona Ctrl + C.

Mejoras posibles • Guardar los resultados en un archivo .csv o .json. • Agregar una opción para monitoreo en tiempo real cada 60 segundos. • Integrar un sistema de alertas por email o notificaciones si detecta IPs maliciosas. • Usar threading o asyncio para consultas más rápidas a VirusTotal.

About

check-ports.py

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages