Инструмент для работы с сетью, разведки и наступательной безопасности для Linux.
Hawk — это сетевая и пентест-утилита, которую я разработал, чтобы можно было выполнять различные задачи с помощью одного комплекта инструментов, а не переключаться с одного инструмента на другой.
В настоящее время этот скрипт может выполнять множество задач, таких как ifconfig, ping, traceroute, сканирование портов (включая SYN, TCP, UDP, ACK, комплексное сканирование), обнаружение хостов (поиск активных устройств в локальной сети), определение MAC-адреса (получение MAC-адреса хоста по IP в локальной сети), снятие баннеров, проверка DNS (с информацией о геолокации), WHOIS, перебор поддоменов, разведка уязвимостей, перехват пакетов, подмена MAC, подмена IP, SYN-флуд, deauth-атака и атака перебором (бета).
Остальные функции всё ещё находятся в разработке. В будущих реализациях могут появиться: обнаружение WAF, перечисление DNS, анализ трафика, сканер уязвимостей XSS, отравление ARP-кэша, отравление DNS-кэша, MAC-флудинг, пинг смерти, атака разъединения сети (не deauth-атака), OSINT, подмена электронной почты, эксплойты, некоторые автоматизированные задачи и другое.

Обратите внимание, что в настоящее время этот скрипт хорошо работает только в Linux. Если вы попробуете запустить его в Windows или macOS, он может запуститься, но появится множество ошибок.
Этот скрипт был протестирован на:
Чтобы установить необходимые пакеты и обеспечить работу скрипта без каких-либо проблем, просто запустите скрипт setup.sh с правами root. В настоящее время этот установочный скрипт поддерживается только в дистрибутивах на основе Debian, Red Hat и Arch, в которых есть менеджеры пакетов apt, dnf и pacman соответственно (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 и т. д.). В большинстве систем для установки Hawk достаточно выполнить следующие команды:
git clone https://github.com/medpaf/hawk.git
cd hawk
sudo sh setup.sh
Затем просто следуйте инструкциям. Пожалуйста, игнорируйте сообщения об ошибках, появляющиеся во время установки.
Однако, если вы используете любой другой дистрибутив Linux с другим менеджером пакетов, установите пакеты вручную с помощью менеджера пакетов вашего дистрибутива. В зависимости от конкретного дистрибутива некоторые из необходимых для работы этого скрипта пакетов могут быть уже установлены на вашей машине.
Если вы хотите узнать необходимые пакеты, посмотрите файл setup.sh.
После установки для запуска программы просто перейдите в каталог проекта и запустите файл hawk.py с помощью Python. Рекомендуется запускать скрипт от имени root для лучшей производительности и во избежание ошибок прав доступа. Используемая команда следующая:
sudo python3 hawk.py
Чтобы изменить конфигурацию, просто откройте файл конфигурации files/conf.py и отредактируйте его.
Если вы хотите отобразить текущую TCP/IP-конфигурацию сети вашей системы, введите следующую команду:
-ifconfig

Чтобы отправить ICMP-пакеты одному или нескольким хостам для проверки связи, просто введите:
-ping <HOST(s) IP/FQDN>

Чтобы диагностировать пути маршрутизации и измерить задержки передачи, используйте команду -traceroute:
-traceroute <HOST IP/FQDN>

Сканирование портов помогает обнаруживать потенциальные нарушения безопасности, определяя хосты, подключённые к вашей сети, и запущенные службы.
Поддерживаются несколько типов сканирования: TCP SYN (-scansyn) [также известный как скрытое сканирование], TCP Connect (-scantcp), UDP (-scanudp), TCP ACK (-scanack) и комплексное сканирование (-scan).
-scan -host <HOST(s) IP/FQDN>
-scan -host <HOST(s) IP/FQDN> -p <PORT(s)>
Если вы хотите просканировать диапазон IP-адресов и/или диапазон портов, используйте одну из следующих команд:
-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>

После этого сканирования можно увидеть, что порты 22 (SSH) и 80 (HTTP) открыты.
Чтобы найти активные устройства в заданной сети, введите следующую команду:
-scanlan
Затем введите сеть, которую хотите просканировать.

Чтобы получить MAC-адрес одного или нескольких активных хостов в локальной сети, используйте команду:
-getmac -host <HOST(s) IP>

Определение версии, или снятие баннеров, — это метод разведки, который получает информацию из баннера программного обеспечения. Этот баннер обычно содержит важные сведения о сетевом сервисе, включая, помимо прочего, имя и версию его программного обеспечения. FTP-, Web-, SSH- и SMTP-серверы часто раскрывают в своих баннерах важную информацию о запущенном на них программном обеспечении.