一段時間,我組成了一篇關於Malduino,基於Arduino的開源Badusb設備的文章。我發現這份工作令人著迷,所以我簽了一個精英版,也可以肯定,友好的郵遞員在上週五在我的郵箱中刪除了它,這意味著我周末會在它周圍玩它。對於那些錯過了這篇文章的人來說,Malduino是USB小工具,它能夠模擬鍵盤以及注入擊鍵等。在適當的外殼時,它將看起來像USB閃存盤。這就像你在電影中看到的那些東西,那裡的一個人在一個小工具中插入,它可以自動破解計算機。它以兩個版本,Lite以及精英為基礎,均基於ATMEGA32U4。
Lite版本真正小,除USB連接器外,它只包含一個開關,它使個人能夠在運行和編程模式之間選擇,以及LED,指示腳本已完成運行時。
原始Malduino Elite草圖以及Lite原型
Elite版本更大,包括微SD卡訪問者以及四個DIP開關,使個人能夠選擇從卡中運行的腳本。它同樣具有LED,指示腳本已完成運行時。這使得個人才能脫落固件,只有在編程在Micro-SD卡中保存的擊鍵注射腳本時,與每次只需要運行不同的腳本時需要閃爍的Lite版本相反。
這些是兩種Malduinos,因為它們直接從Arduino IDE編程,我剛才提到的每個功能都可以重新編程,重新飾有或丟棄一致。您可以購買一個,只要選擇使用它就像’普通’Arduino,雖然沒有大量的銷釘。這種靈活性是我最喜歡它的第一件事,也是真正讓我參加人群資助的運動。簽出了全面審查。
硬件
Malduino Elite VS USB閃存驅動器
因此,精英板作為常規顯示,以及我發現自己很長時間才能看。儘管比Lite版本長,但它仍然很小,測量大約4.6厘米x 1.1厘米(×0.43英寸約為1.8英寸),您可以快速適應舊USB案例,雖然您必須削減一些DIP開關以及MICRO-SD卡的孔。在人群資助的活動中,原來的草圖是3個DIP開關版本,但最終的精英有四個,我發現了很好。我將它插入舊電腦,經過一些可能會發貨的固件以及它可能對我的筆記本電腦進行的固件,以及肯定出現了足夠的紅色LED。以及那是它。沒有其他的。
在玩開關和鍛煉一些RTFM之後,我意識到它船用的固件很可能是某種Q.c。取消測試,使MALDUINO輸出數字1至4(實際模擬KEYPRESS 1至4),具體取決於開關的開關。到目前為止這麼好,它的工作也可以看出比這一個更糟糕的PCB板。電路板有六針的孔,我沒有追溯到微控制器以及我不明白它們是什麼。
設置
設置Malduino需要安裝Arduino IDE以及與日期一樣多。您要求打開董事會管理器以及設置SparkFun板,因為精英被編程為以3.3 V以及8 MHz運行的“SparkFun Pro Micro”。然後您要求去馬爾提圭狗腳本轉換器網站,該網站提供了許多目的:
它可以在Lite之間轉換腳本以及精英版本
它使您可以選擇鍵盤設計語言
它自動為您提供arduino作業,以導入IDE
對於Elite版本,只需生成一個簡單甚至空腳本即可下載該項目,因為在“正常”操作中,您只需閃爍Malduino,然後使用Micro-SD卡來存儲新腳本。
關於閃爍的說明,如果您利用基於Debian的分發,您可能會遇到像我所做的一些問題,並不能刷新設備。像這個最有用的帖子上的個人一樣,我的調製解調器經理在每次重置後都試圖與Malduino交談,並且困惑趨於困惑。解決方案是將Udev規則添加到“/etc/udev/rules.d/77-mm-usb-device-blacklist-local.rules”,Keudos to [Socrim]:
1
2
3.
4.
5.
6.
7.
8.
動作!=“添加|更改”,goto =“mm_usb_device_blacklist_local_end”。
子系統!=“USB”,GOTO =“mm_usb_device_blacklist_local_end”。
env {devtype}!=" USB_DEVICE“,GOTO =”MM_USB_DEVICE_BLACKLIST_LOCAL_END“
attrs {idvendor} ==“1b4f” attrs {iDproduct} ==“9204”,env {id_mm_device_ignore} =“1”。
attrs {idvend.或} ==“1b4f”。 attrs {iDproduct} ==“9203”,env {id_mm_device_ignore} =“1”。
label =“mm_usb_device_blacklist_local_end”。
軟件
由於我正在運行Linux,以運行命令的快速快捷方式是Alt-F2組合。因此,我腳本進入數據,並將其保存到1111.txt。 ELITE在微SD卡中搜索對應於當前DIP開關狀態的數據。允許說明DIP開關2以及4打開。在這種情況下,軟件應用程序嘗試發現命名為0101.txt的數據以及解析其內容(如DIP開關訂單1,2,3,4以及NOWS 2的二進製表示以及4 )。當它完成時,紅色LED開始快速閃爍。我的簡單腳本是:
1
2
3.
4.
5.
6.
7.
8.
9.
10.
延遲2000.
alt f2.
延遲1000.
字符串xterm.
延遲1000.
進入
延遲1000.
字符串ID.
延遲1000.
進入
但它沒有工作。然而,幾乎所有命令都工作了,但Alt-F2組合沒有正常工作。關閉,無論不雪茄。沒有alt-f2,沒有運行命令窗口。我已經懶得瀏覽了源代碼一點,因為我真的沒有在我手上有大量時間,但是我需要弄清楚這一點。違規代碼是:
1
2
3.
4.
5.
6.
否則if(等於(s,e," F1“,3))鍵盤。(KEY_F1);< / pre>
否則如果(等於(s,e," F2),3))鍵盤。按(KEY_F2);
……
否則if(等於(s,e,",3))鍵盤。按(KEY_F10);
否則if(等於(s,e," F11“,3))鍵盤。按(KEY_F11);
自定義等於功能對於功能鍵的字符串,尺寸為3,如“F2”。對於“F10”,“F11”以及“F12”而言,這是可以的,但是鑰匙的其餘部分失敗。改變3到2的訣竅,但是我的葡萄牙語鍵盤設計開始乾擾其他測試腳本。因此,我更改了代碼,包括PT以及英國佈局,在編譯時將它們更改為#define。
如果有可能從計算機中訪問SD卡作為例程USB卷,則會很棒。我不明確地理解是多少可行,但它不包括當前固件。我仍然希望能夠將SD卡上任意數據的材料輸出到屏幕,因此我添加了一個名為echofilehex的腳本函數,該腳本函數將SD卡中的數據的材料輸出為GetAway字符。例如,如果數據A.txt包含“AAA”,則腳本命令echofilehex a.txt將輸出“\ x41 \ x41 \ x41”。這對於將二進制數據呼吸到PrintF或Echo -e中,這可能是有用的,在Linux中至少保持。
與此同時,我有一些難以閱讀原始代碼。你知道,我們所有人都有不同的編程風格。不要讓我錯了,我已經被理解為撰寫一些匯款意大利麵條代碼。我有時會搜索舊的工作,尋找一些我編碼的Libs或課程以及誰的帖子組成了這個蒸的代碼?’我,這是我。無論如何,我開始在這裡修改一點,以及最終改變了整個代碼。這是美麗以及開源的詛咒。如果你好奇,你可以在這裡檢查一下。
結論
總而言之,儘管有一些顛簸,但我很高興馬爾提諾諾。這就是我的預期:在其初期的Badusb攻擊的開放平台。我們可以使用它的所有修補程序,定制它是令人難以置信的,使其更好或使其適合我們的需求。我希望一個真正的鄰里可以開始,所以我們可以看到它的完整前景。我的簡短列表包括模擬其他USB設備,更好的SD卡管理,以及通過未使用的引腳擴展小配件。你會添加什麼?
這是一個漫長的方法,也可以出錯,這麼偉大的運氣[seytonic]!