VulnHub项目:MONEY HEIST: 1.0.1

靶机地址:Money Heist: 1.0.1 ~ VulnHub

渗透过程:

确定靶机ip,攻击机kali的ip

对靶机进行端口检测 

 存在22、53、80、3000、3001端口,访问80端口

发现了登录注册按钮,尝试进行注册 

注册成功后进行登录,发现了提示,这里写着只有admin才能获取flag 

抓个包看看,发现了cookie和jwt,结合之前它说只有admin,不由得想到了jwt欺骗

尝试着解码一下

注:

JWT 主要用于用户登录鉴权,用于作为 JSON 对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。JWT 一般是这样一个字符串,分为三个部分,以 “.” 隔开:xxxxx.yyyyy.zzzzz        头.有效载荷。签名

简单的流程是这样的:

  1. 用户使用账号、密码登录应用,登录的请求发送到 Authentication Server。
  2. Authentication Server 进行用户验证,然后创建 JWT 字符串返回给客户端。
  3. 客户端请求接口时,在请求头带上 JWT。
  4. Application Server 验证 JWT 合法性,如果合法则继续调用应用接口返回结果。

 利用john去爆破一下,爆破出它的签名值是professor

JSON Web Tokens - jwt.io

 可以利用插件,对网站进行查看,发现了被解析出来的name,将其改为admins,下面输入签名值,这样签名验证成功。

 

点击Save back to cookies后

刷新 

成功骗过服务器,获取了相关的证书,这里是berlin的证书,尝试用这个用户ssh远程连接,密码是冒号后的全部,发现登录成功

同时也获取到了第一个flag 

 flag1{Technology_is_fought_with_technology} 

进入/home目录发现了4个用户,经过我的尝试,和别的博主的对比,可能是靶机出了些问题,该靶机没有将professor目录的权限给出,这边我就借助别的博主给出的密码,先切换用户,然后将该目录赋权755,运行访问,然后重新再进行进一步的操作

 该密码是professor中的professor用户的密码:st@y_tuned_for_@nother_one

 假设刚才这个目录权限是对berlin开放的,我们进来后发现了密码文件,切换为professor用户,对其进行提权,提权的方法很多,随便选一种即可,不会的,去看之前的文章。

提权后依次进入每个用户,发现了flag2 

 flag2{L0v3_can’t_be_tim3d_it_ha5_t0_b3_liv3d}

 flag3在tokyo处

 flag3{L3t_th3_matri@rchy_b3g!n}

最后才是professor的finalflag.txt

 flag4{W3@kn3ss_!s_not_!n_us_!t_!s_!n_wh@t_w3_h@ve_outs!de} 

这个靶机主要考察的点还是在于jwt的欺骗,其他的到没什么,该靶机可能存在着些许问题,其实在之前,我有尝试看是否存在内核提权等,发现并不行。所以,想要尝试的同学可以当作练手了。

也许是我自己太菜了,没办法通过别的方式去提权,还请各位路过的大佬指教!

总结:

总结一下该靶机的思路,其实很简单,对于jwt欺骗,可以去了解jwt的原理,还有它的运行流程是怎样的,懂得原理才能更好的理解和操作!

请继续关注!还有很多其他有趣的靶机在等着大家

猜你喜欢

转载自blog.csdn.net/weixin_43938645/article/details/131033719
今日推荐