用 Linux 內建工具揪出可疑網絡連線 ss lsof netstat 實戰教學

# 用 Linux 內建工具揪出可疑網絡連線:ss、lsof、netstat 實戰教學 做 IT 嘅朋友成日都會遇到一個情況:部 server 突然變慢、CPU 飆高、或者流量異常,懷疑係咪俾人入侵咗或者有木馬程式偷偷對外連線。今日就同大家分享點樣用 Linux 內建嘅幾個命令,快速揪出可疑嘅網絡連線,唔使裝任何額外工具。 ## 點解要識睇網絡連線? 無論係勒索軟件、挖礦木馬定係 reverse ...

用 Linux 內建工具揪出可疑網絡連線 ss lsof netstat 實戰教學 - 文章重點速覽 infographic

# 用 Linux 內建工具揪出可疑網絡連線:ss、lsof、netstat 實戰教學

做 IT 嘅朋友成日都會遇到一個情況:部 server 突然變慢、CPU 飆高、或者流量異常,懷疑係咪俾人入侵咗或者有木馬程式偷偷對外連線。今日就同大家分享點樣用 Linux 內建嘅幾個命令,快速揪出可疑嘅網絡連線,唔使裝任何額外工具。

## 點解要識睇網絡連線?

無論係勒索軟件、挖礦木馬定係 reverse shell,佢哋入侵之後第一件事通常就係建立對外連線,同 C2(Command and Control)伺服器溝通。所以只要識得睇邊個 process 連咗去邊個 IP、用咩 port,好多時已經可以第一時間發現異常。

## 工具一:ss — 現代版 netstat

`ss` 係而家 Linux 預設推薦嘅 socket 檢視工具,速度快過舊式 `netstat` 好多。基本用法:

# 睇所有 TCP 連線
ss -t

# 睇所有 TCP + UDP,連埋 process 名同 PID
ss -tunap

# 只睇已建立(ESTAB)嘅連線
ss -tan state established

最常用嘅組合係 `ss -tunap`,佢會顯示:

– `-t`:TCP
– `-u`:UDP
– `-n`:唔做 DNS 反解(快好多)
– `-a`:所有狀態(包括 LISTEN)
– `-p`:顯示 process 名同 PID

輸出會類似咁:

State   Recv-Q  Send-Q  Local Address:Port   Peer Address:Port   Process
ESTAB   0       0       192.168.1.10:45678   45.77.123.45:4444   users:(("bash",pid=1234))

見到 `bash` 連去一個陌生 IP 嘅 4444 port?呢個就係典型 reverse shell 特徵,要即刻處理。

## 工具二:lsof — 揪出邊個檔案俾邊個 process 用

`lsof`(list open files)係另一個神器,因為喺 Linux 入面「一切皆檔案」,網絡 socket 都係檔案。用法:

# 睇邊個 process 用緊 port 80
lsof -i :80

# 睇某個 process 開咗咩網絡連線
lsof -p 1234 -i

# 睇所有 IPv4 連線
lsof -i 4

`lsof -i` 會列出所有網絡連線,包括 process 名、PID、連線方向。特別有用嘅係可以反向查:知道一個可疑 port,用 `lsof -i :port` 即刻揾到係邊個 process 佔用。

## 工具三:netstat — 老牌但仲有用

雖然 `netstat` 已經被 `ss` 取代,但好多舊系統同習慣仲係用緊佢。基本用法:

# 睇所有連線 + process
netstat -tunap

# 睇 routing table
netstat -rn

# 統計每個 protocol 嘅連線數量
netstat -s

## 實戰:三步揪出可疑連線

**第一步:睇有冇異常對外連線**

ss -tunap | grep ESTAB

重點睇 Peer Address 嗰欄,有冇連去陌生國家嘅 IP、或者非標準 port(例如 4444、1337、6666 呢啲常見木馬 port)。

**第二步:鎖定可疑 process**

lsof -i :4444

揾到 PID 之後,再睇呢個 process 係咩嚟:

ps -fp <PID>
ls -l /proc/<PID>/exe

`/proc//exe` 會顯示呢個 process 實際執行緊邊個 binary,如果路徑喺 `/tmp` 或者奇怪位置,就更加可疑。

**第三步:斷開 + 深入調查**

# 殺死可疑 process
kill -9 <PID>

# 檢查有冇開機自啟
systemctl list-unit-files | grep enabled
crontab -l
cat /etc/rc.local

## 總結

`ss`、`lsof`、`netstat` 呢三個命令係每個 Linux 管理員必備嘅基本功。記住一個原則:**任何你唔認識嘅對外連線,都值得查清楚**。定期用 `ss -tunap` 巡一巡,好過等出事先嚟補鑊。

🔗 參考資料:NVD NIST 漏洞資料庫

下次再同大家分享點樣用 `tcpdump` 深入分析網絡流量,記得留意我哋嘅更新!