8009 - Pentesting Apache JServ Protocol (AJP)
Reading time: 4 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Basic Information
From https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/
AJP एक वायर प्रोटोकॉल है। यह HTTP प्रोटोकॉल का एक अनुकूलित संस्करण है जो एक स्वतंत्र वेब सर्वर जैसे कि Apache को Tomcat से बात करने की अनुमति देता है। ऐतिहासिक रूप से, Apache ने स्थिर सामग्री को सेवा देने में Tomcat की तुलना में बहुत तेज़ी दिखाई है। विचार यह है कि जब संभव हो, तो Apache स्थिर सामग्री को सेवा दे, लेकिन Tomcat से संबंधित सामग्री के लिए अनुरोध को Tomcat पर प्रॉक्सी करें।
Also interesting:
AJP13 प्रोटोकॉल पैकेट-उन्मुख है। प्रदर्शन के कारणों से एक बाइनरी प्रारूप को अधिक पठनीय साधारण पाठ पर चुना गया था। वेब सर्वर TCP कनेक्शनों के माध्यम से सर्वलेट कंटेनर के साथ संवाद करता है। सॉकेट निर्माण की महंगी प्रक्रिया को कम करने के लिए, वेब सर्वर सर्वलेट कंटेनर के लिए स्थायी TCP कनेक्शन बनाए रखने का प्रयास करेगा, और कई अनुरोध/प्रतिक्रिया चक्रों के लिए एक कनेक्शन का पुन: उपयोग करेगा।
Default port: 8009
PORT STATE SERVICE
8009/tcp open ajp13
CVE-2020-1938 'Ghostcat'
यह एक LFI कमजोरियों है जो कुछ फ़ाइलें प्राप्त करने की अनुमति देती है जैसे WEB-INF/web.xml
जिसमें क्रेडेंशियल्स होते हैं। यह कमजोरियों का दुरुपयोग करने के लिए एक exploit है और 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
एक खुले AJP प्रॉक्सी पोर्ट (8009 TCP) के साथ संवाद करना संभव है Nginx ajp_module
अपाचे मॉड्यूल का उपयोग करके और इस पोर्ट से टॉमेट मैनेजर तक पहुंच प्राप्त करना जो अंततः कमजोर सर्वर में RCE की ओर ले जा सकता है।
- https://nginx.org/en/download.html से Nginx डाउनलोड करना शुरू करें और फिर इसे ajp मॉड्यूल के साथ संकलित करें:
# 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.conf
मेंhttp
ब्लॉक में निम्नलिखित जोड़ें।
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 Dockerized-version
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
Apache AJP Proxy
इसके बजाय Nginx का उपयोग करने के लिए उस पोर्ट तक पहुँचने के लिए Apache AJP proxy का उपयोग करना भी संभव है।
References
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।