banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

linux下應急響應(基礎知識記錄)

查看 cpu 占用率#

查看 cpu 占用率的目的是為了查清是哪个進程占用 cpu 過高 (針對挖礦)

top -c -o %CPU
htop -t

# 查看cpu占用前五的進程
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head -n 5

image

內存占用率#

top -c -o %MEM
htop -t

# 查看內存占用前五的進程
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem | head -n 5

網絡占用率#

iftop # 需要安裝,root權限運行,不會展示進程id
nethogs # 需要安裝,root權限運行,展示進程id
ss -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr # 查看本地網卡ip連接數(源ip)
ss -ntu | awk '{print $6}' | cut -d ":" -f1 | sort | uniq -c | sort -nr # 查看目的ip連接數(目的ip)

image.png

外連 ip#

# 根據目的ip查找
netstat -pantu | grep 1.1.1.1
netstat -pantu | grep 3389
lsof -i:3389 # root權限
# 根據本機ip查找
netstat -pantu | grep 3389
lsof -i:3389

尋找惡意樣本#

  • 獲取 PID - 找到惡意文件路徑
  • 找到了惡意文件 - PID

根據進程名字或者部分字符串獲取 pid

pidof "name"
ps -aux | grep "name"
ps -ef | grep "name" | grep -v grep | awk '{print $2}'
pgrep -f "name"

image

根據 pid 獲取進程的詳細信息

lsof -p PID # root權限
pwdx PID # root權限,獲取該PID的進程啟動時候的目錄,也就是惡意文件啟動的路徑
systemctl status PID # 獲取這個進程的status信息
cat /proc/PID/maps # 輸出指定進程的內存映射信息
ls -al /proc/1505945/exe # 輸出指定進程所執行的程序的絕對路徑
cat /proc/$$/mountinfo # 查看當前進程所掛載的文件系統信息,其中,$$ 表示當前進程的進程 ID (PID)。

查看線程

ps H -T -p PID # pid是進程id,spid是線程id,CMD 表示進程/線程的命令行
ps -Lf PID # 顯示指定進程中各個線程的信息
pstree -agplU # 顯示系統中所有的進程關係 ✅

根據文件找 PID

lsof | grep FILENAME
lsof FILENAME
fuser FILENAME # 用於查找使用特定文件或套接字的進程的命令

確定程序運行時間#

ps -eo pid,lstart,etime,cmd | grep  PID

# 對比惡意文件的創建時間
stat FILENAME
ls -al FILENAME

image

處理異常進程#

1、從伺服器上下載樣本
2、病毒在線分析
3、進程查殺

1、查看是否存在子進程
ps ajfx
systemctl status

2、如果無子進程
kill -9 PID

3、如果存在子進程
kill -9 -PID

刪除惡意文件#

1、查看進程是否占用

lsof FILENAME

2、如果遇到 a 和 i 屬性導致文件不可刪除

chattr -a
chattr -i

3、奇怪文件名導致不能刪除

  • 使用 inode 節點進行刪除
ls -li FILENAME # 查看inode

image

  • 刪除文件
find ./* -inum INODE -delete
find ./ -inum INODE -exec rm {} \;
find ./* -inum INODE -exec rm -i {} \; # 提示是否刪除
find ./* -inum INODE -exec rm -f {} \; # 強制刪除
find ./* -inum INODE | xargs rm -rf
rm `find ./* -inum INODE`

大部分的應急事件的流程大概需要的命令也就是這些了,針對不同的事件還有一些區別:

擴展 1 netstat 中 TCP 連接狀態的示例#

狀態           類型                描述                                                                                                            
LISTEN        TCP 監聽端口         侦听状态。表示該端口正在等待對端的連接,以進行通信。                                                         
SYN_SENT      TCP 傳輸控制協議狀態 已經發送連接請求。表示 TCP 連接已經被發起,但是尚未收到確認。                                                 
SYN_RECV      TCP 傳輸控制協議狀態 正在接收連接請求。表示 TCP 連接已經被接收,正在等待確認。通常在伺服器上才會出現,表示已經接收到客戶端的請求。
ESTABLISHED   TCP 傳輸控制協議狀態 表示 TCP 連接已經建立,正在通信中。                                                                             
FIN_WAIT1     TCP 傳輸控制協議狀態 表示 TCP 連接已經被關閉,在等待對方關閉連接的請求。                                                           
FIN_WAIT2     TCP 傳輸控制協議狀態 表示 TCP 連接已經被關閉,在等待對方關閉連接的請求,或者正在從對方接收最終確認。                             
TIME_WAIT     TCP 傳輸控制協議狀態 表示 TCP 連接已經被關閉,並且所有數據都傳輸完畢,正在等待一段時間以確保所有分組都得到處理。                   
CLOSE_WAIT    TCP 傳輸控制協議狀態 表示 TCP 連接已經被關閉,但是本地應用程序尚未關閉連接。                                                       
LAST_ACK      TCP 傳輸控制協議狀態 已經發送關閉請求,正在等待對方的關閉請求。                                                                    
CLOSING       TCP 傳輸控制協議狀態 表示 TCP 連接正在關閉過程中。                                                                                   

擴展 2 ip 是否正常#

三步走:威脅情報查詢-域名備案-企業查詢

微步威脅情報可以查詢到一些信息

image.png

還可以查詢如下等信息

image.png

有域名就可以查備案(國內)

image.png

有備案就可以查公司

image.png

其他#

GitHub - T0xst/linux: linux 安全檢查
Security/1earn/Security/BlueTeam/ 應急
Blue-Team / 應急 /linux 應急響應手冊
linux 應急響應手冊 1.7

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。