首页
社区
课程
招聘
[原创]Atom-Bombing注入方式实现,附简化版源码
发表于: 2018-1-17 19:42 6001

[原创]Atom-Bombing注入方式实现,附简化版源码

2018-1-17 19:42
6001

1\根据作者思路,重写了代码,大概300行. 去掉了一些学习过程中没必要的代码.

2\这源码是没过CFG和堆栈地址检查的第一版,也就是原博客文章第一篇;过CFG和堆栈地址检查的是原博客文章第二篇(作者说为了避免被坏人利用,没放源码)

3\转眼间就从15PB毕业了, 感谢老师和同学们的帮助!

4\在重写过程中,碰到了许多问题,我会在"三"中一一列出. 这些问题,对我来说,都是那种"第一次震惊"的类型

5\"二"中主要讲实现思路(基本就那篇博客讲的,重复)

6\就一个CPP直接加到工程里就行, 一个PID, 指定目标进程PID.  32位, 或wow64process

把剩余过cfg和堆栈检查的做了,现在可以日notepad和mspaint了


修改:

  1\ROPList放到目标线程堆栈中,放的位置比较随意,故可能放到stack RW+Guard部分,也可能覆盖线程堆栈数据.

  2\shellcode中开始那一段就没有必要了

  3\大部分代码作者都提供了,抄的作者代码.

此文章为本人原创, 未经本人允许, 可随意转载.  哈哈哈

  


1\NtQueueApcThread(x,x,x,x,x) 跟QueueUserApc类似,前者支持queue 3个参数的函数,后者支持queue 1个参数的函数.
2\GlobalAddAtomA(W)和GlobalGetAtomNameA(W)可以用来进行跨进程数据传递.
3\寻找目标进程中的Alertable 线程方式: 在本进程中,为每一个目标进程中的线程创建一个Event, 通过DuplicateHandle使得本进程句柄在目标进程中有效,再对每一个线程QueueUserApc(SetEvent,x,x),之后WaitForMultipleObjects即可找到一个Alertable线程.  (有关清理目标进程中的句柄, 作者用了DuplicateHandle(x,x,x,x,x,x,DUPLICATE_CLOSE_SOURCE)这种方式,我觉得蛮巧妙)
4\在目标进程中寻找RW区域,作者就找了kernelbase.dll的.data段+SizeOfRawData,这个位置.  这一点,有问题.(这个位置后面的空间并非不用的)

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 775
活跃值: (2292)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
感谢整理与分享
2018-1-17 20:11
0
雪    币: 719
活跃值: (777)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
3
MARK
2018-1-17 20:21
0
雪    币: 914
活跃值: (2478)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
4
然而并没有什么卵用
只能说是一种注入方式而已
2018-1-19 11:21
0
游客
登录 | 注册 方可回帖
返回
//