fanny equation 1

(在搜索'fanny'之前,我一直把它当作'funny',看到baid结果后又学到新知识。)

相关背景:A Fanny Equation: "I am your father, Stuxnet" | Securelist 

环境:vista sp2 32

工具:windbg,vc6.0

fanny.dll包含有漏洞的利用过程,下面简单记录如何让它跑起来并在相应的系统环境下触发漏洞修改NtShutdownSystem的代码作为下一步的跳板。首先需要对fanny.dll做一点处理,因为在DllMain中有检测环境的逻辑得给他去掉,让DllMain直接返回true而不执行相关逻辑;再通过硬编码调用vista 系统对应的利用函数(利用过程及漏洞原因感兴趣的可以看看,我不是太了解这个)。

DllMain中修改2处:

1处

修改后,fdwReason=1,eax=1,eax-5=-4,后面的条件都不匹配,逻辑也不会执行

2处

修改后,eax的值还是fdwReason=1,true;这样DllMain就正常返回,后面就可以通过模块的基址加上函数偏移来调用目标函数。

修改完成之后,通过LoadLibrary加载fanny.dll,再模块基址加偏移调用vista 版本的利用函数。

在利用函数中还有一处是检查名为‘prkMtx'的mutex是否存在,如果不存在就停止执行,这里在调试的时候要将检查结果改为true,或者在自己的加载程序中创建'prkMtx'。

成功执行后,NtShutdownSystem的代码就被修改成立跳板,不过跳到的地方代码执行就相当于在r0环境下,因为是直接从r0 jmp .

jmp 0008:00400200, 8代表什么意思搞忘记了,之前好像看到过;0x400200 是要跳转过去的地方,在r3。

20221226

0008:00400200中的0008表示段选择子,用来决定当前段的环境,0008表示的是r0环境。关于段选择子详细可以参考:https://blog.csdn.net/weixin_45678798/article/details/125222624 。这种攻击方式,直接将r0的代码放在r3,然后触发执行。不过从win8开始,系统引入SMEP 安全机制来阻止类似的攻击。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值