記錄一次真實的服務器被黑客入侵經歷

2020年4月6日凌晨,我收到一條來自騰訊雲的短信:

<code>【騰訊雲】安全提醒:您的服務器172.21.x.x(賬號ID:xxxxx instance-id:ins-xxxxxx[未命名] 地域:北京)檢測到來自 61.219.255.x 的暴力破解事件,破解狀態:破解成功。您的服務器疑似被黑客入侵,請即刻前往主機安全控制檯查看詳細信息並參照:http://url.cn/5AnEx6J ,進行處理/<code>


記錄一次真實的服務器被黑客入侵經歷

我的服務器被入侵了? 我看了一下,發現這個服務器是我個人的一臺閒置服務器,以前搭建過一個wordpress 測試了下而已, 這臺服務器當時並沒有設置秘鑰登錄,允許了密碼登錄並且是root用戶。

我開始想過直接重裝系統,但是出於技術人心裡的一點倔強和好奇決定查看一下。


1、我連上服務器之後先執行了 w 命令看了下,除了我之外沒有別IP在連服務器!(當時忘了截圖) ,執行 history 命令 沒有查到 異常的記錄, 在 .bash_history 也沒有查到 。


2、然後查了下 /var/log/secure 日誌,發現密碼確實被攻破了(我把日誌中的IP最後一段換成了x):

<code>
Apr 6 00:19:48 VM_0_5_centos sshd[22197]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=61.219.255.x user=root

Apr 6 00:19:50 VM_0_5_centos sshd[22197]: Failed password for root from 61.219.255.x port 53319 ssh2

Apr 6 00:19:51 VM_0_5_centos sshd[22197]: Connection closed by 61.219.255.x port 53319 [preauth]

Apr 6 00:19:54 VM_0_5_centos sshd[22210]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=61.219.255.x user=root

Apr 6 00:19:56 VM_0_5_centos sshd[22210]: Failed password for root from 61.219.255.x port 48948 ssh2

Apr 6 00:19:56 VM_0_5_centos sshd[22210]: Connection closed by 61.219.255.x port 48948 [preauth]

Apr 6 00:19:57 VM_0_5_centos sshd[22220]: Accepted password for root from 61.219.255.x port 14542 ssh2/<code>


可以看到 最下面那一條: Accepted password for root from 61.219.255.x 說明他破解了我的密碼


接下來我發現了一個可怕的事情,這個黑客簡直是高手。


他不但破解了我的密碼,還在root 用戶下.ssh/authorized_keys 添加了他的公鑰,而且還新建了一個普通用戶,同樣也加了公鑰 。我嘗試清除掉他的公鑰,提示我無法保存。我可是root 用戶啊,作為一個運維人員,很快會意識到文件被加鎖了。

<code>[root@VM_0_5_centos ~]# lsattr .ssh/authorized_keys
-----i------- .ssh/authorized_keys

#果然被加鎖了 ,需要先解鎖再修改

[root@VM_0_5_centos ~]# chattr -i .ssh/authorized_keys

#然後用同樣的方法解鎖黑客新建用戶的認證文件,然後刪掉他新建的用戶/<code>


3、我馬上修改sshd的配置文件,包括 拒絕密碼認證和拒絕root直接ssh, 創建一個新用戶並添加我的公鑰

<code>vi  /etc/ssh/sshd_config

#禁止密碼認證
PasswordAuthentication no

#禁止root用戶直接ssh到服務器
PermitRootLogin no

#公鑰的位置
AuthorizedKeysFile .ssh/authorized_keys

#然後重啟sshd 服務

#再創建一個用戶dfzz, 並授權sudo all,也可以只授權某個命令,看自己需要嘍

visudo
dfzz ALL=(ALL) NOPASSWD: ALL/<code>


4、 用戶檢查完了,sshd也重啟了,我開始檢查有沒有惡意進程


記錄一次真實的服務器被黑客入侵經歷

