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

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

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

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

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

Категории

Все категории
Loading categories
iocextract — Экстрактор дефангированных индикаторов компрометации (IOC). | Kitploit
Инструменты/GitHubGitHub/pedramamini/iocextract
Управление индикаторами компрометации (IOC)OSINT (Разведка открытых источников)Фиды и агрегаторы угрозФорензикаСбор информацииАнализ вредоносных программЦифровая криминалистикаРазведка угроз
GitHubpedramamini/iocextract

iocextract

Экстрактор дефангированных индикаторов компрометации (IOC).

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

Популярное

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

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

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

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

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

iocextract

Разработано InQuest Статус сборки Статус документации Версия PyPI

Индикатор компрометации (IOC) — извлекатель для некоторых наиболее часто используемых артефактов.

Содержание

  • Обзор
    • Проблема
    • Наше решение
    • Пример использования
  • Установка
  • Использование
    • Библиотека
    • Интерфейс командной строки
  • Полезная информация
    • Часто задаваемые вопросы
    • Подробнее
    • Пользовательские регулярные выражения
    • Связанные проекты
    • Участие в разработке

Обзор

Пакет iocextract — это библиотека и интерфейс командной строки (CLI) для извлечения URL-адресов, IP-адресов, MD5/SHA-хешей, адресов электронной почты и правил YARA из текстовых корпусов. Он позволяет извлекать закодированные и «обезвреженные» (defanged) IOC и при необходимости декодировать или восстанавливать их (refang).

Проблема

Среди аналитиков вредоносного ПО и разработчиков конечных средств защиты распространена практика «обезвреживания» (defanging) IOC, таких как URL-адреса и IP-адреса, чтобы предотвратить случайный доступ к живому вредоносному контенту. Возможность извлекать и агрегировать такие IOC часто полезна для аналитиков. К сожалению, существующие инструменты «извлечения IOC» часто пропускают их, поскольку они не распознаются стандартными регулярными выражениями.

Например, простая техника обезвреживания — обрамление точек квадратными скобками:

127[.]0[.]0[.]1

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

Наше решение

Объединяя специально разработанные регулярные выражения с некоторой пользовательской постобработкой, мы можем как обнаруживать, так и деобфусцировать «обезвреженные» IOC. Это экономит время и усилия аналитика, которому в противном случае пришлось бы вручную находить и преобразовывать IOC в машиночитаемый формат.

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

Многие пользователи Twitter публикуют C2 или другую ценную информацию об IOC с обезвреженными URL-адресами. Например, этот твит от @InQuest:

Рекомендуемое чтение и отличная работа от @unit42_intel:
https://researchcenter.paloaltonetworks.com/2018/02/unit42-sofacy-attacks-multiple-government-entities/ ...
Клиенты InQuest имели обнаружение угроз, доставленных с hotfixmsupload[.]com
с 6/3/2017 и cdnverify[.]net с 2/1/18.

Если пропустить это через извлекатель, мы легко получим URL-адреса:

https://researchcenter.paloaltonetworks.com/2018/02/unit42-sofacy-attacks-multiple-government-entities/
hotfixmsupload[.]com
cdnverify[.]net

Если при извлечении передать refang=True, обфускация будет удалена, но поскольку это реальные IOC, оставим их обезвреженными в нашей документации.

Установка

Возможно, потребуется установить заголовочные файлы для разработки на Python, чтобы установить зависимость regex. В системах на базе Ubuntu/Debian попробуйте:

sudo apt-get install python-dev

Затем установите iocextract через pip:

pip install iocextract

Если возникают проблемы с установкой в Windows, попробуйте установить regex напрямую, скачав соответствующий wheel с PyPI и установив через pip:

pip install regex-2018.06.21-cp27-none-win_amd64.whl

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

Библиотека

Попробуйте извлечь некоторые обезвреженные URL-адреса:

import iocextract

content = \
"""
Я очень люблю example[.]com!
Все боты сейчас на hxxp://example.com/bad/url.
C2: tcp://example[.]com:8989/bad
"""

for url in iocextract.extract_urls(content):
    print(url)

    # Вывод

    # hxxp://example.com/bad/url
    # tcp://example[.]com:8989/bad
    # example[.]com
    # tcp://example[.]com:8989/bad

ПРИМЕЧАНИЕ: Некоторые URL-адреса могут появляться дважды, если они попадают под несколько регулярных выражений.

При желании вы также можете «восстановить» (refang) или удалить распространенные методы обфускации из IOC:

import iocextract

for url in iocextract.extract_urls(content, refang=True):
    print(url)

    # Вывод

    # http://example.com/bad/url
    # http://example.com:8989/bad
    # http://example.com
    # http://example.com:8989/bad

Если вы не хотите обезвреживать извлеченные IOC при извлечении, вы можете отключить это:

import iocextract

content = \
"""
http://example.com/bad/url
http://example.com:8989/bad
http://example.com
http://example.com:8989/bad
"""

for url in iocextract.extract_urls(content, defang=False):
    print(url)

    # Вывод

    # http://example.com/bad/url
    # http://example.com:8989/bad
    # http://example.com
    # http://example.com:8989/bad

Все функции extract_* в этой библиотеке возвращают итераторы, а не списки. Преимущество такого поведения в том, что iocextract может обрабатывать очень большие входные данные с очень низкими накладными расходами. Однако если по какой-то причине вам нужно перебирать IOC более одного раза, вам придется сохранить результаты в виде списка:

import iocextract

content = \
"""
Я очень люблю example[.]com!
Все боты сейчас на hxxp://example.com/bad/url.
C2: tcp://example[.]com:8989/bad
"""

print(list(iocextract.extract_urls(content)))
# ['hxxp://example.com/bad/url', 'tcp://example[.]com:8989/bad', 'example[.]com', 'tcp://example[.]com:8989/bad']

Интерфейс командной строки

Также включен инструмент командной строки:

$ iocextract -h
    usage: iocextract [-h] [--input INPUT] [--output OUTPUT] [--extract-emails]
                  [--extract-ips] [--extract-ipv4s] [--extract-ipv6s]
                  [--extract-urls] [--extract-yara-rules] [--extract-hashes]
                  [--custom-regex REGEX_FILE] [--refang] [--strip-urls]
                  [--wide]

    Advanced Indicator of Compromise (IOC) extractor. If no arguments are
    specified, the default behavior is to extract all IOCs.

    optional arguments:
      -h, --help            show this help message and exit
      --input INPUT         default: stdin
      --output OUTPUT       default: stdout
      --extract-emails
      --extract-ips
      --extract-ipv4s
      --extract-ipv6s
      --extract-urls
      --extract-yara-rules
      --extract-hashes
      --custom-regex REGEX_FILE file with custom regex strings, one per line, with one capture group each
      --refang              default: no
      --strip-urls          remove possible garbage from the end of urls. default: no
      --wide                preprocess input to allow wide-encoded character matches. default: no

ПРИМЕЧАНИЕ: Только URL-адреса, адреса электронной почты и IPv4-адреса могут быть «восстановлены» (refanged).

Полезная информация

Часто задаваемые вопросы

Вы...

В. Извлекаете потенциально обезвреженные IOC из обычного текста, например, содержимого твитов или постов в блогах?

О. Да! Именно для этого и был разработан iocextract, и в этом он показывает наилучшие результаты. Хотите пойти дальше и автоматизировать извлечение и хранение? Ознакомьтесь с ThreatIngestor.

Скачать инструмент