91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AutoGadgetFS:一款針對USB設(shè)備的安全測試工具

倩倩 ? 來源:Alpha_h4ck ? 作者:Alpha_h4ck ? 2022-09-05 15:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

關(guān)于AutoGadgetFS

AutoGadgetFS是一款開源框架,它可以幫助廣大研究人員在無需深入了解USB協(xié)議的情況下對USB設(shè)備以及相關(guān)的主機/驅(qū)動器/軟件進行評估。該工具基于Python 3開發(fā),并且使用了RabbitMQ和WiFi訪問來幫助研究人員對遠程USB設(shè)備進行安全審計。在ConfigFS的幫助下,AutoGadgetFS允許用戶迅速克隆和模擬設(shè)備而無需深入研究每一個實現(xiàn)細節(jié)。除此之外,該框架還允許用戶創(chuàng)建自己的模糊測試器。

功能介紹

輕松查找、選擇并連接到USB設(shè)備。

模擬任何USB HID設(shè)備。

以中間件設(shè)備身份執(zhí)行AGFS嗅探HID設(shè)備(將通信保存到磁盤)。

設(shè)備嗅探(任何設(shè)備)。

多個Fuzzer允許您對設(shè)備或主機進行模糊測試。

隨機Fuzzer(具有固定或隨機長度的數(shù)據(jù)包)。

智能Fuzzer,可以從以前的USB通信中學(xué)習(xí)。

可以告訴Fuzzer哪些字節(jié)要模糊化,使包的其余部分保持不變。

小工具Fuzzer。

順序Fuzzer。

控制傳輸枚舉器。

從文件中重放數(shù)據(jù)包。

從保存的USBLyzer捕獲重放數(shù)據(jù)包。

顯示數(shù)據(jù)包的可視方式,以便于對通信信息進行逆向分析。

DFU模式下的設(shè)備警報,或者設(shè)備泄漏信息。

支持對USB設(shè)備和主機進行遠程調(diào)試。

監(jiān)控突然的界面變化。

工具要求

一臺運行了Linux的主機(Debian/Ubuntu/Kali);

支持WiFi訪問的樹莓派Raspberry Pi Zero;

目標設(shè)備選擇:虛擬機或單一主機;

兩條USB線纜;

目標USB設(shè)備;

硬件調(diào)試器(可選);

工具配置圖

設(shè)備測試

8293c79c-2c5b-11ed-ba43-dac502259ad0.jpg

設(shè)置中間件

82b3ca06-2c5b-11ed-ba43-dac502259ad0.jpg

設(shè)置中間件并支持設(shè)備調(diào)試

82ce6c62-2c5b-11ed-ba43-dac502259ad0.jpg

工具安裝

Linux設(shè)備

sudo apt install python3 ipython3 git python3-pip rabbitmq-server dfu-util

sudo service rabbitmq-server start

git clone https://github.com/ehabhussein/AutoGadgetFS

cd AutoGadgetFS

sudo -H pip3 install -r requirements.txt

sudo python3 -m pip install prompt-toolkit~=2.0

sudo rabbitmq-plugins enable rabbitmq_management

http://localhost:15672/ to reach the web interface

sudo rabbitmqctl add_user autogfs usb4ever

sudo rabbitmqctl set_user_tags autogfs administrator

sudo service rabbitmq-server restart

安裝完成后,請按照下列方式測試安裝結(jié)果

sudo ipython3

Python 3.7.7 (default, Apr  1 2020, 1352)

Type 'copyright', 'credits' or 'license' for more information

IPython 7.9.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import libagfs

In [2]: x = libagfs.agfs()

***************************************

AutoGadgetFS: USB testing made easy

***************************************

Enter IP address of the rabbitmq server: 127.0.0.1

In [3]: exit

sudo `python3` agfsconsole.py

***************************************

AutoGadgetFS: USB testing made easy

***************************************

Enter IP address of the rabbitmq server: 127.0.0.1

Give your project a name?!:

工具運行截圖

中間人攻擊

82e73f6c-2c5b-11ed-ba43-dac502259ad0.jpg

USB設(shè)備模糊測試

8382367a-2c5b-11ed-ba43-dac502259ad0.jpg

主機端基于代碼覆蓋的模糊測試

839deea6-2c5b-11ed-ba43-dac502259ad0.jpg

