HTB_Backfire
linux(Med)
总结
了解了两个C2框架
havoc-poc&&exp->hardhat-exp,除了用day,其实还是练习了ssh有关用法,生成、传输、连接,给服务端公钥,客户端用私钥
hardhat-exp似乎是因为jwt密钥是硬编码,所以可以伪造
一、poc的组合使用:
1.想办法让SSRF去请求ws协议的就好了
2.然后让内网用RCE_poc的payload(去下载kali的sh并bash触发)
3.payload是json格式,但要符合ws的传输格式,还要转化成websocket帧,这个要靠G老师发力了
WebSocket 数据帧包括以下内容:帧头:包含了数据类型、数据长度等元数据。负载数据:就是你实际要发送的内容,例如 JSON 数据。
发送请求还是http协议,只不过要申请升级为ws协议
数据传输就需要处理成websocket帧了,这两个不太一样
4.主要是websocket帧那个函数,如果请求不到sh文件,一般问题出现在它那里,我反正被气笑了
二、ssh私钥连接:
kali向目标机添加私钥文件
#kalissh-keygen -t rsa -b 4096#目标机echo"id_rsa.pub内容" >> ~/.ssh/authorized_keys#kalissh -i id_rsa user@htb_ip
三、防火墙设置
为什么0.0.0.0 7096
但不可被外网访问,看iptables的配置
-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 5000 -j ACCEPT-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 5000 -j ACCEPT-A INPUT -p tcp -m tcp --dport 5000 -j REJECT --reject-with icmp-port-unreachable#这两个是同意了本地访问7096-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 7096 -j ACCEPT-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 7096 -j ACCEPT#这个拒绝了所有流向 7096 端口的流量-A INPUT -p tcp -m tcp --dport 7096 -j REJECT --reject-with icmp-port-unreachable
轻松一刻
我叫 kali
,我重生了,我必须珍惜这次机会,向 Backfire
复仇!
我来到了他的老巢——天空之城,层层防护,让无数外敌却步,但我不一样,我知道这座城其实是一件防御至宝——Havoc
。出来混,谁还没个法宝,我早早带来了两样攻城利器,Havoc_SSRF和Havoc_rce,但是还远远不够,想要突破 Havoc
的防御,就需要发挥出它俩最大的优势,所以我开始进行融合,最终得到终极神兵—— Havoc_ssrf&&rce;
终于,我突破防御,进入内部,就......遇到了他的手下——iyla
,我凭借个人魅力征服了他,但是保险起见,我修改了他的记忆——authorized_keys
,这下再无后顾之忧;通过询问,他说他也不知道Backfire
在哪,但是想要对付Backfire
,user.txt
可能会有帮助,(这还用他说?),在我的友好鼓励下,他掏出了几个钥匙,嘟囔着说,也许可以有什么用处,我看到其中一个编号为 7096
,一把抢过,说了声再见就出发了。他急了,追着我说些什么没有 ssh
,是用不了的之类的话。
开玩笑,我怎么没有呢,在 ssh 的作用下,它变成了一个小洞天,走进去一看,是一个紧闭的大门,上面写着Hardhatc2
,门前的守卫问我要令牌,不然不给进。我说我没有,他让去伪造一个,我问怎么伪造,他给了我一个 hardhatc2_auth_bypass,
我:你不是守卫吗?
守卫:0.0
我:0.0
我了解了一下用法,顺利进去了,这东西不错,本来想还回去的,但它突然变成了 hardhatc2_rce。
我疑惑,
我恍然大悟,
我默不作声,
我觉得他不急,先用用。
但这玩意儿被一个叫 sergej
的拿走了
他:是你召唤的我,说吧,所为何事
嘶,我说我要找 Backfire
,
他说:又一个找 Backfire
的? 又是个小菜鸡,也是两年半的功力都没有,拿什么去斗?
我沉默了一会儿,默默亮出了手里的 user.txt
:像这样的东西,还有吗?
他也沉默了一会儿:哥,有的有的,像这样的东西还有9......,就差一个root.txt
了,这是我的身份卡,您去找一个叫????的小弟就行了,他知道怎么做的。
......
最终我如愿以偿消灭了 Backfire
,我双手插兜,不知道什么叫做高手,回顾这短暂的经历,也不过些许风霜罢了。
从现在开始,我叫 Backfire
了。
参考
wp: 师傅们的讨论分享
CVE-2024-41570 ssrf-利用:
https://blog.chebuya.com/posts/server-side-request-forgery-on-havoc-c2/
https://github.com/chebuya/Havoc-C2-SSRF-poc/tree/main
havoc_rce exp:
https://github.com/IncludeSecurity/c2-vulnerabilities/blob/main/havoc_auth_rce/havoc_rce.py
hashcatc2:
https://www.ddosi.org/hardhatc2/
hardhatc2 _days-rce-authn-bypass:
https://blog.sth.sh/hardhatc2-0-days-rce-authn-bypass-96ba683d9dd7
websocket帧:
https://www.openmymind.net/WebSocket-Framing-Masking-Fragmentation-and-More/
havoc 安装 : 貌似可以直接用 sudo apt install
https://havocframework.com/docs/installation
git clone https://github.com/HavocFramework/Havoc.gitcd Havoc#Kali版本命令sudo apt install -y git build-essential apt-utils cmake libfontconfig1 libglu1-mesa-dev libgtest-dev libspdlog-dev libboost-all-dev libncurses5-dev libgdbm-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev mesa-common-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5websockets5 libqt5websockets5-dev qtdeclarative5-dev golang-go qtbase5-dev libqt5websockets5-dev python3-dev libboost-all-dev#编译cd teamserver# 运行go mod download golang.org/x/sys时# 如果出现超时情况:golang.org/x/[email protected]: Get "https://proxy.golang.org/golang.org/x/sys/@v/v0.25.0.info": dial tcp 142.250.198.81:443: i/o timeoutgo env -w GOPROXY=https://goproxy.cngo mod download golang.org/x/sysgo mod download github.com/ugorji/go# go module github.com/ugorji/go: not a known dependency# 参考https://github.com/HavocFramework/Havoc/issues/516# 改成下面的命令go mod download github.com/ugorji/go/codeccd ..#构建server #我运行这个很慢,等了有十几分钟make ts-build./havoc server --profile ./profiles/havoc.yaotl -v --debug#构建clientmake client-build./havoc client
原文始发于微信公众号(羽泪云小栈):HTB_Backfire(思路)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论