首页
社区
课程
招聘
[原创]0day第12.3.1章节--Ret2Libc实战之利用ZwSetInformationProcess
发表于: 2019-2-28 12:00 3909

[原创]0day第12.3.1章节--Ret2Libc实战之利用ZwSetInformationProcess

2019-2-28 12:00
3909

学习笔记记录~
括弧:感觉不会用md,附件更清晰一点……

图片描述
核心是0x7C93CD24行代码,检查al是否等于1,如果等于1则执行关闭DEP的流程。

1、使用OD插件OllyFindddr DEP->Disable DEP <= XP SP3查找命令:
图片描述
2、仍按上述操作通过step2找到mov al,1指令:
图片描述
为避免地址截断,我们选择0x7C80C190
3、写好程序,用OD调试,观察:

4、搜索字符串,在‘ok’处下断点,单步运行,程序正常跳转到0x7C80C190处
图片描述
5、单步继续,来到LdrpCheckNXCompatibility函数里面
图片描述
图片描述
6、但程序没执行几步,就发生了异常。
图片描述
这是因为执行到0x7c95f70e处mov dword ptr ss:[ebp-0x4],esi 时,ebp为0x90909090,因为写入异常。

要解决这个异常需要调整ebp的值

问题:如何使ebp指向一个能够写入的位置呢?这个位置怎么找呢?
答案:通过Push esp POP ebp retn指令将EBP定位到一个可写的位置(和ESP相同的位置)
1、使用OllyFindAddr插件,在Disable DEP <= XP SP3搜索结果的setp3查看符合条件的指令,这里我们选第二个0x5D1D8B85(RET 4指返回之后ESP-8)
图片描述
2、于是修改代码:

OD载入运行
图片描述
图片描述
图片描述
3、接着跳转到LdrpCheckNXCompatibility函数里面,0x7C95F70E没有报错
图片描述
4、继续单步,执行ZwSetInformationAddress函数
图片描述
5、继续单步,发现返回地址变成了0x4!这是怎么回事?
图片描述

观察,执行ZwSetInformationAddress函数之前
图片描述
之后
图片描述
这说明因为执行这个函数,导致了shellcode被覆盖。Shellcode覆盖不要紧,大不了不执行嘛,但是LdrpCheckNXCompatibility的返回地址也被覆盖了!这就导致出错!

##
提问2:为什么会被覆盖呢?
因为shellcode距离ESP太近了,导致栈操作时,shellcode被覆盖!因此,增大栈空间!抬高ESP的值。

提问:如何抬高ESP的值?
答案:通过RET + N操作(retn之后,ESP+N)
1、通过OllyFindAddr插件中的Overflow return address -> POP RETN+N选项查找相关指令
作者建议Number of pop =1 Number of ret = 0x28
图片描述
在搜索过程中,选取指令要求不能对ESP和EBP操作,否则将失去对程序的控制权。这里我们选择0x7C974A19

2、OD载入,此时ESP=0x0012FF34
图片描述
单步,发现ESP变成了0x0012FF3C,相差了8个字节!why?
图片描述
这是因为执行retn ESP-4 , 但指令是retn 0x4,因此ESP-8,因此执行完retn 0x28之后的返回地址在0x0012FF3C处!
单步,果然!
图片描述
因此在调整ESP大小时要留出4B的大小,
3、更改shellcode

OD载入
图片描述
单步,果然成功了!
图片描述
4、观察调用ZwSetInformationAddress函数前后,shellcode有没有被覆盖
调用之前:
图片描述
调用之后:
图片描述
没有被覆盖!
单步继续,执行完LdrpCheckNXCompatibility后,程序返回到0x41414141了!
图片描述

因为leave指令= mov esp,ebp pop ebp


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-3-1 11:15 被灿烂阳光编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 26398
活跃值: (63257)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
2
 希望能直接将文章内容放到帖子里
2019-2-28 13:40
0
雪    币: 565
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
Editor 希望能直接将文章内容放到帖子里
好的,谢谢建议~
2019-3-1 09:48
0
游客
登录 | 注册 方可回帖
返回
//