hacktricks/network-services-pentesting/8009-pentesting-apache-jserv-protocol-ajp.md
Translator workflow 35c6b081d2 Translated to Greek
2024-02-10 22:40:18 +00:00

204 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 8009 - Ελεγκτική Δοκιμή Πρωτοκόλλου Apache JServ (AJP)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Συμμετάσχετε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
Εγγραφείτε στον διακομιστή [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!
**Εισαγωγή στο Χάκινγκ**\
Αλληλεπιδράστε με περιεχόμενο που εξερευνά τον ενθουσιασμό και τις προκλήσεις του χάκινγκ
**Ειδήσεις Χάκινγκ σε Πραγματικό Χρόνο**\
Μείνετε ενημερωμένοι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο
**Τελευταίες Ανακοινώσεις**\
Μείνετε ενημερωμένοι με τις νεότερες ευρήματα ασφαλείας που ξεκινούν και τις κρίσιμες ενημερώσεις των πλατφορμών
**Συμμετέχετε στο** [**Discord**](https://discord.com/invite/N3FrSbmwdy) **και αρχίστε να συνεργάζεστε με τους κορυφαίους χάκερ σήμερα!**
## Βασικές Πληροφορίες
Από: [https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/)
> Το AJP είναι ένα πρωτόκολλο επικοινωνίας. Είναι μια βελτιστοποιημένη έκδοση του πρωτοκόλλου HTTP που επιτρέπει σε ένα αυτόνομο διακομιστή ιστού όπως το [Apache](http://httpd.apache.org/) να επικοινωνεί με το Tomcat. Ιστορικά, το Apache ήταν πολύ πιο γρήγορο από το Tomcat στην παροχή στατικού περιεχομένου. Η ιδέα είναι να επιτρέψει στο Apache να εξυπηρετεί το στατικό περιεχόμενο όταν είναι δυνατόν, αλλά να προωθεί το αίτημα στο Tomcat για περιεχόμενο που σχετίζεται με το Tomcat.
Επίσης ενδιαφέρον:
> Το πρωτόκολλο ajp13 είναι προσανατολισμένο σε πακέτα. Ένα δυαδικό μορφότυπο επιλέχθηκε πιθανώς αντί για το πιο αναγνώσιμο απλό κείμενο για λόγους απόδοσης. Ο διακομιστής ιστού επικοινωνεί με τον δοχείο servlet μέσω συνδέσεων TCP. Για να μειωθεί η δαπανηρή διαδικασία δημιουργίας socket, ο διακομιστής ιστού θα προσπαθήσει να διατηρήσει συνεχείς συνδέσεις TCP με τον δοχείο servlet και να επαναχρησιμοποιήσει μια σύνδεση για πολλούς κύκλους αιτήματος/απόκρισης
**Προεπιλεγμένη θύρα:** 8009
```
PORT STATE SERVICE
8009/tcp open ajp13
```
## CVE-2020-1938 ['Ghostcat'](https://www.chaitin.cn/en/ghostcat)
Εάν ο θύρα AJP είναι εκτεθειμένη, το Tomcat μπορεί να είναι ευάλωτο στην ευπάθεια Ghostcat. Εδώ υπάρχει ένα [exploit](https://www.exploit-db.com/exploits/48143) που λειτουργεί με αυτό το πρόβλημα.
Το Ghostcat είναι μια ευπάθεια LFI, αλλά κάπως περιορισμένη: μόνο αρχεία από ένα συγκεκριμένο μονοπάτι μπορούν να ανακτηθούν. Ωστόσο, αυτό μπορεί να περιλαμβάνει αρχεία όπως το `WEB-INF/web.xml` τα οποία μπορούν να διαρρεύσουν σημαντικές πληροφορίες όπως διαπιστευτήρια για τη διεπαφή του Tomcat, ανάλογα με τη ρύθμιση του διακομιστή.
Οι επιδιορθωμένες εκδόσεις στο ή πάνω από 9.0.31, 8.5.51 και 7.0.100 έχουν διορθώσει αυτό το πρόβλημα.
## Απαρίθμηση
### Αυτόματη
```bash
nmap -sV --script ajp-auth,ajp-headers,ajp-methods,ajp-request -n -p 8009 <IP>
```
### [**Βίαιη επίθεση**](../generic-methodologies-and-resources/brute-force.md#ajp)
## AJP Προξενήτρα
### Nginx Αντίστροφη Προξενήτρα & AJP
[Ελέγξτε την εκδοχή Dockerized](#Dockerized-version)
Όταν συναντάμε ένα ανοιχτό θύρα AJP προξενήτρας (8009 TCP), μπορούμε να χρησιμοποιήσουμε το Nginx με το `ajp_module` για να έχουμε πρόσβαση στο "κρυφό" Tomcat Manager. Αυτό μπορεί να γίνει με τη συγκέντρωση του πηγαίου κώδικα του Nginx και την προσθήκη του απαιτούμενου module, όπως ακολούθως:
* Κατεβάστε τον πηγαίο κώδικα του Nginx
* Κατεβάστε το απαιτούμενο module
* Συγκεντρώστε τον πηγαίο κώδικα του Nginx με το `ajp_module`.
* Δημιουργήστε ένα αρχείο διαμόρφωσης που να δείχνει στη θύρα AJP
```bash
# 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`.
```shell-session
upstream tomcats {
server <TARGET_SERVER>:8009;
keepalive 10;
}
server {
listen 80;
location / {
ajp_keep_conn on;
ajp_pass tomcats;
}
}
```
Εκκινήστε το Nginx και ελέγξτε αν όλα λειτουργούν σωστά εκδίδοντας ένα αίτημα cURL στον τοπικό σας διακομιστή.
```html
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
```bash
git clone https://github.com/ScribblerCoder/nginx-ajp-docker
cd nginx-ajp-docker
```
Αντικαταστήστε το `TARGET-IP` στο `nginx.conf` με την AJP IP, στη συνέχεια κατασκευάστε και εκτελέστε.
``` bash
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.
```bash
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`, μπορείτε αποτελεσματικά να αποκτήσετε έλεγχο του συστήματος που έχει στόχο.
```bash
msf exploit(tomcat_mgr_deploy) > show options
```
## Αναφορές
* [https://github.com/yaoweibin/nginx_ajp_module](https://github.com/yaoweibin/nginx_ajp_module)
* [https://academy.hackthebox.com/module/145/section/1295](https://academy.hackthebox.com/module/145/section/1295)
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
Συμμετέχετε στον διακομιστή [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!
**Εισαγωγή στο Hacking**\
Ασχοληθείτε με περιεχόμενο που εξερευνά τον ενθουσιασμό και τις προκλήσεις του χάκινγκ.
**Ειδήσεις Χάκινγκ σε Πραγματικό Χρόνο**\
Μείνετε ενημερωμένοι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο.
**Τελευταίες Ανακοινώσεις**\
Μείνετε ενημερωμένοι με τις νεότερες προσφορές ευρημάτων ασφαλείας που ξεκινούν και τις κρίσιμες ενημερώσεις της πλατφόρμας.
**Συμμετέχετε μαζί μας στο** [**Discord**](https://discord.com/invite/N3FrSbmwdy) και αρχίστε να συνεργάζεστε με τους κορυφαίους χάκερ σήμερα!
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Συμμετέχετε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>