題 Debian 8 VM Web服務器上的DDoS病毒感染(作為unix服務)


我為〜okeanos服務上的虛擬機上的學生團隊維護了一個(完全更新的)Wordpress幾年。今天,服務台通知我,我正在進行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

其中一個的內容(它們都是一樣的):     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    

這是在重啟後發現的,所以 /bin/acdnfhruvx 無處可去。後來我找到了exes(ELF Formatted) /usr/bin (如果你們中間有一個勇敢的人,我想我可以分享一下)

我看到機器在不知道原點的情況下執行的大量命令列表(來自連續的 ps -ejs和 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是沒有意義的,因為它總是分叉,從中刪除文件 /etc/init.d/ 和 /{usr/,}bin 也沒有意義,因為重啟後有一個新的(相同的)可執行版本。 在所有這些信息之後,我有兩個問題:我能否知道我是如何被感染的?我可以擺脫這個嗎? 先感謝您!


13
2018-01-12 22:48


起源


如果您的服務器遭到入侵,那麼很難說它是如何被感染以及已經做了什麼,因為入侵者篡改/刪除日誌文件是微不足道的。最佳做法是在其他位置進行日誌文件的異地存儲,因此如果您的計算機遭到入侵,您至少會有導致入侵的日誌。最終我認為你將需要重新安裝 - 只有這樣才能確保一個乾淨的未感染系統。


答案:


我們在Suse遭受了類似的感染,可能是通過 ssh暴力登錄

清潔的步驟是:

  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 要么 /bin。使用 ls -lt | head 查找最近修改過的文件。
  6. 檢查腳本 /etc/cron.hourly/cron.sh。在我們的服務器中,它正在調用另一個病毒副本 /lib/libgcc.so。刪除這兩個文件。
  7. 現在你可以絕對殺死了 rguoywvrf 處理。

23
2018-01-22 17:54



/etc/rc6.d/上有一些不好的腳本,它們以K90開頭 - mazgalici
做一個 find / -name "*rguoywvrf*" 找到其他文件,替換 rguoywvrf 用你的文件命名 - Mohamed Hafez
檢查此鏈接: garasiku.web.id/web/joomla/index.php/security/... - DarckBlezzer


回答你的問題:

  1. 如果沒有必要的預防措施(非現場系統日誌,IDS,日誌監控等),您可能永遠不會知道發生了什麼。
  2. 我不得不同意馬特。你會花時間讓機器運轉你永遠不會真正信任的。在我看來,最好的解決方案是將數據移出現場並重做機器。

當然,對於它的價值,這只是我的意見。但是,在重做機器時,您當然可以採取必要的預防措施,並在將來更好地保護自己。


3
2018-01-13 09:22





這是一個產生分配問題的威脅,因為發起DDOS攻擊並在端口80上產生數千個與外部服務器的連接,但是如果有意或無意,它會使你的連接過載,直到路由器/防火牆凍結,如果沒有DDOS攻擊規則。

現在,你怎麼能消除這種威脅?

  1. 找到你的威脅,使用

CentOS的/紅帽

ps -ely 

Debian的

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. 那麼你需要在單用戶模式下啟動linux服務器,在多用戶模式下進行任何更改都是沒有意義的,通常可以使用以下命令切換:

    telinit S.

  2. 之後,您需要刪除啟動時運行的文件

在Centos / Redhat的程序是

步驟a)

cd /etc/init.d          
ll -tr 

最後一個命令在反向日期命令你的文件,你將看到最後的1或2個文件,命名為

acdnfhruvx
kmrkuwbrng
gqpjiestmf
bvxktwwnsb

你需要看到內容

cat /etc/init.d/gqpjiestmf

通常,您會看到位於/ bin或/ usr / sbin中的文件的執行名稱相同

你需要刪除這兩個文件。

步驟b)

cd /etc/
ll -tr 

檢查您的crontab文件最近是否已更改,查看其內容,搜索一行

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

重啟你的服務器,一切都應該沒問題。

對於debian / ubuntu和親戚使用:

locate bvxktwwnsb

並刪除/ etc和/ bin中找到的文件

希望這能幫到很多人。


1
2018-01-22 18:20



您的答案很難閱讀,因為它似乎沒有正確格式化。如果你需要幫助, 幫助中心 有關正確格式化帖子的更多信息。 - bwDraco


我發現了什麼!!!

尋找/ etc / crontab

在我的服務器中,每3分鐘有一個cronjob用於執行某些操作:

*/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中的cronjob條目
  3. 刪除/etc/cron.hourly/cron.sh中的cron腳本
  4. 重啟服務器

注意:文件位置可能有所不同


0
2018-01-15 18:15





與Serhii解決方案互補的其他技巧。停止所有進程可能很困難,因為這會阻塞網絡和cpu。因此,將此行添加到您的 /etc/crontab 自動停止所有令人討厭的進程(每三分鐘停止名稱中包含10個字符的所有進程):

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

清理後這是一件好事,以確保過程不會返回。運行一段時間,直到你確定你的盒子是乾淨的。


0
2018-05-27 11:24