DDoS वायरस का संक्रमण (एक यूनिक्स सेवा के रूप में) एक डेबियन 8 वीएम वेबसर्वर पर


14

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

सबसे पहले, मैं ps -ejचेकआउट करने के लिए दौड़ता हूं कि क्या चल रहा है:

root@snf-25181:~# ps -ej
1545 1545 1545 ? 00:00:00 console-kit-dae
1618 1057 1057 ? 00:00:00 gdm-session-wor
1632 1632 1632 ? 00:01:40 rghuoywvrf
1767 1767 1767 ? 00:00:00 sshd
1769 1769 1769 ? 00:00:00 systemd
1770 1769 1769 ? 00:00:00 (sd-pam)
1775 1767 1767 ? 00:00:00 sshd
1776 1776 1776 pts/0 00:00:00 bash
1849 1849 1776 pts/0 00:00:00 su
1870 1870 1776 pts/0 00:00:00 bash
2246 0 0 ? 00:00:00 kworker/0:0
2797 839 839 ? 00:00:00 apache2
3158 3158 3158 ? 00:00:00 bvxktwwnsb
3162 3162 3162 ? 00:00:00 bvxktwwnsb
3163 3163 3163 ? 00:00:00 bvxktwwnsb
3164 3164 3164 ? 00:00:00 bvxktwwnsb
3165 3165 1776 pts/0 00:00:00 ps

सूचना bvxktwwnsb और rguoywvrf

फिर मैंने ps auxसेवाओं को प्राप्त करने के लिए एक (फिर से, एक पूंछ) किया:

Debian-+  1629  0.0  0.0 178300  4444 ?        Sl   16:53   0:00 /usr/lib/dconf/dconf-service
root      1667  0.0  0.0  30744  4436 ?        Ss   16:53   0:00 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
root      1670  0.0  0.1 299588  9884 ?        Ssl  16:53   0:00 /usr/lib/packagekit/packagekitd
root      1674  0.0  0.1 1055004 6168 ?        Ssl  16:53   0:00 /usr/sbin/console-kit-daemon --no-daemon
www-data  1923  0.0  0.1 240964  8112 ?        S    16:53   0:00 /usr/sbin/apache2 -k start
pankgeo+  5656  0.0  0.0  27416  3424 ?        Ss   17:03   0:00 /lib/systemd/systemd --user
pankgeo+  5657  0.0  0.0 143108  2408 ?        S    17:03   0:00 (sd-pam)   
root      5893  0.0  0.1 102420  6428 ?        Ss   17:04   0:00 sshd: pankgeorg [priv]
pankgeo+  5904  0.1  0.0 102560  4128 ?        S    17:04   0:02 sshd: pankgeorg@pts/0
pankgeo+  5905  0.2  0.1  16816  6388 pts/0    Ss+  17:04   0:04 -bash      
root      7443  0.0  0.1 102420  6496 ?        Ss   17:07   0:00 sshd: pankgeorg [priv]
pankgeo+  7448  0.0  0.0 102552  4160 ?        S    17:07   0:00 sshd: pankgeorg@pts/1
pankgeo+  7449  0.0  0.1  16468  6228 pts/1    Ss+  17:07   0:01 -bash      
root     17351  0.0  0.0      0     0 ?        S    17:15   0:00 [kworker/0:0]
root     18446  0.0  0.0      0     0 ?        S    17:18   0:00 [kworker/0:2]
root     18488  0.1  0.0      0     0 ?        S    17:18   0:01 [kworker/1:1]
root     22680  1.5  0.0      0     0 ?        S    17:28   0:08 [kworker/1:0]
root     24173  0.0  0.1 102420  6416 ?        Ss   17:31   0:00 sshd: pankgeorg [priv]
pankgeo+ 24181  0.3  0.0 102420  3360 ?        S    17:31   0:01 sshd: pankgeorg@pts/2
pankgeo+ 24182  0.0  0.0  16480  6112 pts/2    Ss   17:31   0:00 -bash      
root     25316  2.3  0.0      0     0 ?        S    17:33   0:06 [kworker/1:2]
root     26777  0.0  0.0      0     0 ?        S    17:35   0:00 [kworker/0:1]
root     26778  0.0  0.0      0     0 ?        S    17:35   0:00 [kworker/0:3]
root     27300  0.0  0.0   1424  1040 ?        Ss   17:38   0:00 cat resolv.conf  #note                        
root     27306  0.0  0.0   1424  1036 ?        Ss   17:38   0:00 gnome-terminal   #from                     
root     27307  0.0  0.0   1424  1036 ?        Ss   17:38   0:00 ifconfig eth0    #here                    
root     27308  0.0  0.0   1424  1040 ?        Ss   17:38   0:00 id               #(DDOS?)         
root     27309  0.0  0.0   1424  1040 ?        Ss   17:38   0:00 ifconfig                        
pankgeo+ 27315  0.0  0.0  11136  2044 pts/2    R+   17:38   0:00 ps aux     

