OSINT
June 8, 2021

Mihari - помощник по выполнению OSINT запросов и непрерывному анализу результатов

Салют, дорогие друзья!
Сегодня рассмотрим инструмент, который значительно упрощает жизнь кибер-детективам.

Как работает Mihari

Михари выполняет запросы к Shodan, Censys, VirusTotal, SecurityTrails и т.д., извлекая из результатов артефакты (IP-адреса, домены, URL-адреса и хэши), а так же проверяет, наличие артефактов в БД (SQLite3 или PostgreSQL).

Если артефакты найдены:

  • Cоздает оповещение на TheHive. (По желанию)
  • Отправляет уведомление в Slack. (По желанию)
  • Создает мероприятие на MISP. (По желанию)

Пример оповещения TheHive:

Пример уведомления Slack:

Пример события MISP:

Требования:

  • Ruby 2.6+
  • SQLite3
  • libpq
# For Debian / Ubuntu
apt-get install sqlite3 libsqlite3-dev libpq-dev

Установка:

gem install mihari

С использованием Docker'а:

docker pull ninoseki/mihari

Базовое использование

Mihari по умолчанию поддерживает следующие сервисы:

  • BinaryEdge
  • Censys
  • CIRCL passive DNS / passive SSL
  • crt.sh
  • DN Pedia
  • dnstwister
  • Onyphe
  • OTX
  • PassiveTotal
  • SecurityTrails
  • Shodan
  • urlscan.io
  • VirusTotal
  • ZoomEye

Перекрестный поиск
​В Mihari есть функции перекрестного поиска. Перекрестный поиск - это поиск сразу по множеству сервисов.

  • Вы можете получить агрегированные результаты, используя следующие команды:

Команда http_hash

  • ​Использование команды http_hash будет немного сложное:

Есть 2 способа использовать эту команду.

  • Первый из них испоьзует --md5, --sha256и --mmh3 параметры:
mihari http_hash --md5=881191f7736b5b8cfad5959ca99d2a51 --sha256=b064187ebdc51721708ad98cd89dacc346017cb0fb0457d530032d387f1ff20e --mmh3=-1467534799
  • Другой передает --html параметр. В этом случае автоматически вычисляются хэши HTML-файла:
wget http://example.com -O /tmp/index.html
mihari http_hash --html /tmp/index.html

Примеры использования

# Censys lookup for PANDA C2
mihari censys '("PANDA" AND "SMAdmin" AND "layui")' --title "PANDA C2"

# VirusTotal passive DNS lookup of a FAKESPY host
mihari virustotal "jppost-hi.top" --title "FAKESPY passive DNS"

# You can pass a "defanged" indicator as an input
mihari virustotal "jppost-hi[.]top" --title "FAKESPY passive DNS"

Импорт из JSON

echo '{ "title": "test", "description": "test", "artifacts": ["1.1.1.1", "github.com", "2.2.2.2"] }' | mihari import_from_json
  • Вводные JSON-данные должны иметь title, description и artifacts ключ.
tags key - необязательный параметр.
{
  "title": "test",
  "description": "test",
  "artifacts": ["1.1.1.1", "github.com"],
  "tags": ["test"]
}

Конфигурация

Конфигурация может быть выполнена с помощью переменных среды или файла YAML:

mihari virustotal 1.1.1.1 --config /path/to/yaml.yml
  • Файл YAML должен содержать хеш YAML, как показано ниже:
database: /tmp/mihari.db
thehive_api_endpoint: https://localhost
thehive_api_key: foo
virustotal_api_key: foo
  • Проверить статус конфигурации можно с помощью команды:
mihari status

На сегодня все. Удачной разведки!

Да, хочу!