国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【流量分析】USB鍵盤(pán)與鼠標(biāo)流量分析

這篇具有很好參考價(jià)值的文章主要介紹了【流量分析】USB鍵盤(pán)與鼠標(biāo)流量分析。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

0x00 USB流量包分析

USB流量指的是USB設(shè)備接口的流量,攻擊者能夠通過(guò)監(jiān)聽(tīng)usb接口流量獲取鍵盤(pán)敲擊鍵、鼠標(biāo)移動(dòng)與點(diǎn)擊、存儲(chǔ)設(shè)備的銘文傳輸通信、USB無(wú)線網(wǎng)卡網(wǎng)絡(luò)傳輸內(nèi)容等等。
在CTF中,USB流量分析主要以鍵盤(pán)和鼠標(biāo)流量為主。
下面通過(guò)簡(jiǎn)單的講解與例題的展示,分析鍵盤(pán)流量與鼠標(biāo)流量。

例子中用到的文件為usb.pcap和usb2.pcap,我一起打包了放在云盤(pán)上,鏈接如下:
藍(lán)奏云-usb.zip

0x01 鍵盤(pán)流量分析

USB協(xié)議數(shù)據(jù)部分在Leftover Capture Data域中,數(shù)據(jù)長(zhǎng)度為八個(gè)字節(jié),其中鍵盤(pán)擊健信息集中在第三個(gè)字節(jié)中,相關(guān)對(duì)應(yīng)信息如下鏈接中所示;

  1. ??在線-USB HID to PS/2 Scan Code Translation Table
  2. ??藍(lán)奏云-USB HID to PS/2 Scan Code Translation Table.pdf
  3. ??在線-USB協(xié)議中HID設(shè)備描述符以及鍵盤(pán)按鍵值對(duì)應(yīng)編碼表
  4. ??藍(lán)奏云-USB協(xié)議中HID設(shè)備描述符以及鍵盤(pán)按鍵值對(duì)應(yīng)編碼表.pdf

如下所示,在使用wireshark捕捉到的流量中,我們主要看第三個(gè)字節(jié)的內(nèi)容,將它與按鍵值相對(duì)以得出按鍵內(nèi)容。
鍵盤(pán)流量分析,干貨筆記,流量分析,解題,計(jì)算機(jī)網(wǎng)絡(luò),wireshark,計(jì)算機(jī)外設(shè)
鍵盤(pán)流量分析,干貨筆記,流量分析,解題,計(jì)算機(jī)網(wǎng)絡(luò),wireshark,計(jì)算機(jī)外設(shè)

題目背景

安全測(cè)評(píng)人員在對(duì)某銀行卡密碼輸入系統(tǒng)進(jìn)行滲透測(cè)試,截獲了一段通過(guò)USB鍵盤(pán)輸入6位數(shù)字密碼的流量,其中也包含了一些其他無(wú)關(guān)的USB設(shè)備的流量,你能從中恢復(fù)出6位數(shù)字密碼嗎?最終提交的flag格式為flag{xxxxxx}。

解題思路

使用 kali linux中的tshark命令把cap data 提取出來(lái),
根據(jù)《USB鍵盤(pán)協(xié)議中的鍵碼》中的HID Usage ID將數(shù)據(jù)還原成鍵位;

1 使用命令tshark把cap data 提取出來(lái)

??tshark-wireshark官方文檔
鍵盤(pán)流量分析,干貨筆記,流量分析,解題,計(jì)算機(jī)網(wǎng)絡(luò),wireshark,計(jì)算機(jī)外設(shè)

Linux中使用tshark

安裝:sudo apt-get install tshark
tshark -v
tshark -h

tshark -r usb.pcap -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt
  
  -r:設(shè)置tshark 分析的輸入文件
  -T:設(shè)置解碼結(jié)果輸出的格式。包括fields,text,ps,psml和pdml,默認(rèn)為text

如圖可以看到生成了usbdata.txt

鍵盤(pán)流量分析,干貨筆記,流量分析,解題,計(jì)算機(jī)網(wǎng)絡(luò),wireshark,計(jì)算機(jī)外設(shè)

Windows中使用tshark

wireshark在安裝時(shí)會(huì)自帶一些工具,tshark便是其中之一,它可以在wireshark的安裝路徑中找到。
鍵盤(pán)流量分析,干貨筆記,流量分析,解題,計(jì)算機(jī)網(wǎng)絡(luò),wireshark,計(jì)算機(jī)外設(shè)

#使用cmd或powershell進(jìn)入安裝路徑后,執(zhí)行以下命令
.\tshark.exe -r D:\Downloads\usb.pcap -T fields -e usb.capdata >D:\Downloads\usbdata.txt

在D:\Downloads\目錄下便可看到文件usbdata.txt,此時(shí)的文件還有著默認(rèn)的空行,我們使用腳本(或其他方式)刪除空行

#使用腳本刪除空行
with open('usbdata.txt', 'r', encoding='utf-8') as f:
    lines = f.readlines()
lines = filter(lambda x: x.strip(), lines)
with open('usbdata.txt', 'w', encoding='utf-8') as f:
    f.writelines(lines)

2 將文件用冒號(hào)進(jìn)行分隔

#將上面的文件用腳本分隔,加上冒號(hào);
f=open('usbdata.txt','r') 
fi=open('out.txt','w')
while 1:
  a=f.readline().strip() 
  if a:
    if len(a)==16:#鍵盤(pán)流量的話len為16鼠標(biāo)為8 
      out=''
      for i in range(0,len(a),2):
        if i+2 != len(a):
          out+=a[i]+a[i+1]+":" 
        else:
          out+=a[i]+a[i+1] 
      fi.write(out) 
      fi.write('\n') 
  else: 
    break 
fi.close()

鍵盤(pán)流量分析,干貨筆記,流量分析,解題,計(jì)算機(jī)網(wǎng)絡(luò),wireshark,計(jì)算機(jī)外設(shè)

3 最后用腳本提取

#最后用腳本提取
   # print((line[6:8])) #輸出6到8之間的值
   #取出6到8之間的值
mappings = { 0x04:"A",  0x05:"B",  0x06:"C", 0x07:"D", 0x08:"E", 0x09:"F", 0x0A:"G",  0x0B:"H", 0x0C:"I",  0x0D:"J", 0x0E:"K", 0x0F:"L", 0x10:"M", 0x11:"N",0x12:"O",  0x13:"P", 0x14:"Q", 0x15:"R", 0x16:"S", 0x17:"T", 0x18:"U",0x19:"V", 0x1A:"W", 0x1B:"X", 0x1C:"Y", 0x1D:"Z", 0x1E:"1", 0x1F:"2", 0x20:"3", 0x21:"4", 0x22:"5",  0x23:"6", 0x24:"7", 0x25:"8", 0x26:"9", 0x27:"0", 0x28:"\n", 0x2a:"[DEL]",  0X2B:"    ", 0x2C:" ",  0x2D:"-", 0x2E:"=", 0x2F:"[",  0x30:"]",  0x31:"\\", 0x32:"~", 0x33:";",  0x34:"'", 0x36:",",  0x37:"." }
nums = []
keys = open('out.txt')
for line in keys:
    if line[0]!='0' or line[1]!='0' or line[3]!='0' or line[4]!='0' or line[9]!='0' or line[10]!='0' or line[12]!='0' or line[13]!='0' or line[15]!='0' or line[16]!='0' or line[18]!='0' or line[19]!='0' or line[21]!='0' or line[22]!='0':
         continue
    nums.append(int(line[6:8],16)) 
keys.close()
output = ""
for n in nums:
    if n == 0 :
        continue
    if n in mappings:
        output += mappings[n]
    else:
        output += '[unknown]'
print 'output :\n' + output

鍵盤(pán)流量分析,干貨筆記,流量分析,解題,計(jì)算機(jī)網(wǎng)絡(luò),wireshark,計(jì)算機(jī)外設(shè)

flag{7200[DEL]53[DEL]93}

0x02 鼠標(biāo)流量分析

