# 8009 - Pentesting Apache JServ Protocol (AJP) {% hint style="success" %} AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin * [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** * **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın! **Hacking İçgörüleri**\ Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun **Gerçek Zamanlı Hack Haberleri**\ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın **Son Duyurular**\ Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın! ## Temel Bilgiler Kaynak: [https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/) > AJP bir kablo protokolüdür. Tomcat ile konuşabilmesi için [Apache](http://httpd.apache.org/) gibi bağımsız bir web sunucusunun HTTP protokolünün optimize edilmiş bir versiyonudur. Tarihsel olarak, Apache statik içeriği sunmada Tomcat'ten çok daha hızlı olmuştur. Amaç, mümkün olduğunda Apache'nin statik içeriği sunmasına izin vermek, ancak Tomcat ile ilgili içerikler için isteği Tomcat'e yönlendirmektir. Ayrıca ilginç: > ajp13 protokolü paket odaklıdır. Performans nedenleriyle daha okunabilir düz metin yerine ikili bir formatın seçildiği varsayılmaktadır. Web sunucusu, TCP bağlantıları üzerinden servlet konteyneri ile iletişim kurar. Soket oluşturma işleminin maliyetini azaltmak için, web sunucusu servlet konteynerine kalıcı TCP bağlantılarını sürdürmeye çalışacak ve birden fazla istek/yanıt döngüsü için bir bağlantıyı yeniden kullanacaktır. **Varsayılan port:** 8009 ``` PORT STATE SERVICE 8009/tcp open ajp13 ``` ## CVE-2020-1938 ['Ghostcat'](https://www.chaitin.cn/en/ghostcat) Eğer AJP portu açığa çıkmışsa, Tomcat Ghostcat zafiyetine maruz kalabilir. Bu sorunla çalışan bir [exploit](https://www.exploit-db.com/exploits/48143) burada bulunmaktadır. Ghostcat, LFI zafiyeti olup, bir dereceye kadar kısıtlıdır: yalnızca belirli bir yoldan dosyalar çekilebilir. Yine de, bu, sunucu ayarlarına bağlı olarak Tomcat arayüzü için kimlik bilgileri gibi önemli bilgileri sızdırabilecek `WEB-INF/web.xml` gibi dosyaları içerebilir. 9.0.31, 8.5.51 ve 7.0.100 veya üzerindeki yamanmış sürümler bu sorunu düzeltmiştir. ## Enumeration ### Automatic ```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 Ters Proxy & AJP [Dockerize edilmiş versiyonu kontrol edin](8009-pentesting-apache-jserv-protocol-ajp.md#Dockerized-version) Açık bir AJP proxy portu (8009 TCP) ile karşılaştığımızda, "gizli" Tomcat Manager'a erişmek için `ajp_module` ile Nginx kullanabiliriz. Bu, Nginx kaynak kodunu derleyip gerekli modülü ekleyerek yapılabilir: * Nginx kaynak kodunu indirin * Gerekli modülü indirin * `ajp_module` ile Nginx kaynak kodunu derleyin. * AJP Portuna işaret eden bir yapılandırma dosyası oluşturun ```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` bloğunu tamamen yorum satırı haline getirin ve aşağıdaki satırları `/etc/nginx/conf/nginx.conf` içindeki `http` bloğunun içine ekleyin. ```shell-session upstream tomcats { server :8009; keepalive 10; } server { listen 80; location / { ajp_keep_conn on; ajp_pass tomcats; } } ``` Nginx'i başlatın ve her şeyin doğru çalışıp çalışmadığını kontrol etmek için yerel ana bilgisayarınıza bir cURL isteği gönderin. ```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 Dockerize edilmiş versiyonu ```bash git clone https://github.com/ScribblerCoder/nginx-ajp-docker cd nginx-ajp-docker ``` `nginx.conf` dosyasındaki `TARGET-IP`'yi AJP IP ile değiştirin, ardından inşa edin ve çalıştırın. ```bash docker build . -t nginx-ajp-proxy docker run -it --rm -p 80:80 nginx-ajp-proxy ``` ### Apache AJP Proxy Açık 8009 portu ile başka erişilebilir web portlarının olmaması nadirdir. Ancak, bunu **Metasploit** kullanarak istismar etmek hala mümkündür. **Apache**'yi bir proxy olarak kullanarak, istekler 8009 portundaki **Tomcat**'e yönlendirilebilir. ```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 ``` Bu kurulum, **AJP protokolünün ikili doğası** nedeniyle saldırı tespit ve önleme sistemlerini (IDS/IPS) atlatma potansiyeli sunar, ancak bu yetenek doğrulanmamıştır. Normal bir Metasploit Tomcat istismarını `127.0.0.1:80` adresine yönlendirerek, hedef sistemin kontrolünü etkili bir şekilde ele geçirebilirsiniz. ```bash msf exploit(tomcat_mgr_deploy) > show options ``` ## Referanslar * [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)
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın! **Hacking İçgörüleri**\ Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun **Gerçek Zamanlı Hack Haberleri**\ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın **Son Duyurular**\ Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun **Bugün en iyi hackerlarla işbirliği yapmak için** [**Discord**](https://discord.com/invite/N3FrSbmwdy) 'a katılın! {% hint style="success" %} AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin * [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **@hacktricks\_live**'ı takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}