FLARE-Fakenet-NG — это инструмент нового поколения для имитации сетевых служб, разработанный экспертами лаборатории Mandiant FLARE. Это наследник оригинального Fakenet, полностью переписанный на Python с целью обеспечения большей гибкости, расширяемости и контроля для аналитиков. По своей сути, Fakenet-NG является «сетевым обманщиком» (deception tool): он заставляет вредоносное ПО «думать», что оно находится в реальной сети и успешно взаимодействует с интернет-сервисами, в то время как все соединения перенаправляются на локальный имитационный сервис.
🟧 Принцип работы
Fakenet-NG перенаправляет весь исходящий сетевой трафик на локальный интерфейс (127.0.0.1), где прослушивает основные порты TCP/UDP. При попытке вредоносной программы установить соединение (DNS, HTTP, HTTPS и др.), инструмент перехватывает запрос и генерирует правдоподобный ответ на основе предустановленных или пользовательских конфигураций, имитируя работу реальных сервисов.
🟧 Особенности
1. Инструмент поддерживает широкий спектр протоколов (HTTP/HTTPS, DNS, FTP, SMTP, POP3), что критически важно для анализа современных угроз, использующих разнообразные каналы связи.
2. Система конфигураций YAML позволяет детально настраивать ответы для каждого протокола, включая эмуляцию конкретных сервисов, генерацию DNS-записей и подпись HTTPS-сертификатов.
3. Архитектура позволяет добавлять поддержку новых протоколов и нестандартных методов коммуникации, обеспечивая долгосрочную актуальность инструмента.
4. Инструмент фиксирует всю сетевую активность — от сырых пакетов до расшифрованного TLS-трафика, предоставляя бесценные данные для анализа поведения вредоносного ПО, выявления IoC и создания правил обнаружения.
🟧Устанавливаем
git clone https://github.com/mandiant/flare-fakenet-ng.git
cd flare-fakenet-ng
🟧Создаем виртуальное окружение
python3 -m venv venv
🟧Активируем его
source venv/bin/activate
🟧Устанавливаем системные зависимости
sudo apt install -y build-essential python3-dev libnfnetlink-dev libnetfilter-queue-dev
🟧Устанавливаем Python-зависимости
pip install wheel cryptography dnslib dpkt netifaces pyftpdlib pyopenssl jinja2
🟧Устанавливаем основной пакет
pip install .
🟧Проверяем
python -m fakenet.fakenet --help
🟧 Запуск и тестирование
🟧В одном терминале запускаем сервер:
sudo python -m fakenet.fakenet -c configs/default.yml
🟧Откройте новый терминал и выполните (активируем окружение в новом терминале):
cd flare-fakenet-ng
source venv/bin/activate
🟧Тестируем DNS (должен вернуть 10.0.0.1)
nslookup google.com 127.0.0.1
В первом терминале (где запущен fakenet) увидите:
[INFO] Starting listeners...
[DNS] Request: google.com -> Response: 10.0.0.1
[HTTP] Request: microsoft.com -> Response: 200 OK
Во втором терминале (тестовом):
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: google.com
Address: 10.0.0.1
