GoldenEye-v1(vulnhub)靶机练习实践报告

2024-05-28 14:28

本文主要是介绍GoldenEye-v1(vulnhub)靶机练习实践报告,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GoldenEye-v1****靶机练习实践报告

一、安装靶机

靶机是.ova文件,需要用VirtualBox打开,但我习惯于使用VMWare,因此修改靶机文件,使其适用于VMWare打开。

解压ova文件,得到.ovf文件和.vmdk文件。

img

用记事本打开.ovf文件并修改“vssd:VirtualSystemType”为自己的VMWare版本,此处我用的是是vmx-15.5.1。

img

打开靶机后,用nmap工具竟然扫不到ip,排查下来该靶机默认网络连接方式是“主机模式”,修改为“NAT模式”即可。

二、夺旗步骤

第一步:IP扫描,端口扫描

img

img

我们看到该靶机的80端口打开,因此在浏览器中访问,提示导航到/sev-home/,导航过去,提示输入用户口令。

img

没有头绪如何处理就去看源码,果然在terminal.js里面看到了提示,HTML编码的“InvincibleHack3r”密码解码后是“InvincibleHack3r”,注释中还提到”Boris用默认密码”,这一串密码也不像是默认密码,可能是提示其他地方。

img

使用口令“Boris:InvincibleHack3r”登陆,竟然错误,这里还有一个小坑需要注意,用户名是“boris”。登陆后又有提示,pop3服务部署在大端口上,结合nmap扫描结果,猜测是端口55006,55007。

img

查看网页源码,又看到一个藏在注释里的提示,pop3的用户名由两个“Boris”和“Natalya”。

img

前面注释中提示boris用的是默认密码,用字典库跑一下试试。爆破出pop3服务的两组用户口令,“boris:secret1!”、“Natalya:bird”。

img

用Foxmail登陆boris和Natalya的邮件账户,下图中端口显示不全,其实是55007和55006.

img

img

查看邮件内容:

img

直接访问”http://severnaya-station.com/gnocertdir”报错。

img

仔细看提示,发现还需要修改hosts文件。

img

然后用口令”xenia:RCP90rulez!”登陆。发现名为doak的人让Xenia发邮件给他,还不是”@contrax.mil”这个邮件服务器,难道是POP3?

img

再次尝试爆破,又获取一对用户口令”doak:goat”。

img

查看邮件,获取另一个人在“http://severnaya-station.com/gnocertdir/”网站的登陆口令。

img

登陆后找到s3cret.txt文件,定位到关键路径”/dir007key/for-007.jpg”。

img

访问该图片未发现任何信息,将图片下载。Strings查看图片是否隐写字符串,发现一个很像base64的字符串,解码后得到密码”xWinter1995x!”。综合上面提示,得到该网页的一个用户口令”admin:xWinter1995x!”。

img

登陆后查看,未发现有更多的提示信息提供。但发现该网站是开源的在线学习教育平台,且版本为2.2.3,Build 20120514搜索一下这个框架开辟新思路。

img

去https://www.exploit-db.com/搜索moodle,发现3个可利用的模块。其中Moodle3.4.1 Remote Code Execution是php编写,无法在Metasploit中直接利用,不考虑;Modle 3.6.3在metasploit中无法找到,自行将该文件添加到metasploit模块中。这里有个小技巧,Tile(MeTasploit)是Metasploit可直接利用的模块。

img

复制rb文件到指定目录后,重启msfconsole,并reload_all重载所有模块,再次搜索即可查到该模块。

img

利用该模块失败,考虑Moodle-Remote Command Execution,直接利用还是失败。

img

又卡住了,看漏洞介绍。

img

Exp中的设置PSpellShell和后台配置看到的spellengin好像有区别。

img

img

我先将exp中的PSpellShell修改为Google Spell,执行失败。又尝试将后台配置修改为PSpellShell,成功!

img

给Boris的邮件告诉我们,目标在root目录下的隐藏文件,可我们无法进入root目录。需要提权。查看靶机的操作系统版本

在这里插入图片描述

在exploit-db上下载exp,然后再kali机器上开一个http服务,然后再目标机上用wget下载,目标及下载后必须放在/tmp目录下,放在其他目录下提示“Permission deny”。

img

img

然后编译C文件,没有gcc就用clang替换,修改exp中的“gcc”为“clang”即可。

img

提权成功,注意目标再/root/下的隐藏目录。

img

Flag获取。

三、总结

\1. 观察一定要仔细

\2. 熟练使用工具

\3. 看到网站后要考虑其用了什么框架,是否存在漏洞可被利用;查看网页源码,是否又隐藏信息。

\4. 扩展知识面,对各种框架及其可能存在的漏洞进行总结整理。

这篇关于GoldenEye-v1(vulnhub)靶机练习实践报告的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