淺談讀取USB鍵盤流量的隱藏數(shù)據(jù)技巧
0×00 預(yù)備
wireshark是一款可以用來抓取流量的工具,可以用它來分析流量,從中發(fā)現(xiàn)黑客所做的記錄和改動,對我們分析被攻擊情況和進行防御有很大的幫助,usbkeyboard可以隱藏一些信息,通常,我們可以使用以上工具和方法從中發(fā)現(xiàn)一些隱藏信息。
0×01 數(shù)據(jù)準備
假設(shè)有一段流量,協(xié)議是usb,我用wiresharp打開這個包,可以看到里面的字段和內(nèi)容:
可以看出內(nèi)容主要是Leftover Capture Data,首先要對usb協(xié)議進行分析,右鍵選項,然后點擊應(yīng)用為列,可以將該域的值在主面板上顯示,usbkeyborad的數(shù)據(jù)包數(shù)據(jù)長度為8個字節(jié),每兩位是一個字節(jié),而按鍵的數(shù)據(jù)都在第三個字節(jié)處,就是00、01、02、03…11、12、13、14,鍵位和HEX數(shù)值之間的對應(yīng)關(guān)系如下圖所示:
要提取出來這些數(shù)據(jù)以進行分析,就需要使用工具和腳本來對這些數(shù)據(jù)進行處理,以下是實現(xiàn)方法。
0×02 實現(xiàn)
首先,我們需要使用到wireshark里的工具tshark,這是wireshark工具的命令行程序,效率更高,如果是linux系統(tǒng),則需要安裝tshark包,安裝完之后就執(zhí)行tshark命令,如果是windows則直接安裝wireshark,里面自帶了tshark程序,可以直接執(zhí)行。然后執(zhí)行:
"tshark.exe" -r usb.Pcap -T fields -e usb.capdata > usb.data
這樣,就生成了一個usb.data文件,這個文件就是tshark對usb.pcap流量包內(nèi)數(shù)據(jù)的截取,其實就是個txt文檔,可以直接查看。
當我們用文本文檔打開查看的時候:
發(fā)現(xiàn)里面的數(shù)據(jù)就是原來Leftover Capture Data列的數(shù)據(jù),這列數(shù)據(jù)就是usb鍵盤鍵位的代碼,可以對這列數(shù)據(jù)進行處理,過濾掉無用的流量,保留與鍵位有關(guān)的流量,也就是第三個字節(jié)的數(shù)據(jù),精簡一下。
將以上python腳本保存為一個文件,然后執(zhí)行:
打開這個txt文件,發(fā)現(xiàn)里面有一段由數(shù)字組成的字段,很長,這就是我們需要的數(shù)據(jù):
將這段字段拷貝出來,然后扔到010editor當中:
發(fā)現(xiàn)這段字段很像一種文件格式,就是zip壓縮包格式,因為它的開頭是504B,也就是PK,而PK這個文件頭就是壓縮包的頭,所以我們可以把這段字段保存為zip壓縮包格式:

保存之后,就直接打開這個壓縮包,看到里面有個文件,叫flag.txt:
再點擊打開,發(fā)現(xiàn)沒有密碼,直接就打開了,里面是隱藏的數(shù)據(jù)。
0×03 END
有時候不僅僅是在鍵位編碼當中,也可能在usb鼠標坐標里,也是需要先用tshark抽取鼠標坐標數(shù)據(jù)信息,再運用python強大的作圖功能對坐標數(shù)據(jù)進行繪制,以得到圖形化隱藏數(shù)據(jù)。