MedSec es una utilidad de red y pentest desarrollada para poder realizar diferentes tipos de tareas utilizando la misma suite, en lugar de saltar de una herramienta a otra.
Actualmente, este script puede realizar una buena variedad de tareas como
- Escaneo de puertos, incluyendo SYN, TCP, UDP, ACK, escaneo integral;
- Descubrimiento de hosts (escaneo de dispositivos en una red local);
- Detección de direcciones MAC (obtener la dirección MAC de una IP de un host en una red local);
- Banner Grabbing;
- Comprobaciones de DNS con información de geolocalización;
- Enumeración de subdominios;
- Reconocimiento de vulnerabilidades;
- ifconfig (beta);
- ping;
- traceroute (beta);
- Suplantación de IP;
- Analizador de paquetes;
- Deauth attack.
Todavía se están implementando otras funciones. Las implementaciones futuras pueden incluir la detección de WAF (firewall de aplicaciones web), enumeración de DNS, análisis de código estático, análisis de tráfico, envenenamiento ARP, inundación MAC, ping de la muerte, ataque de disociación de red (no ataque deauth), OSINT, exploits, algunas tareas automatizadas, soporte de Windows y otros.
Instalación
Para instalar los paquetes necesarios para que el script pueda ejecutarse sin problemas, simplemente ejecuta el script setup.sh
con privilegios de root.
Actualmente, este script de instalación sólo es compatible con las distribuciones basadas en Debian, Red Hat y Arch que tienen el gestor de paquetes apt, dnf y pacman respectivamente (Ubuntu, Kali Linux, Parrot OS, Debian, Pop!_OS, Linux Mint, Deepin, Zorin OS, MX Linux, Elementary OS, Fedora, CentOS, Red Hat Enterprise Linux, Rocky Linux, AlmaLinux, Oracle Linux, ClearOS, Arch, Black Arch, Manjaro etc). En la mayoría de los sistemas, para instalar medsec basta con ejecutar los siguientes comandos:
git clone https://github.com/medpaf/medsec.git
cd medsec
sudo . setup.sh
A continuación, simplemente sigue las instrucciones.
Sin embargo, si estás utilizando cualquier otra distribución de Linux con un gestor de paquetes diferente, instala los paquetes manualmente utilizando el gestor de paquetes de tu distribución. Dependiendo de la distribución específica utilizada, algunos de los paquetes necesarios para ejecutar este script podrían estar ya instalados en tu máquina. Los paquetes necesarios son
- nmap (utilizando el gestor de paquetes de tu sistema)
- traceroute (utilizando el gestor de paquetes de tu sistema)
- sockets (usando pip3)
- ipaddress (usando pip3)
- python-nmap (usando pip3)
- colorama (usando pip3)
- ipinfo (usando pip3)
- scapy (usando pip3)
- shodan (usando pip3)
Después de la instalación, para ejecutar el programa, simplemente navega al directorio del proyecto y ejecuta el archivo medsec.py
usando Python. Se recomienda ejecutar el script como root para un mejor rendimiento y para evitar errores de permisos. El comando utilizado es el siguiente:
sudo python3 medsec.py
Cómo Usar
Escaneo de puertos
El escaneo de puertos ayuda a detectar posibles brechas de seguridad identificando los hosts conectados a tu red y los servicios que se ejecutan.
Se soportan múltiples tipos de escaneo, incluyendo SYN (-scansyn), TCP (-scantcp), UDP (-scanudp), ACK (-scanack) y escaneo completo (-scan).
-scan -host [HOST(s)]
-scan -host [HOST(s)] -p [PORT(s)]
-scan -host [HOST(s)] -prange [START PORT] [END PORT]
-scan -iprange [START IP] [END IP] -p [PORT(s)]
-scan -iprange [START IP] [END IP] -prange [START PORT] [END PORT]
Después de este escaneo, se puede ver que los puertos 22 (SSH) y 80 (HTTP) están abiertos.
Descubrimiento de hosts
Para buscar dispositivos actuales en una red determinada, escribe el siguiente comando:
-scanlan
Luego escribe la red que deseas escanear.
Detección de la dirección MAC
Para obtener la dirección MAC de uno o más hosts vivos en la LAN, utiliza el comando:
-getmac -host [HOST(s) IP]
Banner grabbing
El Banner grabbing es una técnica de reconocimiento que recupera la información de un banner de software. Este banner suele contener información importante sobre un servicio de red, incluyendo, entre otros, el nombre y la versión del software. Los servidores FTP, Web, SSH y SMTP a menudo exponen información vital sobre el software que están ejecutando en su banner.
Un ataque de banner suele comenzar con un escaneo de enumeración para encontrar puertos abiertos. Una vez identificado el servicio al que se quiere apuntar, se pueden enviar paquetes específicos e inspeccionar el tráfico en busca de la información especificada.
Para realizar la captura de banners, dependiendo de tus necesidades específicas, escribe uno de los siguientes comandos:
-grab -host [HOST(s)] -p [PORT(s)]
-grab -iprange [START IP] [END IP] -prange [START PORT] [END PORT]
-grab -host [HOST(s)] -prange [START PORT] [END PORT]
-grab -iprange [START IP] [END IP] -p [PORT(s)]
Comprobación de DNS
Esta función es similar al conocido comando nslookup
utilizado en los sistemas UNIX. Si quieres hacer una comprobación de DNS, escribe lo siguiente:
-ns [HOST(s)]
Enumeración de subdominios
La enumeración de subdominios es el proceso de encontrar subdominios válidos para uno o más dominios.
La enumeración de subdominios puede revelar una gran cantidad de dominios/subdominios que están en el ámbito de una evaluación de seguridad, lo que a su vez aumenta las posibilidades de encontrar vulnerabilidades.
Si deseas buscar subdominios comunes de un dominio, simplemente escribe:
-sdenum [DOMAIN]
Reconocimiento de vulnerabilidades
Para escanear uno o más hosts en busca de vulnerabilidades, utiliza el siguiente comando:
-vulnscan -host [HOST(s)]
ifconfig
Si quieres mostrar la configuración de red TCP/IP actual de tu sistema, escribe el siguiente comando:
-ifconfig
ping
Para enviar paquetes ICMP a uno o más hosts para comprobar la conectividad, simplemente escribe:
-ping [HOST(s)]
traceroute
Para diagnosticar las rutas y medir los retrasos en el tránsito, utiliza el comando -traceroute
:
-traceroute [HOST]
Suplantación de IP
El objetivo de la suplantación de IP es modificar la dirección IP de origen correcta para que el sistema al que se dirige un paquete no pueda identificar correctamente al remitente.
Puede ser útil que lees este artículo acerca de MICH: Cómo manipular direcciones MAC e IP en Linux
Ten en cuenta que este comando sólo funciona en máquinas con vulnerabilidades no parcheadas. Para realizar el IP spoofing en un puerto específico de un host, utiliza el siguiente comando:
-ipspoof -source [SOURCE IP] [SOURCE PORT] -target [TARGET IP] [TARGET PORT]
Si quieres utilizar una IP de origen aleatoria, escribe el siguiente comando:
-ipspoof -source r [SOURCE PORT] -target [TARGET IP] [TARGET PORT]
También puedes utilizar un puerto de origen aleatorio:
-ipspoof -source [SOURCE IP] r -target [TARGET IP] [TARGET PORT]
Esnifar paquetes
Para realizar el rastreo de paquetes, escribe:
-sniff
Ataque Deauth
Un ataque deauth es un tipo de ataque inalámbrico que tiene como objetivo la comunicación entre un router y uno o más dispositivos conectados a ese router. En efecto, obliga a la máquina objetivo a desconectarse del punto de acceso.
Para realizar este ataque, utiliza el siguiente comando:
-deauth -target [TARGET MAC] -gateway [GATEWAY MAC] -iface [INTERFACE]
Si planeas atacar a todos los clientes de una puerta de enlace, escribe:
-deauth -target a -gateway [GATEWAY MAC] -iface [INTERFACE]
Después del comando emitido en la captura de pantalla anterior, todos los dispositivos conectados a ese punto de acceso se desconectaron y no pudieron volver a conectarse mientras se ejecutaba este script.
Repositorio:
https://github.com/medpaf/medsec/