8009 - Pentesting Apache JServ Protocol (AJP)

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Εγγραφείτε στον διακομιστή HackenProof Discord για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!

Εισαγωγή στο Χάκινγκ Αλληλεπιδράστε με περιεχόμενο που εξερευνά τον ενθουσιασμό και τις προκλήσεις του χάκινγκ

Ειδήσεις Χάκινγκ σε Πραγματικό Χρόνο Μείνετε ενημερωμένοι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο

Τελευταίες Ανακοινώσεις Μείνετε ενημερωμένοι με τις νεότερες ευρήματα ασφαλείας που ξεκινούν και τις κρίσιμες ενημερώσεις των πλατφορμών

Συμμετέχετε στο Discord και αρχίστε να συνεργάζεστε με τους κορυφαίους χάκερ σήμερα!

Βασικές Πληροφορίες

Από: https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/

Το AJP είναι ένα πρωτόκολλο επικοινωνίας. Είναι μια βελτιστοποιημένη έκδοση του πρωτοκόλλου HTTP που επιτρέπει σε ένα αυτόνομο διακομιστή ιστού όπως το Apache να επικοινωνεί με το Tomcat. Ιστορικά, το Apache ήταν πολύ πιο γρήγορο από το Tomcat στην παροχή στατικού περιεχομένου. Η ιδέα είναι να επιτρέψει στο Apache να εξυπηρετεί το στατικό περιεχόμενο όταν είναι δυνατόν, αλλά να προωθεί το αίτημα στο Tomcat για περιεχόμενο που σχετίζεται με το Tomcat.

Επίσης ενδιαφέρον:

Το πρωτόκολλο ajp13 είναι προσανατολισμένο σε πακέτα. Ένα δυαδικό μορφότυπο επιλέχθηκε πιθανώς αντί για το πιο αναγνώσιμο απλό κείμενο για λόγους απόδοσης. Ο διακομιστής ιστού επικοινωνεί με τον δοχείο servlet μέσω συνδέσεων TCP. Για να μειωθεί η δαπανηρή διαδικασία δημιουργίας socket, ο διακομιστής ιστού θα προσπαθήσει να διατηρήσει συνεχείς συνδέσεις TCP με τον δοχείο servlet και να επαναχρησιμοποιήσει μια σύνδεση για πολλούς κύκλους αιτήματος/απόκρισης

Προεπιλεγμένη θύρα: 8009

PORT     STATE SERVICE
8009/tcp open  ajp13

CVE-2020-1938 'Ghostcat'

Εάν ο θύρα AJP είναι εκτεθειμένη, το Tomcat μπορεί να είναι ευάλωτο στην ευπάθεια Ghostcat. Εδώ υπάρχει ένα exploit που λειτουργεί με αυτό το πρόβλημα.

Το Ghostcat είναι μια ευπάθεια LFI, αλλά κάπως περιορισμένη: μόνο αρχεία από ένα συγκεκριμένο μονοπάτι μπορούν να ανακτηθούν. Ωστόσο, αυτό μπορεί να περιλαμβάνει αρχεία όπως το WEB-INF/web.xml τα οποία μπορούν να διαρρεύσουν σημαντικές πληροφορίες όπως διαπιστευτήρια για τη διεπαφή του Tomcat, ανάλογα με τη ρύθμιση του διακομιστή.

Οι επιδιορθωμένες εκδόσεις στο ή πάνω από 9.0.31, 8.5.51 και 7.0.100 έχουν διορθώσει αυτό το πρόβλημα.

Απαρίθμηση

Αυτόματη

nmap -sV --script ajp-auth,ajp-headers,ajp-methods,ajp-request -n -p 8009 <IP>

AJP Προξενήτρα

Nginx Αντίστροφη Προξενήτρα & AJP

Ελέγξτε την εκδοχή Dockerized

Όταν συναντάμε ένα ανοιχτό θύρα AJP προξενήτρας (8009 TCP), μπορούμε να χρησιμοποιήσουμε το Nginx με το ajp_module για να έχουμε πρόσβαση στο "κρυφό" Tomcat Manager. Αυτό μπορεί να γίνει με τη συγκέντρωση του πηγαίου κώδικα του Nginx και την προσθήκη του απαιτούμενου module, όπως ακολούθως:

  • Κατεβάστε τον πηγαίο κώδικα του Nginx

  • Κατεβάστε το απαιτούμενο module

  • Συγκεντρώστε τον πηγαίο κώδικα του Nginx με το ajp_module.

  • Δημιουργήστε ένα αρχείο διαμόρφωσης που να δείχνει στη θύρα AJP

# Download Nginx code
wget https://nginx.org/download/nginx-1.21.3.tar.gz
tar -xzvf nginx-1.21.3.tar.gz

# Compile Nginx source code with the ajp module
git clone https://github.com/dvershinin/nginx_ajp_module.git
cd nginx-1.21.3
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 και προσθέστε τις παρακάτω γραμμές μέσα στο μπλοκ http στο αρχείο /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 και ελέγξτε αν όλα λειτουργούν σωστά εκδίδοντας ένα αίτημα cURL στον τοπικό σας διακομιστή.

sudo nginx
curl http://127.0.0.1:80

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Apache Tomcat/X.X.XX</title>
<link href="favicon.ico" rel="icon" type="image/x-icon" />
<link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
<link href="tomcat.css" rel="stylesheet" type="text/css" />
</headas
<body>
<div id="wrapper">
<div id="navigation" class="curved container">
<span id="nav-home"><a href="https://tomcat.apache.org/">Home</a></span>
<span id="nav-hosts"><a href="/docs/">Documentation</a></span>
<span id="nav-config"><a href="/docs/config/">Configuration</a></span>
<span id="nav-examples"><a href="/examples/">Examples</a></span>
<span id="nav-wiki"><a href="https://wiki.apache.org/tomcat/FrontPage">Wiki</a></span>
<span id="nav-lists"><a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></span>
<span id="nav-help"><a href="https://tomcat.apache.org/findhelp.html">Find Help</a></span>
<br class="separator" />
</div>
<div id="asf-box">
<h1>Apache Tomcat/X.X.XX</h1>
</div>
<div id="upper" class="curved container">
<div id="congrats" class="curved container">
<h2>If you're seeing this, you've successfully installed Tomcat. Congratulations!</h2>
<SNIP>

Έκδοση Nginx σε Docker

Η εκδοχή του Nginx που τρέχει σε περιβάλλον Docker

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

Συναντώντας ένα ανοιχτό θύρα 8009 χωρίς άλλες προσβάσιμες θύρες ιστού είναι σπάνιο. Ωστόσο, είναι ακόμα δυνατό να εκμεταλλευτείτε αυτό χρησιμοποιώντας το Metasploit. Αξιοποιώντας το Apache ως έναν διαμεσολαβητή (proxy), οι αιτήσεις μπορούν να ανακατευθυνθούν στον Tomcat στη θύρα 8009.

sudo apt-get install libapache2-mod-jk
sudo vim /etc/apache2/apache2.conf # append the following line to the config
Include ajp.conf
sudo vim /etc/apache2/ajp.conf     # create the following file, change HOST to the target address
ProxyRequests Off
<Proxy *>
Order deny,allow
Deny from all
Allow from localhost
</Proxy>
ProxyPass       / ajp://HOST:8009/
ProxyPassReverse    / ajp://HOST:8009/
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo systemctl restart apache2

Αυτή η ρύθμιση προσφέρει τη δυνατότητα να παρακάμψετε τα συστήματα ανίχνευσης και πρόληψης διείσδυσης (IDS/IPS) λόγω της δυαδικής φύσης του πρωτοκόλλου AJP, αν και αυτή η δυνατότητα δεν έχει επαληθευτεί. Κατευθύνοντας ένα κανονικό εκμεταλλευτή Metasploit Tomcat στο 127.0.0.1:80, μπορείτε αποτελεσματικά να αποκτήσετε έλεγχο του συστήματος που έχει στόχο.

msf  exploit(tomcat_mgr_deploy) > show options

Αναφορές

Συμμετέχετε στον διακομιστή HackenProof Discord για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!

Εισαγωγή στο Hacking Ασχοληθείτε με περιεχόμενο που εξερευνά τον ενθουσιασμό και τις προκλήσεις του χάκινγκ.

Ειδήσεις Χάκινγκ σε Πραγματικό Χρόνο Μείνετε ενημερωμένοι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο.

Τελευταίες Ανακοινώσεις Μείνετε ενημερωμένοι με τις νεότερες προσφορές ευρημάτων ασφαλείας που ξεκινούν και τις κρίσιμες ενημερώσεις της πλατφόρμας.

Συμμετέχετε μαζί μας στο Discord και αρχίστε να συνεργάζεστε με τους κορυφαίους χάκερ σήμερα!

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated