Это основные функции, которые помогают с некоторыми задачами для этичного взлома и тестирования на проникновение.
Большинство из них связаны с сетью, и реализации должны быть понятны для тех, кто хочет читать исходный код и учиться этому.
Некоторые методы, реализованные в текущей версии:
- ARP Poisoning
- ARP Sniffing
- DHCP Discover
- DHCP Starvation
- LAND Attack
- SNMP Cracking
- SYN Flooding
- TCP Flags Analysis
- TCP ISN Analysis
- TCP Port Scan
Установка
Чтобы установить Habu, выполните:
# pip3 install habu
Зависимости
Delegator.py
Python (3.x),
Scapy-Python3
Matplotlib (Необязательно, требуется только, если вы хотите сделать некоторые графики)
Получить помощь
Все команды реализуют параметр «-help», который показывает справки, аргументы, параметры и значения по умолчанию.
Подробный режим
Почти все команды реализуют подробный режим с опцией -v. Это может дать вам дополнительную информацию о том, что делает хабу.
habu.arpoison: ARP Poisoning
Эта команда отправляет APP «is-at» пакеты каждой жертве, отравляя их таблицы ARP для отправки трафика в вашу систему.
# sudo habu.arpoison 192.168.1.5 192.168.1.6 Ether / ARP is at 00:c2:c6:30:2c:58 says 192.168.1.6 Ether / ARP is at 00:c2:c6:30:2c:58 says 192.168.1.5 Ether / ARP is at 00:c2:c6:30:2c:58 says 192.168.1.6 Ether / ARP is at 00:c2:c6:30:2c:58 says 192.168.1.5 ...
Примечание. Если вы хотите полностью работать с Man In The Middle, вам необходимо включить пересылку пакетов в вашей операционной системе, чтобы действовать как маршрутизатор.
Вы можете сделать это, используя:
# echo 1 > /proc/sys/net/ipv4/ip_forward
habu.arpsniff: Обнаружение устройств в вашей локальной сети, захватывающих ARP-пакеты
Эта команда прослушивает ARP-пакеты и отображает информацию о каждом устройстве.
Столбцы: секунды от последнего пакета | IP | MAC | вендор
1 192.168.0.1 a4:08:f5:19:17:a4 Sagemcom Broadband SAS 7 192.168.0.2 64:bc:0c:33:e5:57 LG Electronics (Mobile Communications) 2 192.168.0.5 00:c2:c6:30:2c:58 Intel Corporate 6 192.168.0.7 54:f2:01:db:35:58 Samsung Electronics Co.,Ltd
habu.contest: проверьте возможности подключения
Эта команда пытается подключиться к различным службам и проверить, можете ли вы связаться с ними, используя подключение к Интернету.
habu.contest IP: True DNS: True FTP: True SSH: True HTTP: True HTTPS: True
habu.dhcp_starvation: заполнение DHCP
Эта команда отправляет несколько запросов DHCP от поддельных MAC-адресов для заполнения аренды сервера DHCP.
Когда назначены все доступные сетевые адреса, DHCP-сервер не отправляет ответы.
Таким образом, некоторые атаки, такие как DHCP-спуфинг, могут быть реализованы.
# sudo habu.dhcp_starvation Ether / IP / UDP 192.168.0.1:bootps 192.168.0.6:bootpc / BOOTP / DHCP Ether / IP / UDP 192.168.0.1:bootps 192.168.0.7:bootpc / BOOTP / DHCP Ether / IP / UDP 192.168.0.1:bootps 192.168.0.8:bootpc / BOOTP / DHCP
habu.eicar: выводит тестовую строку EICAR
Эта команда выводит тестовую строку EICAR, которая может использоваться для тестирования антивирусных движков.
Дополнительная информация: http://www.eicar.org/86-0-Intended-use.html
# habu.eicar X5O! P% @ AP [4 \ XZP54(P ^) 7CC) 7} $ EICAR-STANDARD-ANTIVIRUS-TEST-FILE! $ H + H *
Примечание. Строка выше неверна, потому что это не хорошая идея, написать полный текст в этом текстовом файле.
Любая антивирусная программа может обнаружить ее как вирус.
habu.hasher: вычисляет различные хэши с входными данными
Эта команда вычисляет различные хэши для входных данных, которые могут быть файлом или потоком.
Если имя файла «-», данные берутся со стандартного ввода (stdin), поэтому существует три разных варианта для вызова этой команды:
# habu.hasher README.rst md5 : 375375d9cfb2aacab7c8d1a9afd3d9b7 sha1 : 21c67b9ef44bc24d47eef6adab648ba34662927e
#cat README.rst | habu.hasher - md5 : 375375d9cfb2aacab7c8d1a9afd3d9b7 sha1 : 21c67b9ef44bc24d47eef6adab648ba34662927e
# habu.hasher - < README.rst md5 : 375375d9cfb2aacab7c8d1a9afd3d9b7 sha1 : 21c67b9ef44bc24d47eef6adab648ba34662927e
Примечание. Вышеприведенный вывод показывает только MD5 и SHA1, но реальный вывод включает в себя больше алгоритмов.
Вы также можете указать, какой алгоритм использовать.
# habu.hasher -a md5 README.rst 375375d9cfb2aacab7c8d1a9afd3d9b7
habu.ip: печатает ваш общедоступный IP-адрес
Эта команда печатает ваш текущий общедоступный IP-адрес на основе ответа от https://api.ipify.org.
# habu.ip 182.26.32.246
habu.isn: выведет орядковые номера TCP для IP-адреса
Эта команда создает TCP-соединения и печатает начальные порядковые номера TCP для каждого соединения.
# sudo habu.isn www.portantier.com 1962287220 1800895007 589617930 3393793979 469428558
Вы можете получить графическое представление (требуется пакет matplotlib) с помощью опции «-g»:
# sudo habu.isn -g -c 10 www.portantier.com
Примечание. В приведенной выше команде используется параметр -c, чтобы определить, что необходимо создать 10 подключений.
Эта команда реализует атаку LAND, которая отправляет пакеты, форматирующие исходный IP-адрес, таким же, как и IP-адрес назначения.
Также используется один и тот же порт источника и назначения.
Атака очень старая и может использоваться для отказа в обслуживании на старых системах, таких как Windows NT 4.0. Более подробная информация здесь: https://en.wikipedia.org/wiki/LAND
# sudo habu.land 172.16.0.10</span> ............
Примечание. Каждая точка (.) Является отправленным пакетом.
Вы можете указать, сколько пакетов отправляется с опцией ‘-c’.
По умолчанию никогда не останавливается.
Кроме того, вы можете указать порт назначения с опцией ‘-p’.
habu.ping: ICMP-эхо-запросы
Эта команда реализует классический «ping» с помощью эхо-запросов ICMP.
# sudo habu.ping 8.8.8.8 IP / ICMP 8.8.8.8 192.168.0.5 echo-reply 0 / Padding IP / ICMP 8.8.8.8 192.168.0.5 echo-reply 0 / Padding IP / ICMP 8.8.8.8 192.168.0.5 echo-reply 0 / Padding IP / ICMP 8.8.8.8 192.168.0.5 echo-reply 0 / Padding.
habu.snmp_crack: SNMP Community Cracker
Эта команда запускает запросы snmp-get на IP и сообщает вам, когда находит действительную строку (это простой SNMP-взломщик).
Используемый словарь распространяется с помощью инструмента oneixtyone (https://github.com/trailofbits/onesixtyone)
# sudo habu.snmp_crack 179.125.234.210 Community found: private Community found: public
Примечание. Вы также можете получать такие сообщения, как <UNIVERSAL> <class ‘scapy.asn1.asn1.ASN1_Class_metaclass’>, разработчики пока не знают, как их подавить.
habu.synflood: реализация атаки SYN Flood
Эта команда запускает много TCP-соединений и открывает их. Некоторые очень старые системы могут испытывать отказ в обслуживании.
Дополнительная информация: https://en.wikipedia.org/wiki/SYN_flood
# sudo habu.synflood 172.16.0.10 .................
Каждая точка представляет собой отправленный пакет.
Вы можете использовать опции «-2» и «-3» для создания шаблонов 2/3 адресов.
Если вы их используете, каждое соединение будет отправлено с произвольного адреса уровня 2 (MAC) и / или уровня 3 (IP).
Вы можете выбрать количество подключений для создания с помощью опции «-c». По умолчанию никогда не прекращается создание соединений.
Примечание. Если вы отправляете пакеты с вашего реального IP-адреса и хотите, чтобы соединения были полуоткрыты, вам необходимы настроики для брандмауэра, чтобы не отправлять пакеты RST.
С помощью habu вы можете сделать это с помощью следующей команды (работает только с Linux + IPTables):
# sudo habu.firewall --no-rst
Вы можете проверить результаты с помощью «iptables -L -n», и вы увидите что-то вроде этого:
Chain OUTPUT (policy ACCEPT) target prot opt source destination DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x04/0x04
habu.tcpflags: TCP Flag Fuzzer
Эта команда отправляет TCP-пакеты с разными флагами и сообщает вам, какие ответы принимает.
Его можно использовать для анализа того, как различные реализации и конфигурации стека TCP / IP реагируют на пакет с различными комбинациями флагов.
# sudo habu.tcpflags www.portantier.com S -> SA FS -> SA FA -> R SA -> R
]
По умолчанию команда отправляет все возможные комбинации флагов. Вы можете указать флаги, которые должны присутствовать (уменьшая количество возможных комбинаций), с опцией «-f».
Кроме того, вы можете указать, какие флаги вы хотите присутствовать в отображаемых пакетах ответов, с параметром «-r».
С помощью следующей команды вы увидите все возможные комбинации, в которых установлен флаг FIN (F), и генерирует ответ, содержащий флаг RST (R).
# sudo habu.tcpflags -f F -r R www.portantier.com FPA -> R FSPA -> R FAU -> R