Nhiễm virus DDoS (dưới dạng dịch vụ unix) trên Máy chủ web Debian 8 VM


14

Tôi duy trì một Wordpress (cập nhật đầy đủ) cho một nhóm sinh viên trên máy ảo trên dịch vụ ~ okeanos trong một vài năm. Hôm nay, bộ phận trợ giúp thông báo cho tôi rằng tôi đang tiến hành các cuộc tấn công DDoS, tất nhiên - tôi thì không (dịch vụ này có thông tin học thuật của tôi được kết nối ..). Sau khi họ đình chỉ máy và tôi vẫy hệ thống gửi thư của họ, tôi đã cố gắng tìm hiểu những gì đã xảy ra.

Trước hết, tôi chạy một ps -ejđể kiểm tra những gì đang chạy:

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

Lưu ý bvxktwwnsb và rguoywvrf

Sau đó, tôi đã làm một ps auxđể có được các dịch vụ (một lần nữa, một cái đuôi):

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     

Lưu ý các mục [-4: -1]. Sau đó, tôi tìm thấy trên mạng chkconfig --listvì vậy tôi chạy nó và điều này xuất hiện:

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 đến 5 đâu onnhưng tôi đã biến chúng off. Sau đó tôi khởi động lại và nó đã đổi tên. Sau đó, tôi located các acdnfhruvxvà điều này xuất hiện ra:

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

Nội dung của một trong số chúng (tất cả đều giống nhau): 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    

Điều này đã được tìm thấy sau khi khởi động lại, vì vậy /bin/acdnfhruvxkhông có nơi nào. Sau đó tôi đã tìm thấy exes (ELF Formatted) tại /usr/bin(Tôi nghĩ rằng tôi có thể chia sẻ nó nếu có một người đàn ông dũng cảm trong số bạn)

Một danh sách đầy đủ các lệnh tôi thấy máy thực thi mà không biết nguồn gốc (từ ps -ejs và ps auxes liên tiếp :

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 là vô nghĩa, vì nó luôn giả mạo, loại bỏ các tệp khỏi /etc/init.d//{usr/,}bincũng vô nghĩa vì sau khi khởi động lại, có một phiên bản mới (giống hệt) của tệp thực thi. Sau tất cả thông tin này, tôi có hai câu hỏi: Tôi có thể tìm hiểu làm thế nào tôi bị nhiễm bệnh không? Tôi có thể thoát khỏi điều này? Cảm ơn bạn trước!


Nếu máy chủ của bạn đã bị xâm nhập thì sẽ rất khó để biết nó đã bị nhiễm như thế nào và những gì đã được thực hiện, bởi vì việc kẻ xâm nhập bác sĩ / xóa các tệp nhật ký là chuyện nhỏ. Cách tốt nhất là lưu trữ các tệp nhật ký ngoại vi tại một vị trí khác, vì vậy nếu máy của bạn bị xâm nhập, ít nhất bạn sẽ có các nhật ký dẫn đến đột nhập. Cuối cùng, tôi nghĩ rằng bạn sẽ cần phải cài đặt lại - cách duy nhất để đảm bảo một hệ thống sạch sẽ không bị nhiễm.

Câu trả lời:


24

Chúng tôi bị nhiễm trùng tương tự trên Suse, có lẽ thông qua đăng nhập vũ lực ssh .

Các bước để làm sạch là:

  1. Kiểm tra tập tin /etc/crontab. Bạn có thể có một mục để gọi virus sau mỗi 3 phút

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

    Xóa dòng này.

  2. Xác định quá trình cha mẹ của virus. Trong rguoywvrfcủa bạn ps -ej. Các thủ tục khác được tạo ra và bị giết liên tục.
  3. Dừng lại, đừng giết nó, với kill -STOP 1632
  4. Kiểm tra với người khác ps -ejrằng chỉ có cha mẹ sống, con cái sẽ chết nhanh chóng
  5. Bây giờ bạn có thể xóa các tập tin trong /usr/bin/etc/init.d. Có các biến thể của virus cũng sử dụng /boothoặc /bin. Sử dụng ls -lt | headđể tìm kiếm các tập tin đã được sửa đổi gần đây.
  6. Kiểm tra tập lệnh trong /etc/cron.hourly/cron.sh. Trong máy chủ của chúng tôi, nó đã gọi một bản sao khác của virus /lib/libgcc.so. Xóa cả hai tập tin.
  7. Bây giờ bạn có thể giết chắc chắn rguoywvrfquá trình.

1
có một số tập lệnh xấu trên /etc/rc6.d/, chúng bắt đầu bằng K90
mazgalici

1
thực hiện find / -name "*rguoywvrf*"để tìm các tệp khác, thay thế rguoywvrfbằng bất kỳ tệp nào của bạn được đặt tên
Mohamed Hafez


3

Để trả lời câu hỏi của bạn:

  1. Nếu không có các biện pháp phòng ngừa cần thiết (tắt syslog trang web, IDS, theo dõi nhật ký, v.v.) có lẽ bạn sẽ không bao giờ tìm hiểu chuyện gì đã xảy ra.
  2. Tôi sẽ phải đồng ý với Matt. Bạn sẽ đầu tư thời gian để có được một chiếc máy chạy mà bạn sẽ không bao giờ thực sự tin tưởng. Theo tôi, giải pháp tốt nhất là di chuyển dữ liệu khỏi trang web & làm lại máy.

Tất nhiên, với những gì đáng giá, đây chỉ là ý kiến ​​của tôi. Mặc dù, khi làm lại máy, tất nhiên bạn có thể thực hiện các biện pháp phòng ngừa cần thiết & bảo vệ bản thân tốt hơn trong tương lai.


1

Đây là một mối đe dọa tạo ra sự phân bổ các vấn đề vì khởi chạy một cuộc tấn công DDOS và tạo ra hàng ngàn kết nối đến các máy chủ bên ngoài trên cổng 80, nhưng tôi không cố ý hay không, nó có xu hướng quá tải kết nối của bạn cho đến khi các bộ định tuyến / tường lửa đóng băng nếu không có Quy tắc tấn công DDOS.

Bây giờ, làm thế nào bạn có thể loại bỏ mối đe dọa này?

  1. tìm mối đe dọa của bạn, sử dụng

Centos / redhat

ps -ely 

Debian

ps -ej

Bạn sẽ thấy:

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" là mục tiêu của bạn

  1. sau đó bạn cần khởi động máy chủ linux của mình ở chế độ người dùng, thực hiện mọi thay đổi trong chế độ nhiều người dùng là vô nghĩa, thông thường bạn có thể chuyển đổi bằng lệnh sau:

    telinit S

  2. sau đó bạn cần xóa các tập tin chạy khi khởi động

tính bằng Centos / Redhat thủ tục là

Bước a)

