首页
社区
课程
招聘
[原创]windows平台下的高级shellcode编程技术
发表于: 2015-2-12 09:50 21175

[原创]windows平台下的高级shellcode编程技术

2015-2-12 09:50
21175

网页版连接

http://blog.topsec.com.cn/ad_lab/windows%E5%B9%B3%E5%8F%B0%E4%B8%8B%E5%8A%9F%E8%83%BD%E6%80%A7shellcode%E7%9A%84%E7%BC%96%E5%86%99/

代码相关链接
http://pan.baidu.com/s/1pJkJhTD

doc在附件里面

好长时间没来看雪发帖都不太会发帖子了,嘎嘎。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 3
支持
分享
最新回复 (41)
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
2
没人占沙发,偶来占...  看了下blog  很赞...
2015-2-12 10:42
0
雪    币: 129
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
MARK一下,blog的确很赞~
2015-2-12 10:43
0
雪    币: 25
活跃值: (68)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
ShellCode从来都是自己写的表示,blog的确很赞~
2015-2-12 11:07
0
雪    币: 673
活跃值: (278)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
5
自己也冒个泡
2015-2-12 11:11
0
雪    币: 1088
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
很详细.,标记一下
2015-2-12 11:14
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zei
7
还是略麻烦。另外,x64也不需要汇编混合编译,参考ReflectiveDLLInjection。根据那工程,可以改个shell版的dll loader,shellcode就直接写dll即可。

#pragma intrinsic( _ReturnAddress )

ReflectiveLoader
{
...
uiLibraryAddress = caller();
...
#ifdef WIN_X64
	uiBaseAddress = __readgsqword( 0x60 );
#else
#ifdef WIN_X86
	uiBaseAddress = __readfsdword( 0x30 );
#else WIN_ARM
	uiBaseAddress = *(DWORD *)( (BYTE *)_MoveFromCoprocessor( 15, 0, 13, 0, 2 ) + 0x30 );
#endif
#endif
...
}
2015-2-12 11:36
0
雪    币: 673
活跃值: (278)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
8
累 不写了...
2015-2-12 11:41
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
9
清理一下 F1
2015-2-12 11:47
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
10
清理一下 F2
2015-2-12 11:49
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
11
清理一下 F3
2015-2-12 11:58
0
雪    币: 673
活跃值: (278)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
12
目前内存加载应用的时候可能存在的问题

dll里面有SEH

恶意代码为了实现多协议 TCP UDP DNS ICMP http  其中UDP通讯 为了用UDP稳定的传输大文件   用了UDT的库
UDT的库里面大量使用throw来抛出异常

或者说shellcode 用了BPE32 做了一下多态 BPE32使用SEH做自解密
单纯做dll内存加载没有问题(自己写EXE设置为不兼容dep)

做白利用的时候
白exe+恶意dll+shellcode.bin(是一个纯shellcode或者dll2shellcode的内存加载)

其中白EXE 默认兼容DEP(VS2003之后默认都有safeseh+兼容DEP设置) 由于safeseh的关系
你的黑dll(读进来dll2shellcode的  支持多协议的恶意代码主体 内存加载后跑一会 ) 由于safeseh配合dep的关系EXE进程就退出了

求指教 怎么能做更完善的内存加载避免被safeseh配合DEP强行终止进程
我试过 使用SetProcessDEPPolicy 或者ntsetinformationprocess也无法避免safeseh 配合dep强行终止进程的问题
因为内存加载使用的是堆上的内存并且内存区间还不在.text段申请的堆内存的区域
除非你在编译的时候把exe那个不兼容DEP的选项勾选上或者你就是一段纯shellcode 放在.text段。
但是为了在UAC存在的情况下做启动项exe一定要是白的。没有办法用自己的不兼容DEP的exe
2015-2-12 12:10
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
13
清理一下 F4
2015-2-12 12:25
0
雪    币: 673
活跃值: (278)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
14
清理一下6
2015-2-12 12:30
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
15
,UDT你们不嫌体积大了点吗?  不过话说回来,要自己实现一个健壮的可靠传输UDP库还是挺复杂的
2015-2-12 12:33
0
雪    币: 673
活跃值: (278)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
16
清理一下5
2015-2-12 12:38
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
17
清理一下 F5
2015-2-12 12:41
0
雪    币: 673
活跃值: (278)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
18
清理一下4
2015-2-12 12:43
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
19
清理一下 F6
2015-2-12 12:49
0
雪    币: 673
活跃值: (278)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
20
清理一下3
2015-2-12 12:50
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
21
清理一下 F7
2015-2-12 12:55
0
雪    币: 673
活跃值: (278)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
22
清理一下2
2015-2-12 12:57
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
23
清理一下 F8
2015-2-12 13:00
0
雪    币: 673
活跃值: (278)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
24
清理一下
2015-2-12 13:02
0
雪    币: 673
活跃值: (278)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
25
版主看看 能不能把我们清理一下的回复给删掉 或者怎么删掉啊 留着总是不好看的样子
2015-2-12 15:02
0
游客
登录 | 注册 方可回帖
返回
//