आइटम पर ध्यान दें [-4: -1]। फिर मैंने ऑनलाइन पाया chkconfig --listकि मैं इसे चलाता हूं और यह पॉप आउट हो गया है:

root@snf-25181:/home/pankgeorg# chkconfig --list
acdnfhruvx 0:off 1:off 2:off 3:off 4:off 5:off 6:off
flyymwddwn 0:off 1:off 2:off 3:off 4:off 5:off 6:off

1 से 5 पर जहां onमैंने उन्हें बदल दिया off। फिर मैंने फिर से शुरू किया और इसने नाम बदल दिया। तब मैं located acdnfhruvxऔर इस पॉप आउट:

root@snf-25181:~# locate acdnfhruvx
/etc/init.d/acdnfhruvx
/etc/rc1.d/S01acdnfhruvx
/etc/rc2.d/S01acdnfhruvx
/etc/rc3.d/S01acdnfhruvx
/etc/rc4.d/S01acdnfhruvx
/etc/rc5.d/S01acdnfhruvx

उनमें से एक की सामग्री (वे सभी समान हैं): रूट @ snf-25181: ~ # cat /etc/init.d/acdnfhruvx #! / Bin / sh

chkconfig: 12345 90 90
description: acdnfhruvx
BEGIN INIT INFO
Provides: acdnfhruvx
Required-Start:
Required-Stop:
Default-Start: 1 2 3 4 5
Default-Stop:
Short-Description: acdnfhruvx
END INIT INFO
case $1 in
start)
/bin/acdnfhruvx
;;
stop)
;;
*)
/bin/acdnfhruvx   
;;
esac    

यह एक पुनरारंभ के बाद पाया गया था, इसलिए /bin/acdnfhruvxकहीं नहीं था। बाद में मुझे एग्जिट (ELF फॉर्मैटेड) मिला /usr/bin(मुझे लगता है कि मैं इसे साझा कर सकता हूं अगर आपके बीच एक बहादुर व्यक्ति है)

आज्ञाओं की एक विस्तृत सूची मैंने मशीन को मूल जानने के बिना निष्पादित किया है (क्रमिक ps -ejएस और ps auxतों से:

root     27755  0.0  0.0   1424  1036 ?        Ss   17:40   0:00 ifconfig                        
root     27759  0.0  0.0   1424  1036 ?        Ss   17:40   0:00 who                        
root     27760  0.0  0.0   1424  1040 ?        Ss   17:40   0:00 echo "find"                        
root     27761  0.0  0.0   1424  1036 ?        Ss   17:40   0:00 top                        
root     27762  0.0  0.0   1424  1036 ?        Ss   17:40   0:00 id                        
root     27805  0.0  0.0   1424  1036 ?        Ss   17:40   0:00 gnome-terminal                        
root     27809  0.0  0.0   1424  1040 ?        Ss   17:40   0:00 ifconfig                        
root     27810  0.0  0.0   1424  1044 ?        Ss   17:40   0:00 sh                        
root     27811  0.0  0.0   1424  1040 ?        Ss   17:40   0:00 sleep 1                        
root     27822  0.0  0.0   1424  1040 ?        Ss   17:40   0:00 netstat -an                        
root     27826  0.0  0.0   1424  1036 ?        Ss   17:40   0:00 top                        
root     27829  0.0  0.0   1424  1040 ?        Ss   17:40   0:00 bash                        
root     27833  0.0  0.0   1424  1040 ?        Ss   17:40   0:00 cd /etc                        
root     27834  0.0  0.0   1424  1040 ?        Ss   17:40   0:00 whoami                        
root     27822  0.0  0.0   1424  1040 ?        Ss   17:40   0:00 netstat -an                        
root     27826  0.0  0.0   1424  1036 ?        Ss   17:40   0:00 top                        
root     27829  0.0  0.0   1424  1040 ?        Ss   17:40   0:00 bash                        
root     27833  0.0  0.0   1424  1040 ?        Ss   17:40   0:00 cd /etc                        
root     27834  0.0  0.0   1424  1040 ?        Ss   17:40   0:00 whoami                        

pkillआईएनजी व्यर्थ है, क्योंकि यह हमेशा कांटे, फाइलों को हटाता है /etc/init.d/और तब /{usr/,}binसे भी बेकार है क्योंकि पुनरारंभ करने के बाद निष्पादन योग्य का एक नया (समान) संस्करण है। इस सब जानकारी के बाद, मेरे पास दो प्रश्न हैं: क्या मुझे पता चल सकता है कि मैं कैसे संक्रमित था? क्या मैं इससे छुटकारा पा सकता हूं? आपका अग्रिम में ही बहुत धन्यवाद!


यदि आपके सर्वर से छेड़छाड़ की गई है, तो यह बताना बहुत मुश्किल होगा कि यह कैसे संक्रमित था और क्या किया गया है, क्योंकि यह घुसपैठिए के लिए डॉक्टर के लिए तुच्छ है / लॉग फ़ाइलों को हटा दें। किसी अन्य स्थान पर लॉग फ़ाइलों का ऑफ़साइट स्टोरेज करने के लिए सबसे अच्छा अभ्यास है, इसलिए यदि आपकी मशीन से छेड़छाड़ की जाती है, तो कम से कम आपके पास लॉग-इन ब्रेक-इन तक ले जाएंगे। अंत में मुझे लगता है कि आपको एक साफ-सुथरी व्यवस्था सुनिश्चित करने के लिए केवल फिर से इनस्टॉल करने की जरूरत है।

जवाबों:


24

हमें Suse पर समान संक्रमण का सामना करना पड़ा, शायद ssh brute बल लॉगिन के माध्यम से ।

साफ करने के लिए कदम हैं:

  1. फ़ाइल की जाँच करें /etc/crontab। संभवतः आपके पास हर 3 मिनट में वायरस को कॉल करने के लिए एक प्रविष्टि है

    */3 * * * * root /etc/cron.hourly/cron.sh
    

    इस लाइन को हटाएं।

  2. वायरस की मूल प्रक्रिया को पहचानें। rguoywvrfअपने में ps -ej। अन्य प्रजातियां लगातार बनाई और मार दी जाती हैं।
  3. इसे रोको, इसे मत मारो, के साथ kill -STOP 1632
  4. दूसरे के साथ जांचें ps -ejकि केवल माता-पिता ही रहते हैं, बच्चों को जल्दी से मरना चाहिए
  5. अब आप में फ़ाइलें हटा सकते हैं /usr/binऔर /etc/init.d। वायरस के वेरिएंट हैं जो उपयोग /bootया भी करते हैं /binls -lt | headउन फ़ाइलों को देखने के लिए उपयोग करें जिन्हें हाल ही में संशोधित किया गया है।
  6. में स्क्रिप्ट की जाँच करें /etc/cron.hourly/cron.sh। हमारे सर्वर में यह वायरस की एक और कॉपी को कॉल कर रहा था /lib/libgcc.so। दोनों फ़ाइलों को हटाएँ।
  7. अब आप निश्चित रूप से इस rguoywvrfप्रक्रिया को मार सकते हैं।

1
/etc/rc6.d/ पर कुछ बुरी स्क्रिप्ट हैं, वे K90 से शुरू होती हैं
mazgalici

1
find / -name "*rguoywvrf*"अन्य फ़ाइलों को खोजने के लिए एक करें, rguoywvrfआपकी फ़ाइल का नाम जो भी है , उसकी जगह
मोहम्मद हाफ़िज़

1
इस लिंक की जाँच करें: garasiku.web.id/web/joomla/index.php/security/…
DarckBlezzer

3

अपने सवालों के जवाब देने के लिए:

  1. आवश्यक सावधानियों के बिना (साइट syslog, IDS, लॉग मॉनिटरिंग आदि से दूर) आप शायद यह कभी नहीं जान पाएंगे कि क्या हुआ था।
  2. मुझे मैट से सहमत होना होगा। आप एक मशीन चलाने के लिए समय का निवेश करेंगे जिस पर आपको कभी भरोसा नहीं होगा। मेरी राय में, सबसे अच्छा समाधान साइट से डेटा को स्थानांतरित करना और मशीन को फिर से करना है।

बेशक, इसके लायक क्या है, यह केवल मेरी राय है। हालांकि, मशीन को फिर से तैयार करते समय, आप निश्चित रूप से आवश्यक सावधानी बरत सकते हैं और भविष्य में खुद को बेहतर बना सकते हैं।


1

यह एक खतरा है जो समस्याओं के आवंटन को उत्पन्न करता है क्योंकि डीडीओएस हमले को लॉन्च करता है और पोर्ट 80 पर एक्सटर्नल सर्वर के हजारों कनेक्शन उत्पन्न करता है, लेकिन मुझे नहीं लगता कि जानबूझकर या नहीं, यह आपके कनेक्शन को ओवरलोड करने के लिए जाता है जब तक कि राउटर / फ़ायरवॉल नहीं होते हैं। DDOS हमले के नियम।

अब, आप इस खतरे को कैसे दूर कर सकते हैं?

  1. अपने खतरे का पता लगाएं, उपयोग करें

Centos / redhat

ps -ely 

डेबियन

ps -ej

तुम देखोगे:

3158 3158 3158 ? 00:00:00 bvxktwwnsb
3162 3162 3162 ? 00:00:00 bvxktwwnsb
3163 3163 3163 ? 00:00:00 bvxktwwnsb
3164 3164 3164 ? 00:00:00 bvxktwwnsb

" bvxktwwnsb" आपका लक्ष्य है

  1. फिर आपको अपने लाइनक्स सर्वर को सिंगल यूजर मोड पर बूट करने की जरूरत है, मल्टीसर मोड में कोई भी बदलाव करना बेकार है, आमतौर पर आप निम्न कमांड के साथ स्विच कर सकते हैं:

    टेलिनिट एस

  2. इसके बाद आपको स्टार्टअप पर चलने वाली फ़ाइलों को हटाने की आवश्यकता है

Centos / Redhat में प्रक्रिया है

चरण a)

