記錄一次大半夜不睡覺入侵我服務器的狗東西.md
起因是最近為了玩一些小測試,買了臺服務器,然后給我的小徒弟用了。我猜測她電腦里本身就被人下木馬了,所以自從她連上服務器之后怪事連連。
當然我不怪她,不知者無罪,另外我給服務器之后事情處理不好也是我自己的責任。只是大半夜被騰訊云搞醒實在是太不爽了。
之前最開始一天,我本身用這臺2核4G的服務器裝了臺MySQL,但是裝之后導入十五萬條數(shù)據(jù)竟然3個小時都沒導完,我就很奇怪,什么TMD數(shù)據(jù)你能給我導這么久的時間?
當時我一直在忙別的也沒雇的上這事,過了幾個小時偶然間看了眼服務器,好家伙,還沒導完,我尋思可能服務器太差了?所以導入性能慢?但是再慢也不至于這種程度吧。
然后在Linux上打top命令。
top出現(xiàn)了眾多類似kswapd0 占用分區(qū)的命令如下所示。

并且其中大量出現(xiàn)各種linux任務調(diào)度的命令,多如牛毛,多到我靠kill -9 我都懶的殺的情況,然后我猜到有問題了。就放在這里了。順便偶爾觀察下他們的想法。
再后來大概過了三四個小時,出現(xiàn)了一系列command名為類似kthreaddi 的任務。當時我沒截圖,查到這個名字覺得怪異直接百度了一下,發(fā)現(xiàn)是某個挖礦腳本而已。我就直接kill掉,然后再想看看他們都會上去干啥。
其實我也隱隱之中有一種期盼,看看果實能漲多大。
給木馬弄全了,養(yǎng)蠱??纯凑l比較牛批用的服務器資源最多。
之前在一個婦幼保健院寫代碼的過程中,我的服務器也中過比特幣勒索病毒,我還興沖沖的和病毒照了張相。


這次我隱隱期望看看這些病毒都想干嘛,我又懶得翻代碼,服務器上也沒我任何重要東西。
結果大半夜的騰訊云給我發(fā)來短信。

另外這種挖礦腳本類木馬,其威脅遠小于比特幣病毒,除了麻煩之外并不難解決,所以我也沒當回事。
em 大半夜被吵醒是真的不爽,看到短信直接重裝系統(tǒng)了。

但是騰訊云也挺不是東西的,給我發(fā)違規(guī)提醒。大哥我不睡覺的么?大半夜3點又郵件又短信連翻轟炸。你就不能自己檢測一下那是木馬還是我自己運行的?明知道是木馬直接關了就完了唄。我感覺在阿里云好像就沒出現(xiàn)過這種問題啊。
原來這挖礦軟件最后的出路就是個批處理請求其他人redis默認端口號的程序。想不通這對你來說有啥好處?
這回也感謝你趁這個機會讓我再次練習練習安全內(nèi)容。以后我的測試環(huán)境請多多光臨多多益善。
記錄異常1。
top命令下,莫名出現(xiàn)大量Kworker/0之類的CPU占用率高的進程。
Kworker/0:0+events并不是木馬的名字,而本身是linux正常的CPU處理,但關鍵點在于我這臺服務器是一臺近期并不活躍, 只有MySQL和Redis正在執(zhí)行,且其中的MySQL和Redis都沒有使用任何語句,所以不應該出現(xiàn)十幾個kworker內(nèi)容。 所以我當時很清楚這肯定是木馬搞的鬼。 ?可以通過如下命令,回溯CPU最近10秒內(nèi)被kworker浪費的資源。查到其中有異常command那必然中招了。
perf record -g -a sleep 10
記錄異常2。
這次我猜測 木馬是從我小徒弟電腦 通過SSH password 連接到服務器的原因是,她自己電腦本身就有問題,平常只開個IDEA,但是天天高CPU高內(nèi)存的運行。windows電腦我也沒辦法。下圖是她給我截圖的。

只開了一個IDEA ,還只是練習DEMO的情況下,莫名CPU總跑到100,但是查進程,查內(nèi)存,查任務調(diào)度還查不到太多內(nèi)容,拿火絨倒是搜出來了一些木馬,但是有些隱藏太深了我也沒辦法,只能日后等她再次重裝系統(tǒng)了??蓱z。
記錄異常3。
top下莫名出現(xiàn)一個kswapd0名稱的命令。并且占用CPU接近滿額。不過內(nèi)存沒消耗多少,CPU占滿。
你TM想不引起我的注意都難!
我想吐槽下你既然是個木馬你名字能不能不要起的這么隨意,雖然長的像kworker或kthreaddd但是偏差也太大了,而且這名我一百度直接就查到你是木馬了。你連點偽裝都沒有你是不是瞧不起我???
經(jīng)過查詢是XMRig編譯的Linux平臺門羅幣挖礦木馬了。從linux的cron任務調(diào)度上可以看到好多/root下和/tmp下我不認識的任務調(diào)度,并且清一色不打日志寫著 >/dev/null 。
在網(wǎng)上看了下分析他們的啟動腳本


那沒事了好滴很。
總結一下需要做的事。
趕緊改密碼。
檢查cron里是不是出現(xiàn)大量不歸你設置的。查看
/etc/crontab
,/etc/cron.d
,/etc/cron.daily
,cron.hourly/
,cron.monthly
,cron.weekly/
是否存在可疑腳本或程序。top看下最近哪些耗費最多,尤其worker之類的,另外有沒有你不認識的。
使用
last
命令查看下服務器近期登錄的帳戶記錄,確認是否有 狗IP 登錄過機器:less /var/log/secure|grep 'Accepted'
命令,查看是否有 狗IP 成功登錄機器;檢查系統(tǒng)所用的管理端口(SSH、FTP、MySQL、Redis 等)是否為默認端口,這些默認端口往往被容易自動化的工具進行爆破成功。
編輯
/etc/ssh/sshd_config
文件中的 Port 22,將22修改為非默認端口,修改之后需要重啟 ssh 服務。運行
/etc/init.d/sshd restart(CentOS)或 /etc/init.d/ssh restart(Debian / Ubuntu)
命令重啟使配置生效。修改 FTP、MySQL、Redis 等的程序配置文件的默認監(jiān)聽端口21、3306、6379為其他端口。
限制遠程登錄的 IP,編輯
/etc/hosts.deny
、/etc/hosts.allow
兩個文件來限制 IP。檢查
/etc/passwd
文件,看是否有非授權帳戶登錄:使用命令
usermod -L 用戶名
禁用用戶或者使用命令userdel -r 用戶名
刪除用戶。運行
netstat -antp
,查看服務器是否有未被授權的端口被監(jiān)聽,查看下對應的 pid。若發(fā)現(xiàn)有非授權進程,運行ls -l /proc/$PID/exe
或file /proc/$PID/exe
($PID 為對應的 pid 號),查看下 pid 所對應的進程文件路徑。使用
chkconfig --list
和cat /etc/rc.local
命令,查看開機啟動項中是否有異常的啟動服務。如發(fā)現(xiàn)有惡意進程,可使用chkconfig 服務名 off
命令關閉,同時檢查/etc/rc.local
中是否有異常項目,如有請注釋掉。使用非 root 帳戶運行,可以保障在應用程序被攻陷后,攻擊者無法立即遠程控制服務器,減少攻擊損失。
運行
chown -R apache:apache /var/www/xxxx
、chmod -R 750 file1.txt