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

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

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

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

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

Категории

Все категории
Loading categories
WAREED-DNS-C2 — DNS-ориентированный фреймворк управления и контроля (C2) с агентом для Windows, генерацией полезной нагрузки, удалённым выполнением shell-команд, внедрением shellcode и поддержкой SOCKS5-прокси для скрытных операций. | Kitploit
Инструменты/GitHubGitHub/faisal-p27/wareed-dns-c2
Генерация полезной нагрузкиОбход IDS/IPSПост-эксплуатацияКомандование и УправлениеИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubfaisal-p27/wareed-dns-c2

WAREED-DNS-C2

DNS-ориентированный фреймворк управления и контроля (C2) с агентом для Windows, генерацией полезной нагрузки, удалённым выполнением shell-команд, внедрением shellcode и поддержкой SOCKS5-прокси для скрытных операций.

Репозиторий
126341 год назадПроверено Kitploit

Популярное

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

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

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

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

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

Wareed DNS C2

enter image description here

WAREED — это фреймворк Command and Control (C2), использующий протокол DNS для безопасной связи между сервером и целью. Разработанный для минимизации объёма связи и ограничения обмена данными, он предназначен для использования в качестве C2 первой стадии для закрепления на машинах, которые не имеют доступа в интернет через HTTP/HTTPS, но где DNS разрешён.

разработано : @Fsalabduljabbar

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

enter image description here

Почему Wareed

Хотя многие фреймворки Command and Control (C2) поддерживают DNS в качестве транспортного протокола, в основном они разработаны для HTTP/HTTPS. Перевод этих фреймворков на DNS часто приводит к более медленной и менее стабильной работе. Столкнувшись с многочисленными проблемами из-за нестабильности этих фреймворков при DNS-транзакциях, я был вынужден создать решение, специально адаптированное под DNS. Результатом стал Wareed — C2-фреймворк, работающий исключительно через DNS. Такая узкая специализация обеспечивает более стабильную и эффективную работу, делая Wareed быстрее и надёжнее по сравнению с традиционными C2-фреймворками, которые не предназначены в первую очередь для DNS. Это делает Wareed идеальным выбором для сред, где DNS-трафик разрешён, а HTTP/HTTPS ограничен.

О проекте

Он разработан с использованием трёх языков программирования:

  1. Агент Hams на C
  2. Team-сервер Wareed на Golang
  3. GUI-клиент Ather на C++

Пояснение названий:

Hams (همس) означает "шёпот" на арабском языке

Wareed (وريد) означает "вена" на арабском языке

Ather (أثر) означает "след" на арабском языке

Демонстрация

IMAGE ALT TEXT HERE

Предварительные требования

  1. Действительное доменное имя, которое вы контролируете
  2. Kali Linux 2023+ или Ubuntu 23+
  3. Один редиректор (Ubuntu) для обработки DNS-подключений (необязательно)

Установка

Шаг 1: Клонируйте репозиторий Wareed:

root@kitploit:~
git clone https://github.com/Faisal-P27/WAREED-DNS-C2.git

Шаг 2: Запустите скрипт установки:

root@kitploit:~
cd WAREED-DNS-C2
chmod +x Run.sh
sudo ./Run.sh setup

Если процесс компиляции завершится успешно, в том же каталоге будут созданы два исполняемых файла:

  • WareedServer: Этот файл является исполняемым файлом team-сервера
  • Ather: Этот файл является исполняемым файлом GUI-клиента.

Также будет проверен статус компиляции агента. В случае успеха это подтверждает, что агент готов к развёртыванию и работе, что имеет решающее значение для функционирования Wareed C2.

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

root@kitploit:~
{
    "magic_value": "cdn",
    "domains": ["2.example.net"],
    "listener_port": "111",
    "sleep": 5,
    "jitter": 50,
    "lookup_delay": 5,
    "default_dns_server": "1.1.1.1"
}
  • magic_value: Уникальный идентификатор, используемый C2.
  • domains: Массив доменных имён, используемых C2 для DNS-коммуникаций.
  • listener_port: Номер порта, на котором team-сервер DNS прослушивает входящие подключения.
  • sleep: Базовая задержка между запросами задач.
  • jitter: Процент, добавляющий случайность в интервалы сна для маскировки паттернов трафика.
  • lookup_delay (отключено): Задержка перед выполнением DNS-запроса для распределения DNS-запросов по времени и избежания обнаружения.
  • **default_dns_server **: DNS-сервер, указанный для использования агентом, если локальный DNS-сервер не отвечает.

