1. 程式人生 > 實用技巧 >攻防世界-密碼學-簡單流量分析

攻防世界-密碼學-簡單流量分析

1. 題目資訊

題目背景:運維人員在日常安全檢查的時候發現現場某裝置會不時向某不知名ip發出非正常的ICMP PING包。這引起了運維人員的注意,他在過濾出ICMP包分析並馬上開始做應急處理很可能已被攻擊的裝置,附件給出可疑流量包。

2. 分析

流量分析題,分析的方法基本上有:binwalk、查詢一些可疑字串或16進位制資料,排序流量包的長度(最長的流量包一般很可疑);當我們對流量包的長度進行排序時,發現流量包最短90位元組,最長也不過164位元組,其中的data段資料長度從48到122,而ascii表中第48至122個字元為0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz,於是將每個流量包的長度轉換為對應字元,然後連線成一段長字串,看上去像base64編碼,對字串進行base64解碼即可!

3. 解題

實現的Python指令碼如下:

from pyshark.capture.file_capture import FileCapture
from base64 import b64decode
from sys import argv

def solve(file_name):
    packets=FileCapture(input_file=file_name)
    res=''
    for packet in packets:
        for pkt in packet:
            if pkt.layer_name=='icmp' and int(pkt.type,16):
                res+=chr(int(pkt.data_len))
    return b64decode(res)

if __name__=='__main__':
    print solve(argv[1])

程式執行結果如下:

$ python solve.py fetus_pcap.pcap
::\nmongodb:!:17843:0:99999:7:::\nubuntu:$6$LhHRomTE$M7C4n84UcFLAG{xx2b8a_6mm64c_fsociety}::