# 8009 - Pentesting Apache JServ Protocol (AJP)
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! Drugi načini podrške HackTricks-u: * Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)! * Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) * Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) * **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
Pridružite se [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serveru kako biste komunicirali sa iskusnim hakerima i lovcima na bagove! **Hakerski Uvidi**\ Uključite se u sadržaj koji istražuje uzbuđenje i izazove hakovanja **Vesti o Hakovanju u Realnom Vremenu**\ Budite u toku sa brzim svetom hakovanja kroz vesti i uvide u realnom vremenu **Najnovije Najave**\ Budite informisani o najnovijim nagradama za pronalaženje bagova i bitnim ažuriranjima platformi **Pridružite nam se na** [**Discord-u**](https://discord.com/invite/N3FrSbmwdy) i počnite da sarađujete sa vrhunskim hakerima danas! ## Osnovne Informacije Od: [https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/) > AJP je žičani protokol. To je optimizovana verzija HTTP protokola koja omogućava samostalnom veb serveru poput [Apache](http://httpd.apache.org/) da komunicira sa Tomcat-om. Istoriski, Apache je bio mnogo brži od Tomcat-a u pružanju statičkog sadržaja. Ideja je da se dozvoli Apachu da služi statički sadržaj kada je to moguće, ali da prosledi zahtev Tomcat-u za Tomcat-ov sadržaj. Takođe interesantno: > Protokol ajp13 je orijentisan prema paketima. Binarni format je verovatno izabran umesto čitljivijeg običnog teksta iz razloga performansi. Veb server komunicira sa servlet kontejnerom preko TCP veza. Da bi smanjio troškove procesa kreiranja soketa, veb server će pokušati da održava perzistentne TCP veze sa servlet kontejnerom, i da ponovo koristi vezu za višestruke cikluse zahteva/odgovora **Podrazumevani port:** 8009 ``` PORT STATE SERVICE 8009/tcp open ajp13 ``` ## CVE-2020-1938 ['Ghostcat'](https://www.chaitin.cn/en/ghostcat) Ako je AJP port izložen, Tomcat može biti podložan Ghostcat ranjivosti. Evo [exploita](https://www.exploit-db.com/exploits/48143) koji radi sa ovim problemom. Ghostcat je LFI ranjivost, ali donekle ograničena: samo fajlovi sa određenog puta mogu biti povučeni. Ipak, ovo može uključivati fajlove poput `WEB-INF/web.xml` koji mogu otkriti važne informacije poput akreditacija za Tomcat interfejs, zavisno od podešavanja servera. Popravljene verzije na ili iznad 9.0.31, 8.5.51 i 7.0.100 su rešile ovaj problem. ## Enumeracija ### Automatska ```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 Reverse Proxy & AJP [Pogledajte Dockerizovanu verziju](8009-pentesting-apache-jserv-protocol-ajp.md#Dockerized-version) Kada naiđemo na otvoren AJP proxy port (8009 TCP), možemo koristiti Nginx sa `ajp_module`-om da pristupimo "skrivenom" Tomcat Manager-u. Ovo možemo postići kompajliranjem izvornog koda Nginx-a i dodavanjem potrebnog modula, na sledeći način: * Preuzmite izvorni kod Nginx-a * Preuzmite potrebni modul * Kompajlirajte izvorni kod Nginx-a sa `ajp_module`-om. * Kreirajte konfiguracioni fajl koji pokazuje ka AJP portu ```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 ``` ```html ``` ```shell-session upstream tomcats { server :8009; keepalive 10; } server { listen 80; location / { ajp_keep_conn on; ajp_pass tomcats; } } ``` Pokrenite Nginx i proverite da li sve radi ispravno izdavanjem cURL zahteva ka vašem lokalnom hostu. ```html sudo nginx curl http://127.0.0.1:80 Apache Tomcat/X.X.XX

Apache Tomcat/X.X.XX

If you're seeing this, you've successfully installed Tomcat. Congratulations!

``` ### Nginx Dockerizovana verzija ```bash git clone https://github.com/ScribblerCoder/nginx-ajp-docker cd nginx-ajp-docker ``` Zamenite `TARGET-IP` u `nginx.conf` sa AJP IP adresom, zatim izgradite i pokrenite. ```bash docker build . -t nginx-ajp-proxy docker run -it --rm -p 80:80 nginx-ajp-proxy ``` ### Apache AJP Proxy Nailazak otvoren port 8009 bez drugih dostupnih web portova je retko. Ipak, još uvek je moguće iskoristiti ga koristeći **Metasploit**. Korišćenjem **Apache**-a kao proksi, zahtevi mogu biti preusmereni ka **Tomcat**-u na portu 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 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 ``` Ova postavka pruža potencijal za zaobilaženje sistema za otkrivanje i prevenciju upada (IDS/IPS) zbog **binarne prirode AJP protokola**, iako ova sposobnost nije potvrđena. Usmeravanjem redovnog Metasploit Tomcat exploit-a na `127.0.0.1:80`, možete efikasno preuzeti kontrolu nad ciljanim sistemom. ```bash msf exploit(tomcat_mgr_deploy) > show options ``` ## Reference * [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)
Pridružite se [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serveru kako biste komunicirali sa iskusnim hakerima i lovcima na bagove! **Uvidi u hakovanje**\ Uključite se u sadržaj koji istražuje uzbuđenje i izazove hakovanja **Vesti o hakovanju u realnom vremenu**\ Budite u toku sa brzim svetom hakovanja kroz vesti i uvide u realnom vremenu **Poslednje najave**\ Budite informisani o najnovijim nagradama za pronalaženje bagova i važnim ažuriranjima platforme **Pridružite nam se na** [**Discord-u**](https://discord.com/invite/N3FrSbmwdy) i počnite da sarađujete sa vrhunskim hakerima danas!
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! Drugi načini podrške HackTricks-u: * Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)! * Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) * Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) * **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.