8009 - Pentesting Apache JServ Protocol (AJP)

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Jiunge na HackenProof Discord server ili kuwasiliana na wakora wenye uzoefu na wawindaji wa tuzo za mdudu!

Machapisho ya Kuhack Shiriki na yaliyomo yanayochimba kwenye msisimko na changamoto za kuhack

Taarifa za Kuhack za Muda Halisi Kaa up-to-date na ulimwengu wa kuhack wenye kasi kupitia habari za muda halisi na ufahamu

Matangazo ya Karibuni Baki mwelewa na tuzo za mdudu zinazoanzishwa na sasisho muhimu za jukwaa

Jiunge nasi kwenye Discord na anza kushirikiana na wakora bora leo!

Taarifa Msingi

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

AJP ni itifaki ya waya. Ni toleo lililoboreshwa la itifaki ya HTTP kuruhusu seva ya wavuti ya kujitegemea kama Apache kuzungumza na Tomcat. Kihistoria, Apache imekuwa haraka zaidi kuliko Tomcat katika kuhudumia yaliyomo ya tuli. Wazo ni kuruhusu Apache kuhudumia yaliyomo ya tuli inapowezekana, lakini kupeleka ombi kwa Tomcat kwa yaliyomo yanayohusiana na Tomcat.

Pia ni ya kuvutia:

Itifaki ya ajp13 ni iliyojikita kwenye pakiti. Muundo wa binary ulichaguliwa dhahiri badala ya maandishi wazi zaidi kwa sababu za utendaji. Seva ya wavuti inawasiliana na chombo cha servlet kupitia uhusiano wa TCP. Ili kupunguza mchakato ghali wa uundaji wa soketi, seva ya wavuti itajaribu kudumisha uhusiano wa TCP wa kudumu kwa chombo cha servlet, na kutumia tena uhusiano kwa mizunguko ya ombi/jibu kadhaa

Bandari ya chaguo: 8009

PORT     STATE SERVICE
8009/tcp open  ajp13

CVE-2020-1938 'Ghostcat'

Ikiwa bandari ya AJP inaonekana, Tomcat inaweza kuwa na hatari ya kushambuliwa na udhaifu wa Ghostcat. Hapa kuna exploit ambao unafanya kazi na shida hii.

Ghostcat ni udhaifu wa LFI, lakini una vikwazo fulani: tu faili kutoka njia fulani zinaweza kuvutwa. Hata hivyo, hii inaweza kujumuisha faili kama WEB-INF/web.xml ambayo inaweza kufichua habari muhimu kama vibali vya kuingia kwenye kiolesura cha Tomcat, kulingana na usanidi wa seva.

Toleo lililopangwa kuanzia 9.0.31, 8.5.51, na 7.0.100 vimefanya marekebisho ya shida hii.

Urambazaji

Kiotomatiki

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

AJP Proxy

Nginx Reverse Proxy & AJP

Angalia toleo lililowekwa kwenye Docker

Tunapokutana na bandari ya wazi ya AJP proxy (8009 TCP), tunaweza kutumia Nginx na ajp_module kufikia Meneja wa Tomcat "uliofichwa". Hii inaweza kufanywa kwa kuchambua msimbo wa chanzo wa Nginx na kuongeza moduli inayohitajika, kama ifuatavyo:

  • Pakua msimbo wa chanzo wa Nginx

  • Pakua moduli inayohitajika

  • Chambua msimbo wa chanzo wa Nginx na ajp_module.

  • Unda faili ya usanidi inayoashiria kwenye Bandari ya AJP

# 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 {
-     listen 80 default_server;
-     server_name example.com;
-     location / {
-         root /var/www/html;
-         index index.html;
-     }
- }
  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;
upstream tomcats {
server <TARGET_SERVER>:8009;
keepalive 10;
}
server {
listen 80;
location / {
ajp_keep_conn on;
ajp_pass tomcats;
}
}

Anza Nginx na hakikisha kila kitu kinafanya kazi kwa usahihi kwa kutuma ombi la cURL kwa mwenyeji wako wa ndani.

sudo nginx
curl http://127.0.0.1:80

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Apache Tomcat/X.X.XX</title>
<link href="favicon.ico" rel="icon" type="image/x-icon" />
<link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
<link href="tomcat.css" rel="stylesheet" type="text/css" />
</headas
<body>
<div id="wrapper">
<div id="navigation" class="curved container">
<span id="nav-home"><a href="https://tomcat.apache.org/">Home</a></span>
<span id="nav-hosts"><a href="/docs/">Documentation</a></span>
<span id="nav-config"><a href="/docs/config/">Configuration</a></span>
<span id="nav-examples"><a href="/examples/">Examples</a></span>
<span id="nav-wiki"><a href="https://wiki.apache.org/tomcat/FrontPage">Wiki</a></span>
<span id="nav-lists"><a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></span>
<span id="nav-help"><a href="https://tomcat.apache.org/findhelp.html">Find Help</a></span>
<br class="separator" />
</div>
<div id="asf-box">
<h1>Apache Tomcat/X.X.XX</h1>
</div>
<div id="upper" class="curved container">
<div id="congrats" class="curved container">
<h2>If you're seeing this, you've successfully installed Tomcat. Congratulations!</h2>
<SNIP>

Nginx Imejengwa-kwenye-Docker

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

Badilisha TARGET-IP katika nginx.conf na AJP IP kisha jenga na endesha

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

Kiunganishi cha Apache AJP

Kukutana na mlango wazi wa 8009 bila milango mingine ya wavuti inayopatikana ni nadra. Walakini, bado inawezekana kutumia Metasploit. Kwa kutumia Apache kama kiunganishi, maombi yanaweza kuelekezwa kwa Tomcat kwenye mlango wa 8009.

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
<Proxy *>
Order deny,allow
Deny from all
Allow from localhost
</Proxy>
ProxyPass       / ajp://HOST:8009/
ProxyPassReverse    / ajp://HOST:8009/
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo systemctl restart apache2

Hii usanidi hutoa uwezekano wa kukiuka mifumo ya kugundua na kuzuia uvamizi (IDS/IPS) kutokana na asili ya binary ya itifaki ya AJP, ingawa uwezo huu haujathibitishwa. Kwa kuelekeza shambulio la kawaida la Metasploit kwa Tomcat kwa 127.0.0.1:80, unaweza kuchukua udhibiti wa mfumo uliolengwa.

msf  exploit(tomcat_mgr_deploy) > show options

Marejeo

Jiunge na HackenProof Discord server ili kuwasiliana na wadukuzi wenye uzoefu na wawindaji wa tuzo za makosa ya usalama!

Machapisho Kuhusu Udukuzi Shiriki na maudhui yanayochimba kina kuhusu msisimko na changamoto za udukuzi

Taarifa za Udukuzi za Muda Halisi Kaa up-to-date na ulimwengu wa udukuzi wenye kasi kupitia taarifa za muda halisi na ufahamu

Matangazo Mapya Zaidi Baki mwelewa na tuzo za makosa ya usalama zinazoanzishwa na sasisho muhimu za jukwaa

Jiunge nasi kwenye Discord na anza kushirikiana na wadukuzi bora leo!

Jifunze udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Last updated