0x06-VulnHub靶机-EvilBox
环境
难度等级:低→中
靶机地址:https://www.vulnhub.com/entry/evilbox-one,736/
https://blog.csdn.net/weixin_44288604/article/details/125673406
内容
-
各种爆破
-
参数爆破
-
文件包含读敏感学习
-
SSH公钥登录
-
openssl生成密码 写入passwd
-
php封装器读文件
php封装器读文件 这样读php的文件就可以读到php的源码 而如果是直接去读的话看到的是php执行后的页面
?ad=php://filter/convert.base64-encode/resource=ab.php
比如
这个靶机
我这样访问 http://192.168.3.103/secret/evil.php?command=evil.php 什么都没得

我这样去访问 就可以内容 http://192.168.3.103/secret/evil.php?command=php://filter/convert.base64-encode/resource=evil.php

操作
信息收集
常规的主机发现 端口扫描
80端口是一个ubuntu站点,看不出什么东西,下一步就是目录扫描了
dirsearch出个 http://192.168.3.103/secret/ (得到了个新的路径 就要对新的路径进行目录的爆破)
啥东西也没 然后继续扫目录
总结了过往经验中用过的目录扫描工具,以及它们的字典,如下
/usr/share/wordlists/dirb/big.txt:字典行数 20469
/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt:字典行数 220560
/usr/share/dirb/wordlists/common.txt:字典行数 4614(dirb默认字典)
/usr/lib/python3/dist-packages/dirsearch/db/dicc.txt:字典行数974(dirsearch默认字典)
要用这款扫目录的才扫的出来 gobuster dirsearch一样的字典就是扫不出 所以 以后多扫一扫
gobuster dir -u 192.168.3.103/secret/ -w /usr/share/wordlists/dirb/big.txt -t 100 -x php

去访问 http://192.168.3.103/secret/evil.php 什么都没得

那么,到此只有一种可能,这个php页面可能存在一些参数,只不过目前还看不到有哪些参数,如果能爆破出这个页面上的参数,应该还是可以继续往下搞的。但是现在既不知道这个页面有哪些参数名,更不知道这个页面接收哪些参数,怎么搞? 爆破
爆破页面参数
用burp的intruder
要同时爆破参数和参数接受的值 才能够知道是否显示别的东西

用burp自带的字典


扫出来个结果

可以发现 存在mowree用户

fuff
其实这里也可以一个一个去确定 因为跑两个 流量太大了
先用 大的参数名字典 和 小的参数名接受字典去确认一个有没有 sql 或者直接跑出来
结果是没结果 再想到前面有个index.php 我们去试着能不能去包含 这个时候 只需要用参数名字典去跑
结果跑出来参数 command
然后再根据参数去爆破 能不能跑出别的路径 也可以不爆破 猜一些文件的默认路径
文件包含漏洞
经过反复测试:
- 远程文件包含失败 (在kali上写一句话 看能不能包含进去)
php://input写入一句话木马失败php://filter/write写入一句话木马失败
其他敏感信息
想到还有个22端口 却得到了一个账号
ssh mowree@192.168.3.103 -v 可以看看支持什么认证登录 发现可以通过公钥认证 就可以去访问有没有存在公钥文件 要是有authorized_keys 这个账号就通过公钥认证方式去登录 然后再去看看有没有id_rsa 有的话 搞下来直接就可以登录了 默认路径 /home/账号/.ssh/...
实际上一般是去爆破吧 (但也可以先尝试一下最基本的 没有再去爆破)
扫刚刚发现的 mowree 下面有什么东西
已经知道了传参的name 爆破后面的路径
这里介绍 SecLists 中一个不错的字典“quickhits.txt”,它位于:SecLists-2024.1\Discovery\Web-Content\quickhits.txt
发现了 密钥文件啊 就可以通过 id_rsa文件去连接 mowree账号
默认情况下,当你把一个客户端用户的公钥放到目标服务器上时,那么在目标服务器的“ssh”目录下就会有一个“authorized_keys”文件,这个文件会包含这个用户的公钥文件。(这个文件位置和文件名是默认的)

SSH连接
将burp读取的id_rsa的值复制 在kali上面建一个id_rsa 还要给权限 不能够给大了 chmod 600 id_rsa

然后用私钥连接 但是发现还要输入密码 因为他给私钥又加了个密码 这提示是说 给id_rsa 权限太大( +x )

爆破私钥密码
使用 john 的一个脚本把私钥转换成 john 可识别的 ssh 密钥文件:
/usr/share/john/ssh2john.py id_rsa > hash
使用 john 爆破密码
john hash --wordlist=/usr/share/wordlists/rockyou.txt

提权
发现 passwd文件有写入的权限

在passwd文件中 我们只可以看账户信息 密码的hash不会显示 (一种安全的设置 防止普通用户也可以看到root的密码的hash 然后爆破出密码) 密码的hash 放在/etc/shadow 普通用户是没办法看的



这里我们可以修改 passwd中hash 然后shadow会同步的 然后就可以通过我们修改的密码去登录
用openssl去生成一个密码
openssl passwd -1

然后直接su root

总结
主要 考察了 字典 和 各种爆破
burp的爆破参数名 也讲究技巧 先结合环境去思考 常见的像 etc/passwd能不能包含 有没有sql 等 实在不行再去爆破
目录爆破
john爆破私钥密码
读文件可以用 php封装器 先转为base64 然后再deconde 这样读的全
工具选择也会影响 但是实际上一般也就扫一次