《知了堂信安筆記》捕捉短連接

0x00 前言
短連接(short connnection)是相對于長連接而言的概念,指的是在數(shù)據(jù)傳送過程中,只在需要發(fā)送數(shù)據(jù)時(shí),才去建立一個(gè)連接,數(shù)據(jù)發(fā)送完成后,則斷開此連接,即每次連接只完成一項(xiàng)業(yè)務(wù)的發(fā)送。 在系統(tǒng)維護(hù)中,一般很難去察覺,需要借助網(wǎng)絡(luò)安全設(shè)備或者抓包分析,才能夠去發(fā)現(xiàn)。
0x01 應(yīng)急場景
某天,網(wǎng)絡(luò)管理員在出口WAF檢測到某臺服務(wù)器不斷向香港I發(fā)起請求 ,感覺很奇怪,登錄服務(wù)器排查,想要找到發(fā)起短連接的進(jìn)程。
0x02 日志分析
登錄服務(wù)器查看端口、進(jìn)程,并未發(fā)現(xiàn)發(fā)現(xiàn)服務(wù)器異常,但是當(dāng)多次刷新端口連接時(shí),可以查看該連接。 有時(shí)候一直刷這條命令好十幾次才會(huì)出現(xiàn),像這種的短連接極難捕捉到對應(yīng)的進(jìn)程和源文件。

手動(dòng)捕捉估計(jì)沒戲,很難追蹤,于是動(dòng)手寫了一段小腳本來捕捉短連接對應(yīng)的pid和源文件。
腳本文件如下:
#!/bin/bash
ip=118.184.15.40
i=1
while :
do
? tmp=netstat -anplt|grep $ip|awk -F '[/]' '{print $1}'|awk '{print $7}'
? #echo $tmp
? if test -z "$tmp"
? then
? ? ? ((i=i+1))
? else
? ? ? for pid in $tmp; do
? ? ? ? ? echo "PID: "${pid}
? ? ? ? ?result=ls -lh /proc/$pid|grep exe
? ? ? ? ?echo "Process: "${result}
? ? ? ? ?kill -9 $pid
? ? ? done
? ? ? break
? fi
done
echo "Total number of times: "${i}
運(yùn)行結(jié)果如下:

跑了三次腳本,可以發(fā)現(xiàn)短連接每次發(fā)起的進(jìn)程Pid一直在變,但已經(jīng)捕捉到發(fā)起該異常連接的進(jìn)程源文件為 /usr/lib/nfsiod
0x04 小結(jié)
本文簡單介紹了短連接以及捕捉短連接源文件的技巧,站在安全管理員的角度,應(yīng)加強(qiáng)對網(wǎng)絡(luò)安全設(shè)備的管理,在網(wǎng)絡(luò)層去發(fā)現(xiàn)更多在系統(tǒng)層很難察覺的安全威脅。