白加黑木马开发思路
原文鏈接:https://bbs.pediy.com/thread-178628.htm
一、什么是白加黑
白就是此文件在殺軟的白名單中,不會被殺軟查殺;黑就是我們的惡意代碼,由自己編寫。通常白黑共同組成木馬的被控端,最大限度的逃避殺軟查殺,增強抗殺能力,而且方便免殺處理。一般情況下白為exe(帶有簽名),黑為dll或者其他,當然黑可以分成多部分。二、白加黑木馬的結構
1.Exe(白) ---load---> dll(黑)
2.Exe(白) ---load---> dll(黑)---load---> 惡意代碼
為了方面免殺,我的建議是選擇第二種,即被控端真正由三部分組成,第二部分中的代碼要少,把核心都組織到第三部分,最好做成shellcode,在第二部分中call一下即可,這樣做有個好處就是:第一部分不可能被殺,第三部分經過多態變形處理后,每次不一樣,通常也不殺,然后免殺的主要任務將集中到第二部分那很少的代碼上,而且是dll,很容易免殺。
三、尋找白exe
這樣的exe很多,但是他必須滿足一下一些條件才行:
1.帶有正規廠商的簽名
2.依賴最小,不同的windows版本下都可以運行
3.Exe調用了自己的dll
4.盡可能的小點
四、編寫黑dll
按照他原來dll的輸出表構造編寫一個偽造的dll, 在dll中的合適位置編寫加載shellcode的代碼,于是exe+dll共同組成了一個shellcode加載器。
五、編寫shellcode
這里我的經驗是不要手工用匯編寫,這樣的話一個完整的被控端太費時間,也太難維護,我的辦法是把一個完整的dll轉化成shellcode,所以被控端寫成一個dll,然后三下五除二轉成shellcode,很快很利索,然后多態引擎變形即可。
六、如何將三部分合成一個exe
仁者見仁,智者見智,關鍵是合成后,這個安裝器別被殺,呵呵
反反復復,折折騰騰,成品如下,望愛好者共同研究:
上傳的附件:
- 圖片1.png (31.62kb,37次下載)
- 圖片2.png (49.05kb,32次下載)
總結
- 上一篇: 判断程序是否运行在虚拟机中的代码
- 下一篇: “白加黑”远控木马技术分析及手杀方案