
# 用 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/
**第三步:斷開 + 深入調查**
# 殺死可疑 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` 深入分析網絡流量,記得留意我哋嘅更新!