果然還是沒放過我啊,這個wordpress 進程並不是我之前自己測試的wordpress,我之前是 lnmp+ wordpress ,並沒有叫wordpress的進程。

我kill 掉 這個進程,並刪除了這個文件


然後用 netstat -lntup 查了一下 有沒有異常的服務 端口

<code>#查到了一個,但是忘記截圖也忘記複製了。。。

#這個進程的pid是13747 , 查看pid對應的目錄
ls -l /proc/13747

#目錄下有一個exe 對應的文件就是程序執行文件,刪掉它,然後 kill掉進程/<code>


5、檢查一下 /etc/hosts 因為黑客經常 入侵服務器 經常會修改 hosts 文件


記錄一次真實的服務器被黑客入侵經歷

呵呵,還真是。 我修改的時候同樣提示權限不足,還是先解鎖再修改。


6、 我又檢查了一下定時任務,因為黑客經常會修改定時任務,你刪掉他們的程序定時又會啟動,可結果卻是定時任務正常,沒有被修改, 我有點詫異,難道這就結束了?


好,那我重啟一下系統看看!


果然,沒我想的這麼簡單!

重啟後發現 /etc/hosts 又被加了一大推, root 用戶的authorized_keys 又被加了黑客的公鑰,而且我新建的那個dfzz 用戶 也被加了他的公鑰,當然這三個文件也被加了鎖,真的厲害!


我先給這三個文件解鎖,去掉了被修改的內容


又查看了下進程,發現剛才kill的那兩個進程不出所料的又啟動了。


我還是先kill掉這兩個 進程 並刪除 執行文件


接下來查一下開機啟動文件:

<code>chkconfig --list  
#有一個可以的開機啟動進程,但還並不能確定就是這個,好像叫 jexce ,忘記截圖了。

我先取消掉這個進程的開機啟動,

又檢查了下 /etc/rc.d/init.d 目錄,發現了很多可疑的腳本文件,統統刪掉! 同樣提示權限不足,還是先解鎖

[root@VM_0_5_centos ~]# chattr -i /etc/rc.d/init.d/watchdogs
[root@VM_0_5_centos ~]# chattr -i /etc/rc.d/init.d/selinux
[root@VM_0_5_centos ~]# chattr -i /etc/rc.d/init.d/pdflushs
[root@VM_0_5_centos ~]# chattr -i /etc/rc.d/init.d/DbSecuritySp

然後刪掉這些文件

然後再看一下有沒有 systemd管理的服務有開機自啟的
systemctl list-unit-files|grep enabled
沒有發現異常/<code>


然後檢查一下 /etc/rc.d/rc.local 也正常,凡是開機啟動的都檢查一遍!


然後給 chattr 暫時改個名,要不老被鎖

<code>mv /usr/bin/chattr  /usr/local/bin/qweasdzxc
#我讓你給我再加鎖 ?
# 自己改的名字一定要記住, 或者一會再改回來/<code>


好,現在發現了一個可疑的開機自啟的文件,又刪掉了一些可疑腳本,再重啟試一下 !


我抱著激動的心情 輸入 了 reboot 命令


。。。。。。 無法連接服務器!


我回頭看了一下,剛才刪除文件的時候,誤刪了一個文件 /etc/rc.d/init.d/functions 導致系統重啟起不來了! 由於我這個服務器不重要。。。當時這個服務器 沒有做鏡像和快照!


只能重裝系統!


這篇文章是在系統重裝後寫的 ,有的地方可能有遺漏,並沒有完美的解決此次被黑客入侵,當做一次教訓記錄下來。


黑客的手法很高明,我們只能更加小心,一點都不能疏忽大意。


亡羊補牢的措施:

1、 服務器絕對不允許密碼認證登錄

2、 禁止 root 用戶直接ssh 登錄

3、 如果公司的IP是固定的,可以對ssh做IP限制,或者做一個vpn服務,總之通過固定IP去ssh就可以限制IP了,這樣是最安全的


分享到:


相關文章: