一、介绍
运行环境:Virtualbox
攻击机:kali(10.0.2.15)
靶机:EvilBox-One(10.0.2.25)
目标:获取靶机root权限和flag
靶机下载地址:https://www.vulnhub.com/entry/evilbox-one,736/
二、信息收集
使用nmap主机发现靶机ip:10.0.2.25
使用nmap端口扫描发现靶机开放端口:22、80
打开网站发现是一个apache2的默认页面,参考源码没有发现隐藏信息。
使用dirsearch爆破目录,发现一个/secret/
目录和robots.txt
文件
查看robots.txt,里面信息:Hello H4x0r
怀疑H4x0r为一个用户名,使用hydra工具进行ssh暴力破解,破解了几个小时没破解出来,可能思考的方向错了
使用dirsearch对/secret/
目录进行扫描,发现什么也没扫出来,使用dirbuster工具再次尝试,爆破得到路径/secret/evil.php
对/secret/evil.php
文件进行FUZZ爆破,得到一个参数
wfuzz -w /usr/share/wordlists/wfuzz/general/common.txt http://10.0.2.25/secret/evil.php?FUZZ=/etc/passwd
三、漏洞利用
尝试文件包含ssh登录日志文件,包含失败,可能没有访问ssh日志权限
查看/etc/passwd
文件,查看靶机还存在哪些用户,发现靶机除了root用户还存在用户:mowree
知道存在mowree
用户,可以尝试包含mowree
用户的ssh私钥,或使用hydra对该用户的ssh密码进行暴力破解
包含/home/mowree/.ssh/id_rsa
,包含成功,得到mowree
用户的私钥,可以提供私钥登录ssh
http://10.0.2.25/secret/evil.php?command=/home/mowree/.ssh/id_rsa
创建id_rsa
文件,将私钥内容复制下来,保存到该文件,并对该文件赋予权限。尝试使用ssh登录,发现文件缺少密码。
chmod 600 id_rsa
ssh -i id_rsa mowree@10.0.2.25
通过ssh2john转换id_rsa为可以识别的信息,然后利用字典解密该信息,来获取文件密码。
ssh2john id_rsa > passwd.txt
john --wordlist=/usr/share/wordlists/rockyou.txt passwd.txt
破解成功获得密码:unicorn
登录ssh成功
四、提权
查看是否有可利用的特权命令和具有root权限的文件,发现没有。
翻一翻靶机的文件,看看有没有可利用的,发现/etc/passwd
具有写权限,可以passwd提权
Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。这个文件对所有用户都是可读的。它是一个以冒号分隔的文件,按顺序其包含的信息如下:
用户名
加密密码
用户 ID (或 UID)
组 ID (或 GUID)
用户全名
用户家目录
登录 Shell
尝试写入passwd文件以使我们成为root用户。
我们将向passwd文件添加一个用户,并在相应的字段中显式地给出加密密码。你可以使用perl语言生成带有salt的加密密码:adrla7IBSfTZQ
perl -le 'print crypt("123456","addedsalt")'
然后执行下面这条命令,成功将test用户的信息加入 /etc/passwd 文件
echo "test:adrla7IBSfTZQ:0:0:User_like_root:/root:/bin/bash" >>/etc/passwd
切换test用户su test
,密码为123456
获取flag
参考链接:Linux提权之利用 /etc/passwd 文件_gpasswd提权-CSDN博客