- Инструменты Kali Linux
- Список инструментов для тестирования на проникновение и их описание
- Описание Habu
- Справка по Habu
- habu.arp.ping
- habu.arp.poison
- habu.arp.sniff
- habu.asydns
- habu.b64
- habu.cert.clone
- habu.cert.names
- habu.config.del
- habu.config.set
- habu.config.show
- habu.crack.luhn
- habu.crack.snmp
- habu.crtsh
- habu.cve.2018.9995
- habu.cymon.ip
- habu.cymon.ip.timeline
- habu.data.extract.domain
- habu.data.extract.email
- habu.data.extract.fqdn
- habu.data.extract.ipv4
- habu.data.filter
- habu.decrypt.gppref
- habu.dhcp.discover
- habu.dhcp.starvation
- habu.dns.lookup.forward
- habu.dns.lookup.reverse
- habu.eicar
- habu.expand
- habu.fernet
- habu.fernet.genkey
- habu.forkbomb
- habu.fqdn.finder
- habu.gateway.find
- habu.h1.scope
- habu.hasher
- habu.host
- habu.http.headers
- habu.http.options
- habu.http.tech
- habu.interfaces
- habu.ip
- habu.ip2asn
- habu.ip.geolocation
- habu.ip.internal
- habu.isn
- habu.jshell
- habu.karma
- habu.karma.bulk
- habu.land
- habu.nc
- habu.nmap.excluded
- habu.nmap.open
- habu.nmap.ports
- habu.ping
- habu.protoscan
- habu.select
- habu.server.ftp
- habu.shodan
- habu.shodan.query
- habu.synflood
- habu.tcpflags
- habu.tcpscan
- habu.traceroute
- habu.usercheck
- habu.version
- habu.vhosts
- habu.virustotal
- habu.web.report
- habu.web.screenshot
- habu.whois.domain
- habu.whois.ip
- habu.xor
- Руководство по Habu
- Примеры запуска Habu
- Установка Habu
- Установка в Kali Linux
- Установка в BlackArch
- Установка в Windows
- Скриншоты Habu
Инструменты Kali Linux
Список инструментов для тестирования на проникновение и их описание
Описание Habu
Habu — это набор инструментов на Python предназначенных для сбора информации, исследования и хакинга сети.
Некоторые из возможностей:
- ARP Poisoning
- ARP Sniffing
- Обнаружение DHCP
- DHCP Starvation (атака, при которой злоумышленник занимает все IP адреса)
- Фальшивый сервер FTP
- Атака LAND
- Взлом SNMP
- Идентификация субдоменов
- Клонер сертификатов SSL/TLS
- SYN флудинг
- Анализ флагов TCP
- Анализ TCP ISN
- Сканирование портов TCP
- Проверка имени пользователя по социальным сетям
- Идентификация виртуальных хостов
- Идентификация веб-технологий
Автор: Fabian Martinez Portantier
Справка по Habu
Пакет Habu включает в себя большое количество утилит каждая из которых выполняет одну функцию.
habu.arp.ping
Отправляет ARP пакеты для проверки, присутствует ли хост в локальной сети.
habu.arp.poison
Выполняет ARP спуфинг, то есть отправляет ARP пакеты ‘is-at’ каждой жертве, вызывая отравление (poisoning) их ARP таблиц, чтобы они начали отправлять трафик через вашу систему.
Помните, что если вы хотите полноценную атаку человек-посередине, то вам нужно включить перенаправление (forwarding) пакетов на вашей операционной системе, в результате она будет работать как роутер. На Linux вы можете это сделать используя:
habu.arp.sniff
Прослушивает ARP пакеты и показывает информацию о каждом устройстве в локальной сети.
Колонки: Секунды с последнего пакета | IP | MAC | Производитель
Пример вывода собранных данных:
habu.asydns
Запрашивает DNS доменного имени на основе публичных и приватных RSA ключей используя протокол AsyDNS: https://github.com/portantier/asydns
habu.b64
Кодирует или декодирует данные в base64, работает в точности как команда base64.
habu.cert.clone
Подключается к SSL/TLS серверу, получает сертификат и генерирует сертификат с такими же опциями и значениями полей.
Примечание: сгенерированный сертификат не является действительным, но может использоваться для атак социальной инженерии.
habu.cert.names
Подключается к каждому хосту/порту и показывает краткую информацию об именах сертификатов.
Хосты для подключения берутся из двух возможных опций:
1) опция -i (по умолчанию стандартный ввод stdin). Файл, в котором каждая строка это хост или сеть
2) Аргумент, который может быть хостом или сетью
Если вы используете оба метода, то хосты и сети сливаются в один список.
habu.config.del
Удаляет КЛЮЧ из конфигурации.
Помните: по умолчанию КЛЮЧ конвертируется в буквы верхнего регистра.
habu.config.set
Установить ЗНАЧЕНИЕ в настройки КЛЮЧА.
Помните: по умолчанию КЛЮЧ конвертируется в буквы верхнего регистра.
habu.config.show
Показать текущую конфигурацию.
Помните: по умолчанию параметры с именем «KEY» спрятаны за звёздочками.
Пытается подключиться к различным службам и проверяет, может ли их достичь используя ваше Интернет-подключение.
habu.crack.luhn
Алгоритм Лу́на (англ. Luhn algorithm) — алгоритм вычисления контрольной цифры номера пластиковой карты в соответствии со стандартом ISO/IEC 7812. Не является криптографическим средством, а предназначен в первую очередь для выявления ошибок, вызванных непреднамеренным искажением данных (например, при ручном вводе номера карты, при приёме данных о номере социального страхования по телефону). Позволяет лишь с некоторой степенью достоверности судить об отсутствии ошибок в блоке цифр, но не даёт возможности нахождения и исправления обнаруженной неточности.
Наиболее распространённые применения для подсчёта контрольной цифры:
- Номера всех банковских карт
- Номера некоторых дисконтных карт
- Коды социального страхования
- IMEI-коды.
- Расчёт контрольного знака единого 8-значного номера железнодорожного вагона на РЖД.
- Расчёт ICCID (англ. integrated circuit card identifier) — уникальный серийный номер SIM-карты.
Данная программа проверяет на правильность числа, в которых используется контрольное число алгоритма Луна, а также по известным цифрам показывает возможные варианты.
Числами, которые используют алгоритм Luhn для проверки, являются Кредитные карты, IMEI, Национальным Идентификатором Поставщика в Соединенных Штатах, Канадские Номера социального страхования, Идентификационные номера Израиля и Греческие номерами социального страхования (ΑΜΚΑ).
Символ тире ‘—‘ игнорируется.
Пропущенные числа обозначьте с помощью символа ‘x‘.
habu.crack.snmp
Запускает snmp-get запросы к IP и сообщает, когда находит допустимую строку community (это простой взломщик SNMP).
Используется словарь, который поставляется с инструментом onesixtyone.
Примечание: вы также можете получать сообщения вроде \ \ , в настоящее время автор не знает как их подавить.
habu.crtsh
Загружает логи certificate transparency для домена и проверяет с помощью DNS запросов существование каждого домена.
Использует многопоточность для улучшения производительности DNS запросов.
habu.cve.2018.9995
Эксплуатирует уязвимость CVE-2018-9995, присутствующую на различных системах DVR.
Примечание: основывается на оригинальном коде от Ezequiel Fernandez (@capitan_alfa).
habu.cymon.ip
Простой клиент для API cymon.
Печатает JSON результат для запроса к cymon об IP.
habu.cymon.ip.timeline
Простой клиент cymon API.
Печатает результат в JSON запроса timeline к cymon об IP.
habu.data.extract.domain
Извлекает валидные домены из файла или stdin (стандартного ввода).
Опционально, проверяет каждый домен на наличие NS записей для доменов.
habu.data.extract.email
Извлекает email адреса из файла или stdin (стандартного ввода).
habu.data.extract.fqdn
Извлекает FQDN (Полностью квалифицированные доменные имена) из файла или стандартного ввода (stdin).
habu.data.extract.ipv4
Извлекает IPv4 адреса из файла или стандартного ввода (stdin).
habu.data.filter
Фильтрует данные на основе операторов.
habu.decrypt.gppref
Расшифровывает пароль локальных пользователей добавленных через настройки групповой политики Windows 2008.
Это значение является атрибутом cpassword, встроенным в файл Groups.xml, который хранится в общей папке Sysvol контроллера домена.
habu.dhcp.discover
Отправляет DHCP запрос и показывает, какие устройства ответили.
Помните: используя ‘-v‘ вы можете видеть все опции (такие как DNS сервера), включённые в ответы.
habu.dhcp.starvation
Отправляет множество DHCP запросов с поддельных MAC адресов для заполнения всех свободных для аренды IP адресов у DHCP сервера.
Когда все доступные сетевые адреса назначены, сервер DHCP перестаёт отправлять ответы.
В результате могут быть сделаны некоторые атаки, такие как подмена DHCP.
habu.dns.lookup.forward
Выполняет прямой запрос (по имени получает IP адрес) для заданного имени хоста.
habu.dns.lookup.reverse
habu.dns.lookup.reverse [ОПЦИИ] IP_АДРЕС
Выполняет обратное преобразование заданного IP адреса, то есть по IP адресу узнаёт имя хоста.
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.expand
Получает некоторые данные об IP адресах.
habu.fernet
Шифрует строку с помощью шифра Fernet.
Использует AES-128-CBC с HMAC
Примечание: вы должны использовать ключ для шифрования с Fernet.
Используйте параметр -k или установите в конфигурации значение FERNET_KEY.
Ключ может быть сгенерирован командой habu.fernet.genkey.
habu.fernet.genkey
Генерирует новый ключ Fernet, опционально записывается
habu.forkbomb
Эта программа выводит исходный код для так называемых fork бомб на различных языках программирования.
Fork бобма — это небольшой код, который многократно дублирует себя, запуская свой процесс снова и снова, пока в системе не кончатся ресурса и пока она не зависит.
В настоящее время поддерживаются: bash, batch, c, haskell, perl, php, python, ruby.
habu.fqdn.finder
Использует различные техники для получения действительных FQDN («полностью определённое имя домена») указанных доменов:
1. Проверяет журналы Certificate Transparency
2. Подключается к указанным портам, получает SSL сертификаты и получает из них FQDN
Новая версия также будет делать:
3. Брут-форсить DNS Brute на распространённые имена
4. В начале пробовать DNS Zone Transfer
Результаты проверяются и очищаются от FQDN, которые не преобразовываются с помощью DNS (то есть которые не имеют IP адреса).
habu.gateway.find
Пытается достичь внешний IP, используя каждый хост как роутер. Полезна при поиске роутеров в сети.
Вначале программа использует arping для выявления живых хостов и получения MAC адресов.
Позже создаёт сетевые пакеты и указывает каждый MAC адрес в качестве хоста назначения.
Наконец печатает устройства, которые корректно перенаправили пакеты.
habu.h1.scope
Парсит HackerOne scope specification в формат BurpSuite JSON.
habu.hasher
Рассчитывает различные хеши для вводимых данных, которые могут быть файлом, строкой или потоком.
Вы можете также указать, какой алгоритм использовать. В этом случае вывод будет выведено только значение рассчитанного хеша:
habu.host
Собирает информацию о хосте, где запущен habu.
habu.http.headers
Получает HTTP заголовки веб-сервера.
habu.http.options
Получает доступные HTTP методы веб-сервера.
habu.http.tech
Использует базу данных Wappalyzer apps.json для идентификации технологий, используемых в веб-приложении.
Примечание: этот инструмент отправлят один запрос. Поэтому он малозаметен и не вызывает подозрения.
habu.interfaces
Показывает сетевые интерфейсы, которые доступны в системе.
habu.ip
Получает публичный IP адрес подключения используя сервис https://api.ipify.org.
habu.ip2asn
Использует сервис Team Cymru ip2asn для получения информации о публичном IPv4/IPv6.
habu.ip.geolocation
Получает данные о расположении IP адреса от https://ipapi.co/.
habu.ip.internal
Получает локальные(ые) IP адреса сетевых интерфейсов в системе.
habu.isn
Создаёт TCP подключения и печатает номера начальных последовательностей TCP для каждого из них.
Обратите внимание: вы можете получить графическое представление (чтобы это работало нужен пакет matplotlib) для лучшего понимания случайности, для этого укажите опцию ‘-g‘.
habu.jshell
Контролирует веб-браузер через Websockets.
Привязывается к порту (по умолчанию 3333) и прослушивает HTTP подключения.
При подключении отправляет JavaScript код, который открывает WebSocket, который может использоваться для отправки команд к подключённому браузеру.
Вы можете писать команды напрямую в шел или использовать плагины, которые являются просто внешними файлами JavaScript.
Используя habu.jshell вы можете полностью контролировать веб-браузер.
habu.karma
Используется сервис Karma: https://karma.securetia.com для проверки IP по различным спискам репутации и анализа угроз.
Примечание: вы можете использовать имя хоста или IP в качестве хоста для запроса.
habu.karma.bulk
Показывает, какие IP адреса в чёрном списке используя онлайн сервис Karma.
habu.land
Эта команда реализует атаку LAND, которая отправляет пакеты, в которых в качестве исходного адреса указан ненастоящий адрес, а такой же IP адрес как и конечный IP. Также использует одинаковые порты отправки и назначения.
Это очень старая атака и может использоваться для вызова Отказа в обслуживании на старых системах, таких как Windows NT 4.0. Больше информации здесь: https://en.wikipedia.org/wiki/LAND
Примечание: каждая точка (.) представляет собой отправленный пакет. С помощью опции ‘-c‘ вы можете указать, как много пакетов отправить. По умолчанию программа никогда не остановится. Также вы можете указать порт назначения используя опцию ‘-p‘
habu.nc
habu.nc [OPTIONS] ХОСТ ПОРТ
Некоего рода заменитель netcat/ncat.
Эта команда эмулирует поведение популярных инструментов netcat и ncat.
habu.nmap.excluded
Печатает случайный порт, который отсутствует в файле nmap-services, то есть который автоматически не сканируется программой nmap.
Полезно при настройке своих служб вроде SSH или RDP, если вы хотите, чтобы они работали на нестандартных портах, которые не будут автоматически просканированы nmap.
habu.nmap.open
Считывает файл отчёта nmap и печатает открытые порты.
Из сгенерированного отчёта nmap извлекает только открытые и выводит их в виде результирующего списка, в котором найденные открытые порты перечислены через запятую.
Этот инструмент и полученный список портов вы можете использовать для быстрого включения в команду запуска другого инструмента.
Поддерживаются и определяются 3 формата вывода (nmap, gnmap и xml).
habu.nmap.ports
Считывает отчёт nmap и выводит просканированные порты.
Из сгенерированного файла вывода nmap находит и выводит список всех протестированных портов при условии, что в настройках запуска команды nmap было указано сохранять в отчёт информацию как об открытых, так и о закрытых портах. Если в отчёте имеется информация только об открытых портах, то эта команда ведёт себя также как и habu.nmap.open, то есть покажет только открытые порты.
Этот инструмент и полученный список портов вы можете использовать для быстрого включения в команду запуска другого инструмента.
Поддерживаются и определяются 3 формата вывода (nmap, gnmap и xml).
habu.ping
Классический инструмент пингования, которые отправляет запросы ICMP echo.
habu.protoscan
Отправляет IP пакеты с различным содержимом полем протокола для определения, какие протоколы 4 уровня доступны.
Вывод показывает, какие протоколы не вызвали ICMP ответ ‘protocol-unreachable’.
habu.select
Выбирает указанные поля из вывода в формате JSON.
habu.server.ftp
Простой фальшивый FTP сервер, который служит цели только кражи учётных данных пользователя.
habu.shodan
Простой клиент shodan API.
Печатает результат запроса к shodan в формате JSON.
habu.shodan.query
Простой API клиент для запросов к shodan.
Печатает результаты в формате JSON запросов к shodan.
habu.synflood
Запускает множество TCP подключений и держит их открытыми.
Некоторые очень старые системы могут испытывать Отказ в обслуживании при использовании этого приёма.
Каждая точка — это отправленный пакет.
Вы можете использовать опции ‘-2‘ и ‘-3‘ для подделки адресов уровней 2/3 (канального и межсетевого, то есть MAC и IP адресов).
Если вы используете их, каждое подключение будет отправлено со случайного адреса второго уровня (MAC) и/или адреса уровня 3 (IP).
Вы можете выбрать количество подключений, которое нужно создать, это делается опцией ‘-c‘. По умолчанию никогда не останавливается в создании подключений.
Примечание: если вы отправляете пакеты с вашего реального IP адреса и вы хотите держать ваши подключения полуоткрытыми, вам нужно настроить файервол не отправлять пакеты RST (сброса соединения).
habu.tcpflags
Отправляет TCP пакеты с различными флагами и говорит, какие ответы получены.
Может использовать для анализа как различные реализации TCP/IP стэка и конфигурации отвечают на пакеты с различными комбинациями флагов.
По умолчанию, команда отправляет все возможные комбинации флагов. С опцией ‘-f‘ вы можете указать, какие флаги должны всегда присутствовать (уменьшая количество возможных комбинаций).
Также опцией ‘-r‘ вы можете определить, какие флаги вы хотите, чтобы присутствовали в показываемых пакетах ответа.
Следующей командой вы увидите все возможные комбинации, которые имеют установленный флаг FIN (F) и генерирует ответы, которые содержат флаг RST (R).
habu.tcpscan
Сканер портов TCP.
Выводит порты, которые сгенерировали ответ с флагом SYN или (или используется флаг -a), все порты, которые сгенерировали ответ.
Это очень простой сканер, если сравнивать с nmap.
habu.traceroute
Выявляет все сетевые узлы через которые проходит, пакет пока доберётся до пункта назначения. Принцип работы основывается на отправки пакетов с различным небольшим временем жизни и получении сообщений ttl-zero-during-transit
Примечание: в Интернете до одного и того же хоста может быть несколько действительных путей.
Примечание: лучше если использовать порт, который открыт на удалённой системе.
habu.usercheck
Проверяет, существует ли данное имя пользователя в различных социальных сетях и других популярных сайтах.
habu.version
habu.vhosts
Использует запросы к Bing для получения списка веб-сайтов, которые размещены на одном IP адресе.
habu.virustotal
Отправляет файл в VirusTotal https://www.virustotal.com/ и выводит отчёт о проверки файла на вирусы в формате JSON.
Примечание: перед отправкой файла, проверит, был ли файл проанализирован ранее (отправит sha256 этого файла), если отчёт существует, то настоящий файл отправляться не будет, а будет показан последний отчёт.
habu.web.report
Создаёт отчёт, который включает HTTP заголовки веб-сайта.
Опционально, использует Firefox или Chromium для создания скриншота веб-сайтов.
В качестве ожидаемого формата должен быть один URL на строку.
Создаёт директорию с именем ‘report’ в который записывает полученный контент.
habu.web.screenshot
Исполььзует Firefox или Chromium для создания скриншота веб-сайта.
habu.whois.domain
Простой клиент whois для проверки доменных имён.
habu.whois.ip
Простой whois клиент для проверки IP адресов (IPv4 и IPv6).
habu.xor
Шифрование с помощью XOR.
Помните: XOR не является сколько-нибудь надёжным шифрованием. Если вам нужно сильное шифрование, то используйте алгоритмы вроде AES. Для этого вы можете использовать модуль habu.fernet.
Руководство по Habu
Страница man отсутствует.
Примеры запуска Habu
Показать все устройства в локальной сети, их MAC адреса, IP адреса и производителя устройства:
Чтобы узнать MAC адрес устройства в локальной сети по известному IP адресу:
Для вычисления хешей файла yandex.nmap.txt по различным алгоритмам:
Для вычисления хешей строки СТРОКА по различным алгоритмам:
Получение всех заголовков ответа сайта https://yandex.ru:
Чтобы показать все интерфейсы в системе и их MAC и IP адреса:
Чтобы узнать свой публичный IP адрес:
Чтобы узнать свой публичный IPv6 адрес:
Для получения краткой информации об IP, об организации к которой он принадлежит и о диапазоне, в который входит указанный IP адрес:
Вывод информации о всех сетевых интерфейсах в системе и MAC адресах с IP адресами:
Создать 15 (-c 15) TCP подключений и начертить граф (-g) номеров начальных последовательностей TCP для каждого из них:
Сканирование TCP портов 22, 23, 80, 443 (-p 22,23,80,443) на хосте 45.77.113.133 с интервалом отправки пакетов в 1 секунду (-s 1):
Выполнить трассировку до хоста suip.biz:
Поиск имени пользователя miloserdov по социальным сетям и другим популярным веб-сайтам:
Выполнить проверку на вирусы файла test.cap:
Создать отчёт по сайту https://suip.biz, этот отчёт будет содержать заголовки ответа, а также скриншот страницы веб-сайта, сделанный с помощью веб-браузера Firefox:
Установка Habu
Установка в Kali Linux
Установка в BlackArch
Программа предустановлена в BlackArch.
Установка в Windows
Для работы некоторых функций (например, для трассировки) нужна установленная программа Winpcap или Npcap. Подробности об этих программах и для чего они нужны, вы можете прочитать в начале статьи «Взлом Wi-Fi без пользователей в Windows (с использованием Wireshark и Npcap для захвата PMKID)».
Вы можете установить отдельно Npcap или более старый вариант Winpcap, но ещё одним вариантом является установка Wireshark в Windows, которая поставляется с Npcap.
Информация об установке в другие операционные системы будет добавлена позже.
Скриншоты Habu
Устройства в локальной сети:
Рассчёт хеша файла по нескольким алгоритмам:
Заголовки ответа HTTP запроса:
Поиск имени пользователя по социальным сетям и популярным сайтам:
Ответ по веб-сайту, который включает заголовки ответа и скриншот сайта:
Источник