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 什么都没得

image-20240307122616885

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

image-20240307122422880

操作

信息收集

常规的主机发现 端口扫描

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

image-20240306221913386

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

image-20240306222245814

那么,到此只有一种可能,这个php页面可能存在一些参数,只不过目前还看不到有哪些参数,如果能爆破出这个页面上的参数,应该还是可以继续往下搞的。但是现在既不知道这个页面有哪些参数名,更不知道这个页面接收哪些参数,怎么搞? 爆破

爆破页面参数

用burp的intruder

同时爆破参数和参数接受的值 才能够知道是否显示别的东西

image-20240306222651427

用burp自带的字典

image-20240306223025969
image-20240306223050092

扫出来个结果

image-20240306223513758

可以发现 存在mowree用户

image-20240306223606315

fuff

其实这里也可以一个一个去确定 因为跑两个 流量太大了

先用 大的参数名字典 和 小的参数名接受字典去确认一个有没有 sql 或者直接跑出来

结果是没结果 再想到前面有个index.php 我们去试着能不能去包含 这个时候 只需要用参数名字典去跑

结果跑出来参数 command

然后再根据参数去爆破 能不能跑出别的路径 也可以不爆破 猜一些文件的默认路径

文件包含漏洞

经过反复测试:

  1. 远程文件包含失败 (在kali上写一句话 看能不能包含进去)
  2. php://input 写入一句话木马失败
  3. 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”文件,这个文件会包含这个用户的公钥文件。(这个文件位置和文件名是默认的)

image-20240306224930819

SSH连接

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

image-20240307093010815

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

image-20240307093116213

爆破私钥密码

使用 john 的一个脚本把私钥转换成 john 可识别的 ssh 密钥文件:
/usr/share/john/ssh2john.py id_rsa > hash

使用 john 爆破密码
john hash --wordlist=/usr/share/wordlists/rockyou.txt

image-20240307093805459

提权

发现 passwd文件有写入的权限

image-20240307101904792

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

image-20240307102341693
image-20240307103452534
image-20240307103814122

这里我们可以修改 passwd中hash 然后shadow会同步的 然后就可以通过我们修改的密码去登录

openssl去生成一个密码

openssl passwd -1

image-20240307104334600

然后直接su root

image-20240307104501988

总结

主要 考察了 字典 和 各种爆破

burp的爆破参数名 也讲究技巧 先结合环境去思考 常见的像 etc/passwd能不能包含 有没有sql 等 实在不行再去爆破

目录爆破

john爆破私钥密码

读文件可以用 php封装器 先转为base64 然后再deconde 这样读的全

工具选择也会影响 但是实际上一般也就扫一次