cd /etc/init.d          
ll -tr 

lệnh cuối cùng sắp xếp các tệp của bạn vào ngày ngược lại, bạn sẽ thấy 1 hoặc 2 tệp cuối cùng ở cuối với tên như

acdnfhruvx
kmrkuwbrng
gqpjiestmf
bvxktwwnsb

bạn cần xem nội dung

cat /etc/init.d/gqpjiestmf

thông thường bạn sẽ thấy việc thực thi một tệp nằm trong / bin hoặc / usr / sbin có cùng tên

bạn cần xóa cả hai tập tin

Bước b)

cd /etc/
ll -tr 

kiểm tra xem tập tin crontab của bạn có bị thay đổi gần đây không, xem nội dung của nó, tìm kiếm một dòng

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

hoặc là

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

bạn cần chỉnh sửa tập tin và xóa dòng đó.

kiểm tra nội dung của udev.shhoặc crontab.shbạn sẽ thấy một cái gì đó như thế này

#!/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

bạn cần xóa tệp "libgcc4.4.so" hoặc bất kỳ tệp nào khác được đề cập ở đó (chẳng hạn như thay đổi quyền cũng sẽ hoạt động chmod a-x libgcc.so)

khởi động lại máy chủ của bạn và mọi thứ sẽ ổn

Đối với debian / ubfox và người thân sử dụng:

locate bvxktwwnsb

và xóa các tập tin được tìm thấy trong / etc và / bin

Hy vọng điều này sẽ giúp nhiều người.


Câu trả lời của bạn có thể khó đọc vì nó dường như không được định dạng chính xác. Nếu bạn cần trợ giúp, trung tâm trợ giúp có thêm thông tin về định dạng bài viết đúng.
bwDraco

0

Tôi đã tìm thấy một cái gì đó !!!

tìm / etc / crontab

Trong máy chủ của tôi, cứ sau 3 phút lại có một cronjob để thực hiện một cái gì đó:

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

Giải pháp của tôi:

  1. vô hiệu hóa quyền (rwx 000) cho: /etc/init.d/ {/ usr} / bin / /lib/libgcc.so
  2. xóa mục cronjob trong / etc / crontab
  3. xóa tập lệnh cron trong /etc/cron.hourly/cron.sh
  4. khởi động lại máy chủ

lưu ý: vị trí tập tin có thể thay đổi


0

Thủ thuật bổ sung bổ sung cho giải pháp Serhii. Dừng tất cả các quy trình có thể khó khăn vì điều này spam mạng và cpu. Do đó, hãy thêm dòng này vào /etc/crontabđể tự động DỪNG tất cả các quy trình khó chịu (dừng tất cả các quy trình có 10 ký tự trong tên cứ sau ba phút):

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

Đây là một điều tốt để làm sau khi dọn dẹp để đảm bảo quá trình không trở lại. Chạy một lúc cho đến khi bạn chắc chắn hộp của bạn sạch sẽ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.