BISC:借用指令綜合計算
BISC是一個Ruby庫,用於演示如何構建借用的指令程式。BISC的目標是簡單,類似於傳統的組合語言程式,最小化幕後魔術,並允許用戶編寫簡單的宏。BISC由Dino Dai Zovi開發,用於Blackhat USA 2010的面向實際回報的程式設計,並用於保證開發培訓課程。
科技概述
BISC使用Ruby librex peparsey和PE scan庫掃描PE(或elfparsey和elfscan for ELF)模塊中的指令序列和未使用的數據空間,這些數據空間可以用來構造面向返回的程式。傳統的ROP程式設計依賴於將重用的指令組合成gadgets,然而BISC利用了借用的指令助記符,囙此,基於所提供的可執行文件中可用的指令,BISC更具有機會性。BISC通過掃描提供的可執行文件來實現這一點,這些檔案蒐索一條指令,然後是添加到BISC可用詞彙表中的“ret”。然後,可以從中選取該詞彙表來編寫並最終組裝一個借來的用於開發的指令程式。
peparsey
pescan
elfparsey
elfscan
安裝
窗戶
BISC最受測試和支持的安裝是在使用Cygwin外殼的Windows上。請注意,BISC使用librex gem,Windows Defender將其標記為惡意軟件並將其删除。您應該在禁用Windows Defender的虛擬機器內運行BISC。
帶Cygwin的Windows上的BISC
注意:如果您的本地Windows電腦上安裝了Ruby和RubyGems,則此方法將不起作用。請參閱教程“帶Powershell的Windows上的BISC”。
從cygwin安裝程式安裝Ruby和git。
對於Ruby,只需從主包選擇視窗中選擇“Ruby”。這將自動安裝Ruby1.9.3以及所有需要的依賴項。對於git,展開Devel選項卡,查找名為“git”的包,並將此包標記為要安裝。
安裝Ruby的“bundle”gem
安裝BISC
帶Powershell的Windows上的BISC
安裝Ruby 1.9.3+
確保ruby bin目錄在您的路徑中
安裝捆綁包
安裝bisc
實例
有關如何使用BISC的示例,請參見examples/CreateThreadStage.rb。這個BISC程式創建一個新線程來運行嵌入式機器程式碼負載,然後在當前線程中運行“父”負載。
BISC程式是從cygwin外殼構建的:
./examples/CreateThreadStage.rb ./Shockwave-11.5.6r606/*.dll > CreateThreadStage.rop
測試必須在Windows CMD.exe shell中完成:
./data/test-rop.exe CreateThreadStage.rop ./Shockwave-11.5.6r606/*.dll
- @ddz(原作者)
- @dgalling公司
- @後現代
- @罌粟花
- @尼坦賈米