
Инструмент тестирования эксфильтрации данных на основе DNS с двунаправленной передачей, веб-интерфейсом и клиентским скриптом для обнаружения уязвимостей слепого RCE/XXE в ограниченных средах.
Аналог request.bin для DNS-запросов
DNSBin — это простой инструмент для проверки утечки данных через DNS и тестирования уязвимостей, таких как RCE или XXE, в среде с существенными ограничениями. Проект состоит из двух частей: первая — веб-сервер и его компоненты. Он предоставляет базовый веб-интерфейс; в большинстве случаев вам не понадобится ничего больше. Клиентская часть включает скрипт на Python, который позволяет передавать данные в обоих направлениях через DNS с использованием веб-сервиса.
Текущая настройка DNS для демонстрационного сервера выглядит следующим образом. Обратите внимание, что я делал это методом проб и ошибок, поэтому конфигурация может быть излишне сложной или содержать недочёты. Если вы более компетентны в этой области, не стесняйтесь открыть issue.
Настоятельно рекомендуется запускать DNS-приёмник и WebSocket-конечную точку с помощью модуля Node.JS "forever".
forever start index.js
Что касается фронтенда, файл "index.html" можно разместить на любом вашем веб-сервере. Убедитесь, что адрес WebSocket указывает на ваш сервер.
Клиентский скрипт требует установки "dnspython" на обоих концах. Независимо от того, отправляете ли вы или получаете данные, сначала необходимо запустить скрипт на машине, находящейся вне ограниченной зоны. Скрипт предоставит вам уникальный токен, который нужно передать при запуске скрипта на машине внутри ограниченной зоны.
Внешняя машина
echo test12345 | python main.py -f- -d out -t-
Внутренняя машина
python main.py -f- -d in -t TOKEN_THE_FIRST_COMMAND_GAVE_YOU
Внешняя машина
python main.py -f- -d in -t-
Внутренняя машина
echo test12345 | python main.py -f- -d out -t TOKEN_THE_FIRST_COMMAND_GAVE_YOU