最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Linux應(yīng)急響應(yīng)筆記

2022-11-19 12:28 作者:黑戰(zhàn)士安全  | 我要投稿

背景

客戶(hù)的監(jiān)控系統(tǒng)發(fā)現(xiàn)有異常行為,我臨時(shí)頂替應(yīng)急的同事處理一下。

連接到服務(wù)器,首先通過(guò)ps auxef 和 netstat -tulnp兩個(gè)命令查看異常進(jìn)程信息,果然發(fā)現(xiàn)了兩個(gè)異常進(jìn)程 xmp 和 [atd]

通過(guò) ls -al /proc/[pid]/exe 查看這兩個(gè)進(jìn)程的程序位置,其中[pid]為xmp 和 [atd]兩個(gè)進(jìn)程的進(jìn)程id

最后確認(rèn)xmp在 /lib/PROXY/ 目錄下,該目錄下有兩個(gè)文件,一個(gè)是xmp,一個(gè)是config.json [atd]在 /var/spool/at/.sqe/ 目錄下,該目錄下有很多文件,包括 [atd], cyc.acc, seed, stealth, randfiles 等

把兩個(gè)進(jìn)程上傳到virustotal,均超過(guò)一半的殺毒軟件報(bào)毒

執(zhí)行stat /lib/PROXY/xmp, stat /var/spool/at/.sqe/[atd], 發(fā)現(xiàn)這兩個(gè)文件的Change time都是在23,24這兩天

所以懷疑應(yīng)該是23日左右被入侵了,查看 history, /var/log/secure 發(fā)現(xiàn)文件都被清空了,查看 /root/.ssh/known_hosts 發(fā)現(xiàn)600多條記錄。找不到蛛絲馬跡,只能以為是ssh暴破登錄了。

重啟服務(wù)器后,發(fā)現(xiàn)[atd]進(jìn)程依然存在,應(yīng)該是加入了開(kāi)機(jī)啟動(dòng),我采用了比較粗暴的方式定位開(kāi)機(jī)啟動(dòng),在根目錄執(zhí)行

grep -rn '\[atd\]' *

皇天不負(fù)苦心人,果然被我找到,在/bin/seed 中有啟動(dòng)[atd]的代碼,這個(gè)腳本非常簡(jiǎn)單,只是cd到/var/spool/at/.sqe/然后執(zhí)行[atd]

接下來(lái)我去/etc目錄,繼續(xù)執(zhí)行 grep -rn seed *, 這條命令執(zhí)行結(jié)果很多行,逐個(gè)過(guò)濾后,發(fā)現(xiàn)在/etc/rc.sysinit 某一行,新增了一個(gè)命令seed,這樣就能解釋為什么[atd]能開(kāi)機(jī)啟動(dòng)了,然而并沒(méi)有找到xmp的開(kāi)機(jī)啟動(dòng)項(xiàng),xmp也不會(huì)隨著服務(wù)器重啟自啟動(dòng)

看[atd]的進(jìn)程名,猜測(cè)這是一個(gè)執(zhí)行定時(shí)任務(wù)進(jìn)程,這個(gè)進(jìn)程監(jiān)聽(tīng)udp端口,猜測(cè)應(yīng)該是攻擊者通過(guò)這個(gè)進(jìn)程控制服務(wù)器,執(zhí)行命令,包括啟動(dòng)xmp

再回過(guò)頭來(lái)看xmp,通過(guò)config.json文件可以知道這是一個(gè)門(mén)羅幣挖礦病毒

"pools": [
? ? ? ?{
? ? ? ? ? ?"algo": null,
? ? ? ? ? ?"coin": "monero",
? ? ? ? ? ?"url": "pool.supportxmr.com:80",
? ? ? ? ? ?"user": "44wuEu1F6UMDzAu2ByHjKGRR4WiU33zJW6bdHPrHaHbLWYHTyqJUiqG47yvaJof8gfd1HbMR1WhmsDJcX7yhVx8bU8PHRtBx",
? ? ? ? ? ?"pass": "HERCULE",
? ? ? ? ? ?"rig-id": null,
? ? ? ? ? ?"keepalive": true,
? ? ? ? ? ?"enabled": true,
? ? ? ? ? ?"tls": false,
? ? ? ? ? ?"tls-fingerprint": null,
? ? ? ? ? ?"daemon": false
? ? ? ?}
? ?],

最后清除過(guò)程很簡(jiǎn)單,刪除/etc/rc.sysinit seed那一行,刪除/bin/seed,刪除/lib/PROXY,刪除/var/spool/at/.sqe/

加固方法為把一些不必要的端口配置iptables拒絕所有連接請(qǐng)求,修改ssh密碼為不常見(jiàn)的強(qiáng)密碼。

應(yīng)急響應(yīng)流程

言歸正傳,應(yīng)急響應(yīng)的標(biāo)準(zhǔn)流程應(yīng)該如何? Security+給出了一套流程:
Preparation –> Identification –> Containment –> Eradication –> Recovery –> Lessons learned

以上面的背景里的例子來(lái)說(shuō),Preparation就是一線(xiàn)人員提供我接入服務(wù)器的渠道。Identification就是我發(fā)現(xiàn)xmp和[atd]確認(rèn)服務(wù)器被感染病毒。Containment把所有可能受影響的系統(tǒng)都隔離,包括上述known_hosts 發(fā)現(xiàn)600多臺(tái)主機(jī)。Eradication根據(jù)上面的清除清除所有受影響的主機(jī)。Recovery是在清除之后,解除隔離,讓業(yè)務(wù)系統(tǒng)恢復(fù)。Lessons learned總結(jié)反思事件,一方面從源頭上減小安全事件的發(fā)現(xiàn),另一方面提升應(yīng)急響應(yīng)的效率。

上面的應(yīng)急響應(yīng)還是非常片面的,我搜羅了一系列網(wǎng)友分享的應(yīng)急響應(yīng)經(jīng)驗(yàn),整理成章方便以后查閱。

我把應(yīng)急響應(yīng)流程分為三個(gè)部分,分別是 【1】入侵現(xiàn)場(chǎng),【2】攻擊維持,【3】入侵原因,下面我將從這三個(gè)方面展開(kāi)

入侵現(xiàn)場(chǎng)

所謂入侵現(xiàn)場(chǎng),是指服務(wù)器被懷疑中毒的現(xiàn)場(chǎng)環(huán)境,一般來(lái)說(shuō),服務(wù)器被懷疑中毒都有異?,F(xiàn)象,比如異常的網(wǎng)絡(luò)流量,異常的端口,cpu/內(nèi)存占用率異常等等。

準(zhǔn)備busysbox

為了避免系統(tǒng)命令被替換,預(yù)加載動(dòng)態(tài)庫(kù)等問(wèn)題,下載靜態(tài)鏈接版本的 busybox來(lái)執(zhí)行調(diào)查?;蛘呦螺d源碼編譯 busybox源碼,注意編譯的時(shí)候采用靜態(tài)鏈接編譯。

網(wǎng)絡(luò)狀態(tài)

查看網(wǎng)絡(luò)監(jiān)聽(tīng)的tcp和udp端口及對(duì)應(yīng)的進(jìn)程信息:busybox netstat -tulnp

查看網(wǎng)絡(luò)所有的網(wǎng)絡(luò)連接:busybox netstat -anp

通過(guò)網(wǎng)絡(luò)監(jiān)聽(tīng)及網(wǎng)絡(luò)連接來(lái)輔助定位異常進(jìn)程

注意如果攻擊者獲取到了Root權(quán)限,被植入內(nèi)核或者系統(tǒng)層Rootkit的話(huà),連接是可以被隱藏的。

進(jìn)程信息

如果系統(tǒng)被發(fā)現(xiàn)異常,那很大概率是有異常進(jìn)程在執(zhí)行

通過(guò)ps查看進(jìn)程信息

busybox ps / ps -aux / ps -ef

通過(guò)grep -v 過(guò)濾掉一些正常進(jìn)程,再逐個(gè)排查異常進(jìn)程

通過(guò)top命令查看cpu/內(nèi)存占用異常的進(jìn)程

busybox top

查找ps中隱藏的進(jìn)程,通過(guò)對(duì)比proc中的進(jìn)程id和ps中的進(jìn)程id,判斷是否有些進(jìn)程在proc中但不在ps中顯示


執(zhí)行pstree查看進(jìn)程樹(shù):pstree -p

注意如果攻擊者獲取到了Root權(quán)限,被植入內(nèi)核或者系統(tǒng)層Rootkit的話(huà),可以把進(jìn)程隱藏的更徹底。參考文獻(xiàn)[1]做了部分的擴(kuò)展,供讀者參考。

定位惡意文件

首先執(zhí)行busybox stat /usr/bin/ls, busybox stat /usr/bin/lsof, busybox stat /usr/bin/stat, 確認(rèn)這幾個(gè)文件沒(méi)有被修改過(guò)

ls
排查 可讀寫(xiě)執(zhí)行目錄

ls –alt /tmp/; ls -alt /var/tmp; ls -alt /dev/shm

排序 $PATH 環(huán)境變量下的目錄的文件,比如

ls -alt /bin, ls -alt /sbin, ls -alt /usr/bin, ls -alt /usr/sbin 等

遞歸查看所有文件

ls -aR

stat
針對(duì)任何的可以文件,都通過(guò)stat命令查看各個(gè)時(shí)間點(diǎn)。

lsof
另外可以通過(guò)lsof命令聯(lián)合查看,lsof常用options如下

  • lsof 列出所有進(jìn)程調(diào)用

  • lsof abc.txt 顯示開(kāi)啟文件abc.txt的進(jìn)程

  • lsof -c abc 顯示abc進(jìn)程現(xiàn)在打開(kāi)的文件

  • lsof -p 1234 列出進(jìn)程號(hào)為1234的進(jìn)程所打開(kāi)的文件

  • lsof -g gid 顯示歸屬gid的進(jìn)程情況

  • lsof +d /usr/local/ 顯示目錄下被進(jìn)程開(kāi)啟的文件

  • lsof +D /usr/local/ 同上,但是會(huì)搜索目錄下的目錄,時(shí)間較長(zhǎng)

  • lsof -d 4 顯示使用fd為4的進(jìn)程

  • lsof -i :port 檢查哪個(gè)進(jìn)程使用這個(gè)端口

  • lsof -i 用以顯示符合條件的進(jìn)程情況

find
通過(guò)find命令來(lái)查找近期新增/修改文件

例如要查找24小時(shí)內(nèi)被修改的JSP文件

最后一次修改發(fā)生在距離當(dāng)前時(shí)間n24小時(shí)至(n+1)24 小時(shí)
find ./ -mtime 0 -name "*.jsp"

查找72小時(shí)內(nèi)新增的文件

find / -ctime -2

查找特殊權(quán)限的文件

find / *.jsp -perm 4777

diff
用diff命令把重要的目錄做對(duì)比,分別對(duì)比入侵環(huán)境和純凈環(huán)境下的不同

比如把連個(gè)環(huán)境的重要目錄都拷貝到PC-x中,利用下面的命令對(duì)比兩個(gè)目錄

diff -r {dir 1} {dir 2}

分析惡意程序

若發(fā)現(xiàn)有非法進(jìn)程,運(yùn)行l(wèi)s -l /proc/$PID/exe或file /proc/$PID/exe($PID 為異常進(jìn)程的pid),查看下 pid 所對(duì)應(yīng)的進(jìn)程文件路徑。

運(yùn)行cat /proc/$PID/cmdline查看進(jìn)程執(zhí)行的命令及參數(shù)

通過(guò)file命令查看惡意程序文件類(lèi)型,比如:file /tmp/.sh

如果是ELF文件,可以通過(guò)strings查看ELF里帶的字符串,可能會(huì)泄露一些信息,比如 stirngs /tmp/.elf

如果碰到惡意程序被刪除,可以通過(guò)內(nèi)存轉(zhuǎn)儲(chǔ)的方式從內(nèi)存中導(dǎo)出惡意程序

從內(nèi)存拷貝恢復(fù)被刪除文件
cp /proc/[pid]/exe /tmp/malware.dump

導(dǎo)出進(jìn)程內(nèi)存
cat /proc/[pid]/maps
7ff48bb5d000-7ff48bb5e000

gdb --pid [pid]
dump memory /tmp/malware.dump 0x7ff48bb5d000 0x7ff48bb5e000

通過(guò) stat命令查看惡意程序的Access,Modify,Change時(shí)間,了解系統(tǒng)大概是什么時(shí)間被入侵。

可以把可疑的惡意程序或內(nèi)存轉(zhuǎn)儲(chǔ)的程序上傳到virustotal進(jìn)行病毒掃描

其他可能用到的命令,比如strings, strace, lsattr, chattr -i, getfacl,setfacl等。

rootkit自動(dòng)化查殺

chkrootkit
使用方法:


rkhunter
使用方法:

wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz
我測(cè)試的時(shí)候發(fā)現(xiàn)上面鏈接無(wú)法下載了,所以換了下面的鏈接


攻擊維持

查看歷史命令

busybox cat ~/.bash_history

檢測(cè)動(dòng)態(tài)庫(kù)劫持

查看環(huán)境變量動(dòng)態(tài)庫(kù)劫持

busybox echo $LD_PRELOAD

查看配置文件動(dòng)態(tài)庫(kù)劫持

busybox cat /etc/ld.so.preload

如果不確定動(dòng)態(tài)庫(kù)是不是惡意的,可以把動(dòng)態(tài)庫(kù)上傳到virustotal檢測(cè)。

查看Linux帳戶(hù)

查看服務(wù)器近期登錄的帳戶(hù)記錄:last

開(kāi)機(jī)啟動(dòng)

遍歷查看 /etc/ 目錄下的init開(kāi)始的系列目錄及文件,以及rc開(kāi)頭的系列目錄及文件

查看 /etc/init.d/目錄下的文件

查詢(xún)系統(tǒng)服務(wù),特別是開(kāi)機(jī)自啟動(dòng)的服務(wù)
chkconfig –list

