当前位置:首页 > 经验 >

编写通用的shellcode(shellcode生成工具)

来源:原点资讯(www.yd166.com)时间:2022-11-07 08:31:00作者:YD166手机阅读>>

现在我们的指针指向InMemoryOrderModuleList是一个LIST_ENTRY结构,Windows定义这个为包含进程模块的双向列表。这个列表中的每项是指向LDR_DATA_TABLE_ENTRY结构的指针,这个结构是我们主要的目标,包含加载模块的所有地址和名字,因为模块加载的顺序可能改变,我们应该校验全名,以便选择包含我们要查找的函数的动态库,这能简单的通过在LDR_DATA_TABLE_ENTRY向前移40字节做到,如果名字匹配了,则正是我们寻找的那个,我们在结构中向前移16字节,能得到加载模块的地址。

1

1.mov edx, [edx 16]

编写通用的shellcode,shellcode生成工具(5)

得到函数地址的第一步完成了,现在我们有了包含要寻找的函数地址的DLL的基地址,我们不得不解析模块的导出地址表,以便能找到需要的函数地址,导出地址表能在PE可选头中定位到,从基址向前移60字节,我们有了DLL的PE头的内存地址,

编写通用的shellcode,shellcode生成工具(6)

最后我们需要通过公式(模块基地址 PE头地址 120字节)计算导出地址表的地址,我们能得到导出地址表(EAT)的地址,在得到EAT地址后我们能访问DLL导出的所有函数,微软描述IMAGE_EXPORT_DIRECTORY结构如下,

编写通用的shellcode,shellcode生成工具(7)

这个结构包含地址,名字和导出函数的数量,使用想通大小计算遍历技术能得到函数的地址,当然导出函数的顺序在每个版本中可能有变化,因此获取函数地址和名字前应该校验。你可以把这个方法理解为计算几个Windows数据结构的大小,并在内存中遍历,这里真正的挑战是建立一种稳定的名字比较机制来选择正确的DLL和函数,如果PEB解析技术太难实现,不用担心,有更简单的方法做到这个。

0x05 Hash API


metasploit项目中所有的shellcode几乎都使用了称为Hash API的汇编块,它是由Stephen Fewer编写的一个代码片段,且从2009年以来在metasploit中主要用于Windows shellcode,这个汇编代码块使得解析PEB结构变得容易,它使用基本的PEB解析逻辑和一些额外的哈希方法,使用函数和模块名的ROR13哈希计算法来快速查找需要的函数,使用这个块非常简单,它使用stdcall调用约定,唯一的不同是压栈的参数,需要使用ROR13计算函数名和DLL名的哈希。在压入必须的参数和函数哈希后,像之前解释的解析PEB块并找到模块名。在找到模块名后,计算ROR13哈希且将它保存到栈上,然后移到DLL的导出地址表中,计算每个函数的哈希和模块名哈希,如果匹配到我们要找的哈希,意味着想要的函数被找到了,最后Hash API使用栈上的参数跳转到找到的函数地址执行。它是一段非常优雅的代码,但是它的日子到头了,因为它的流行和广泛使用,一些AV产品和反利用缓解措施有专门针对这个代码块的检测,甚至一些AV产品使用Hash API使用的ROR13哈希作为识别恶意文件的特征,因为最近操作系统中的反利用缓解措施的改进,Hash API只剩下很短的生命周期,但是有其他方法来找到API函数地址,同时针对这种方法使用一些编码机制也能绕过主要的AV产品。

0x06 编码器/解码器设计


在开始设计前,读者应该知道的事实是只使用这个编码器不能生成完全躲避检测的shellcode,在执行shellcode后,解码器将直接运行并解码整段shellcode为它的原始格式,这个不能绕过AV产品的动态分析机制。

解码器的逻辑非常简单,它使用一个随机生成的多字节XOR密钥来解码shellcode,在解码操作完成后将执行它,在将shellcode放置在解码器头之前应该使用多字节的XOR密钥加密,且shellcode和XOR密钥应该在“<Shellcode>”,”<Key>”标签内,

编写通用的shellcode,shellcode生成工具(8)

栏目热文

shellcode指的是什么(shell脚本指什么)

shellcode指的是什么(shell脚本指什么)

网络安全的定义什么是网络安全?1、国际化标准组织(ISO)引用ISO-74982文献中对安全的定义:安全就是最大程度地减...

2022-11-07 08:46:49查看全文 >>

shellcode的原理与编写(shellcode代码)

shellcode的原理与编写(shellcode代码)

0x01 前言2019年,告别了coder的世界,告别了从前的生活。我决定暂时抛开金钱至上的价值体系,以一个Fuckin...

2022-11-07 08:20:19查看全文 >>

shellcode写法(简单shellcode学习)

shellcode写法(简单shellcode学习)

原文首发:看雪论坛 http://bbs.pediy.com/thread-217513.htm前言在构造一个shell...

2022-11-07 08:36:18查看全文 >>

shellcode加载器(shellcode编程揭秘)

shellcode加载器(shellcode编程揭秘)

shellcode是嵌入在恶意程序中的一段代码,在感染受害者的目标系统后,可以获取命令Shell代码,例如类UNIX操作...

2022-11-07 08:14:23查看全文 >>

shellcode 入门(shell编程入门教程)

shellcode 入门(shell编程入门教程)

payload和shellcode的区别Payload是是包含在你用于一次漏洞利用(exploit)中的ShellCod...

2022-11-07 08:13:49查看全文 >>

shellcode教程(shell编程免费教程)

shellcode教程(shell编程免费教程)

这是一套Linux Pwn入门教程系列,作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的一些题目和文章...

2022-11-07 08:30:05查看全文 >>

shellcode注入pdf(shellcode是如何生成的)

shellcode注入pdf(shellcode是如何生成的)

前言用于后开发的.NET仍然存在。它已与大多数C2框架捆绑在一起,移植了通用工具,添加(然后绕过了)AMSI,并且使用很...

2022-11-07 08:40:14查看全文 >>

湖南工商大学是最差的一本吗(湖南13所一本大学排名)

湖南工商大学是最差的一本吗(湖南13所一本大学排名)

本文由明眼人谈教育原创,欢迎关注,带你一起长知识!明眼人了解到,近日湖南工商大学一名学生在某招聘平台上寻找实习工作机会,...

2022-11-07 08:09:07查看全文 >>

考上湖南工商大学有前途吗(湖南工商大学档次)

考上湖南工商大学有前途吗(湖南工商大学档次)

湖南省,自古以来就是一个人才辈出的地方,从古至今一直都有着“唯楚有才”的说法,为我国的建设与发展提供了非常大的助力。到了...

2022-11-07 08:33:13查看全文 >>

张雪峰点评湖南工商大学(湖南工商大学专业排名)

张雪峰点评湖南工商大学(湖南工商大学专业排名)

上次,我们写了6所非985、211工程的学校,考生和家长们直呼太实用了!并希望再出一些录取分低、性价比高的学校~还没有看...

2022-11-07 08:23:15查看全文 >>

文档排行