magic_value: длина должна быть равна 3.

DNS-инфраструктура

Настройка DNS: Для работы Wareed необходимо иметь действительное доменное имя. После приобретения домена необходимо настроить две DNS-записи, указывающие на редиректор:

  1. A-запись: Должна быть настроена так, чтобы указывать на IP-адрес редиректора.
  2. NS-запись: Должна указывать на A-запись, созданную ранее.

example

Инфраструктура

Настройка редиректора: Редиректор будет обрабатывать входящий DNS-трафик на порту 53 и перенаправлять его на team-сервер. Для этого выполните следующие команды iptables на машине-редиректоре (R1):

Принять DNS-запросы:
root@kitploit:~
iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT

Эта команда настраивает брандмауэр на приём входящих UDP-пакетов на порту 53, который является стандартным портом для DNS-запросов.

Перенаправление DNS-трафика:
root@kitploit:~
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination [TeamServer IP]:[teamserver listener port]

Замените [TeamServer IP] на фактический IP-адрес вашего team-сервера, а [teamserver listener port] — на номер порта, на котором прослушивает ваш team-сервер. Эта команда направляет весь трафик, поступающий на порт 53, на указанные IP-адрес и порт team-сервера.

enter image description here

Запуск Wareed

Team-сервер Wareed

Чтобы запустить team-сервер Wareed в первый раз, необходимо указать файл конфигурации, пароль клиента и порт, на котором будет слушать клиент. Используйте следующую команду для запуска team-сервера Wareed:

root@kitploit:~
sudo ./WareedServer [Client Password] [Client Port Listener] [Path to configuration file]
  • [Client Password]: Замените этот заполнитель на пароль, который клиенты будут использовать для аутентификации на сервере.
  • [Client Port Listener]: Замените это на номер порта, на котором team-сервер будет прослушивать входящие подключения от клиента.
  • [Path to configuration file]: Укажите полный путь к исходному файлу конфигурации. При последующих запусках эта конфигурация будет загружаться из базы данных, и её не нужно будет указывать снова.

GUI-клиент Ather

Чтобы запустить GUI-клиент Ather, просто выполните:

root@kitploit:~
./Ather

После выполнения команды появится новое окно со страницей входа.

enter image description here

Данные для входа: На появившейся странице входа:

  • Username: Введите имя пользователя.
  • Password: Введите пароль, заданный в командной строке team-сервера.
  • Port: Введите номер порта, на котором team-сервер прослушивает подключения, как указано в командной строке team-сервера.
  • IPAddress: Введите адрес team-сервера.

Главное окно Wareed: enter image description here

Генерация нового payload

Чтобы сгенерировать новый payload с помощью GUI-клиента Ather, выполните следующие шаги:

  1. Переход к генерации payload:

    • Откройте GUI-клиент.
    • В строке меню перейдите в Payload > Generate > Windows. При выборе этого пункта откроется новое окно, предназначенное для генерации payload.

enter image description here

  1. Выбор типа payload: Wareed позволяет генерировать два типа payload: - EXE: Формат исполняемого файла, простой в развёртывании. - DLL: Динамически подключаемая библиотека, которую можно использовать различными способами. -

Параметры DLL payload:

  1. Экспортная функция: Создаёт DLL с определёнными функциями, которые запускают функциональность агента при выполнении.
  2. Внедрение в процесс: Создаёт DLL, которая при внедрении в процесс немедленно активирует payload.

Сессия

После генерации нового payload на team-сервере автоматически регистрируется новая гостевая сессия. Этот процесс регистрации гарантирует, что только эта конкретная сессия сможет подключиться к team-серверу. Для аутентификации и авторизации сессии используются уникальный идентификатор и 'magic value'. Этот механизм обеспечивает безопасную и контролируемую связь между сгенерированным payload и team-сервером. enter image description here

Запуск payload

После запуска payload на машине с Windows он начнёт генерировать DNS-запросы для регистрации на team-сервере. Этот процесс регистрации занимает несколько секунд и обычно включает генерацию от 3 до 5 DNS-запросов. enter image description here

Взаимодействие

Чтобы взаимодействовать с сессией, просто щёлкните правой кнопкой мыши по нужной сессии и выберите "Interact" в контекстном меню. Это действие откроет новую вкладку с интерфейсом терминала. В этом терминале вы можете выполнять команды enter image description here

Команды

Примечание: Команда inject проста, но часто обнаруживается средствами защиты. Чтобы повысить скрытность, вам следует реализовать собственную технику инъекции. Измените код инъекции в Agent/Source/Core/Tasks/Modules/Injection.c. Вот базовый шаблон для настройки функции инъекции:

root@kitploit:~
int Inject(unsigned char *ShellCode, int size, int ProcessID) {
	// Add your injection technique here.
	// You will receive the shellcode in [unsigned char *ShellCode] and shellcode size in [nt size]
	// and the process ID in [int ProcessID].
 }

Очистка базы данных

Чтобы очистить базу данных, просто выполните следующую команду в терминале:

root@kitploit:~
./Run clean

Дальнейшие действия

Хотя у меня нет непосредственных планов продолжать вкладывать время в проект Wareed, это был невероятный путь обучения, и мне он очень понравился. Я рад сообщить, что планирую запустить новый крупный проект — THAWD BAS. Для получения дополнительной информации посетите Thawd.io.

Если у вас есть навыки разработки и вы заинтересованы в участии в разработке Wareed, вот несколько возможностей:

  1. Разработка стейджер-пейлоада с использованием DNS: Существует отличный проект от @C5pider, в котором представлен шаблон шеллкода — отличная отправная точка. Ознакомьтесь с Stardust на GitHub.
  2. Добавьте COFF-загрузчик и интеграцию: Интеграция COFF-загрузчика (Common Object File Format) в фреймворк Wareed может значительно расширить его возможности за счёт динамической загрузки и выполнения бинарных модулей, тем самым повышая операционную гибкость. Для разработчиков, желающих реализовать эту функцию, такие ресурсы, как Sector7, предлагают ценную информацию о функциональности COFF-загрузчиков, а проект с открытым исходным кодом CoffeeLdr от @C5pider предоставляет практический пример реализации.

Особая благодарность

Эта работа не могла бы быть выполнена без вклада нескольких выдающихся проектов с открытым исходным кодом:

Havoc от - @C5pider

DNSStager от - @mohammadaskar2

Boomerang от - @NinjaParanoid

Socks5Server от earthquake

delete-self-poc от - @LloydLabs

Скачать инструмент
КомандаОписаниеИспользованиеПример
helpПоказывает справочное сообщение указанной команды[command]help shell
sleepЗадаёт задержку сна с джиттером[delay] [jitter]sleep 10 50
shellВыполняет команды cmd.exe и возвращает вывод[commands]shell dir c:\windows\system32 (пожалуйста, не делайте этого)
injectВнедряет шеллкод в удалённый процесс[pid] [shellcode_path]inject 1234 /path/to/shellcode.bin
proxystartЗапускает прокси SOCKS5[callback_host] [agent_connect_port] [proxy_listener_port]proxystart example.com 443 1080
proxystopОстанавливает прокси SOCKS5[callback_host] [agent_connect_port] [proxy_listener_port]proxystop example.com 443 1080
adddomainДобавляет новый домен для обратного вызова[domain_name]adddomain example.com
deldomainУдаляет домен для обратного вызова[domain_name]deldomain example.com
listdomainВыводит список всех активных доменов для обратного вызоваlistdomain
killЗавершает текущий процесс.[yes]kill yes
wipeЗавершает и удаляет текущий процесс.[yes]wipe yes
selfdelУдаляет текущий процесс с диска.[yes]selfdel yes
tasklistВыводит список всех задач в очередиtasklist
taskdelУдаляет конкретную задачу по ID[task id]taskdel 123
taskscleanУдаляет все задачи из очереди[yes]tasksclean yes
clearОчищает экран терминалаclear