USB協(xié)議鼠標(biāo)數(shù)據(jù)部分在Leftover Capture Data域中,數(shù)據(jù)長(zhǎng)度為四個(gè)字節(jié)。
其中,
第一個(gè)字節(jié)代表按鍵,當(dāng)取0x00時(shí),代表沒(méi)有按鍵,為0x01時(shí),代表按左按鍵,為0x02時(shí),代表當(dāng)前按鍵為右鍵;
第二個(gè)字節(jié)可以成是一個(gè)signed byte類型,其最高位為符號(hào)位,當(dāng)這個(gè)值為時(shí),代表鼠標(biāo)水平右移動(dòng)多少像素,為負(fù)時(shí),代表水平左移多少像素;
第三個(gè)字節(jié)與第二個(gè)字節(jié)類似,代表垂直上下移動(dòng)的偏移。
鍵盤(pán)流量分析,干貨筆記,流量分析,解題,計(jì)算機(jī)網(wǎng)絡(luò),wireshark,計(jì)算機(jī)外設(shè)

如圖0x00002000,表示鼠標(biāo)垂直向上移動(dòng)20。

題目背景

flag藏于usb流量中,通過(guò)USB協(xié)議數(shù)據(jù)中的鼠標(biāo)移動(dòng)軌跡轉(zhuǎn)換成flag

解題思路:

1 使用命令tshark提取數(shù)據(jù)

tshark命令如下:

tshark -r usb2.pcap -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt

鍵盤(pán)流量分析,干貨筆記,流量分析,解題,計(jì)算機(jī)網(wǎng)絡(luò),wireshark,計(jì)算機(jī)外設(shè)

2 將文件用冒號(hào)進(jìn)行分隔

#將上面的文件用腳本分隔,加上冒號(hào);
f=open('usbdata.txt','r') 
fi=open('out.txt','w')
while 1:
  a=f.readline().strip() 
  if a:
    if len(a)==8:#鍵盤(pán)流量的話len為16鼠標(biāo)為8 
      out=''
      for i in range(0,len(a),2):
        if i+2 != len(a):
          out+=a[i]+a[i+1]+":" 
        else:
          out+=a[i]+a[i+1] 
      fi.write(out) 
      fi.write('\n') 
  else: 
    break 
fi.close()

鍵盤(pán)流量分析,干貨筆記,流量分析,解題,計(jì)算機(jī)網(wǎng)絡(luò),wireshark,計(jì)算機(jī)外設(shè)

3 使用腳本提取坐標(biāo)數(shù)據(jù)

nums = []
keys = open('Python\\USBread\\mouse\\out.txt','r',encoding="utf_16")
f = open('Python\\USBread\\mouse\\xy.txt','w',encoding="utf_16")
posx = 0
posy = 0
for line in keys:
    # if len(line) != 11:
    #     continue
    x=int(line[3:5],16)
    y=int(line[6:8],16)
    if x>127:
        print ("aaa")
        x-=256
    if y>127:
        print ("bbb")
        y-=256
    posx += x
    posy += y
    btn_flag = int(line[0:2],16) #1 for left,2 for right , 0 for nothing
    if btn_flag == 0:#此處的0可以修改為0(未按按鍵)、1(左鍵)、2(右鍵),將單獨(dú)輸出相應(yīng)坐標(biāo)文件。
        print (posx,posy)
        f.write(str(posx))
        f.write(' ')
        f.write(str(posy))
        f.write('\n')
f.close()

鍵盤(pán)流量分析,干貨筆記,流量分析,解題,計(jì)算機(jī)網(wǎng)絡(luò),wireshark,計(jì)算機(jī)外設(shè)

4 將坐標(biāo)轉(zhuǎn)換成圖片

from PIL import Image
img = Image.new('RGB',(2000,2000),(255,255,255))#創(chuàng)建Image對(duì)象
f =open('xy.txt')#xy.txt文件 
for line in f.readlines():
    point =line.split()
    img.putpixel((int(point[0]),int(point[1])),(0,0,0))#讀取文件中的每一行,并修改像素 
f.close() 
img.show()

鍵盤(pán)流量分析,干貨筆記,流量分析,解題,計(jì)算機(jī)網(wǎng)絡(luò),wireshark,計(jì)算機(jī)外設(shè)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-715342.html