基于字節(jié)的模糊測試

83b66198-2c5b-11ed-ba43-dac502259ad0.jpg

AutoGadgetFS命令行終端

83cd8dd2-2c5b-11ed-ba43-dac502259ad0.jpg

基于流量學(xué)習(xí)的智能Fuzzer

In [44]: x.devSmartFuzz(engine="smart",samples=5,filename="/home/raindrop/PycharmProjects/AutoGadgetFs/binariesdb/Nud-Nuvoton-1046-20764-1590421333.5169587-Nuvoton-1046-20764-1590421600.8067

...: 274-device.bin")                               

[+]General Statistics

Full charset                : !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~

Discarded charset           : !"#$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`ghijklmnopqrstuvwxyz{|}~

Final charset               : 0123456789abcdef

Word Length                 : 128

Lower Case index usage      : 92%

Lower Case index locations  : [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 121, 122, 124, 125, 127]

Upper Case index usage      : 0%

Upper Case index locations  : []

Digit index usage           : 96%

Digit index locations       : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 123, 126]

NonAN index usage           : 0%

NonAN index locations       : []

Counter statistics          : Uppercase: 0 , Lowercase: 133071, Digits:212017 , NonAlphaNumeric:0

All char Frequencies        :

character:5 found:5012 times

character:2 found:22563 times

character:3 found:12197 times

character:8 found:15008 times

character:4 found:13275 times

character:0 found:98056 times

character:1 found:17861 times

character:f found:87823 times

character:d found:7221 times

character:7 found:9614 times

character:a found:11148 times

character:6 found:10472 times

character:b found:8189 times

character:9 found:7959 times

character:c found:9172 times

character:e found:9518 times

***********************

generated:5 Packets

***********************

Out[44]:

['5608305852bf2ffd61770e2c827542f20be0b0fcba09db916bd07e1734b04cb0352b1d278068064d19f033bfad6fa90e53d865693fd4fee0214f00000eb0aa2c',

 '3b083595f276e2f1353a535c32f0f59516fc9328f7673bb80262c4da11c93683afe6dcff8a7a83018d78f41498a0da4d141ebd39c361b1724f2b00000eb0aa2c',

 '0120961963495c4dab9470738b497eddde07b0d70b357795ad9554d7964761969a6d997205e17eada6fa84eb33dcfb11412f75e04c195001283900000eb0aa2c',

 '091065d52127bbc6e840e02f8e1316f1c4d9c92a23931c00cdbb8c158368852ef8fabd461b98812b51ec84e1ccc5c04aaa366fbafabec623bd3500000eb0aa2c',

 '7300cc61151b7af27a578e766f49bebb2de68c48b37a00df1030ae464f456928eedd035303e697208bf58217af728a2a346fda5c8aef0335b82e00000eb0aa2c'

In [46]: x.edap.packets                                                                                                                                                                       

Out[46]:

['5608305852bf2ffd61770e2c827542f20be0b0fcba09db916bd07e1734b04cb0352b1d278068064d19f033bfad6fa90e53d865693fd4fee0214f00000eb0aa2c',

 '3b083595f276e2f1353a535c32f0f59516fc9328f7673bb80262c4da11c93683afe6dcff8a7a83018d78f41498a0da4d141ebd39c361b1724f2b00000eb0aa2c',

 '0120961963495c4dab9470738b497eddde07b0d70b357795ad9554d7964761969a6d997205e17eada6fa84eb33dcfb11412f75e04c195001283900000eb0aa2c',

 '091065d52127bbc6e840e02f8e1316f1c4d9c92a23931c00cdbb8c158368852ef8fabd461b98812b51ec84e1ccc5c04aaa366fbafabec623bd3500000eb0aa2c',

 '7300cc61151b7af27a578e766f49bebb2de68c48b37a00df1030ae464f456928eedd035303e697208bf58217af728a2a346fda5c8aef0335b82e00000eb0aa2c']

幫助模式

In [15]: x.help("")                                
Currently supported methods:
__________________________________________________________________________________________________________________________________________________________________

Method               ||-->Description

----------------------------------------------------------------------------------------------------------------------------

MITMproxy            ||-->This method creates a connection to the RabbitMQ and listen on received messages on the todev queue

____________________________________________________________________________________________________________________________

MITMproxyRQueues     ||-->This method reads from the queue todev and sends the request to the device its self.
____________________________________________________________________________________________________________________________

SmartFuzz            ||-->This method is generates packets based on what it has learned from a sniff from either the host or the device
____________________________________________________________________________________________________________________________

chgIntrfs            ||-->This method allows you to change and select another interface
____________________________________________________________________________________________________________________________

clearqueues          ||-->this method clears all the queues on the rabbitMQ queues that are set up

____________________________________________________________________________________________________________________________

clonedev             ||-->This method does not need any parameters it only saves a backup of the device incase you need to share it or use it later.

____________________________________________________________________________________________________________________________

createctrltrsnfDB    ||-->creates a SQLite database containing values that were enumerated from control transfer enumeration

____________________________________________________________________________________________________________________________

createdb             ||-->create the sqlite table and columns from usblyzer captures

____________________________________________________________________________________________________________________________

decodePacketAscii    ||-->This method decodes packet bytes back to Ascii

____________________________________________________________________________________________________________________________

describeFuzz         ||-->This method allows you to describe a packet and select which bytes will be fuzzed

____________________________________________________________________________________________________________________________

devEnumCtrltrnsf     ||-->This method enumerates all possible combinations of a control transfer request

____________________________________________________________________________________________________________________________

devReset             ||-->This method Resets the device

____________________________________________________________________________________________________________________________

devWrite             ||-->To use this with a method you would write to a device make sure to run the startSniffReadThread(self,endpoint=None, pts=None, queue=None,channel=None)

____________________________________________________________________________________________________________________________

devctrltrnsf         ||-->This method allows you to send ctrl transfer requests to the target device

____________________________________________________________________________________________________________________________

deviceInfo           ||-->gets the complete info only for any usb connected to the host

____________________________________________________________________________________________________________________________

deviceInterfaces     ||-->get all interfaces and endpoints on the device

____________________________________________________________________________________________________________________________

devrandfuzz          ||-->this method allows you to create fixed or random size packets created using urandom

____________________________________________________________________________________________________________________________

devseqfuzz           ||-->This method allows you to create sequential incremented packets and send them to the device

____________________________________________________________________________________________________________________________

findSelect           ||-->This method enumerates all USB devices connected and allows you to select it as a target device as well as its endpoints

____________________________________________________________________________________________________________________________

help                 ||-->AutogadgetFS Help method

____________________________________________________________________________________________________________________________

hostwrite            ||-->This method writes packets to the host either targeting a software or a driver in control of the device

____________________________________________________________________________________________________________________________

hstrandfuzz          ||-->this method allows you to create fixed or random size packets created using urandom and send them to the host queue

____________________________________________________________________________________________________________________________

monInterfaceChng     ||-->Method in charge of monitoring interfaces for changes this is called from def startMonInterfaceChng(self)

____________________________________________________________________________________________________________________________

newProject           ||-->creates a new project name if you were testing something else

____________________________________________________________________________________________________________________________

releasedev           ||-->releases the device and re-attaches the kernel driver

____________________________________________________________________________________________________________________________

removeGadget         ||-->This method removes the gadget from the raspberryPI

____________________________________________________________________________________________________________________________

replaymsgs           ||-->This method searches the USBLyzer parsed database and give you the option replay a message or all messages from host to device

____________________________________________________________________________________________________________________________

searchmsgs           ||-->This method allows you to search and select all messages for a pattern which were saved from a USBlyzer database creation

____________________________________________________________________________________________________________________________

setupGadgetFS        ||-->setup variables for gadgetFS : Linux Only, on Raspberry Pi Zero best option

____________________________________________________________________________________________________________________________

showMessage          ||-->shows messages if error or warn or info

____________________________________________________________________________________________________________________________

sniffdevice          ||-->read the communication between the device to hosts

____________________________________________________________________________________________________________________________

startMITMusbWifi     ||-->Starts a thread to monitor the USB target Device

____________________________________________________________________________________________________________________________

startMonInterfaceChng||-->This method Allows you to monitor a device every 10 seconds in case it suddenly changes its interface configuration.

____________________________________________________________________________________________________________________________

startQueuewrite      ||-->initiates a connection to the queue to communicate with the host

____________________________________________________________________________________________________________________________

startSniffReadThread ||-->This is a thread to continuously read the replies from the device and dependent on what you pass to the method either pts or queue

____________________________________________________________________________________________________________________________

stopMITMusbWifi      ||-->Stops the man in the middle thread between the host and the device

____________________________________________________________________________________________________________________________

stopMonInterfaceChang||-->Stops the interface monitor thread

____________________________________________________________________________________________________________________________

stopQueuewrite       ||-->stop the thread incharge of communicating with the host machine

____________________________________________________________________________________________________________________________

stopSniffing         ||-->Kills the sniffing thread strted by startSniffReadThread()

____________________________________________________________________________________________________________________________

usblyzerparse        ||-->This method will parse your xml exported from usblyzer and then import them into a database

____________________________________________________________________________________________________________________________

In [16]: x.help("findSelect")                                                                                                                                                                 

****

[+]Help for findSelect Method:

[-]Signature: findSelect(self, chgint=None)

[+]findSelect Help:

This method enumerates all USB devices connected and allows you to select it as a target device as well as its endpoints

審核編輯 :李倩
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    8438

    瀏覽量

    284416
  • 測試器
    +關(guān)注

    關(guān)注

    0

    文章

    54

    瀏覽量

    26620
  • 開源框架
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    9609

原文標題:AutoGadgetFS:一款針對USB設(shè)備的安全測試工具

文章出處:【微信號:技術(shù)讓夢想更偉大,微信公眾號:技術(shù)讓夢想更偉大】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    代打卡、定位飄、續(xù)航短?一款工業(yè)級巡檢手環(huán)給出全方案

    在工業(yè)安全巡檢與現(xiàn)場管理領(lǐng)域,傳統(tǒng)的“簽到式”巡檢早已無法滿足現(xiàn)代企業(yè)對閉環(huán)管理及人員安全的需求。近期,通過對DY-DLE-SSH巡檢智能手環(huán)的技術(shù)拆解與實戰(zhàn)測試,我發(fā)現(xiàn)這款設(shè)備并非簡
    的頭像 發(fā)表于 03-04 15:39 ?16次閱讀
    代打卡、定位飄、續(xù)航短?<b class='flag-5'>一款</b>工業(yè)級巡檢手環(huán)給出全方案

    開源項目BomberCat安全測試工具總體介紹

    硬件安全測試一款多技術(shù)融合的利器嗎?今天帶來一款開源安全測試工具, 集 NFC 與磁條兩大主
    的頭像 發(fā)表于 02-27 09:19 ?262次閱讀
    開源項目BomberCat<b class='flag-5'>安全</b><b class='flag-5'>測試工具</b>總體介紹

    MAX77789:一款高度集成的USB Type - C充電器芯片解析

    MAX77789:一款高度集成的USB Type - C充電器芯片解析 在電子設(shè)備的電源管理領(lǐng)域,充電器芯片的性能直接影響著設(shè)備的充電效率、安全
    的頭像 發(fā)表于 02-12 16:20 ?959次閱讀

    MAX77787:一款高性能的USB Type - C自主充電器

    MAX77787:一款高性能的USB Type - C自主充電器 在電子設(shè)備不斷發(fā)展的今天,高效、可靠的電池充電管理至關(guān)重要。MAX77787作為一款3.15A
    的頭像 發(fā)表于 02-12 16:20 ?942次閱讀

    深度解析RK3588芯片Linux測試工具集:硬件性能的全方位核驗方案

    在嵌入式開發(fā)領(lǐng)域,芯片的穩(wěn)定性和性能表現(xiàn)直接決定了終端產(chǎn)品的品質(zhì)。針對 Rockchip 旗艦芯片 RK3588,其配套的 Linux 測試工具集rockchip-test堪稱套“全能體檢儀
    的頭像 發(fā)表于 02-09 17:06 ?1056次閱讀
    深度解析RK3588芯片Linux<b class='flag-5'>測試工具</b>集:硬件性能的全方位核驗方案

    軟件測試工具深度解析?

    WinAMS是一款面向嵌入式系統(tǒng)(特別是汽車電子、航空電子等安全關(guān)鍵領(lǐng)域)的專業(yè)軟件測試平臺。它集成了自動化測試、深度覆蓋率分析、精準目標機驗證及全流程合規(guī)支持等核心能力,旨在幫助工程
    的頭像 發(fā)表于 01-26 14:23 ?118次閱讀

    請問CW32系列MCU的調(diào)試工具是哪一款

    CW32系列MCU的調(diào)試工具是哪一款?
    發(fā)表于 01-07 07:11

    深度剖析TS3USB3000:一款高性能的USB與MHL開關(guān)芯片

    深度剖析TS3USB3000:一款高性能的USB與MHL開關(guān)芯片 在電子設(shè)備的設(shè)計中,對于信號切換和傳輸?shù)男枨笕找嬖鲩L,尤其是在處理高速信號時,需要
    的頭像 發(fā)表于 12-23 14:25 ?347次閱讀

    Postman:一款被忽視的強大的API開發(fā)和測試工具

    Postman的發(fā)展史 Postman是一款強大的API開發(fā)和測試工具,它于2012年創(chuàng)建,最初是作為個Chrome瀏覽器插件推出的。由于其大受歡迎,隨后推出了web網(wǎng)頁版和桌面客戶端。現(xiàn)在
    的頭像 發(fā)表于 11-26 14:11 ?339次閱讀

    嵌入式軟件測試與專業(yè)測試工具的必要性深度解析

    嵌入式系統(tǒng)作為控制、監(jiān)視或輔助裝置運行的專用計算機系統(tǒng),其軟件測試面臨著獨特的挑戰(zhàn)和嚴格的要求。專業(yè)測試工具在嵌入式軟件開發(fā)過程中發(fā)揮著不可替代的作用,是確保系統(tǒng)可靠性和安全性的關(guān)鍵保障。嵌入式軟件
    發(fā)表于 09-28 17:42

    請問AIROC? Bluetooth?測試和調(diào)試工具_1.4.2是否支持CYW9RPIWIFIBT-EVK ?

    我想知道AIROC? Bluetooth?測試和調(diào)試工具_1.4.2 是否支持 CYW9RPIWIFIBT-EVK 的Bluetooth?測試? 我查看了該軟件的用戶指南,在第1.3節(jié)中似乎表明
    發(fā)表于 06-25 08:09

    開源工具 Made with KiCad(131):BomberCat 安全測試工具

    “? BomberCat 是個結(jié)合硬件開發(fā)與安全測試的開源工具,主要面向電子工程和網(wǎng)絡(luò)安全領(lǐng)域。用于檢測銀行終端、門禁系統(tǒng)等
    的頭像 發(fā)表于 06-19 11:18 ?8002次閱讀
    開源<b class='flag-5'>工具</b> Made with KiCad(131):BomberCat <b class='flag-5'>安全</b><b class='flag-5'>測試工具</b>

    RT-Trace調(diào)試工具正式發(fā)布!

    5月20日,RT-Thread官方預(yù)售了首調(diào)試工具RT-Trace,獲得了開發(fā)者及企業(yè)用戶的廣泛關(guān)注與支持。RT-Trace調(diào)試工具結(jié)束預(yù)售階段,即日起正式發(fā)布!RT-Trace是一款
    的頭像 發(fā)表于 06-18 12:02 ?1479次閱讀
    RT-Trace調(diào)<b class='flag-5'>試工具</b>正式發(fā)布!

    如何在Visual Studio 2022中運行FX3吞吐量基準測試工具

    我正在嘗試運行 John Hyde 的書“SuperSpeed by Design”中的 FX3 吞吐量基準測試工具。 但是,我面臨些困難,希望得到任何指導(dǎo)。 具體來說,我正在使用 Visual
    發(fā)表于 05-13 08:05

    告別復(fù)雜操作:一款在樹莓派上測試操作系統(tǒng)的免費工具

    BalenaEtcher是一款有趣的免費工具,可用于創(chuàng)建可啟動的SD卡和USB驅(qū)動器。我經(jīng)常用它來在我的RaspberryPi上測試新的操作系統(tǒng),但你也可以用它來安裝新的Linux發(fā)行
    的頭像 發(fā)表于 03-25 09:38 ?1336次閱讀
    告別復(fù)雜操作:<b class='flag-5'>一款</b>在樹莓派上<b class='flag-5'>測試</b>操作系統(tǒng)的免費<b class='flag-5'>工具</b>!