service –status-all

定時(shí)任務(wù)

重點(diǎn)查看以下羅列的目錄及文件內(nèi)容

  • /etc/crontab

  • /etc/cron.d/*

  • /etc/cron.daily/*

  • /etc/cron.hourly/*

  • /etc/cron.monthly/*

  • /etc/cron.weekly/

  • /etc/anacrontab

  • /var/spool/cron/*

  • /var/spool/anacron/*

通過(guò)crontab -l羅列當(dāng)前用戶(hù)的定時(shí)任務(wù)

內(nèi)核驅(qū)動(dòng)

查看內(nèi)核模塊加載情況:lsmod

ssh排查

到 /root/.ssh 目錄下查看是否有公鑰,以及查看known_hosts文件,看本機(jī)通過(guò)ssh連接過(guò)哪些主機(jī),很可能這些主機(jī)有一部分也被入侵了。

入侵原因

弱密碼/默認(rèn)密碼

首先通過(guò)netstat查看對(duì)外開(kāi)放的服務(wù),確認(rèn)這些服務(wù)(比如mysql,redis,zookeeper,tomcat等)是否有配置認(rèn)證,認(rèn)證使用的是否為弱密碼或者默認(rèn)密碼。

查看這些服務(wù)的日志信息,看是否有入侵記錄。

查看日志

日志包括系統(tǒng)日志和應(yīng)用程序日志,系統(tǒng)日志存放在 /var/log 目錄下,應(yīng)用程序日志需要看應(yīng)用程序的具體配置

系統(tǒng)日志包括

  • /var/log/cron 記錄了系統(tǒng)定時(shí)任務(wù)相關(guān)的日志

  • /var/log/cups 記錄打印信息的日志

  • /var/log/dmesg 記錄了系統(tǒng)在開(kāi)機(jī)時(shí)內(nèi)核自檢的信息

  • /var/log/mailog 記錄郵件信息

  • /var/log/message 記錄系統(tǒng)重要信息的日志

  • /var/log/btmp 記錄錯(cuò)誤登錄日志。要使用lastb命令查看

  • /var/log/lastlog 記錄系統(tǒng)中所有用戶(hù)最后一次登錄時(shí)間的日志。要使用lastlog命令查看

  • /var/log/wtmp 永久記錄所有用戶(hù)的登錄、注銷(xiāo)信息,同時(shí)記錄系統(tǒng)的啟動(dòng)、重啟、關(guān)機(jī)事件。要使用last命令查看

  • /var/log/utmp 記錄當(dāng)前已經(jīng)登錄的用戶(hù)信息。要使用w,who,users命令查看

  • /var/log/secure 記錄驗(yàn)證和授權(quán)方面的信息,比如SSH登錄,su切換用戶(hù),sudo授權(quán)

查看ssh登錄記錄

less /var/log/secure | grep 'Accepted'

惡意進(jìn)程關(guān)聯(lián)

大多數(shù)情況惡意進(jìn)程的父進(jìn)程都是1,而有些情況下惡意進(jìn)程的父進(jìn)程可能不是1,比如父進(jìn)程是httpd,這種情況下,就可以大膽猜測(cè)攻擊者是通過(guò)利用父進(jìn)程的漏洞達(dá)成攻擊。

通過(guò)命令ps -ef 查看進(jìn)程的父進(jìn)程pid也就是ppid

通過(guò) ps auxef 查看惡意進(jìn)程啟動(dòng)的用戶(hù),如果發(fā)現(xiàn)比如是mysql用戶(hù)啟動(dòng),那么就可以推斷是通過(guò)mysql服務(wù)入侵。

系統(tǒng)加固

修改各個(gè)對(duì)我開(kāi)放的服務(wù)密碼

限制對(duì)外開(kāi)放的服務(wù),如果不方便操作,則通過(guò)iptables限制可訪(fǎng)問(wèn)的主機(jī)

升級(jí)系統(tǒng)組件或者服務(wù)使用到的中間件


Linux應(yīng)急響應(yīng)筆記的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
泾阳县| 吉木萨尔县| 台北县| 保亭| 阿鲁科尔沁旗| 怀仁县| 颍上县| 康马县| 乾安县| 桂阳县| 康乐县| 前郭尔| 瑞昌市| 尼木县| 咸阳市| 新龙县| 万盛区| 灵山县| 大足县| 连平县| 武城县| 赣州市| 裕民县| 长寿区| 冕宁县| 横山县| 吉木萨尔县| 曲水县| 怀来县| 乃东县| 蕲春县| 光泽县| 海城市| 太仆寺旗| 南和县| 博湖县| 岳阳市| 上虞市| 库尔勒市| 开阳县| 甘南县|