9.7 KiB
8009 - Pentesting Apache JServ Protocol (AJP)
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.
Sluit aan by HackenProof Discord bediener om te kommunikeer met ervare hackers en foutbeloningsjagters!
Hacking-insigte
Raak betrokke by inhoud wat die opwinding en uitdagings van hack bevat
Hacker Nuus in Werklikheid
Bly op hoogte van die vinnige hack-wêreld deur werklikheidsnuus en insigte
Nuutste Aankondigings
Bly ingelig met die nuutste foutbelonings wat bekendgestel word en belangrike platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Basiese Inligting
Vanaf: https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/
AJP is 'n draadprotokol. Dit is 'n geoptimeerde weergawe van die HTTP-protokol om 'n selfstandige webbediener soos Apache te laat kommunikeer met Tomcat. Histories gesproke was Apache baie vinniger as Tomcat om statiese inhoud te bedien. Die idee is om Apache die statiese inhoud te laat bedien waar moontlik, maar die versoek na Tomcat te stuur vir Tomcat-verwante inhoud.
Ook interessant:
Die ajp13-protokol is pakket-georiënteerd. 'n Binêre formaat is waarskynlik gekies bo die meer leesbare plat teks vir prestasie-redes. Die webbediener kommunikeer met die servlet-houer oor TCP-verbindings. Om die duur proses van soket-skepping te verminder, sal die webbediener probeer om volgehoue TCP-verbindings na die servlet-houer te handhaaf, en 'n verbinding hergebruik vir meervoudige versoek/respons-siklusse
Verstekpoort: 8009
PORT STATE SERVICE
8009/tcp open ajp13
CVE-2020-1938 'Ghostcat'
Indien die AJP-poort blootgestel word, kan Tomcat vatbaar wees vir die Ghostcat-kwesbaarheid. Hier is 'n exploit wat werk met hierdie probleem.
Ghostcat is 'n LFI-kwesbaarheid, maar enigsins beperk: slegs lêers vanaf 'n sekere pad kan uitgehaal word. Dit kan steeds lêers insluit soos WEB-INF/web.xml
wat belangrike inligting soos geloofsbriewe vir die Tomcat-koppelvlak kan lek, afhangende van die bedieneropstelling.
Gepatchte weergawes op of bo 9.0.31, 8.5.51, en 7.0.100 het hierdie probleem reggestel.
Enumerasie
Outomaties
nmap -sV --script ajp-auth,ajp-headers,ajp-methods,ajp-request -n -p 8009 <IP>
Brute force
AJP Proksi
Nginx Terug Proksi & AJP
Kyk na die Dockerized weergawe
Wanneer ons op 'n oop AJP proksi-poort (8009 TCP) afkomstig is, kan ons Nginx met die ajp_module
gebruik om toegang tot die "verborge" Tomcat-bestuurder te verkry. Dit kan gedoen word deur die Nginx bronkode te kompileer en die vereiste module by te voeg, soos volg:
- Laai die Nginx bronkode af
- Laai die vereiste module af
- Kompileer die Nginx bronkode met die
ajp_module
. - Skep 'n konfigurasie lêer wat na die AJP-poort verwys
# 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
upstream tomcats {
server <TARGET_SERVER>:8009;
keepalive 10;
}
server {
listen 80;
location / {
ajp_keep_conn on;
ajp_pass tomcats;
}
}
Begin Nginx en kontroleer of alles korrek werk deur 'n cURL versoek na jou plaaslike gasheer uit te reik.
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 Gehouerde-weergawe
git clone https://github.com/ScribblerCoder/nginx-ajp-docker
cd nginx-ajp-docker
Vervang TARGET-IP
in nginx.conf
met AJP IP dan bou en hardloop.
docker build . -t nginx-ajp-proxy
docker run -it --rm -p 80:80 nginx-ajp-proxy
Apache AJP Proksi
Om 'n oop poort 8009 te vind sonder enige ander toeganklike webpoele is skaars. Nietemin is dit steeds moontlik om dit te benut met behulp van Metasploit. Deur Apache as 'n proksi te gebruik, kan versoek na Tomcat op poort 8009 omgelei word.
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
Hierdie opstelling bied die potensiaal om indringingsdeteksie- en voorkomingstelsels (IDS/IPS) te omseil as gevolg van die binêre aard van die AJP-protokol, alhoewel hierdie vermoë nog nie geverifieer is nie. Deur 'n gewone Metasploit Tomcat-aanval na 127.0.0.1:80
te rig, kan jy doeltreffend beheer oor die geteikende stelsel verkry.
msf exploit(tomcat_mgr_deploy) > show options
Verwysings
- https://github.com/yaoweibin/nginx_ajp_module
- https://academy.hackthebox.com/module/145/section/1295
Sluit aan by HackenProof Discord bediener om met ervare hackers en foutbeloningsjagters te kommunikeer!
Hackeninsigte
Gaan in gesprek met inhoud wat die opwinding en uitdagings van hacken ondersoek
Hacknuus in Werklikheid
Bly op hoogte van die snelveranderende hackwêreld deur werklikheidsnuus en insigte
Nuutste Aankondigings
Bly ingelig met die nuutste foutbelonings wat bekendgestel word en noodsaaklike platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS-familie, ons versameling eksklusiewe NFT's
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.