Debian 8 VM Web Sunucusunda DDoS Virüsü enfeksiyonu (unix hizmeti olarak)


14

Birkaç yıl boyunca ~ okeanos hizmetinde Sanal Makinede bir öğrenci ekibi için (tamamen güncellenmiş) bir Wordpress koruyorum. Bugün, yardım masası bana DDoS saldırıları yürüttüğümü bildirdi, ki bu tabii ki değilim (bu hizmetin akademik kimlik bilgilerim bağlı ..). Makineyi askıya aldıktan ve posta sistemlerini ateşledikten sonra ne olduğunu bulmaya çalıştım.

Her şeyden önce, ben ps -ejne çalışıyor ödeme için bir çalıştırın:

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 ve rguoywvrf'ye dikkat edin

Sonra ps auxhizmetleri (yine bir kuyruk) almak için yaptım :

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] öğelerini not edin. Sonra çevrimiçi hakkında buldum chkconfig --listbu yüzden ben koşmak ve bu attı:

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'den 5'e kadar onama onları çevirdim off. Sonra yeniden başladım ve adı değişti. Sonra ben located acdnfhruvxve bu dışarı çıktı:

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

İçlerinden birinin içeriği (hepsi aynı): root @ 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    

Bu bir yeniden başlatmadan sonra bulundu /bin/acdnfhruvx, hiçbir yerde yoktu. Daha sonra exes (ELF Formatted) 'ı buldum ( /usr/binsanırım aralarında cesur bir adam varsa paylaşabilirim)

Komutların kapsamlı bir listesi, makineyi kökenini bilmeden yürüttüğünü gördüm (art arda gelen ps -ejs ve ps auxes:

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                        

pkilling anlamsızdır, çünkü her zaman çatallanır, dosyaları kaldırır /etc/init.d/ve /{usr/,}binaynı zamanda anlamsızdır, çünkü yeniden başlattıktan sonra çalıştırılabilir dosyanın yeni (özdeş) bir sürümü vardır. Tüm bu bilgilerden sonra, iki sorum var: NASIL enfekte olduğumu öğrenebilir miyim? Bundan kurtulabilir miyim? Şimdiden teşekkür ederim!


Sunucunuz tehlikeye atıldıysa, bulaşıcıya nasıl bulaştığını ve ne yapıldığını söylemek çok zor olacaktır, çünkü davetsiz misafirin günlük dosyalarını doktor / kaldırması önemsizdir. En iyi uygulama, günlük dosyalarının başka bir yerde dışarıda depolanmasıdır, bu nedenle makineniz tehlikeye girerse, en azından günlüklerin içeri girmesine neden olur. Sonuçta yeniden yüklemeniz gerekeceğini düşünüyorum - temiz ve enfekte olmamış bir sistem sağlamanın tek yolu.

Yanıtlar:


24

Suse üzerinde benzer bir enfeksiyon yaşadık, muhtemelen ssh kaba kuvvet girişi yoluyla .

Temizlenecek adımlar:

  1. Dosyayı kontrol edin /etc/crontab. Muhtemelen virüsü her 3 dakikada bir aramak için bir girişiniz var

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

    Bu satırı sil.

  2. Virüsün üst sürecini tanımlayın. rguoywvrfGözlerinde farklı ps -ej. Diğer süreçler sürekli yaratılıp öldürülür.
  3. Durdur şunu, öldürme, kill -STOP 1632
  4. Başka bir kişiyle ps -ejsadece ebeveynin yaşadığını kontrol edin , çocuklar çabucak ölmeli
  5. Şimdi /usr/binve içindeki dosyaları silebilirsiniz /etc/init.d. Virüsün /bootveya kullanan farklı varyantları da vardır /bin. ls -lt | headSon zamanlarda değiştirilmiş dosyaları aramak için kullanın .
  6. Komut dosyasını kontrol edin /etc/cron.hourly/cron.sh. Sunucumuzda virüsün başka bir kopyasını çağırıyordu /lib/libgcc.so. Her iki dosyayı da silin.
  7. Şimdi rguoywvrfsüreci kesinlikle öldürebilirsiniz .

1
/etc/rc6.d/ adresinde bazı kötü senaryolar var, K90 ile başlıyorlar
mazgalici

1
Bir yapmak find / -name "*rguoywvrf*"yerine diğer dosyaları bulmak için rguoywvrfne olursa olsun dosya ile seçildi
Mohamed Hafez


3

Sorularınızı cevaplamak için:

  1. Gerekli önlemler olmadan (site dışı sistem günlüğü, IDS, günlük izleme vb.) Muhtemelen ne olduğunu asla öğrenemezsiniz.
  2. Matt ile hemfikir olmalıydım. Asla gerçekten güvenmeyeceğiniz bir makine çalıştırmak için zaman harcayacaksınız. Bence en iyi çözüm, verileri site dışına taşımak ve makineyi yeniden yapmaktır.

Tabii ki, değer için, bu sadece benim düşüncem. Yine de, makineyi yeniden yaparken, elbette gerekli önlemleri alabilir ve gelecekte kendinizi daha iyi koruyabilirsiniz.


1

Bu bir DDOS saldırısı başlatmak ve bağlantı noktası 80 harici sunuculara binlerce bağlantı üretmek çünkü sorunların bir sürü üreten bir tehdit, ama kasıtlı olarak veya değil, ben yönlendiriciler / güvenlik duvarları donmayana kadar bağlantınızı aşırı yükleme eğilimindedir DDOS saldırı kuralları.

şimdi, bu tehdidi nasıl kaldırabilirsiniz?

  1. tehdidini bul, kullan

Centos / redhat

ps -ely 

Debian

ps -ej

göreceksin:

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" hedefiniz

  1. o zaman linux sunucunuzu tek kullanıcı modunda başlatmanız, çok kullanıcılı modda herhangi bir değişikliğin anlamsız olmasını sağlamanız gerekir, genellikle aşağıdaki komutla geçiş yapabilirsiniz:

    telinit S

  2. bundan sonra başlangıçta çalıştırılan dosyaları silmeniz gerekir

Centos / Redhat'da prosedür

Adım a)

