Minuv2靶机wp
前言
这个靶机是暑假中间的时候找到的,做下来主要的感觉就是还是偏信息收集这块,基本上没有什么需要高技巧的操作,然而我还是,,,果然还是缺乏经验。
环境以及工具介绍
虚拟机parallers,本机macOS ip 10.211.55.2,kali攻击机 ip 10.211.55.4,靶机 ip 10.211.55.14,kali和靶机均设置为共享网络模式。
抓包工具bp,浏览器firefox。
##流程介绍
1.信息收集
- 首先是要找到靶机的ip和开放的端口,这里直接用nmap去扫。10.211.55.2是本机,10.211.55.14应该就是靶机,然后把所有脚本跑一遍,发现开启了两个口一个是22另外一个是3306。
1
2nmap -v -sP 10.211.55.0/24
nmap -A 10.211.55.14
- linux版本3以上
- 22毫无疑问是ssh服务,然而这个3306端口似乎并不是mysql服务,我试试直接访问。
看起来是web服务。 - 拿dirsearch跑下看看有什么发现。发现上传页面upload.html,要求上传svg文件。猜测一波可能有文件上传漏洞。
- 看了下http包的header。发现有 X-Powered-By
Kemal这串数据,查找治疗后后发现是一个国外的轻量级web框架。
不是php开发的。https://github.com/kemalcr/kemal
2.试图获取webshell
- 随便找了张图片转成了svg上传抓包,发现svg是由xml构成的,临时打算试了下xml的实体解析漏洞,尝试读取/etc/passwd。响应
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="1305.600000pt" height="1094.400000pt" viewBox="0 0 1305.600000 1094.400000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.13, written by Peter Selinger 2001-2015
</metadata>
<g transform="translate(0.000000,1094.400000) scale(0.080000,-0.080000)"
fill="#000000" stroke="none">
</g>
</svg>
这里确定了就是信息泄露了。整理下了,发现能用的就这些。基本上可登录的用户就两个,一个是root,另外一个是employee,感觉可以尝试获取employee的密码后登录,然后再获取超级账号。在这个思路指导下,我还尝试了/etc/shadow,/etc/hosts等文件,基本上没有什么收货。1
2
3root:x:0:0:root:/root:/bin/ash
employee:x:1000:1000:Linux User,,,:/home/employee:/bin/ash
postgres:x:70:70::/var/lib/postgresql:/bin/sh - 尝试读取employee的命令行记录,由于知道employee的shell是ash所以,尝试获取.ash_history。获取密码superultrapass3。然后成功登陆系统。
- uname -a 查看操作系统的版本感觉内核不是特别老,exploit db上也没找到相关的信息,感觉不是直接提权。
1
Linux minuv2 4.19.58-0-virt #1-Alpine SMP Wed Jul 10 13:00:23 UTC 2019 x86_64 Linux
- 通过which命令发现机子上并没有,pyhton和php环境,连/dev/tcp也没有,但发现有perl,可以连一句话。但这里好像也没什么用了。
- 没有sudo,su可用,基本上除了根目录就没什么能写能看的文件。
3.提权
提权的时候,大概有这么几种思路:
- 内核提权,这个需要结合靶机的内核和靶机的环境,比如dirtycrow就只能在3.1到3.78版本的内核上用
- 攻击以管理员权限运行的服务,比如httpd,mysql等等,利用root权限运行的服务,尝试获取root shell。
- suid代表设置用户id,linux通过suid机制使非指定用户使用某些指定用户才能使用的功能。例如ping命令需要用root权限打开原始套接字,而ping命令有suid所以普通用户也可以使用ping命令。我们可以通过一些拥有root权限的程序获取root shell,或者对现有文件做一些更改,比如/etc/passwd
1
find / -perm -u=s -type f 2>/dev/null
- 利用sudo权限
等等
这里我发现可以用micro编辑器修改文件,从而获取和root同样分组的用户
这里可以添加新用户或者直接修改employee的权限,但要注意,最后一行记录后需要换行,不然会出现can’t use /bin/as这个错误。
最后cd /root 获取flag.txt
总结一下
这个靶机其实还算是简单,但是由于不是特别熟悉思路,还是花了好久才做出来。那个查当前用户的命令记录还真的没想到。怎么说呢,还是一个思路广度和对资料利用的问题,好多地方都是最后差了一点。
Reference: