# 8009 - Pentesting Apache JServ Protocol (AJP) {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters! **Hacking Insights**\ Engage with content that delves into the thrill and challenges of hacking **Real-Time Hack News**\ Keep up-to-date with fast-paced hacking world through real-time news and insights **Latest Announcements**\ Stay informed with the newest bug bounties launching and crucial platform updates **Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today! ## Basic Information From: [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 є пакетно-орієнтованим. Бінарний формат, ймовірно, був обраний замість більш читабельного простого тексту з причин продуктивності. Веб-сервер спілкується з контейнером сервлетів через TCP-з'єднання. Щоб зменшити витрати на створення сокетів, веб-сервер намагатиметься підтримувати постійні TCP-з'єднання з контейнером сервлетів і повторно використовувати з'єднання для кількох циклів запит/відповідь. **Default port:** 8009 ``` PORT STATE SERVICE 8009/tcp open ajp13 ``` ## CVE-2020-1938 ['Ghostcat'](https://www.chaitin.cn/en/ghostcat) Якщо порт AJP відкритий, Tomcat може бути вразливим до уразливості Ghostcat. Ось [експлойт](https://www.exploit-db.com/exploits/48143), який працює з цією проблемою. Ghostcat є уразливістю LFI, але дещо обмеженою: можна отримати лише файли з певного шляху. Проте, це може включати файли, такі як `WEB-INF/web.xml`, які можуть витікати важливу інформацію, таку як облікові дані для інтерфейсу Tomcat, залежно від налаштувань сервера. Виправлені версії на рівні 9.0.31, 8.5.51 та 7.0.100 усунули цю проблему. ## 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 Reverse Proxy & AJP [Перегляньте версію з Docker](8009-pentesting-apache-jserv-protocol-ajp.md#Dockerized-version) Коли ми натрапляємо на відкритий порт AJP проксі (8009 TCP), ми можемо використовувати Nginx з `ajp_module`, щоб отримати доступ до "прихованого" Tomcat Manager. Це можна зробити, скомпілювавши вихідний код Nginx і додавши необхідний модуль, наступним чином: * Завантажте вихідний код Nginx * Завантажте необхідний модуль * Скомпіліруйте вихідний код 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 :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 Apache Tomcat/X.X.XX

Apache Tomcat/X.X.XX

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

``` ### Nginx Dockerized-version ```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** як проксі, запити можна перенаправити на **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 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 ``` Ця конфігурація пропонує можливість обійти системи виявлення та запобігання вторгненням (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)
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей! **Інсайти з хакінгу**\ Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу **Новини про хакінг у реальному часі**\ Будьте в курсі швидкоплинного світу хакінгу через новини та інсайти в реальному часі **Останні оголошення**\ Залишайтеся в курсі нових програм винагород за вразливості та важливих оновлень платформ **Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні! {% hint style="success" %} Вчіться та практикуйте хакінг AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Вчіться та практикуйте хакінг GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Підтримати HackTricks * Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)! * **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи в телеграмі**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
{% endhint %}