cd /etc/init.d          
ll -tr 

son komut dosyalarınızı ters tarihte sıralıyorsanız, sonunda şu şekilde adlandırılmış son 1 veya 2 dosyayı göreceksiniz

acdnfhruvx
kmrkuwbrng
gqpjiestmf
bvxktwwnsb

içeriği görmelisin

cat /etc/init.d/gqpjiestmf

normalde / bin veya / usr / sbin içinde aynı ada sahip bir dosyanın yürütülmesini görürsünüz

her iki dosyayı da silmeniz gerekir.

Adım b)

cd /etc/
ll -tr 

crontab dosyanızın yakın zamanda değiştirilip değiştirilmediğini kontrol edin, içindekilere bakın, bir satır arayın

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

veya

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

dosyayı düzenlemeniz ve bu satırı kaldırmanız gerekir.

içeriğini kontrol et udev.shveya crontab.shböyle bir şey göreceksin

#!/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" dosyasını veya orada belirtilen herhangi bir dosyayı kaldırmanız gerekir (örneğin, izinleri değiştirmek de işe yarar chmod a-x libgcc.so)

sunucunuzu yeniden başlatın ve her şey yolunda olmalıdır.

Debian / ubuntu ve akrabaları için:

locate bvxktwwnsb

ve / etc ve / bin dosyalarında bulunan dosyaları silin

Umarım bu birçok insana yardım eder.


Doğru biçimlendirilmiş görünmediği için cevabınızı okumak zor olabilir. Yardıma ihtiyacınız olursa, yardım merkezinde yayınların düzgün biçimlendirilmesi hakkında daha fazla bilgi bulunur.
bwDraco

0

Bir şey buldum!!!

/ etc / crontab araması yap

Sunucumda, bir şey yürütmek için her 3 dakikada bir cronjob var:

*/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

Çözümüm:

  1. /etc/init.d/ {/ usr} / bin / /lib/libgcc.so için izni devre dışı bırak (rwx 000)
  2. / etc / crontab içindeki cronjob girdisini kaldır
  3. /etc/cron.hourly/cron.sh içindeki cron komut dosyasını kaldır
  4. sunucuyu yeniden başlat

not: dosya konumları değişebilir


0

Serhii çözümünü tamamlayıcı ek numara. Tüm işlemleri durdurmak zor olabilir çünkü bu şey ağ ve CPU'yu spam eder. Bu nedenle, /etc/crontabtüm kötü süreçleri otomatik olarak DURDURMAK için bu satırı ekleyin (her üç dakikada bir adında 10 karakter olan tüm işlemleri durdurur):

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

Bu, işlemin geri dönmediğinden emin olmak için temizleme işleminden sonra yapılacak iyi bir şeydir. Kutunuzun temiz olduğundan emin olana kadar bir süre çalıştırın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.