8009 - Pentesting Apache JServ Protocol (AJP)

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Join HackenProof Discord 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 and start collaborating with top hackers today!

基本情報

From https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/

AJPはワイヤープロトコルです。これは、ApacheのようなスタンドアロンのウェブサーバーがTomcatと通信できるようにするために最適化されたHTTPプロトコルのバージョンです。歴史的に、Apacheは静的コンテンツを提供する際にTomcatよりもはるかに速いです。アイデアは、可能な限りApacheが静的コンテンツを提供し、Tomcat関連のコンテンツについてはTomcatにリクエストをプロキシすることです。

Also interesting:

ajp13プロトコルはパケット指向です。パフォーマンスの理由から、より読みやすいプレーンテキストよりもバイナリ形式が選ばれたと思われます。ウェブサーバーはTCP接続を介してサーブレットコンテナと通信します。ソケット作成の高コストなプロセスを削減するために、ウェブサーバーはサーブレットコンテナへの持続的なTCP接続を維持し、複数のリクエスト/レスポンスサイクルのために接続を再利用しようとします。

デフォルトポート: 8009

PORT     STATE SERVICE
8009/tcp open  ajp13

CVE-2020-1938 'Ghostcat'

これは、認証情報を含む WEB-INF/web.xml のようなファイルを取得できるLFI脆弱性です。これは、脆弱性を悪用するためのエクスプロイトであり、AJPが公開しているポートはこれに対して脆弱である可能性があります。

パッチが適用されたバージョンは、9.0.31、8.5.51、および7.0.100以上です。

Enumeration

Automatic

nmap -sV --script ajp-auth,ajp-headers,ajp-methods,ajp-request -n -p 8009 <IP>

AJPプロキシ

Nginxリバースプロキシ + AJP

(Docker化されたバージョンをチェック)

オープンなAJPプロキシポート(8009 TCP)と通信することが可能で、Nginxのajp_module Apacheモジュールを使用してこのポートからTomcatマネージャーにアクセスでき、最終的には脆弱なサーバーでのRCEにつながる可能性があります。

# Compile Nginx with the ajp module
git clone https://github.com/dvershinin/nginx_ajp_module.git
cd nginx-version
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.confhttp ブロックに以下を追加します。

upstream tomcats {
server <TARGET_SERVER>:8009;
keepalive 10;
}
server {
listen 80;
location / {
ajp_keep_conn on;
ajp_pass tomcats;
}
}
  • 最後に、nginxを起動します(sudo nginx)そして、http://127.0.0.1にアクセスして動作を確認します。

NginxのDocker版

git clone https://github.com/ScribblerCoder/nginx-ajp-docker
cd nginx-ajp-docker

nginx.confTARGET-IPをAJP IPに置き換え、その後ビルドして実行します。

docker build . -t nginx-ajp-proxy
docker run -it --rm -p 80:80 nginx-ajp-proxy

Apache AJP プロキシ

Nginx の代わりにそのポートにアクセスするために、Apache AJP プロキシ を使用することも可能です。

参考文献

経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るために、HackenProof Discord サーバーに参加しましょう!

ハッキングの洞察 ハッキングのスリルと課題に深く掘り下げたコンテンツに参加しましょう

リアルタイムハックニュース リアルタイムのニュースと洞察を通じて、急速に進化するハッキングの世界に遅れずについていきましょう

最新のお知らせ 新しいバグバウンティの開始や重要なプラットフォームの更新について情報を得ましょう

今日、Discord に参加して、トップハッカーとコラボレーションを始めましょう!

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)

HackTricksをサポートする

Last updated