網(wǎng)安 | 利用ShellCode生成木馬
一、利用Python執(zhí)行ShellCode
1、支持的源碼格式
2、生成ShellCode
生成的內(nèi)容如下:
3、編寫Python加載器
4、MSF監(jiān)聽實現(xiàn)反彈
5、利用Pyinstaller打包Python代碼為可執(zhí)行程序
在生成的目錄下找到pyshell.exe,實現(xiàn)與MSF的連接。(通常此時殺毒軟件會預(yù)警)。
使用Java加載Java版本的ShellCode:
https://www.4hou.com/index.php/posts/j6xW
二、使用Python 64位版加載器
1、生成x64位的ShellCode
2、使用64位版Python加載器
3、在64位的Python環(huán)境安裝PyInstaller,同樣可以生成exe文件。
上述加載器代碼更加簡潔,但是無論怎樣的ShellCode,或是生成exe木馬,均無法過殺毒軟件,所以需要免殺。
三、Python加載器實現(xiàn)免殺
1、Python編碼實現(xiàn)
https://www.cnblogs.com/f-carey/p/16577962.html
https://forum.butian.net/share/1690
2、ShellCode Loader
(1)下載:https://github.com/Axx8/ShellCode_Loader
(2)安裝Python和PyInstaller,安裝Pycrypto:pycryptodome,另外,本實驗需要Python 64位環(huán)境,最好使用最新版
(3)進(jìn)入Python插件目錄:\Python311\Lib\site-packages 將目錄 crypto 修改為大寫開頭:Crypto
(4)利用MSF或CobaltStrike生成C語言的ShellCode,如使用以下msfvenom命令生成:
或直接使用CobaltStrike生成也可以。
(5)運(yùn)行:Shellcode_encryption.exe payload.c 對ShellCode代碼進(jìn)行加密處理
(6)將生成的密文ShellCode 填至 ShellCode_Loader.py 里的 Data = '密文Shellcode' 處
(7)運(yùn)行ShellCode_Loader.py,確認(rèn)MSF或CobaltStrike是否上線
(8)利用PyInstaller生成可執(zhí)行程序,利用殺毒軟件進(jìn)行檢測,火絨目前不免殺,但是360免殺
四、加殼程序?qū)崿F(xiàn)免殺
壓縮殼:upx,aspack ,fsg ,pecompach
加密殼:ASProtect ,Armadillo(穿山甲),EXEcryptor,Themida,ZProtect
虛擬機(jī)殼:VMProtect
靜態(tài)掃描:文件特征,內(nèi)存特征,文件校驗和
動態(tài)監(jiān)控:hook,監(jiān)控API,函數(shù)調(diào)用,注冊表,文件操作
云查殺:云沙箱運(yùn)行前關(guān)注靜態(tài)特征,運(yùn)行后關(guān)注動態(tài)特征
https://github.com/HZzz2/python-shellcode-loader
https://github.com/HZzz2/python-shellcode-loader
pyinstaller --key 123456 --hidden-import=base64 可以刪除一些特征
靜態(tài)特征:ShellCode分段拼接,ShellCode和加載器代碼放到外部服務(wù)器上進(jìn)行下載,加載器代碼與分離,+加密 + 變量定義
內(nèi)存特征:花指令:無效或無意義的指令、
繞沙箱:
CS teamserver 啟動時,加載一個 profile 文件, 如jquery...profile