感谢宝子们对我的帮助!
特别感谢!存宝!翔哥!呜呜呜呜!
WP是简单的版本,因为做题的时候是远程好盆友的电脑,自己没有windows环境,所以代码和截图说明就没有那么多了,就简单版本!希望大家不要喷我!我就是记录一下!存个档!
可以看到题目说的是有一个exe
和一个sys
两个pe
文件,答案是两个token
,那么可以大胆的猜测是R0
层一个,R3
层一个
因为自己从R0
层开始分析的,所以这里分析的过程也从R0
层开始
PS:这里自己有个很大的坑,搞了很久才知道,题目中(关闭windows defender等杀软后,先运行exe后需自行加载sys驱动,驱动加载返回值为31则驱动加载成功。此时,程序会写入两段shellcode到内存中)这个位置我双击调试的时候,因为没有很耐心的等待sys驱动加载完,立刻断下来开始搞的导致无法出现蓝屏的情况,这个问题搞了很久(所以这里要注意一下)
在R3
程序启动后,R0
程序启动后,R0
返回值为0x31
,这个一般不是一个正确的返回值
这个时候打开其他的调试工具的时候,会发生蓝屏的现象,蓝屏的错误代码 0xace
根据这个想法来说的话,在驱动加载后返回0x31
的情况下,进行了一个检测,并且导致蓝屏,那么很好的可以猜到很可能是起了一个内核线程,直接断PsCreateSystemThread
(然后经过漫长的等待,因为驱动加了vmp跑的很慢)
这时候断下后发现这个地址有点不太对劲
直接uf
看一下这个地址,这里能看到这个0xACE
的值,和上面一堆的xmm
的操作,并且这个位置是无模块的,直接dump
下来看看是什么
直接丢在ida
里f5
看一下
这里做了一些xor的操作,我是进行了解密
解密出来的是token:
, %02x
这种东西,这里还是一个while(1)
,所以直接bp
地址过来看看是什么东西
可以发现是DbgPrintEx
,但是如果想在调试器中输出需要把该函数的level
改了
直接把Level
修改成0
token:8b3f14a24d64f3e697957c252e3a5686
这个题也可以直接用winark
(https://github.com/BeneficialCode/WinArk)去做,直接看一下`system`的线程看看有没有奇怪的地址,直接`dump`即可
R3
程序,主要进行了远线程注入,这里直接hook WriteProcessMemory
这个时候会发现有四个地方写入
这里的Size 4
设置了标志位,来跟Ring 0
层进行Check
,这个也就是为什么我们在打开一次黑名单中的调试器的时候,会导致下一次直接报出查询到了,以及Ring 0
层检测后进行了蓝屏的原因
那么主要的大小还是这个Size
比较大的地方,直接dump
下来看看,发现有很多关于file
的操作?
其实看这个ring3
的vm
还有点久(并没有看出什么东西,差点绕进去了)想了一下不如procmon
直接干看一下task
进程里的shellcode做了什么事情
可以发现是CreateFile Name Not Found
,这个估计又是和上面一样的思路,上面是dbgprintex
参数的问题,直接用ida
看一下,我们现在可以确定创建一个C:\2024GameSafeRace.token1
就可以看到token
啦
可以看到token
,这个时候我们看一下什么操作导致的
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2024-4-15 18:57
被L0x1c编辑
,原因: