Herramienta de red, reconocimiento y seguridad ofensiva para Linux.
Hawk es una utilidad de red y pentest que desarrollé para poder realizar diferentes tipos de tareas usando el mismo conjunto de herramientas, en lugar de saltar de una herramienta a otra.
Actualmente, este script puede realizar una variedad de tareas como ifconfig, ping, traceroute, escaneos de puertos (incluyendo SYN, TCP, UDP, ACK y escaneo completo), detección de hosts (escaneo de dispositivos activos en una red local), detección de direcciones MAC (obtener la dirección MAC de una IP de host en una red local), captura de banners, comprobaciones DNS (con información de geolocalización), WHOIS, enumeración de subdominios, reconocimiento de vulnerabilidades, sniffing de paquetes, spoofing de MAC, spoofing de IP, SYN flooding, ataque de desautenticación y ataque de fuerza bruta (beta).
Otras funciones aún están en desarrollo. Las implementaciones futuras pueden incluir detección de WAF, enumeración de DNS, análisis de tráfico, escáner de vulnerabilidades XSS, envenenamiento de caché ARP, envenenamiento de caché DNS, MAC flooding, ping de la muerte, ataque de disociación de red (no ataque de desautenticación), OSINT, suplantación de correo electrónico, exploits, algunas tareas automatizadas y otras.

Ten en cuenta que actualmente este script solo funciona bien en Linux. Si lo pruebas en Windows o macOS, puede que funcione, pero aparecerán numerosos errores.
Este script fue probado en:
Para instalar los paquetes necesarios para que el script funcione sin problemas, simplemente ejecuta el script setup.sh con privilegios de root. Actualmente, este script de instalación solo es compatible con distribuciones basadas en Debian, Red Hat y Arch que tengan los gestores 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 Hawk simplemente ejecuta los siguientes comandos:
git clone https://github.com/medpaf/hawk.git
cd hawk
sudo sh setup.sh
Luego, simplemente sigue las instrucciones. Por favor, ignora los mensajes de error que aparecen durante la instalación.
Sin embargo, si estás usando cualquier otra distribución de Linux con un gestor de paquetes diferente, instala los paquetes manualmente usando 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 ya estar instalados en tu máquina.
Si deseas conocer los paquetes necesarios, mira el archivo setup.sh.
Después de la instalación, para ejecutar el programa, simplemente navega al directorio del proyecto y ejecuta el archivo hawk.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 hawk.py
Para hacer configuraciones, simplemente ve al archivo de configuración en files/conf.py y edítalo.
Si quieres mostrar la configuración de red TCP/IP actual de tu sistema, escribe el siguiente comando:
-ifconfig

Para enviar paquetes ICMP a uno o más hosts para comprobar la conectividad, simplemente escribe:
-ping <HOST(s) IP/FQDN>

Para diagnosticar rutas de red y medir retrasos de tránsito, usa el comando -traceroute:
-traceroute <HOST IP/FQDN>

El escaneo de puertos ayuda a detectar posibles brechas de seguridad al identificar los hosts conectados a tu red y los servicios en ejecución.
Se admiten múltiples tipos de escaneo, incluyendo TCP SYN (-scansyn) [también conocido como escaneo sigiloso], TCP Connect (-scantcp), UDP (-scanudp), TCP ACK (-scanack) y escaneo completo (-scan).
-scan -host <HOST(s) IP/FQDN>
-scan -host <HOST(s) IP/FQDN> -p <PORT(s)>
Si deseas escanear un rango de IP y/o un rango de puertos, usa uno de los siguientes comandos:
-scan -host <HOST(s) IP/FQDN> -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, es posible ver que los puertos 22 (SSH) y 80 (HTTP) están abiertos.
Para buscar dispositivos activos en una red determinada, escribe el siguiente comando:
-scanlan
Luego escribe la red que quieres escanear.

Para obtener la dirección MAC de uno o más hosts activos en la LAN, usa el comando:
-getmac -host <HOST(s) IP>
