调用门提权操作

1。调用门在gdt表中 在dgt表中注册一个回调函数 然后调用 提权
与中断相同
操作

nt!DbgBreakPointWithStatus+0x4:
83eb2110 cc              int     3
kd> r gdtr
gdtr=80b95000
kd> dq 80b95000 L30
80b95000  00000000`00000000 00cf9b00`0000ffff
80b95010  00cf9300`0000ffff 00cffb00`0000ffff
80b95020  00cff300`0000ffff 80008b1e`400020ab
80b95030  834093f6`2c003748 0040f300`00000fff
80b95040  0000f200`0400ffff 00000000`00000000
80b95050  830089f6`00000068 830089f6`00680068
80b95060  00000000`00000000 00000000`00000000
80b95070  800092b9`500003ff 00000000`00000000
80b95080  00000000`00000000 00000000`00000000
80b95090  00000000`00000000 00000000`00000000
80b950a0  86008961`71c00068 00000000`00000000
80b950b0  00000000`00000000 00000000`00000000
80b950c0  00000000`00000000 00000000`00000000
80b950d0  00000000`00000000 00000000`00000000
80b950e0  00000000`80b95100 00009200`0000ffff
80b950f0  830098e6`f97003b2 00009200`0000ffff
80b95100  00000000`80b95108 00000000`80b95110
80b95110  00000000`80b95118 00000000`80b95120
80b95120  00000000`80b95128 00000000`80b95130
80b95130  00000000`80b95138 00000000`80b95140
80b95140  00000000`80b95148 00000000`80b95150
80b95150  00000000`80b95158 00000000`80b95160
80b95160  00000000`80b95168 00000000`80b95170
80b95170  00000000`80b95178 00000000`80b95180

修改
eq 80b95060 0045ec00`00080850

kd> dq 80b95000 L30
80b95000  00000000`00000000 00cf9b00`0000ffff
80b95010  00cf9300`0000ffff 00cffb00`0000ffff
80b95020  00cff300`0000ffff 80008b1e`400020ab
80b95030  834093f6`2c003748 0040f300`00000fff
80b95040  0000f200`0400ffff 00000000`00000000
80b95050  830089f6`00000068 830089f6`00680068
80b95060  0045ec00`00080850 00000000`00000000
80b95070  800092b9`500003ff 00000000`00000000
80b95080  00000000`00000000 00000000`00000000
80b95090  00000000`00000000 00000000`00000000
80b950a0  86008961`71c00068 00000000`00000000
80b950b0  00000000`00000000 00000000`00000000
80b950c0  00000000`00000000 00000000`00000000
80b950d0  00000000`00000000 00000000`00000000
80b950e0  00000000`80b95100 00009200`0000ffff
80b950f0  830098e6`f97003b2 00009200`0000ffff
80b95100  00000000`80b95108 00000000`80b95110
80b95110  00000000`80b95118 00000000`80b95120
80b95120  00000000`80b95128 00000000`80b95130
80b95130  00000000`80b95138 00000000`80b95140
80b95140  00000000`80b95148 00000000`80b95150
80b95150  00000000`80b95158 00000000`80b95160
80b95160  00000000`80b95168 00000000`80b95170
80b95170  00000000`80b95178 00000000`80b95180

源码

#include <stdio.h>
#include <windows.h>
int g_Gdt2 = 0;
_declspec(naked) void fun()   //450850
{
    __asm
    {
        push eax;
        mov eax, dword ptr ds : [0x80b95060]; //注册的回调地址
        mov g_Gdt2, eax;
        pop eax;
        retf;
    }
}
//  eq xxxx ec00 0008xxxx
int main()
{
                                        //0x63( 0110 0011)      01100   0   11
                                                                 //1100 第12个
    char buf[6] = { 0x00,0x00,0x00,0x00,0x63,0x00 }; //反着看 

    __asm
    {
        call fword ptr ds : [buf];//相当于 call cs:0xXXXX   目的就是切换段选择子
    }
    printf("%x\n", g_Gdt2);
    system("pause");
}

调用门提权操作

转载于:https://blog.51cto.com/haidragon/2131252

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值