注意在整個過程中不要被客戶或現場的運維人員誤導。
操作前需先徵得客戶許可。
因實際的應急情況會比較複雜,因此需根據實際情況進行靈活處置。
發生時間:詢問客戶發現異常事件的具體時間,後續的操作要基於此時間點進行追蹤分析。
受影響系統類型:詢問具體的作業系統類型及相關情況,以便後續的應急處置。
windows/linux
財務系統/OA系統/官網,系統重要性,是否可關停
是否有弱口令,遠程管理埠是否開放
都開放了什麼埠,有什麼服務,服務是否存在風險性
必要的話現場檢測,不要完全相信聽來的東西
異常情況:
文件被加密
設備無法正常啟動
勒索信息展示
CPU利用率過高
網頁掛馬/黑鏈
對外發送異常請求
對外發送垃圾簡訊
等非正常的情況
已有的處置措施:
之前是否存在此類問題
是否在出現問題後配置了新的策略
是否已有第三方已進行了應急處理,處理結果是什麼
是否有其他處置措施
系統架構/網絡拓撲:是否能提供網絡拓撲圖
能否提供以下日誌
已有的安全設備
基本的應急處置方案
臨時處置方案
勒索病毒處置方案
挖礦程序處置預案
網頁掛馬處置預案
DDOS處置預案
內部數據洩露處置預案
其他處置預案
應急報表:
包含下述應急方法
埠開放情況,及各個埠應用分析,處置建議
2. 遏制傳播風險通過各類檢查設備和資產發現,確定感染面;
通過網絡訪問控制設備或斷網隔離感染區域,避免病毒擴散;
迅速啟動殺毒或備份恢復措施,恢復受感染主機的業務,恢復生產。(這點最重要,因為是保障業務的關鍵動作)
啟動或部署監測設備,針對病毒感染進行全面監測,避免死灰復燃。
在生產得到恢復並無蔓延之後,收集所有相關的樣本、日誌等,開展技術分析,並尋找感染源頭,並制定整改計劃。
Windows
1)查看當前系統的補丁信息 systeminfo
Linux
1)列出系統arp表,重點查看網關mac地址 arp -a
2)文件搜索命令 find / -name ".asp"
重點關注
1)系統內是否有非法帳戶
2)系統中是否含有異常服務程序
3)系統是否存在部分文件被篡改,或發現有新的文件
4)系統安全日誌中的非正常登陸情況
5)網站日誌中是否有非授權地址訪問管理頁面記錄
6)根據進程、連接等信息關聯的程序,查看木馬活動信息。
7)假如系統的命令(例如netstat ls 等)被替換,為了進一步排查,需要下載一新的或者從其他未感染的主機拷貝新的命令。
8)發現可疑可執行的木馬文件,不要急於刪除,先打包備份一份。
9)發現可疑的文本木馬文件,使用文本工具對其內容進行分析,包括回連IP位址、加密方式、關鍵字(以便擴大整個目錄的文件特徵提取)等。
5.異常連接排查Windows
1)查看目前的網絡連接,定位可疑的 ESTABLISHED netstat -ano
netstat -ano | findstr ESTABLISH
參數說明:-a 顯示所有網絡連接、路由表和網絡接口信息-n 以數字形式顯示地址和埠號-o 顯示與每個連接相關的所屬進程 ID-r 顯示路由表-s 顯示按協議統計信息、默認地、顯示 IPLISTENING 偵聽狀態ESTABLISHED 建立連接CLOSE_WAIT 對方主動關閉連接或網絡異常導致連接中斷2)查看埠對應的pid netstat -ano | findstr "port"
3)netstat -nb 顯示在創建每個連接或偵聽埠時涉及的可執行程序,需要管理員權限,這條指令對於查找可疑程序非常有幫助。
Linux
1)列出所有打開了網絡套接字(TCP和UDP)的進程
lsof -i
lsof -i|grep -E "LISTEN|ESTABLISHED"2)列出所有打開的埠及連接狀態
netstat -antlp
netstat -an說明-a 顯示所有連線中的 Socket。-n 直接使用 IP 地址,而不通過域名伺服器。-t 顯示 TCP 傳輸協議的連線狀況。-u 顯示 UDP 傳輸協議的連線狀況。-v 顯示指令執行過程。-p 顯示正在使用 Socket 的程序識別碼和程序名稱。-s 顯示網絡工作信息統計表6.正在運行的異常進程排查Windows
1)查看異常進程 任務管理器
2)顯示運行在本地或遠程計算機上的所有進程 tasklist | findstr 11223
根據netstat定位出的異常進程的pid,再通過tasklist命令進行進程定位
1)根據 wmic process 獲取進程的全路徑 wmic process | findstr "xx.exe"
2)查看進程的詳細信息,比如進程路徑,進程ID,文件創建日期,啟動時間等
"開始->運行->msinfo32->軟體環境 -> 正在運行任務"1)關閉某個進程 wmic process where processid="2345" delete
Linux
1)查找進程pid
netstat -antlp 先找出可疑進程的埠lsof -i:port 定位可疑進程pid2)通過pid查找文件
linux每個進程都有一個對應的目錄cd /proc/pid號 即可進入到該進程目錄中ls -ail 結果中exe對應的就是該pid程序的目錄ls -ail |grep exe3)查看各進程佔用的內存和cpu top
4)顯示當前進程信息 ps
5)實現某個進程的精確查找 ps -ef | grep apache
6)結束進程 kill -9 pid
7)查看進程樹 pstree -p 查找異常進程是否有父進程
8)也可以直接搜索異常進程的名程來查找其位置, find / -name 'xxx'
7.異常帳號排查Windows
1)圖形化界面查看當前的帳戶和用戶組 lusrmgr.msc
2)查看當前帳戶情況 net user
3)查看某個帳戶的詳細信息 net user Guest
4)查看當前組的情況 net localgroup administrators
5)查看當前系統會話,比如查看是否有人使用遠程終端登陸伺服器 query user
踢出該用戶 `logoff ID` ID是上面查詢出來的。也可能是用戶名Linux
1)查看utmp日誌,獲得當前系統正在登陸帳戶的信息及地址 w
2)獲得系統前N次的登陸記錄 last | more
3)查看帳號情況 cat /etc/passwd
查找/etc/passwd 文件, /etc/passwd 這個文件是保存著這個 linux 系統所有 用戶的信息,通過查看這個文件,我們就可以嘗試查找有沒有攻擊者所創建的用 戶,或者存在異常的用戶。我們主要關注的是第 3、4 列的用戶標識號和組標識 號,和倒數一二列的用戶主目錄和命令解析程序。一般來說最後一列命令解析程 序如果是設置為 nologin 的話,那麼表示這個用戶是不能登錄的,所以可以結合 我們上面所說的 bash_history 文件的排查方法。首先在/etc/passwd 中查找命令 解釋程序不是 nologin 的用戶,然後再到這些用戶的用戶主目錄裡,找到 bash_history,去查看這個用戶有沒執行過惡意命令。/etc/passwd中一行記錄對應著一個用戶,每行記錄又被冒號(:)分隔為7個欄位, 其格式和具體含義如下:用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄 Shell 注意:無密碼只允許本機登陸,遠程不允許登陸,某個版本之後好像因為安全問題,passwd文件不再有密碼了4)查看帳號情況 cat /etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用戶名:加密密碼:密碼最後一次修改日期:兩次密碼的修改時間間隔:密碼有效期:密碼修改到期到的警告天數:密碼過期之後的寬限天數:帳號失效時間:保留
這裡查帳號感覺好一點,一般系統的帳號都是沒有密碼的,所以找最長的那幾個,那就是有密碼的帳戶,很可能就是被黑客添加的後門帳戶5)linux非root用戶文件夾所在位置 /home
6)查看所有帳戶最後一次登陸時間 lastlog
7)顯示用戶登陸錯誤的記錄 lastb 檢查暴力破解
8)顯示用戶最近登陸信息 last
數據源為/var/log/wtmp/var/log/wtmp.1/var/log/btmp/var/log/btmp.19)查看當前登陸用戶 who (tty本地登陸 pts遠程登錄)
10)查看當前時刻用戶行為 w
11)查看登陸多久,多少用戶,負載 uptime
12)禁用帳戶,帳號無法登陸,/etc/shadow 第二欄為!開頭 usermod -L user
13)刪除user用戶 userdel -r user
14)創建用戶
useradd admin passwd admin adduser admin215)刪除用戶
userdel admin2 #這樣刪除的話不完全,home目錄下的admin2目錄不會刪除userdel -rf admin #-r 完全刪除一個帳戶 -f強制刪除如果遇到帳戶刪除顯示已經刪除,但創建同名的用戶提示用戶已存在的情況,嘗試以下方法進行刪除。手動刪除passwd、shadow、group裡面用戶相關欄位,以及用戶相關的log和mail,並強制刪除home目錄下用戶的文件夾。/home/etc/passwd/etc/group/var/spool/mail8.異常文件分析Windows
1)查看文件時間 右鍵查看文件屬性,查看文件時間
2)Recent 是系統文件夾,裡面存放著你最近使用的文檔的快捷方式,查看用 戶 recent 相關文件,通過分析最近打開分析可疑文件 %UserProfile%\Recent
3)通過文件時間屬性來定位可疑文件:根據文件夾內文件列表時間進行排序,查找可疑文件。當然也可以搜索指 定日期範圍的文件及文件 查看文件時間,創建時間、修改時間、訪問時間,黑客通過菜刀類工具改 變的是修改時間。所以如果修改時間在創建時間之前明顯是可疑文件
Linux
1)分析文件日期 stat xx.asp
2)返回最近24小時內修改過的文件 find ./ -mtime 0
返回的是前48~24小時修改過的文件 find ./ -mtime 1返回10天內修改過的文件,可以把最近幾天的數據一天天的加起來 find ./ -mtime 0 -o -mtime 1 -o -mtime 2查找 24 小時內被修改的 php 文件 find ./ -mtime 0 -name "*.php"3)敏感目錄的文件分析 [類/tmp 目錄,命令目錄/usr/bin /usr/sbin 等], 查看 tmp 目錄下的文件➜ ls –alt /tmp/ | head -n 10 這樣是按時間順序查出來的結果
4)特殊權限文件查找
find / *.jsp -perm 777find / -perm 777 |morefind / *.sh -perm 777|grep .sh5)隱藏的文,以 "."開頭的具有隱藏屬性的文件,當前目錄查找 ls -ar |grep "^\."
6)i linux文件不可修改權限
chattr +I filename 給文件添加不可修改權限chattr -I filename 將文件的不可修改權限去掉lsattr filename 查看文件是否設置了相關權限如果設置了該參數,則無論任何人想要刪除改文件均需要將此權限去掉7)a linux文件不可修改權限
chattr +a filename 給文件添加只追加權限chattr -a filename 將文件的只追加權限去掉lsattr filename 查看文件的相關權限設置這個權限讓目標只能追加,不能刪除,而且不能通過編輯器追加8)查看ssh相關目錄有無可疑的公鑰存在
Redis(6379) 未授權惡意入侵,即可直接通過redis到目標主機導入公鑰
目錄:/etc/ssh ./.ssh/9.啟動項排查 Windows
1)查看開機啟動有無異常文件 msconfig
2)win10開機啟動文件夾
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp快捷查找方法,找一個安裝好的程序的快捷方式,右鍵打開文件位置,再進入該目錄下的啟動目錄即可。StartUp3)win7開機啟動文件夾
C:\Users\rpkr\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup查找方式,開始>所有程序>啟動 ,03查找同此方法4)在註冊表中查看開機啟動項是否異常
開始->運行->regedit,打開註冊表,查看開機啟動項是否正常,特別注意如下三個註冊表項:HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\runHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce檢查右側是否有啟動異常的項目,如有請刪除,並建議安裝殺毒軟體進行病毒查殺,清除殘留病毒或木馬Linux
1)查看開機啟動項內容
ls -alt /etc/init.d//etc/init.d 是 /etc/rc.d/init.d 的軟連接2)啟動項文件 more /etc/rc.local
/etc/rc.d/rc[0~6].dls -l /etc/rc.d/rc3.d/ll /etc |grep rc3)定時任務-基本使用
1.利用crontab創建計劃任務crontab -l 列出某個用戶 cron 服務的詳細內容2.刪除每個用戶cront任務(慎重:刪除所有的計劃任務)crontab -r3.使用編輯器編輯當前的crontab文件crontab -e如:*/1 * * * * echo ""hello word"" >> /tmp/test.txt 每分鐘寫入文件4.利用anacron實現異步定時任務調度每天運行 /home/bacup.sh 腳本vi /etc/anacrontab當機器在backup.sh期望被運行時是關機的,anacron會在機器開機十分鐘後運行它,而不用再等待7天ls -al /var/spool/cron/ 查看隱藏的計劃任務Tips:默認編寫的crontab文件會保存在(/var/spool/cron/用戶名 例如:/var/loop/cron/root)5.查看分析任務計劃crontab -u <-l, -r, -e>-u 指定一個用戶-l 列出某個用戶的任務計劃-r 刪除某個用戶的任務-e 編輯某個用戶的任務(編輯的是/var/spool/cron下對應用戶的cron文件,也可以直接修改/etc/crontab文件)10.計劃任務排查(定時任務)Windows
1)查看Windows 計劃任務 taskschd.msc
或者 【程序】➜【附件】➜【系統工具】➜【任務計劃程序】
Linux
1)查看當前計劃任務有哪些 crontab -l 是否有後門木馬程序啟動相關信息
2)查看分析計劃任務 crontab -u <-l, -r, -e>
解釋-u 指定一個用戶-l 列出某個用戶的任務計劃-r 刪除某個用戶的任務-e 編輯某個用戶的任務(編輯的是/var/spool/cron 下對應用戶的 cron 文件,也可以直接修改/etc/crontab 文件)3)查看 etc 目錄任務計劃相關文件 ls -al /etc/cron* cat /etc/crontab
4)此處要注意隱藏的計劃任務,在linux中以.開頭的文件為隱藏文件,要使用ls -al來查看
5)定時任務 - 入侵排查
重點關注以下目錄中是否存在惡意腳本
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
小技巧:more /etc/cron.daily/* 查看目錄下所有文件11.日誌排查 查看防護設備的日誌
打開日誌管理器 eventvwr.msc
查看暴力破解問題,篩選事件ID,win2008 4625
Linux
1)查看歷史命令記錄文件 cat /root/.bash_history |more ,每個帳戶對應的文件夾下都有這樣一個日誌文件,但感覺記錄的不是特別全。可以直接在root下搜索 .bash_history 這個文件。
2)如有/var/log/secure日誌,可觀察其進行暴力破解溯源
3)ubuntu 建議使用lastb和last進行暴力破解溯源
/var/log/message 系統啟動後的信息和錯誤日誌,/var/log/secure 與安全相關的日誌信息/var/log/maillog 與郵件相關的日誌信息/var/log/cron 與定時任務相關的日誌信息/var/log/spooler UUCP和news設備相關日誌信息/var/log/boot.log 進程啟動和停止相關的日誌消息4)linux系統日誌相關配置文件為/etc/rsyslog.conf(syslog.conf) 主要找 wget\ssh\scp\tar\zip 添加帳戶修改密碼一類的
web伺服器
1)無論任何web伺服器,都需要關注以下的日誌
access_log
error_log
access.log
error.log2)apache日誌位置
應通過httpd.conf配置來判斷。在httpd.conf中搜索未被注釋的、以指令字CustomLog為起始的行,該行即指定了日誌的存儲位置。搜索可使用文本搜索,也可使用grep進行:grep -i CustomLog httpd.conf | grep -v ^#搜索結束後會獲得類似如下的搜索結果:CustomLog /var/mylogs/access.log common其中 /var/mylogs/access.log即為客戶日誌的路徑。若此處未指明日誌的完整路徑而只是列舉日誌的文件名(如:access.log),則意指該文件存儲與默認的日誌存儲目錄下(即,/var/log/httpd 或 /var/httpd 目錄)。3)IIS日誌位置
IIS日誌默認存儲於 %systemroot%\system32\LogFiles\W3SVC目錄中,
日誌命名方式為exYYMMDD.log(YYMMDD指:年 月 日)。
但IIS日誌路徑也可通過用戶配置來指定,通過WEB站點配置可確認其位置:
WEB站點 — 屬性 — 網站 — W3C擴展日誌文件格式 — 屬性 — 日誌文件目錄資料庫
1)mysal - cat mysql.log|grep union
12.恢復階段 webshell/異常文件清除
恢復網絡
應用功能恢復
補丁升級
提供安全加固措施,推薦切合的安全產品
13.跟蹤總結 分析事件原因
攻擊來源,IP
攻擊行為分析,弱口令、可以導致命令執行的漏洞等
輸出應急報告
事後觀察
提供加固建議
附1 有毒沒毒還是要自己分辨的linux下常用的安全工具-linux下不方便,可以把文件拷出來,用windows的工具去檢測
附2處理前先kill掉病毒進程,避免插入的U盤被加密
如果日誌分析階段遇到困難,可對代碼進行webshell查殺,可能會有驚喜
PC Hunter 數字籤名顏色說明:
黑色:微軟籤名的驅動程序;
藍色:非微軟籤名的驅動程序;
紅色:驅動檢測到的可疑對象,隱藏服務、進程、被掛鈎函數;ProcessExplorer (1).子父進程一目了然;
(2).屬性中的關鍵信息:
[映像]->[路徑/命令行/工作目錄/自啟動位置/父進程/用戶/啟動時間];[TCP/IP];[安全]->[權限];
(3).想了解不同顏色意思?[選項]->[配置顏色];
(4).打開procexp,在標題欄右鍵,可以勾選其它一些選項卡
(5).進程標識顏色不同是用於區分進程狀態和進程類型,進程開始啟動時為綠色,結束時為紅色
可對某個進程進行操作,右鍵單擊即可chkrootkit主要功能
檢測是否被植入後門、木馬、rootkit/檢測系統命令是否正常/檢測登錄日誌
chkrootkit安裝:rpm -ivh chkrootkit-0.47-1.i386.rpm
檢測,#chkrootkit –n;如果發現有異常,會報出「INFECTED」字樣rkhunter主要功能:系統命令(Binary)檢測,包括Md5 校驗 Rootkit檢測 本機敏感目錄、系統配置、服務及套間異常檢測 三方應用版本檢測
RPM check檢查 ./rpm -Va > rpm.log 下圖可知ps, pstree, netstat, sshd等等系統關鍵進程被篡改了: