渗透

介绍:

渗透测试或者漏洞评估的过程当中,提权是很是重要的一步,在这一步,黑客安全研究人员经常经过exploit,bug,错误配置来提高权限。本文的例子都是在虚拟机里测试的,不一样的虚拟机能够从Vulnhub下载。python

 

实验一:利用Linux内核漏洞提权

VulnOS version 2是VulHub上的一个Linux提权练习,当打开虚拟机后,能够看到
linux

20160831091128377

获取到低权限SHELL后咱们一般作下面几件事web

1.检测操做系统的发行版本shell

2.查看内核版本vim

3.检测当前用户权限安全

4.列举Suid文件bash

5.查看已经安装的包,程序,运行的服务,过时版本的有可能有漏洞post

$ lsb_release -a

查看系统的发行版本测试

 

20160831091129379

 

$ uname -a

查看内核版本ui

 

20160831091130382

 

每次在提权的时候,咱们都会一次又一次的测试,咱们将搜索全部可能的提权技术,并依次应用,直到成功。咱们将测试不一样的内核exploit,也会暴力破解帐号。这个例子咱们知道操做系统采用的是Ubuntu 14.04.4 LTS,内核版本是3.13.0-24-generic,首先咱们尝试利用overlayfs,这个exploit会工做在Ubuntu 12.04/14.04/14.10/15.04的linux内核3.19以前和3.13.0以后,咱们测试一下。

咱们首先移动到/tmp目录,而后新建一个文件,粘贴exploit代码进去

依次运行:

$ cd /tmp $ touch exploit.c $ vim exploit.c

vim保存推出后,咱们编译代码

$ gcc exploit.c -o exploit

如今执行,若是提示没有权限,还需

chomd 777 ./exploit

$ ./exploit

 

20160831091131384

 

经过截图能够看到咱们已经获取到了root权限,接下来获取交互式的shell

$ python -c ‘import pty; pty.spawn(“/bin/bash”)’

若是提权失败了,我我的建议你测试几个其余的exploit,新的内核版本也能够试试

Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04) – ‘overlayfs’ Local Root Shell

https://www.exploit-db.com/exploits/37292/

Linux Kernel 4.3.3 (Ubuntu 14.04/15.10) – ‘overlayfs’ Local Root Exploit

https://www.exploit-db.com/exploits/39166/

Linux Kernel 4.3.3 – ‘overlayfs’ Local Privilege Escalation

https://www.exploit-db.com/exploits/39230/

最后核心提示:内核exploit提权有风险,有可能会崩溃系统。

 

 

实验2:利用低权限用户目录下可被Root权限用户调用的脚本提权

Mr.Robot是另外一个boot到root的挑战虚拟机,我拿这个例子来告诉你为何suid程序在提权的过程当中是重要的,若是你之前对suid没有了解,能够参考https://en.wikipedia.org/wiki/Setuid

咱们首先查看下当前用户

 

20160831091131387

 

 

经过截图能够得知,当前用户为"daemon",咱们接下来提权"daemon"到"root"

这台Ubuntu 14.04运行linux内核3.13.0-55-generic,我尝试已有的exploit都失败了。

 

20160831091131389

 

此次咱们经过寻找系统里能够用的SUID文件来提权。运行:

$ find / -perm -u=s -type f 2>/dev/null

获得以下列表:

 

20160831091132394

 

经过截图,咱们发现nmap竟然有SUID标志位,来看看nmap版本

 

20160831091134396

 

一个很是老的nmap版本,可是这个版本的nmap如何帮咱们提权呢?

nmap支持“interactive.”选项,用户可以经过该选项执行shell命令,一般,安全人员会使用该命令来避免他们使用nmap命令被记录在history文件中

 

20160831091135397
由于nmap有SUID位,因此经过“!sh”咱们会获取到一个root权限的shell

 

20160831091135398

 

在你的渗透过程,若是发现Nmap 3.48 有SUID位,能够按照本文的例子作下测试。

 

 

实验3:利用环境变量劫持高权限程序提权

PwnLad是笔者最喜欢的挑战,一个攻击者有几个帐号,可是都不是root权限。

咱们当前登陆的是"Kane"帐号,当前没有有效的内核exploit,也没有其余能够利用的suid文件

 

20160831091135399
只有在Kane的home目录下有一个“msgmike.”文件

 

20160831091136400

 

使用file命令查看下这个文件

20160831091136401

从截图能够看到,这是一个ELF 32位 LSB执行文件,可是当咱们执行文件的时候,报错了
20160831091137402
经过报错信息咱们能够看到msgmike调用cat命令读取/home/mike/msg.txt文件。

针对这种状况,咱们能够经过设置bash的$path环境变量来利用,一般的$PATH包含

 

20160831091137403

 

然而当咱们调用cat命令的时候,cat会从以上目录来寻找,若是咱们添加.到$PATH环境变量,则会先从当前目录来寻找cat指令

新建cat,添加执行权限

 

20160831091137404

 

这样当咱们再次运行./msgmike命令的时候,就会触发当前目录下的cat(/bin/sh),从而提权。完整的exploit以下

20160831091138410

相关文章
相关标签/搜索