环境配置
攻击机(kali)IP:192.168.56.101
靶机(搭建在virtualbox)IP:192.168.56.112
靶机难度:中
靶机地址:https://www.vulnhub.com/entry/evilbox-one,736/
主机发现
使用fping对指定网段进行扫描,这里发现112为新增加的IP,判定为靶机IP。
端口探测
主要探测靶机存活端口,端口服务,nmap自带漏洞库扫描
这里发现了robots.txt文文件和一个secret地址。
web渗透
目录探测
查看浏览器界面,
发现就是一个apache的界面,静态界面,不存在攻击面,对目标进行目录爆破
依然是发现了secret目录和robots.txt文件,先查看robots.txt文件,看看是否有敏感路径
页面只有这一个信息,讲过尝试并不是一个目录的名字,打开secret目录,发现是一个空白的界面,没有攻击面,这里尝试对secret目录下进行路径爆破,针对php文件进行扫描
发现evil.php,但是使用浏览器打开并没有内容,这里暂时没有攻击思路。
参数爆破及文件包含漏洞的发现
首先区分一下文件包含漏洞和文件读取漏洞,文件包含漏洞会将文件中的所有内容都当作php文件解析,但是文件读取漏洞只是将文件读取出来,并不进行解析,但是文件包含漏洞可以使用为协议实现一系列操作,包括文件操作
目前php界面没有任何显示,但是php界面与服务器之间进行信息传递一定会使用到参数,所以猜测界面可能存在隐藏参数,这里进行参数爆破
这里发现了command参数,其中命令中的-fs 0 表示过滤返回界面中为零的界面的地址,在确定文件包含中的参数以后,就尝试对文件进行读取,首先读取/etc/passwd文件,成功读取
读取以后就看到一个用户mowree,这个用户显然不是linux系统功能账号,而是一个个人账号,并且具有bash环境,考虑对这个用户进行ssh登陆,对密码进行爆破显然不现实,这里先查看用户支持的ssh认证方式
这里看到用户支持公钥认证,于是尝试从mowree用户目录中找到公钥私钥文件,(SSH公钥私钥认证机制是一种基于非对称加密的身份验证方式,通过生成一对公钥和私钥,将公钥安装到服务器上,私钥保存在本地,当连接服务器时,服务器会发送一个随机数给客户端,客户端使用私钥对随机数进行加密,然后将加密后的数据发送给服务器,服务器使用预先安装的公钥对加密数据进行解密,如果解密成功,则认为客户端是合法的,允许连接服务器。),用户对服务器上传公钥以后,会在将公钥追加在.ssh文件下authorized_keys文件中,并且将私钥也存放在.ssh目录中,尝试对这个公钥文件进行读取
同时看到公私钥的生成算法为rsa,rsa算法生成的私钥的默认名称为id_rsa,对私钥文件进行读取
成功读取私钥文件,进行ssh登陆
但是这里提示输入密码,经搜索得知,它要求输入RSA密钥的密码短语,以便验证用户的身份。RSA密钥是一种加密方法,用于在网络上传输数据时保护数据的安全性。当您使用SSH连接到远程服务器时,您需要提供RSA密钥的密码短语,以便服务器可以验证您的身份并授予您访问权限。
这里直接使用john对密码短语进行爆破,首先应该将私钥文件转换为john可以直接利用的格式,这里使用usr/share/john/sshjohn.py进行转换。(ssh2john.py是一个用于将SSH私钥文件转换为John the Ripper密码破解工具可识别的格式的Python脚本。它的作用是将SSH私钥文件中的信息提取出来,并将其转换为John the Ripper密码破解工具可识别的格式,以便进行密码破解。)使用rocketyou字典完成解密,ssh登陆成功
成功获取反弹shell。
得到第一个flag。
提权
没有自动任务,内核漏洞不可以使用,suid权限配置没有问题,sgid权限也没有配置问题,尝试查看可写权限的文件,如果可写权限文件属主时root用户,就可能完成提权
发现我们对passwd文件有可写权限,尝试生成一个密码,放到passwd文件里面。
使用su命令完成提权