hacktricks/network-services-pentesting/8009-pentesting-apache-jserv-protocol-ajp.md

10 KiB

8009 - Kupima Usalama wa Itifaki ya Apache JServ (AJP)

Jifunze kuhusu kudukua AWS kutoka mwanzo hadi mtaalamu na htARTE (Mtaalamu wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Jiunge na HackenProof Discord server ili kuwasiliana na wadukuzi wenye uzoefu na wawindaji wa zawadi za bug!

Machapisho ya Kudukua
Shiriki na yaliyomo yanayochimba katika msisimko na changamoto za kudukua

Habari za Kudukua za Wakati Halisi
Kaa up-to-date na ulimwengu wa kudukua wenye kasi kupitia habari za wakati halisi na ufahamu

Matangazo ya Karibuni
Baki mwelekezwa na zawadi mpya za bug zinazoanzishwa na sasisho muhimu za jukwaa

Jiunge nasi kwenye Discord na anza kushirikiana na wadukuzi 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 msingi. Wazo ni kuruhusu Apache kuhudumia yaliyomo ya msingi inapowezekana, lakini kupeleka ombi kwa Tomcat kwa yaliyomo yanayohusiana na Tomcat.

Pia ni ya kuvutia:

Itifaki ya ajp13 ni inayoelekezwa kwa pakiti. Muundo wa binary ulichaguliwa dhahiri kuliko maandishi wazi zaidi kwa sababu za utendaji. Seva ya wavuti inawasiliana na chombo cha servlet kupitia uhusiano wa TCP. Ili kupunguza mchakato ghali wa uumbaji 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 mingi.

Bandari ya Default: 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 kutumia ambayo inafanya kazi na shida hii.

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

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

Uorodheshaji

Kiotomatiki

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

Kujaribu nguvu

AJP Proxy

Nginx Reverse Proxy & AJP

Angalia toleo la Dockerized

Tunapokutana na bandari ya AJP proxy wazi (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;
- #     server_name example.com;
- #     location / {
- #         proxy_pass http://127.0.0.1:8009;
- #     }
- # }
+     upstream ajp_backend {
+         server 127.0.0.1:8009;
+     }
+
+     server {
+         listen 80;
+         server_name example.com;
+         location / {
+             proxy_pass http://ajp_backend;
+             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+             proxy_set_header Host $http_host;
+             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 kwa 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 kituo cha wazi cha 8009 bila bandari zingine za wavuti zinazopatikana ni nadra. Walakini, bado inawezekana kuitumia kwa kutumia Metasploit. Kwa kutumia Apache kama kiunganishi, maombi yanaweza kupelekwa upya kwa Tomcat kwenye kituo cha 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 uwezo wa kukiuka mifumo ya kugundua na kuzuia udukuzi (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 ya Udukuzi
Shiriki na maudhui yanayochimba kina cha msisimko na changamoto za udukuzi

Taarifa za Udukuzi za Muda Halisi
Kaa sawa na ulimwengu wa udukuzi wenye kasi kupitia taarifa za muda halisi na ufahamu

Matangazo ya Karibuni
Baki mwelekezwa na tuzo mpya 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: