首页
社区
课程
招聘
[原创]x64 Kernel 获取Ntos Base(无API非ASM)
2021-4-16 11:33 8910

[原创]x64 Kernel 获取Ntos Base(无API非ASM)

2021-4-16 11:33
8910

参考自单总发的帖子 : 帖子传送门 作者: @xiaofu

 

原理如上贴

 

优点:
用代码写 方便维护(?)
不用添加一个.asm文件 (一个算不上优点的优点)

 

缺点:
体积不够小

 

上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
uintptr_t get_ntos_base()
 
{
 
    auto Idt_base = reinterpret_cast<uintptr_t>(KeGetPcr()->IdtBase);
 
    auto align_page = *reinterpret_cast<uintptr_t*>(Idt_base + 4) >> 0xc << 0xc;
 
    for (; align_page; align_page -= PAGE_SIZE)
 
    {
 
        for (int index = 0; index < PAGE_SIZE - 0x7; index++)
 
        {
 
            auto current_address = static_cast<intptr_t>(align_page) + index;
 
            if (*reinterpret_cast<uint8_t*>(current_address) == 0x48
 
                && *reinterpret_cast<uint8_t*>(current_address + 1) == 0x8D
 
                && *reinterpret_cast<uint8_t*>(current_address + 2) == 0x1D
 
                && *reinterpret_cast<uint8_t*>(current_address + 6) == 0xFF)//48 8d 1D ?? ?? ?? FF
 
            {
 
                auto nto_base_offset = *reinterpret_cast<int*>(current_address + 3);
 
                auto nto_base_ = (current_address + nto_base_offset + 7);
 
                if (!(nto_base_ & 0xfff))
 
                {
 
                    return nto_base_;
 
                }
 
            }
 
        }
 
    }
 
    return 0;
 
}

 

用处:拿到nto_base以后可以自己检索导出表,获取函数地址,全程均无API调用(防止被人挂钩导入表 黑盒分析) 等...


如果写错了 或者 觉得哪里写的不好 望指正~


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2021-4-16 11:55 被淡然他徒弟编辑 ,原因:
收藏
点赞4
打赏
分享
最新回复 (6)
雪    币: 1564
活跃值: (3572)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
xiaofu 8 2021-4-16 14:15
2
0
配合spoof call,无解
雪    币: 5860
活跃值: (4427)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
淡然他徒弟 1 2021-4-16 16:08
3
0
xiaofu 配合spoof call,无解

偶像回复了  单总奥利给

最后于 2021-4-16 16:09 被淡然他徒弟编辑 ,原因:
雪    币: 659
活跃值: (2592)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tmflxw 2021-4-20 22:12
4
0
win7 x64直接挂掉
雪    币: 5860
活跃值: (4427)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
淡然他徒弟 1 2021-4-21 04:13
5
0
tmflxw win7 x64直接挂掉

我测试是没问题的哈~


蓝屏建议你把dump发上来 或者 检查自己的代码


或者自己双机调试确定问题~

最后于 2021-4-21 04:15 被淡然他徒弟编辑 ,原因:
雪    币: 16
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
WindBlow小迪 2021-4-26 20:59
6
0
Win10上会有问题 ntoskrnl.exe区域会存在无效内存
雪    币: 5860
活跃值: (4427)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
淡然他徒弟 1 2021-4-27 02:07
7
0
WindBlow小迪 Win10上会有问题 ntoskrnl.exe区域会存在无效内存
如果有问题 请提供你的dump哦~

win7 win10我都测试过了 正常情况下 都没有问题~

非正常情况 我暂时没遇到过~
游客
登录 | 注册 方可回帖
返回