目錄
一、應急回應流程
1 準備階段
2 檢測階段
3 抑制階段
4 根除階段
5 恢復階段
6 總結階段
現場處置流程
二、系統排查
1、系統資訊
2、用戶資訊
3 啟動項
4 任務計劃
5 其他:Windows防火墻規則
三、行程排查
1 windows
1.1 任務管理器
1.2 cmd > tasklist
1.3 查看正在進行網路連接的行程cmd > netstat -ano | findstr 'ESTABLISHED'
2 Linux
2.1 netstat -ap
2.2 特定pid對應的執行程式:ls -alt /proc/PID
2.3查看行程打開的檔案 lsof -p PID
2.4 kill -9 PID 殺死行程
2.5 查看隱藏行程
2.6 查看占用資源較多的行程top
四、服務排查
1 windows服務
2 Linux 服務
五、檔案痕跡排查
1 windows
1.1敏感目錄
1.2時間點查找
1.3 webshell檔案
2 linux
2.1敏感目錄
2.2時間點查找
六、日志分析
1 windows日志
1.1 系統日志
1.2安全性日志
1.3應用程式日志
1.4 應急回應中常見的事件id
1.5日志分析
2 Linux日志
1 查看日志
2 日志分析
3 其他日志
七、記憶體分析
1 記憶體的獲取
1.1 基于內核模式程式的記憶體獲取
1.2 基于系統崩潰轉儲的記憶體獲取
1.3 基于虛擬機快照
2 記憶體的分析
2.1 Redline
2.2 Volatility
八、流量分析
篩選器
1 特定目的地址:ip.addr==ip
2特定源地址:ip.src==ip
3特定協議:直接輸入http、http2、arp(小寫)等
4特定埠:tcp.port==port / udp.port==port
5關鍵字:tcp contains 關鍵字
九、威脅情報
威脅情報金字塔
常用的威脅情報庫/社區
一、應急回應流程
應急回應分為六個階段,分別是
準備 —— 檢測 —— 抑制 —— 根除 —— 恢復 —— 總結
這種劃分方法也稱PDCERF方法
實際上,應急回應并不是嚴格遵從這個方法的,大多數情況都要具體問題具體分析
1 準備階段
以預防為主,主要是要進行風險評估等作業,包括建立資訊安全管理體系、部署安全設備和安裝防護軟體、建立應急回應和演練制度等等,
2 檢測階段
這個階段是在安全事件發生后的,主要是判斷安全事件是否還在發生,安全事件產生的原因,對業務的危害程度以及預計如何處理,
常見的安全事件有:
- 中病毒(勒索、挖礦等)
- 資訊泄露(賬號資訊、敏感資料)
- 業務服務被破壞(網頁篡改、破壞,資料被刪等)
- 系統崩潰、網路癱瘓(ddos、批量請求)
3 抑制階段
抑制階段主要是盡可能降低安全事件帶來的損失,限制安全事件發生的范圍和時長
一些抑制手段有:
- 斷開網路
- 關閉受影響的系統
- 暫停受影響賬號的使用
- 修改ACL
- 關閉未受到影響的其他業務
- 蜜罐
4 根除階段
這個階段是找出安全事件的根源,并完成清除掉隱患,避免安全事件二次發生,
5 恢復階段
這個階段是系統恢復到安全事件發生前的正常運行狀態,并把備份資料恢復過來
6 總結階段
這個階段是總結這個安全事件的發生程序,并以此對涉事單位的安全技術配置、安全管理制度等進行分析評審,并以此為基礎確定是否還會有新的風險,最后輸出整改建議,包括安全設備采購、安全管理制度修訂等
這個階段可以輸出
- 應急回應報告,包括安全事件發生流程、造成的危害、處置的方法
- 企業問題清單
現場處置流程
在現場中,首先通過訪談和現場確認,大概確認事件型別,再以此作針對性訪談和檢查,然后制定應急方案,再逐步排查系統、行程、服務、檔案痕跡、日志等
二、系統排查
1、系統資訊
1.1 windows
系統資訊工具:msinfo32.exe
命令列msinfo即可打開

展開軟體環境:

此工具可進行以下資訊的排查
- 系統驅動(描述、檔案、開啟狀態等)
- 正在運行的任務(名稱、路徑、行程ID)
- 加載的模塊
- 服務(名稱、路徑、狀態等)
- 啟動程式(命令、用戶名、位置等)
查看系統資訊
cmd > systeminfo

1.2 linux
OS資訊 uname -a

OS版本資訊 :cat proc/version

已載入模塊資訊:lsmod

CPU資訊:lscpu

2、用戶資訊
2.1 windows用戶資訊
cmd > net user
cmd > net user username

上面的方法查看不了隱藏賬戶,解決:計算機管理—本地用戶和組
注冊表-HKEY_LOCAL_MACHINE-SAM-SAM-Domains-Account-Users-Names

這種方法可排查windows是否利用隱藏賬戶進行提取(匯出F值查看是否有一樣的)
2.2 linux
查看所有用戶資訊:cat etc/passwd

用戶名:x(代表密碼加密):用戶ID:用戶組:注釋:用戶主目錄:默認登錄shell
bin/bash 可登錄 sbin/nologin 不可登錄
查看超級權限賬戶:awk-F: '{if($3==0)print $1}'/etc/passwd
-F fs 指定描繪一行中資料欄位的檔案分隔符 默認為空格,這里為:
以:分隔字符,分割所有行,形成二維的字符矩陣,如果矩陣中第三列的值為0(即超級權限賬戶),列印出第一列字符(即賬戶名)
查看可登錄賬戶:cat etc/passwd | grep 'bin/bash'
![]()
查看錯誤的用戶登錄資訊:lastb

查看所有用戶最后一次登錄資訊:lastlog

查看用戶最近登錄資訊:/$ last

資料源:
- /var/log/wtmp wtmp存盤登錄成功的資訊
- /var/log/btmp btmp存盤登錄失敗的資訊
- /var/log/utmp)utmp存盤當前正在登錄的資訊
3 啟動項
3.1 windows系統
任務管理器 - 啟動項

注冊表

- HKEY_CLASSES_ROOT 確保在Windows資源管理器中執行時打開正確的程式
- HKEY_CURRENT_USER 登錄用戶的配置、有用戶的檔案夾、螢屏顏色、控制面板設定
- HKEY_LOCAL_MACHINE 計算機硬體資訊、驅動
- HKEY_USERS 所有用戶組態檔的配置資訊
- HKEY_CURRENT_CONFIG 系統當前配置
3.2 Linux
rc.local 啟動加載檔案
Linux中有兩個,分別在etc/re.local和etc/init.d/rc.local,修改這兩個檔案可修改啟動項

查看init.d下的檔案

4 任務計劃
攻擊者可利用任務計劃實作病毒的長期駐留
4.1 windows
計算機管理 — 任務計劃程式 — 任務計劃程式庫 —

powershell > Get-ScheduledTask

cmd > schtasks

4.2 Linux
terminal /$ crontab -l
terminal /$ crontab -u username -l
![]()
查看所有任務計劃檔案 cat etc/cron*
5 其他
Windows防火墻規則


三、行程排查
行程:系統資源分配和調度的基本單位
1 windows
1.1 任務管理器
1.2 cmd > tasklist

行程和服務對應 cmd > tasklist /svc

加載dll行程 tasklist /m
加載特定dll tasklist /m name.dll
1.3 查看正在進行網路連接的行程cmd > netstat -ano | findstr 'ESTABLISHED'
-a 顯示所有連接
-n數字形式顯示地址和埠
-o顯示行程id
LISTENING:偵聽狀態,ESTABLISHED:建立連接,CLOSE_WAIT:對方主動關閉連接或網路例外導致連接中斷,

此外,還可以利用powershell和vmic命令進行查詢
2 Linux
2.1 netstat -ap
-p 顯示行程ID和名字
-a 所有

2.2 特定pid對應的執行程式:ls -alt /proc/PID

2.3查看行程打開的檔案 lsof -p PID

2.4 kill -9 PID 殺死行程
rm -rf filename 洗掉檔案,如root用戶也無法洗掉,則先去掉i屬性 chattr -i filename
2.5 查看隱藏行程
ps-ef|awk '{print}'|sort-n|uniq >1
ls/proc|sort-n |uniq >2
diff 1 2
sort -n 按整體數字大小排序:2 < 10,而不是 10 <2 (這種情況在以檔案名排序時經常遇到)
>1 >2 寫入檔案1 2中
uniq 洗掉重復出現的行列
awk '{print}' =awk '{print $0}' 每一行由空格隔開 多行組成矩陣,取所有列,應該改為$2
同樣,第二各命令應該改為 ls/proc|sort-n | grep -E '[0-9]+' | uniq >2
diff 1 2 對比1 2這兩個檔案
ps -ef 標準格式顯示行程
ps-ef | awk '{print$2}' | sort-n | uniq > 1
ls/proc | sort-n | grep -E '[0-9]+' | uniq > 2
diff 1 2
2.6 查看占用資源較多的行程top

四、服務排查
服務可以看作是長時間運行在后臺,不影響其他用戶的行程,服務可以在計算機啟動時啟動,也可以暫停、重新啟動,
phpstudy的apache是服務,AWVS14,Nessus也是以服務形式運行
1 windows服務
運行對話框 — services.msc

另外,也可以直接在對話框中搜索,或者在任務管理員中打開
2 Linux 服務
chkconfig --list 這個命令在centOS和redhat可以用,但是Ubuntu和kali中不可用(使用sudo service --status-all)


五、檔案痕跡排查
大部分攻擊都會留下檔案痕跡的,可以試圖從以下幾個思路查找檔案痕跡
- 常見的敏感路徑
- 具有關鍵字特征的檔案
- 安全事件發生時間
1 windows
1.1敏感目錄
a)不同版本的系統的臨時檔案相對來說比較統一,所以攻擊者準備好的存放路徑往往會選擇在臨時檔案目錄temp(tmp),例如
![]()
b)瀏覽器下載檔案
c)用戶recent檔案,這個檔案主要是存盤最近運行檔案的快捷方式
d)預讀取檔案Prefetch

1.2時間點查找
a)安全事件發生日新增檔案
forfiles命令
forfiles /m *.exe /d +2020/2/12 /s /p c:\ /c "cmd/ c echo @path @fdate @ftime"2 > null
/m 搜索檔案
/d 大于或等于該日期 /dd小于或等于
/s 遞回目錄和子目錄所有檔案
/p 開始搜索的路徑,這里是c盤
/c cmd/ c為默認,這里表示,回傳路徑、創建日期、創建時間
檔案查看里搜索欄也可以進行相應操作

b)查看時間發生邏輯錯誤的檔案,如創建2021年,修改是2020年
1.3 webshell檔案
使用d盾、webshellkill等工具查找
2 linux
2.1敏感目錄
a)/tmp目錄和命令目錄/usr/bin/usr/sbin
b)~/.ssh及/etc/ssh經常作為一些后門配置的路徑
2.2時間點查找
a)攻擊日期變動的檔案
find ctime -7 -name *.sh
-type b/d/c/p/l/f:查找塊設備、目錄、字符設備、管道、符號鏈接、普通檔案,
-mtime-n+n:按更改時間來查找,-n指n天以內,+n指n天前,
-atime-n+n:按訪問時間來查找,-n指n天以內,+n指n天前,
-ctime-n+n:按創建時間來查找,-n指n天以內,+n指n天前,
b)排查創建、修改、訪問時間
stat test.php
c)特殊檔案
c1.權限為777的檔案
find -tmp -perm 777
c2.webshell檔案
使用findWebshell、Scan_Webshell.py掃描
c3.ls-alt/bin查看系統命令修改時間
c4.Linux后門檢測
chkrootkit工具用來監測 rootkit 是否被安裝到當前系統中,rootkit是攻擊者經常使用的后門程式
c5.排查suid權限的程式
suid權限是用戶對檔案的權限,物件為檔案
find/-type f -perm -04000 -ls -uid 0 2>/dev/null
-type f:根據不同的檔案型別篩選 d:目錄 c:字型裝置檔案 b:區塊裝置檔案 p:具名貯列 f:一般檔案 l:符號連結 s:socket
-perm -/+mode -04000
-perm按執行權限查找
+mode指部分滿足權限 -mode指完全滿足權限(還可以比此權限更高) mode指正好滿足權限的 /mode指只要有權限就可以
-04000 -4000
-ls -uid 0 2
-ls 詳細資訊(創建時間、用戶、大小等)
-uid 0 2 對于uid為用戶id0-2?
六、日志分析
1 windows日志

當然,也可以直接在事件查看器上查看日志

1.1 系統日志
系統組件運行中產生的事件,包括應用程式、組件、驅動程式等,事件包括資料丟失、錯誤,系統或應用崩潰等

1.2安全性日志
安全日志主要記錄安全事件有關的日志,包括登錄或退出系統成功或失敗資訊,對重要檔案的操作

1.3應用程式日志
應用程式所產生的各類事件

1.4 應急回應中常見的事件id
| 528/529 (舊版本) | 4624/4625 (舊版本) | 登錄成功/失敗 | 安全 (型別) |
| 680 | 4776 | 賬戶認證成功/失敗 | 安全 |
| 624 | 4720 | 創建用戶 | 安全 |
| 636 | 4732 | 把用戶添加到啟用安全性的本地組中 | 安全 |
| 632 | 4728 | 把用戶添加到啟用安全性的全域組中 | 安全 |
| 2949/2934 | 7045/7030 | 創建服務/創建服務失敗 | 系統 |
| 2944 | 7040 | IPSEC服務從禁用變成自啟動 | 系統 |
登錄型別和數字對應表

登錄相關日志事件ID對應描述表 
啟動事件相關日志事件ID對應描述表
日志被清除相關日志事件ID對應描述表
1.5日志分析
--事件查看器
--powershell
Get-EventLog Security-InstanceId 4672
Get-WinEvent-FilterHashtable @{LogName='Security';ID='4672'}
--FullEventLogView日志檢索工具
2 Linux日志
Linux的日志存盤在var/log中
wtmp 記錄登錄進入、退出、資料交換、關機和重啟
cron 記錄與定時任務相關的日志資訊
messages 記錄系統啟動后的資訊和錯誤日志
apache2/access.log 記錄Apache的訪問日志
auth.log 記錄系統授權資訊,包括用戶登錄和使用的權限機制等
userlog 記錄所有等級用戶資訊的日志
xferlog(vsftpd.log) 記錄Linux FTP日志
lastlog 記錄登錄的用戶,可以使用命令lastlog查看
secure 記錄大多數應用輸入的賬號與密碼,以及登錄成功與否
faillog 記錄登錄系統不成功的賬號資訊
1 查看日志
cat var/log/logname

查看郵件相關日志記錄檔案ls -alt /var/spool/mail

2 日志分析
tail-n 10 test.log查詢最后10行的日志 head-n 10 test.log查詢頭10行的日志
tail-n+10 test.log查詢10行后的所有日志 head-n-10 test.log查詢除最后10行的其他所有日志
3 其他日志
3.1 IIS日志的位置
%SystemDrive%\inetpub\logs\LogFiles;
%SystemRoot%\System32\LogFiles\W3SVC1;
%SystemDrive%\inetpub\logs\LogFiles\W3SVC1;
%SystemDrive%\Windows\System32\LogFiles\HTTPERR,
可通過cmd > set查看%SystemDrive%和%SystemRoot%
3.2 apache日志
/var/log/httpd/access.log;
/var/log/apache/access.log;
/var/log/apache2/access.log;
/var/log/httpd-access.log,

3.3 ngnix日志
默認在/usr/local/nginx/logs目錄下,access.log是訪問日志,error.log是錯誤日志,如不在默認目錄下,可以在ngnix.conf中查找.
3.4 oracle資料庫
select * from v$logfile查詢日志路徑(默認為$ORACLE/rdbms/log)
select * from v$sql查詢之前使用過的SQL
3.5 mysql資料庫
show variables like 'log_%'查看是否啟用日志
show variables like 'general'查看日志位置(默認為/var/log/mysql/)

七、記憶體分析
有時候對應急回應服務器進行記憶體的提取,可以分析處其中的隱藏行程,
1 記憶體的獲取
1.1 基于內核模式程式的記憶體獲取
這種方法一般是使用工具抓取,常用工具有FTK Imager、Dumpit、RAM Capture等

1.2 基于系統崩潰轉儲的記憶體獲取
所有控制 — 系統 — 高級 — 啟動和故障恢復 — 設定 — 啟動和故障恢復 — 核心記憶體轉儲 — 找到轉儲檔案進行獲取

1.3 基于虛擬機快照
VMwareWorkstation在生成快照時會自動生成虛擬記憶體檔案,如圖vmen檔案

此外,還有基于用戶模式程式的、內核模式程式、作業系統注入、系統休眠檔案、系統冷啟動、硬體的記憶體獲取,
2 記憶體的分析
2.1 Redline
可通過Redline匯入分析,Redline會收集在主機上運行的有關行程資訊、記憶體中的驅動程式,以及其他資料,如元資料、注冊表資料、任務、服務、網路資訊和Internet歷史記錄等,最終生成報告
2.2 Volatility
Volatility可以分析入侵攻擊痕跡,包括網路連接、行程、服務、驅動模塊、DLL、handles、行程注入、cmd歷史命令、IE瀏覽器歷史記錄、啟動項、用戶、shimcache、userassist、部分rootkit隱藏檔案、cmdliner等
八、流量分析
Wireshark是一個網路封包流量分析軟體,其功能是獲取網路封包,并盡可能顯示出最為詳細的網路封包資料,Wireshark使用WinPcap作為介面,直接與網卡進行資料報文交換,

篩選器
1 特定目的地址:ip.addr==ip

2特定源地址:ip.src==ip

3特定協議:直接輸入http、http2、arp(小寫)等

4特定埠:tcp.port==port / udp.port==port

5關鍵字:tcp contains 關鍵字

九、威脅情報
威脅情報的定義是基于證據的知識,包括背景關系、機制、指標、隱含和可操作的建議,針對一個現存的或新興的威脅,可用于做出相應決定的知識, ——Gartner
結合威脅情報可以了解攻擊者的資訊
IOC(Indicator of Compromise)通常指在檢測或取證中,具有高置信度的威脅物件或特征資訊,
威脅情報金字塔
頂端的情報獲取成本最高,同時也是價值最大的
IOC(Indicator of Compromise)通常指在檢測或取證中,具有高置信度的威脅物件或特征資訊,
常用的威脅情報庫/社區:
- 微步在線
- Venuseye威脅情報中心
- 奇安信威脅情報中心
- 360威脅情報中心
參考:電子工業出版社《網路安全應急回應指南》
(侵權請聯系本人洗掉)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298879.html
標籤:其他
