# 8009 - Pentesting Apache JServ-Protokol (AJP)
Leer AWS-hacking van nul tot held methtARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
Sluit aan by die [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) bediener om te kommunikeer met ervare hackers en foutjagters vir belonings!
**Hacking-insigte**\
Raak betrokke by inhoud wat die opwinding en uitdagings van hacking ondersoek
**Hack-nuus in werklikheid**\
Bly op hoogte van die vinnige wêreld van hacking deur middel van werklike nuus en insigte
**Nuutste aankondigings**\
Bly ingelig met die nuutste foutjagbelydenisse en belangrike platform-opdaterings
**Sluit aan by ons op** [**Discord**](https://discord.com/invite/N3FrSbmwdy) en begin vandag saamwerk met top hackers!
## Basiese Inligting
Vanaf: [https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/)
> AJP is 'n draadprotokol. Dit is 'n geoptimeerde weergawe van die HTTP-protokol wat 'n afsonderlike webbediener soos [Apache](http://httpd.apache.org/) in staat stel om met Tomcat te kommunikeer. Histories gesien was Apache baie vinniger as Tomcat om statiese inhoud te bedien. Die idee is om Apache toe te laat om die statiese inhoud te bedien waar moontlik, maar om die versoek na Tomcat te stuur vir Tomcat-verwante inhoud.
Ook interessant:
> Die ajp13-protokol is pakketgeoriënteerd. 'n Binêre formaat is waarskynlik gekies bo die meer leesbare platte teks vir prestasie-redes. Die webbediener kommunikeer met die servlet-houer oor TCP-verbindings. Om die duur proses van soket-skepping te verminder, sal die webbediener probeer om volgehoue TCP-verbindings na die servlet-houer te handhaaf en 'n verbinding vir meerdere versoek-/antwoord-siklusse te hergebruik.
**Verstekpoort:** 8009
```
PORT STATE SERVICE
8009/tcp open ajp13
```
## CVE-2020-1938 ['Ghostcat'](https://www.chaitin.cn/en/ghostcat)
As die AJP-poort blootgestel word, kan Tomcat vatbaar wees vir die Ghostcat-kwesbaarheid. Hier is 'n [exploit](https://www.exploit-db.com/exploits/48143) wat werk met hierdie probleem.
Ghostcat is 'n LFI-kwesbaarheid, maar enigsins beperk: slegs lêers vanaf 'n sekere pad kan getrek word. Dit kan steeds lêers soos `WEB-INF/web.xml` insluit wat belangrike inligting soos geloofsbriewe vir die Tomcat-koppelvlak kan uitlek, afhangende van die bedieneropset.
Gepatchte weergawes by of bo 9.0.31, 8.5.51 en 7.0.100 het hierdie probleem reggestel.
## Enumerasie
### Outomaties
```bash
nmap -sV --script ajp-auth,ajp-headers,ajp-methods,ajp-request -n -p 8009
```
### [**Brute force**](../generic-methodologies-and-resources/brute-force.md#ajp)
## AJP Proxy
### Nginx Omgekeerde Proxy & AJP
[Kyk na die Dockerized weergawe](#Dockerized-weergawe)
Wanneer ons op 'n oop AJP proxy-poort (8009 TCP) afkomstig is, kan ons Nginx met die `ajp_module` gebruik om toegang tot die "verborge" Tomcat-bestuurder te verkry. Dit kan gedoen word deur die Nginx-bronkode af te laai en die vereiste module by te voeg, soos volg:
* Laai die Nginx-bronkode af
* Laai die vereiste module af
* Kompileer die Nginx-bronkode met die `ajp_module`.
* Skep 'n konfigurasie-lêer wat na die AJP-poort verwys
```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
```
Kommentaar uit die hele `server` blok en voeg die volgende lyne by binne die `http` blok in `/etc/nginx/conf/nginx.conf`.
```shell-session
upstream tomcats {
server :8009;
keepalive 10;
}
server {
listen 80;
location / {
ajp_keep_conn on;
ajp_pass tomcats;
}
}
```
Begin deur Nginx te begin en te kontroleer of alles korrek werk deur 'n cURL-versoek na jou plaaslike bediener te stuur.
```html
sudo nginx
curl http://127.0.0.1:80
Apache Tomcat/X.X.XX
If you're seeing this, you've successfully installed Tomcat. Congratulations!
```
### Nginx Dockerized-weergawe
```bash
git clone https://github.com/ScribblerCoder/nginx-ajp-docker
cd nginx-ajp-docker
```
Vervang `TARGET-IP` in `nginx.conf` met AJP IP, bou en voer uit.
``` bash
docker build . -t nginx-ajp-proxy
docker run -it --rm -p 80:80 nginx-ajp-proxy
```
### Apache AJP Proxy
Om 'n oop poort 8009 te vind sonder enige ander toeganklike web poorte is skaars. Dit is egter steeds moontlik om dit uit te buit deur gebruik te maak van **Metasploit**. Deur **Apache** as 'n proksi te gebruik, kan versoek na **Tomcat** op poort 8009 omgelei word.
```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
Order deny,allow
Deny from all
Allow from localhost
ProxyPass / ajp://HOST:8009/
ProxyPassReverse / ajp://HOST:8009/
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo systemctl restart apache2
```
Hierdie opset bied die potensiaal om indringingsdeteksie- en voorkomingsstelsels (IDS/IPS) te omseil as gevolg van die **binêre aard van die AJP-protokol**, alhoewel hierdie vermoë nog nie geverifieer is nie. Deur 'n gewone Metasploit Tomcat-aanval na `127.0.0.1:80` te rig, kan jy effektief beheer oor die geteikende stelsel verkry.
```bash
msf exploit(tomcat_mgr_deploy) > show options
```
## Verwysings
* [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)
Sluit aan by die [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) bediener om met ervare hackers en foutjagters te kommunikeer!
**Hacking-insigte**\
Raak betrokke by inhoud wat die opwinding en uitdagings van hacking ondersoek
**Real-Time Hack Nuus**\
Bly op hoogte van die vinnige wêreld van hacking deur middel van real-time nuus en insigte
**Nuutste Aankondigings**\
Bly ingelig met die nuutste foutjagbountes wat bekendgestel word en belangrike platform-opdaterings
**Sluit aan by ons op** [**Discord**](https://discord.com/invite/N3FrSbmwdy) en begin vandag saamwerk met top hackers!
Leer AWS-hacking van nul tot held methtARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.