8009 - Pentesting Apache JServ Protocol (AJP)

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

HackenProof Discord सर्वर में शामिल होकर अनुभवी हैकर्स और बग बाउंटी हंटर्स के साथ संवाद करें!

हैकिंग इंसाइट्स उत्कृष्टता और हैकिंग की चुनौतियों में डूबने वाली सामग्री के साथ जुड़ें

रियल-टाइम हैक न्यूज़ तेजी से बदलती हैकिंग दुनिया के साथ कदम से कदम रहें अपड

PORT     STATE SERVICE
8009/tcp open  ajp13

CVE-2020-1938 'Ghostcat'

यदि AJP पोर्ट उजागर है, तो टॉमकैट भूतकट सुरक्षितता संक्रमित हो सकता है। यहाँ एक शोषण है जो इस समस्या के साथ काम करता है।

भूतकट एक LFI सुरक्षितता है, लेकिन कुछ हद तक प्रतिबंधित है: केवल एक निश्चित पथ से फ़ाइलें खींची जा सकती हैं। फिर भी, इसमें WEB-INF/web.xml जैसी फ़ाइलें शामिल हो सकती हैं जो टॉमकैट इंटरफ़ेस के लिए प्रमुख जानकारी जैसे क्रेडेंशियल लीक कर सकती हैं, सर्वर सेटअप पर निर्भर करता है।

सुधारित संस्करण 9.0.31 या उससे ऊपर, 8.5.51 और 7.0.100 इस समस्या को ठीक कर चुके हैं।

जाँच

स्वचालित

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

AJP प्रॉक्सी

Nginx रिवर्स प्रॉक्सी और AJP

डॉकराइज्ड संस्करण की जाँच करें

जब हमें एक खुला AJP प्रॉक्सी पोर्ट (8009 TCP) मिलता है, तो हम Nginx का उपयोग ajp_module के साथ कर सकते हैं ताकि "छिपा हुआ" टॉमकैट मैनेजर तक पहुंच सकें। इसे निम्नलिखित के रूप में किया जा सकता है:

  • Nginx स्रोत को डाउनलोड करें

  • आवश्यक मॉड्यूल को डाउनलोड करें

  • ajp_module के साथ Nginx स्रोत को कंपाइल करें।

  • 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:8000;
-#     }
-# }
+    location / {
+        proxy_pass http://127.0.0.1:8000;
+    }
upstream tomcats {
server <TARGET_SERVER>:8009;
keepalive 10;
}
server {
listen 80;
location / {
ajp_keep_conn on;
ajp_pass tomcats;
}
}

एनजिनक्स शुरू करें और सब कुछ सही काम कर रहा है यह सुनिश्चित करने के लिए अपने स्थानीय होस्ट पर एक cURL अनुरोध जारी करके जांचें।

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 Dockerized संस्करण

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

अपने nginx.conf फ़ाइल में TARGET-IP को AJP IP के साथ बदलें और फिर इसे बिल्ड और रन करें।

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

एपाच AJP प्रॉक्सी

बिना किसी अन्य पहुंचने वाले वेब पोर्ट के खुले पोर्ट 8009 का सामना करना दुर्लभ है। हालांकि, इसे Metasploit का उपयोग करके उत्पीड़ित किया जा सकता है। एपाच का उपयोग प्रॉक्सी के रूप में करके अनुरोध Tomcat पर पोर्ट 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

यह सेटअप IDS/IPS को छलने की संभावना प्रदान करता है क्योंकि AJP प्रोटोकॉल की बाइनरी प्रकृति है, हालांकि यह क्षमता सत्यापित नहीं है। 127.0.0.1:80 पर एक सामान्य Metasploit Tomcat दुरुपयोग को निर्देशित करके आप लक्षित सिस्टम पर नियंत्रण हासिल कर सकते हैं।

msf  exploit(tomcat_mgr_deploy) > show options

संदर्भ

HackenProof Discord सर्वर में शामिल होकर अनुभवी हैकर्स और बग बाउंटी हंटर्स के साथ संवाद करें!

हैकिंग इंसाइट्स हैकिंग के रोमांच और चुनौतियों में डूबने वाली सामग्री के साथ जुड़ें

रियल-टाइम हैक न्यूज़ रियल-टाइम समाचार और अंतर्दृष्टि के माध्यम से तेजी से बदलती हैकिंग दुनिया में अपड

Last updated