# 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 **vašu 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 [**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 **Twitteru** 🐦 [**@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 važnim 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 plain text-a 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 je 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 akreditiva za Tomcat interfejs, zavisno od postavki 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. To se može uraditi 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 ``` ```diff - server { - listen 80 default_server; - server_name _; - return 444; - } + location / { + proxy_pass http://localhost:8080; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } ``` ```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 na **Tomcat** 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 detekciju i prevenciju upada (IDS/IPS) zbog **binarne prirode AJP protokola**, iako ova mogućnost nije potvrđena. Usmeravanjem redovnog Metasploit Tomcat exploit-a ka `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! **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 dinamičnim 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.