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

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

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

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

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

Категории

Все категории
Loading categories
SUNBURST — Обнаружение SUNBURST C2 Stage-1 с использованием энтропии Шеннона | Kitploit
Инструменты/GitHubGitHub/malwaremorghulis/sunburst
Сетевая безопасностьАнализ вредоносных программКомандование и УправлениеРазведка угрозАнализ DNSОбнаружение Аномалий
GitHubmalwaremorghulis/sunburst

SUNBURST

Обнаружение SUNBURST C2 Stage-1 с использованием энтропии Шеннона

Репозиторий
313 лет назадЕщё не проверено

Популярное

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

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

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

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

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

SUNBURST

Обнаружение C2 Stage-1 SUNBURST с использованием энтропии Шеннона

О программе:

Использование энтропии Шеннона для обнаружения алгоритмов генерации доменов (DGA). В функцию должны подаваться только FQDN либо считываться из CSV-файла. Синтаксис: Prefix_or_subdomain.Domain.TLD Создано из-за использования APT-группами длиннострочных DGA для Kill Chain: C2. Идентификация длиннострочных URL с высокой энтропией > 2 стандартных отклонений. Анализ верхних 2,5% URL с длинными префиксами/поддоменами. Сохранение дополнительных метаданных на случай, если аналитикам CND они понадобятся (например, длина префикса).

Требования:

  1. Python 3.9+
  2. Python присутствует в переменной PATH
  3. Все импорты указаны (pip install, при необходимости)
  4. Входной DNS-журнал содержит 1x FQDN в строке (без прочей пунктуации)
  5. Cisco Top-1M (CSV, ZIP) или Majestic (CSV) Top-1M находятся в той же папке, что и скрипт.

Как запустить (ИНТЕРАКТИВНЫЙ РЕЖИМ ВКЛЮЧЁН, см. ПЕРЕМЕННЫЕ):

  1. Установите Python 3.9.x
  2. Подготовьте все входные файлы с правильным форматированием (домены в текстовом файле, по одному в строке, без пунктуации)
  3. Убедитесь, что входные файлы находятся в том же каталоге/папке, что и этот скрипт. 4a) (Windows) Откройте этот скрипт в Python IDLE или Visual Studio Code. 4b) (Linux) $~: python3 shannon.py
  4. Введите имя входного DNS-журнала для анализа.
  5. Введите файл Cisco Umbrella (CSV/ZIP) или Majestic Top-1M (CSV) для использования.
  6. Дождитесь генерации значений частотности и энтропии Шеннона.
  7. Изучите выходные файлы.

Как запустить (ИНТЕРАКТИВНЫЙ РЕЖИМ ВЫКЛЮЧЕН, см. ПЕРЕМЕННЫЕ):

  1. Установите Python 3.9.x
  2. Подготовьте все входные файлы с правильным форматированием (домены в текстовом файле, по одному в строке, без пунктуации)
  3. Убедитесь, что входные файлы находятся в том же каталоге/папке, что и этот скрипт. 4a) (Windows) Откройте этот скрипт в Python IDLE или Visual Studio Code. 4b) (Linux) $~: python3 shannon.py
  4. Анализируемый входной журнал — «domains.txt», см. ПЕРЕМЕННЫЕ.
  5. Выберите файл Top-N для построения словарной вероятности, см. ПЕРЕМЕННЫЕ.
  6. Дождитесь генерации значений частотности и энтропии Шеннона.
  7. Изучите выходные файлы.

Допущения:

  1. Заглавные и строчные буквы имеют равную вероятность появления. a) Пренебрегаем тем, что узлы TOR изменяют чувствительность к регистру в DNS-запросах и 0x20-кодирование.
  2. Таблицы частотности символов ETOAN недостаточно из-за отсутствия: 0-9, "-" и "" a) Домены могут содержать дефисы (-), подчёркивания () и цифры.
  3. Не предназначен для противодействия DGA ExploderBot.
  4. Входные данные: простой текстовый файл, каждый URL в отдельной строке — ничего больше.
  5. Входные данные состоят строго из строк URL без запрещённых символов.
  6. Входные и выходные файлы должны находиться в той же папке, что и этот скрипт.
  7. Python3 находится в переменной PATH.

Набор данных (домены):

Используемый набор данных был получен из журнала запросов Pi-Hole (окно 12 часов), извлечённого из SQLite.

BASH:

$~: sqlite3 /etc/pihole/pihole-FTL.db "SELECT domain FROM queries WHERE timestamp >='$(($(date +%s) - 43200))'" > domains.txt

Данные были дедублицированы с помощью Excel > Данные > Удалить дубликаты. Данные для обратных просмотров (PTR) in-addr.arpa также были удалены.

Набор данных (вероятности):

Используя результаты RedCanary для анализа DGA, этот скрипт принимает URL и вычисляет энтропию Шеннона.

План этапов тестирования DevOps:

  1. shannon.py (1.0) — добиться работы вычислений со статическим словарём RedCanary.
  2. shannon.py (1.1) — незначительные тесты объединены в 1.0.
  3. dictionary.py (1.0) — проверка открытия/закрытия Cisco + Majestic Top-1M.
  4. shannon.py (2.0) — объединение проверенных функций 1.0 с dictionary.py.

Ссылки:

Splunk Shannon Entropy — откуда взялась идея* https://www.splunk.com/en_us/blog/tips-and-tricks/when-entropy-meets-shannon.html

SANS Mark Baggett — инструмент, который RedCanary использовала для анализа Alexa Top 1M https://github.com/markbaggett/freq

RedCanary — блог, из которого взяты оценки вероятности https://redcanary.com/blog/threat-hunting-entropy/

Alexa's Top 1M Domains — корпус данных, использованный RedCanary https://www.alexa.com/topsites

DGA Detector https://github.com/exp0se/dga_detector

Shannon Entropy — формула https://towardsdatascience.com/the-intuition-behind-shannons-entropy-e74820fe9800

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