到了這里,關(guān)于【流量分析】USB鍵盤(pán)與鼠標(biāo)流量分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 教你STM32做USB鼠標(biāo)、鍵盤(pán)

    教你STM32做USB鼠標(biāo)、鍵盤(pán)

    使用CubeMX軟件傻瓜式的配置,一鍵生成USB的HID驅(qū)動(dòng)。 ①、選擇相對(duì)應(yīng)的芯片 ?②、配置時(shí)鐘和Debug和debug ? ? ?③、配置USB ? ?④、生成代碼 ?????????最好把這個(gè)也勾上,勾上以后每個(gè)外設(shè)配置不再都給你塞到main.c里,而是建一個(gè).c.h,這樣感覺(jué)舒服多了 ????????USB協(xié)議

    2024年01月23日
    瀏覽(20)
  • Android 13.0 通過(guò)驅(qū)動(dòng)實(shí)現(xiàn)禁用usb鼠標(biāo)和usb鍵盤(pán)功能

    在13.0的系統(tǒng)產(chǎn)品定制化開(kāi)發(fā)中,在進(jìn)行定制中有關(guān)于usb鍵盤(pán)和usb鼠標(biāo)的需求中,產(chǎn)品要求禁止usb口掛載usb鼠標(biāo)和usb鍵盤(pán),所以需要要求在usb掛載類型的時(shí)候 判斷如果是usb鼠標(biāo)和usb鍵盤(pán)就不讓掛載,這就需要從驅(qū)動(dòng)方面入手來(lái)解決這個(gè)問(wèn)題,接下來(lái)看下驅(qū)動(dòng)的某些掛載usb的相

    2024年02月08日
    瀏覽(28)
  • Android 12.0 通過(guò)驅(qū)動(dòng)實(shí)現(xiàn)禁用usb鼠標(biāo)和usb鍵盤(pán)功能

    在12.0的系統(tǒng)產(chǎn)品定制化開(kāi)發(fā)中,在進(jìn)行定制中有關(guān)于usb鍵盤(pán)和usb鼠標(biāo)的需求中,產(chǎn)品要求禁止usb口掛載usb鼠標(biāo)和usb鍵盤(pán),所以需要要求在usb掛載類型的時(shí)候 判斷如果是usb鼠標(biāo)和usb鍵盤(pán)就不讓掛載,這就需要從驅(qū)動(dòng)方面入手來(lái)解決這個(gè)問(wèn)題,接下來(lái)看下驅(qū)動(dòng)的某些掛載usb的相

    2024年02月08日
    瀏覽(58)
  • 樹(shù)莓派4B 鼠標(biāo)鍵盤(pán)不可用,USB3.0&&USB2.0失效

    樹(shù)莓派4B 鼠標(biāo)鍵盤(pán)不可用,USB3.0&&USB2.0失效

    1.將sd卡插入電腦,找到config.txt 2.添加3條,具體哪條,有機(jī)會(huì)再看 備注:由于更新系統(tǒng)出現(xiàn)的問(wèn)題,無(wú)語(yǔ)中。。。。。。。。。

    2024年02月06日
    瀏覽(34)
  • Linux驅(qū)動(dòng)開(kāi)發(fā)(十四)---USB驅(qū)動(dòng)開(kāi)發(fā)學(xué)習(xí)(鍵盤(pán)+鼠標(biāo))

    Linux驅(qū)動(dòng)開(kāi)發(fā)(十四)---USB驅(qū)動(dòng)開(kāi)發(fā)學(xué)習(xí)(鍵盤(pán)+鼠標(biāo))

    《Linux驅(qū)動(dòng)開(kāi)發(fā)(一)—環(huán)境搭建與hello world》 《Linux驅(qū)動(dòng)開(kāi)發(fā)(二)—驅(qū)動(dòng)與設(shè)備的分離設(shè)計(jì)》 《Linux驅(qū)動(dòng)開(kāi)發(fā)(三)—設(shè)備樹(shù)》 《Linux驅(qū)動(dòng)開(kāi)發(fā)(四)—樹(shù)莓派內(nèi)核編譯》 《Linux驅(qū)動(dòng)開(kāi)發(fā)(五)—樹(shù)莓派設(shè)備樹(shù)配合驅(qū)動(dòng)開(kāi)發(fā)》 《Linux驅(qū)動(dòng)開(kāi)發(fā)(六)—樹(shù)莓派配合硬件進(jìn)行字

    2024年02月08日
    瀏覽(25)
  • USB復(fù)合設(shè)備構(gòu)建CDC+HID鼠標(biāo)鍵盤(pán)套裝

    USB復(fù)合設(shè)備構(gòu)建CDC+HID鼠標(biāo)鍵盤(pán)套裝

    最近需要做一個(gè)小工具,要用到USB CDC+HID設(shè)備。又重新研究了一下USB協(xié)議和STM32的USB驅(qū)動(dòng)庫(kù),也踩了不少坑,因此把代碼修改過(guò)程記錄一下。 開(kāi)發(fā)環(huán)境: ST-LINK v2 STM32H743開(kāi)發(fā)板 PC windows 11 cubeMX v6.9.2 cubeIDE v1.13.2 cubeprogramer v2.14.0 參考資料: STMicroelectronics/stm32_mw_usb_device: Provide

    2024年02月04日
    瀏覽(26)
  • STM32 CubeMX USB_(HID 鼠標(biāo)和鍵盤(pán))

    STM32 CubeMX USB_(HID 鼠標(biāo)和鍵盤(pán))

    STM32 CubeMX 自動(dòng)生成的USB_HID是鼠標(biāo)類型的:鍵盤(pán)類型要做一點(diǎn)小修改; 參考: STM32CubeMX學(xué)習(xí)筆記 USB鼠標(biāo)HID描述符以及數(shù)據(jù)格式

    2024年02月14日
    瀏覽(30)
  • 告警流量特征分析(護(hù)網(wǎng)藍(lán)初面試干貨)

    目錄 一、流量特征 1、SQL注入 2、XSS 3、挖礦行為 二、webshell流量特征 1、中國(guó)菜刀 2、蟻劍 3、冰蝎 三、對(duì)告警流量分析 1、信息泄露 2、SQL注入 3、文件上傳 4、XSS 5、代碼執(zhí)行 (1)對(duì)sqlmap的判斷:若攻擊者使用sqlmap且未加 --random-agent參數(shù),則可以通過(guò)捕獲請(qǐng)求包的user-agent字

    2024年02月08日
    瀏覽(25)
  • USB復(fù)合設(shè)備(鍵盤(pán)鼠標(biāo)U盤(pán)三合一)基于標(biāo)準(zhǔn)庫(kù)

    USB復(fù)合設(shè)備(鍵盤(pán)鼠標(biāo)U盤(pán)三合一)基于標(biāo)準(zhǔn)庫(kù)

    鍵盤(pán)鼠標(biāo)屬于HID,U盤(pán)功能屬于MSC。至于這些定義,這里不再過(guò)多介紹。 網(wǎng)上有很多的例程,但是大多是基于HAL庫(kù)的,標(biāo)準(zhǔn)庫(kù)的我也找了不少例子看,但是沒(méi)有HID+MSC的例程。最后還是看了個(gè)官方的復(fù)合設(shè)備例程才頓悟的,官方的例程,網(wǎng)上也很好找。搜USB Composite examples應(yīng)該就

    2024年02月09日
    瀏覽(29)
  • 定義USB接口,鼠標(biāo)類和鍵盤(pán)類都可以作為實(shí)現(xiàn)類去實(shí)現(xiàn)USB接口

    定義USB接口,鼠標(biāo)類和鍵盤(pán)類都可以作為實(shí)現(xiàn)類去實(shí)現(xiàn)USB接口

    目錄 程序設(shè)計(jì) 程序分析 系列文章 ? 如圖所示,我們電腦上都有USB接口,當(dāng)我們的鼠標(biāo)和鍵盤(pán)插上去之后才可以使用,拔出來(lái)就關(guān)閉使用。其實(shí)具體是什么USB設(shè)備,筆記本并不關(guān)心,只要符合USB規(guī)格的設(shè)備都可以。鼠標(biāo)和鍵盤(pán)要想能在電腦上使用,那么鼠標(biāo)和鍵盤(pán)也必須遵守

    2024年02月06日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包