Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
inhale — Инструмент для анализа и классификации вредоносного ПО. | Kitploit
Инструменты/GitHubGitHub/netspooky/inhale
Статический анализАнализ хэшейФорензикаСбор информацииАнализ вредоносных программАнализ Бинарных Файлов
GitHubnetspooky/inhale

inhale

Инструмент для анализа и классификации вредоносного ПО.

Репозиторий
191335 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Inhale - Ингалятор для вредоносного ПО

Inhale — это инструмент для анализа и классификации вредоносного ПО, способный автоматизировать и масштабировать многие операции статического анализа.

Это бета-версия, предназначенная для тестирования, сбора отзывов и разработки сообществом.

История

Inhale начинался как серия небольших скриптов, которые я использовал при сборе и анализе большого количества вредоносного ПО из различных источников. Существует множество фреймворков и инструментов для выполнения подобной работы, но ни один из них не соответствовал моему рабочему процессу — быстрому поиску, классификации и хранению информации о большом количестве файлов. Некоторые также требуют дорогих ключей API и других платных сервисов.

В итоге я превратил эти скрипты в то, что люди могут быстро установить и использовать, будь то исследовательский сервер, ноутбук или недорогой компьютер вроде Raspberry Pi.

Установка

Этот инструмент создан для работы на Linux с использованием Python3, ElasticSearch, radare2, yara и binwalk. jq также требуется для красивого вывода данных из базы. Ниже приведены основные инструкции по установке.

В файле config.yml есть множество вещей, которые на самом деле ещё не настроены, просто оставьте их как есть, если в данной документации не указано иное.

Python3

Установка зависимостей

root@kitploit:~
python3 -m pip install -r requirements.txt

Установка ElasticSearch (Debian)

База данных не требуется для использования Inhale, но если вы хотите её настроить, просто следуйте этим инструкциям и установите параметр "enable_database" в True в config.yml.

Документация

root@kitploit:~
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
sudo service elasticsearch start

Вы также можете установить вручную, следуя этой документации

Кроме того, вы можете настроить полный стек ELK для визуализации и анализа данных. Это не обязательно для использования данного инструмента.

Установка radare2

Важно установить radare2 из репозитория, а не из вашего менеджера пакетов. Версии из менеджера пакетов не имеют всех необходимых функций для inhale.

root@kitploit:~
git clone https://github.com/radare/radare2
cd radare2
sys/install.sh

Установка Yara

Документация

root@kitploit:~
sudo apt-get install automake libtool make gcc
wget https://github.com/VirusTotal/yara/archive/v3.10.0.tar.gz
tar xvzf v3.10.0.tar.gz
cd yara-3.10.0/
./bootstrap.sh
./configure
make
sudo make install

Если вы получите ошибки о разделяемых объектах, попробуйте это исправить.

root@kitploit:~
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf'
sudo ldconfig

Установка binwalk

Скорее всего, лучше всего установить binwalk из репозитория.

root@kitploit:~
git clone https://github.com/ReFirmLabs/binwalk
cd binwalk
sudo python3 setup.py install

Дополнительная информация по установке дополнительных функций binwalk находится здесь.

Установка telfhash/tshl

Это библиотека, которая хэширует секции ELF-файлов для анализа семейств вредоносного ПО. telfhash зависит от tlsh, поэтому инструкции по установке обоих следующие:

Установка tlsh

root@kitploit:~
git clone https://github.com/trendmicro/tlsh
cd tlsh
./make.sh
cd py_ext/
python3 ./setup.py build
sudo python3 ./setup.py install

Установка telfhash

root@kitploit:~
git clone https://github.com/trendmicro/telfhash
cd telfhash
sudo python3 setup.py install

Настройка веб-сервера

Если вы хотите использовать веб-сервер для размещения вывода inhale для общего доступа, установите переменные в config.yml на соответствующие пути и убедитесь, что каталоги существуют!

root@kitploit:~
web:
  gen_html: False
  webdir: "/var/www/html/" # The actual web directory
  fqdn: "http://threat.land" # Your website
  in_path: "/var/www/html/inhaled/" # The path to inhale output
  ex_path: "/var/www/html/exhaled/" # The path for db query cache output

Чтобы использовать HTML-вывод, запустите inhale следующим образом:

root@kitploit:~
python3 inhale.py [all your args here] --html

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

Укажите файл для анализа по типу:

root@kitploit:~
-f INFILE      Анализировать один файл
-d DIRECTORY   Анализировать каталог файлов
-u URLFILE     Анализировать удалённый файл (url)
-r RDIRECTORY  Анализировать удалённый каталог (url)
-l URLLIST     Анализировать список URL-адресов в текстовом файле

Другие параметры:

root@kitploit:~
-t TAGS        Добавить дополнительные теги в вывод.
-b             Отключить сигнатуры binwalk
-y YARARULES   Указать пользовательские правила Yara
-o OUTDIR      Сохранить анализируемые файлы в указанный каталог (по умолчанию: ./files/<date>/)
-i             Только вывести информацию, не добавлять файлы в базу данных
--html         Сохранить вывод в формате HTML в webdir.

Примеры

Запуск inhale.py выполнит весь анализ указанного файла/каталога/URL и выведет результат в терминал.

Просмотреть информацию о /bin/ls, но не добавлять в базу данных

root@kitploit:~
python3 inhale.py -f /bin/ls -i 

Добавить каталог 'malwarez' в базу данных

root@kitploit:~
python3 inhale.py -d malwarez/

Загрузить этот файл и добавить в базу данных

root@kitploit:~
python3 inhale.py -u https://thugcrowd.com/chal/skull

Загрузить всё из этого удалённого каталога, пометить всё как "phishing":

root@kitploit:~
python3 inhale.py -r http://someurl.com/opendir/ -t phishing

СОВЕТ: Используйте этот поиск по хэштегам Twitter для поиска интересных открытых каталогов, которые могут содержать вредоносное ПО. Используйте на свой страх и риск.

Yara

Вы можете передавать свои собственные правила yara с помощью -y, это огромная работа в процессе, и почти всё в "YaraRules" взято из https://github.com/kevthehermit/PasteHunter/tree/master/YaraRules. Спасибо @KevTheHermit

Запросы к базе данных

Используйте db.sh для запросов (скоро появится хороший скрипт)

root@kitploit:~
db.sh *something* | jq .

Модель данных

Ниже представлена текущая модель данных, используемая для базы данных elasticsearch. Не каждое из этих полей будет использоваться для каждого файла. Все теги r2_* обычно зарезервированы для бинарных файлов.

Решение проблем

Есть несколько известных проблем с этим проектом (в основном связанных с версиями из менеджеров пакетов), и здесь я буду отслеживать всё, для чего есть решение.

Лимит полей индекса ElasticSearch

Если вы получите такую ошибку:

root@kitploit:~
elasticsearch.exceptions.RequestError: RequestError(400, 'illegal_argument_exception', 'Limit of total fields [1000] in index [inhaled] has been exceeded')

Возможно, у вас старая версия elasticSearch. Вы можете обновиться или увеличить лимит полей с помощью этой однострочной команды.

root@kitploit:~
curl -XPUT 'localhost:9200/inhaled/_settings' -H 'Content-Type: application/json' -d'{ "index" : { "mapping" : { "total_fields" : { "limit" : "100000" }}}}'

Будущие возможности

  • Переделка плагина бота для Discord / Matrix
  • Дополнительные функции анализа бинарных файлов — извлечение таблиц импорта/экспорта, хэширование определённых структур в заголовке, запись всех строк и т.д. Некоторые реализованы в telfhash!
  • Проверка, не является ли файл базой данных перед добавлением. Эта функция была удалена ранее из-за определённых проблем со старыми версиями ES.
  • Параметры конфигурации для запросов, такие как: user agent, timeout, proxy и т.д.
  • Докеризация всего проекта.

Вклад

PR приветствуются! Если вы хотите дать конкретный отзыв, вы также можете написать мне в личку @netspooky в Twitter.

Благодарности

Я хочу поблагодарить всех, кто помогал тестировать этот инструмент. Также хочу поблагодарить Plazmaz за первоначальную чистку кода, чтобы сделать его немного аккуратнее.

Приветы: hermit, plazmaz, nux, x0, dustyfresh, aneilan, sshell, readme, dnz, notdan, rqu, specters, nullcookies, ThugCrowd, и всем, кто участвует в ThreatLand и TC Safari Zone.

Скачать инструмент
NameОписание
filenameПолный путь к бинарному файлу
file_extРасширение файла
filesizeРазмер файла
filetypeТип файла на основе магического значения. Не так надёжен, как сигнатуры binwalk.
md5MD5-хэш файла
sha1SHA1-хэш файла
sha256SHA256-хэш файла
addedДата добавления файла
r2_archАрхитектура бинарного файла
r2_baddrБазовый адрес бинарного файла
r2_binszРазмер программного кода
r2_bitsРазрядность архитектуры - 8/16/32/64 и т.д.
r2_canaryВключены ли стековые канарейки
r2_classКласс бинарного файла
r2_compiledДата компиляции бинарного файла
r2_dbg_fileФайл отладки бинарного файла
r2_intrpИнтерпретатор, который вызывает бинарный файл, если он динамически скомпонован
r2_langЯзык исходного кода
r2_lsymsНаличие отладочных символов
r2_machineТип машины, обычно означает ЦП, для которого предназначен бинарный файл
r2_osОС, на которой должна работать машина
r2_picНаличие позиционно-независимого кода
r2_relocsНаличие перемещений
r2_rpathПуть поиска во время выполнения - если применимо
r2_strippedУдалена ли отладочная информация
r2_subsysПодсистема бинарного файла
r2_formatФормат бинарного файла
r2_iorwНаличие вызовов ioctl
r2_typeТип бинарного файла: исполняемый, разделяемый объект и т.д.
yaraСписок совпадений yara
binwalkСписок сигнатур binwalk и их расположение в бинарном файле
tagsЛюбые пользовательские теги, переданные с флагом -t.
urlИсходный URL, если файл был загружен удалённо
urlsЛюбые URL-адреса, извлечённые из бинарного файла