cd /etc/init.d          
ll -tr 

अंतिम आदेश अपनी फ़ाइलों को रिवर्स डेट में ऑर्डर करें, आप अंत में एक अंतिम 1 या 2 फ़ाइलों को देखने जा रहे हैं जैसे नाम के साथ

acdnfhruvx
kmrkuwbrng
gqpjiestmf
bvxktwwnsb

आपको सामग्री देखने की आवश्यकता है

cat /etc/init.d/gqpjiestmf

आम तौर पर आप उसी नाम से / bin या usr / sbin में स्थित फ़ाइल का निष्पादन देखेंगे

आपको दोनों फ़ाइलों को हटाने की आवश्यकता है।

चरण बी)

cd /etc/
ll -tr 

जांचें कि क्या आपकी कोंट्रेब फ़ाइल हाल ही में बदली गई है, इसकी सामग्री देखें, एक पंक्ति खोजें

*/3 * * * * root /etc/cron.hourly/udev.sh

या

*/3 * * * * root /etc/cron.hourly/crontab.sh 

आपको फ़ाइल को संपादित करने और उस लाइन को हटाने की आवश्यकता है।

की सामग्री की जाँच करें udev.shया crontab.shआप कुछ इस तरह देखेंगे

#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
cp /lib/libgcc4.so /lib/libgcc4.4.so
/lib/libgcc4.4.so

आपको "libgcc4.4.so" फ़ाइल या किसी अन्य उल्लेख को हटाने की आवश्यकता है (उदाहरण के लिए अनुमतियां भी काम करेंगी chmod a-x libgcc.so)

अपने सर्वर को रिबूट करें और सब कुछ ठीक होना चाहिए।

डेबियन / ubuntu और रिश्तेदारों के लिए उपयोग करें:

locate bvxktwwnsb

और / etc और / bin में मिली फ़ाइलों को हटा दें

आशा है कि यह कई लोगों की मदद करेगा।


आपका उत्तर पढ़ना कठिन हो सकता है क्योंकि यह सही ढंग से स्वरूपित नहीं होता है। यदि आपको सहायता की आवश्यकता है, तो सहायता केंद्र में ठीक से फ़ॉर्मेटिंग पोस्टों के बारे में अधिक जानकारी है।
bwDraco

0

मुझे कुछ मिला!!!

/ etc / crontab की तलाश करें

मेरे सर्वर में, हर 3 मिनट में कुछ निष्पादित करने के लिए एक क्रोनजॉब है:

*/3 * * * * root /etc/cron.hourly/cron.sh

cat cron.sh

#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
for i in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up& done
cp /lib/libgcc.so /lib/libgcc.so.bak
/lib/libgcc.so.bak

मेरा समाधान:

  1. के लिए अक्षम अनुमति (rwx 000): /etc/init.d/ {/ usr} / bin / /lib/libgcc.so
  2. / etc / crontab में क्रोनजोब प्रविष्टि को हटा दें
  3. /etc/cron.hourly/cron.sh में क्रोन स्क्रिप्ट हटाएं
  4. सर्वर को पुनरारंभ करें

नोट: फ़ाइल स्थान भिन्न हो सकते हैं


0

सेरही समाधान के लिए अतिरिक्त चाल पूरक। सभी प्रक्रियाओं को रोकना मुश्किल हो सकता है क्योंकि यह चीज नेटवर्क और सीपीयू को स्पैम्स करती है। इसलिए /etc/crontabसभी ख़राब प्रक्रियाओं को स्वचालित रूप से रोकने के लिए इस पंक्ति को अपने साथ जोड़ें (हर तीन मिनट में नाम में 10 वर्ण वाली सभी प्रक्रियाएँ रोक देता है):

*/3 * * * * root pstree -ap | grep -E -- '-[a-z]{10},' | cut -d, -f2 | xargs kill -STOP 2>/dev/null

यह सुनिश्चित करने के लिए कि प्रक्रिया वापस नहीं आती है सफाई के बाद यह एक अच्छी बात है। इसे थोड़ी देर के लिए चलाएं जब तक आपको यकीन न हो जाए कि आपका बॉक्स साफ है।

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