低—>中
目标:获取root权限以及2个flag
主机发现
靶机 192.168.1100.40
或者使用fping -gaq 192.168.100.1/24发现主机使用ping的方式。
端口扫描
发现开放了22和80
可以使用-A参数,-A参数会得到更多的扫描细节
访问80端口就是一个apache的基本的页面,按照管理习惯性的扫描目录
使用gobuster进行扫描
需要指定字典,这里使用的seclists的字典,这个字典我之前也没用过也不知道怎么样,不过应该也是挺全的吧
gobuster dir -u http://192.168.100.40 -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -x txt,php,html
爆出一个secret和robots
访问secret什么都没有,robots里面有个Hello H4x0r 可以留意一下这个H4x0r,可以拿去尝试进行一下ssh的爆破。
不过这个gobuster确实速度很快,dirsearch慢多了
有了secret继续爆下一级目录看有没有其他的东西
扫到一个evil.php 一看就是很有关系的页面,但是访问了还是以前空白啥也没有,这个时候就可以尝试fuzz一下参数了
使用ffuf,此为kali自带的工具
首先正常的思路是参数和值两个位子都进行fuzz,那么命令:
分别指定两个字典并且赋予别名然后填在url的位置,-fs的意思是不看返回的结果大小为0 -c是上色
这样也并没有跑出东西来,字典我就随便加了几个数字字符啥的。
这里想到了就有也就是文件包含漏洞,挺抽象的有种做ctf的感觉要靠猜。参数还是未知的,值可以尝试使用../index.html看能否包含根目录下的index.html
改变一下命令
在只有一个字典的情况下使用FUZZ占位
可以看到有反应了,在command的参数下有了数据
确实包含到了文件
既然可以包含本地文件那么可以尝试是否可以包含远程文件,但是远程文件的包含需要开启一个东西一般情况下是默认关闭的。
尝试包含了kali的80端口下的文件发现没有反应。说明并没有开启这个功能。
尝试php://input直接执行也不可以
使用filter过滤器读取evil的源码,成功读取了但是源码内容真就是include()。。。
尝试使用filter写入文件,我之前从没有遇到过可以写入的所以都忘记了filter还有写的方式
写入的数据可以使用base64也可以使用其他的比如什么rot13
php://filter/write=convert.base64-decode/resource=test.php&txt=PD8gcGhwaW5mbygpOyA/Pg==
我估计写入是需要权限的一般情况下也是无法写入数据的所以这里也是失败了。
到此处利用文件包含似乎无法直接通过封装器拿到shell,那么转换思路继续使用文件读取读取一些敏感文件看是否有新的收获
当读取到etc/passwd的文件的时候,发现除了root用户还有一个可以登录的用户mowree。很好线索来了,可以尝试利用此账户去爆破ssh
不过这里的利用方式也是挺细节的
ssh mowre@192.168.100.40 -v 使用-v显示详细的细节
可以使用秘钥进行登录,一般在服务器上开启了这个功能的话会在.ssh下面生成一个公钥文件authorized_keys
那么尝试一下看能否读取到文件
成功读取到这个公钥文件
文件也提示了使用的rsa的加密算法那么如果没有改名的话默认的私钥名称就是id_rsa
成功读取到私钥
把它复制保存下来并且赋权chmod 600 不赋权是使用不了的这是Linux的保护机制
在使用私钥登录时又遇到了新的问题,私钥还被进行了一层加密。。。
┌──(root㉿kali)-[~/.ssh]
└─# ssh mowre@192.168.100.40 -i mowre_rsa
Enter passphrase for key 'mowre_rsa':
没有办法,只能尝试使用工具来爆破这个私钥了
这里使用john
首先需要使用john自带的脚本将id_rsa转换为hash文件
cd /usr/share/john
./ssh2john.py ~/.ssh/mowre_rsa > /home/vanish/scripts/hash
爆破的字典使用kali自带的名为rockyou的大字典
cp /usr/share/wordlists/rockyou.txt.gz ./
gunzip rockyou.txt.gz
然后使用john进行爆破
也是很快就爆破出来了
密码为unicorn
终于成功的突破了边界
接下来就是尝试提权的操作了,但是尝试了常见的提权方式并没有结果
这个时候选择直接上传提权辅助脚本上去刷一下
项目连接:https://github.com/peass-ng/PEASS-ng 挺全的,一直在更新
脚本提示匹配到了两个CVE可以利用,不过继续往后看到了
/etc/passwd竟然是可写的
那直接向里面写入一个新的高权限用户可以吗,正常情况下这个文件是只有root才可以改写的
那么这里可以选择写入一个新的用户或者修改原来的里面用户的内容
这个x其实就是秘密的地方,但是为了安全都放到shadow下面去了,如果对这里的x进行修改为密码那么就会会使用这里的密码额而不是shadow那边的密码
但是Linux中的密码都有加密算法的,这里使用openssl passwd -1生成 也就是MD5
123456加密结果为$1$RS8gC1Yn$yuaP7i.uPcRZ5XMclvJC9.
成功修改后
使用nano进行的编辑,用的不怎么习惯啊,ctrl +O 保存 ctrl + X 退出
成功提权至root权限