mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 14:40:37 +00:00
204 lines
14 KiB
Markdown
204 lines
14 KiB
Markdown
# 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>
|