# 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! ## 基本情報 From: [https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/) > AJPはワイヤープロトコルです。これは、[Apache](http://httpd.apache.org/)のようなスタンドアロンのウェブサーバーがTomcatと通信できるようにするために最適化されたHTTPプロトコルのバージョンです。歴史的に、Apacheは静的コンテンツを提供する際にTomcatよりもはるかに高速でした。アイデアは、可能な限りApacheが静的コンテンツを提供し、Tomcat関連のコンテンツについてはTomcatにリクエストをプロキシすることです。 Also interesting: > ajp13プロトコルはパケット指向です。パフォーマンスの理由から、より読みやすいプレーンテキストよりもバイナリ形式が選ばれたと思われます。ウェブサーバーはTCP接続を介してサーブレットコンテナと通信します。ソケット作成の高コストなプロセスを削減するために、ウェブサーバーはサーブレットコンテナへの持続的なTCP接続を維持し、複数のリクエスト/レスポンスサイクルのために接続を再利用しようとします。 **デフォルトポート:** 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 ``` ### [**ブルートフォース**](../generic-methodologies-and-resources/brute-force.md#ajp) ## AJPプロキシ ### NginxリバースプロキシとAJP [Docker化されたバージョンをチェックアウト](8009-pentesting-apache-jserv-protocol-ajp.md#Dockerized-version) オープンなAJPプロキシポート(8009 TCP)に遭遇した場合、`ajp_module`を使用してNginxを利用し、「隠れた」Tomcat Managerにアクセスできます。これは、Nginxのソースコードをコンパイルし、必要なモジュールを追加することで行えます。以下の手順に従います: * Nginxのソースコードをダウンロード * 必要なモジュールをダウンロード * `ajp_module`を使用してNginxのソースコードをコンパイル * 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`ブロック全体をコメントアウトし、`/etc/nginx/conf/nginx.conf`の`http`ブロック内に以下の行を追加します。 ```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のDocker化バージョン ```bash git clone https://github.com/ScribblerCoder/nginx-ajp-docker cd nginx-ajp-docker ``` `nginx.conf`の`TARGET-IP`を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**をプロキシとして活用することで、リクエストをポート8009の**Tomcat**にリダイレクトできる。 ```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 ``` このセットアップは、**AJPプロトコルのバイナリ特性**により、侵入検知および防止システム(IDS/IPS)を回避する可能性を提供しますが、この能力は確認されていません。通常の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)**をフォローしてください。** * [**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングのトリックを共有してください。
{% endhint %}