8009 - Pentesting Apache JServ Protocol (AJP)
Reading time: 4 minutes
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Basic Information
From https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/
AJP είναι ένα πρωτόκολλο καλωδίωσης. Είναι μια βελτιστοποιημένη έκδοση του πρωτοκόλλου HTTP για να επιτρέπει σε έναν αυτόνομο web server όπως ο Apache να επικοινωνεί με τον Tomcat. Ιστορικά, ο Apache ήταν πολύ πιο γρήγορος από τον Tomcat στην εξυπηρέτηση στατικού περιεχομένου. Η ιδέα είναι να επιτρέπεται στον Apache να εξυπηρετεί το στατικό περιεχόμενο όταν είναι δυνατόν, αλλά να προξενεί το αίτημα στον Tomcat για περιεχόμενο σχετικό με τον Tomcat.
Also interesting:
Το πρωτόκολλο ajp13 είναι προσανατολισμένο σε πακέτα. Ένας δυαδικός μορφότυπος επιλέχθηκε προφανώς σε σχέση με το πιο αναγνώσιμο απλό κείμενο για λόγους απόδοσης. Ο web server επικοινωνεί με το servlet container μέσω TCP συνδέσεων. Για να μειωθεί η δαπανηρή διαδικασία δημιουργίας socket, ο web server θα προσπαθήσει να διατηρήσει μόνιμες TCP συνδέσεις με το servlet container και να επαναχρησιμοποιήσει μια σύνδεση για πολλαπλούς κύκλους αίτησης/απάντησης.
Default port: 8009
PORT STATE SERVICE
8009/tcp open ajp13
CVE-2020-1938 'Ghostcat'
Αυτή είναι μια ευπάθεια LFI που επιτρέπει την πρόσβαση σε ορισμένα αρχεία όπως το WEB-INF/web.xml
που περιέχει διαπιστευτήρια. Αυτό είναι ένα exploit για την εκμετάλλευση της ευπάθειας και οι εκτεθειμένες θύρες AJP μπορεί να είναι ευάλωτες σε αυτήν.
Οι διορθωμένες εκδόσεις είναι στην 9.0.31 ή ανώτερες, 8.5.51, και 7.0.100.
Enumeration
Automatic
nmap -sV --script ajp-auth,ajp-headers,ajp-methods,ajp-request -n -p 8009 <IP>
Brute force
AJP Proxy
Nginx Reverse Proxy + AJP
Είναι δυνατόν να επικοινωνήσετε με μια ανοιχτή θύρα AJP proxy (8009 TCP) χρησιμοποιώντας το Nginx ajp_module
apache module και να αποκτήσετε πρόσβαση στο Tomcat Manager από αυτή τη θύρα, κάτι που θα μπορούσε τελικά να οδηγήσει σε RCE στον ευάλωτο διακομιστή.
- Ξεκινήστε να κατεβάζετε το Nginx από https://nginx.org/en/download.html και στη συνέχεια να το συντάξετε με το ajp module:
# Compile Nginx with the ajp module
git clone https://github.com/dvershinin/nginx_ajp_module.git
cd nginx-version
sudo apt install libpcre3-dev
./configure --add-module=`pwd`/../nginx_ajp_module --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules
make
sudo make install
nginx -V
- Στη συνέχεια, σχολιάστε το
server
block και προσθέστε τα εξής στοhttp
block στο/etc/nginx/conf/nginx.conf
.
upstream tomcats {
server <TARGET_SERVER>:8009;
keepalive 10;
}
server {
listen 80;
location / {
ajp_keep_conn on;
ajp_pass tomcats;
}
}
- Τέλος, ξεκινήστε το nginx (
sudo nginx
) και ελέγξτε αν λειτουργεί προσβάλλοντας τοhttp://127.0.0.1
Nginx Dockerized-version
git clone https://github.com/ScribblerCoder/nginx-ajp-docker
cd nginx-ajp-docker
Αντικαταστήστε το TARGET-IP
στο nginx.conf
με το AJP IP και στη συνέχεια κατασκευάστε και εκτελέστε.
docker build . -t nginx-ajp-proxy
docker run -it --rm -p 80:80 nginx-ajp-proxy
Apache AJP Proxy
Είναι επίσης δυνατό να χρησιμοποιήσετε έναν Apache AJP proxy για να αποκτήσετε πρόσβαση σε αυτήν την θύρα αντί για το Nginx.
References
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.