[原创]夺棋赛HackTheBox OpenSource攻略

最近很忙,方案,建模大赛的技术支持,再忙也不忘自身的修行学习,都是抽取下班后晚上的时间做的,搞了4天,最终拿下棋子。

  • 简介

HackTheBox(缩写HTB),HTB是一个网络安全攻防竞技场,全球的顶尖高手很多在上面,有人在上面出题(防守),就有人解题(攻击)。想提高网络攻防水平就来玩这个game平台。

这个平台一个优点是靶机是现成的,vpn也是免费的。同样VulnHub也很出名,但VulnHub要自己下载虚拟机搭靶机,要消耗自己电脑的性能和用电,所以最佳实践推荐HTB。

  • 起因选题目

起因很久以前也对安全技术感兴趣(10年以前),出来后没同事计算机安全的相关工作,不想以前的技能费了,以来玩HTB了(声明最后的系统root权限过程我只写思路,毕竞还有其他人玩,有玩家是靠攻略挣钱的,所以不能写太清楚)。

HTB官网:Hack The Box

内心独白:看一下排名,挑个人多的先练手(结果后面通关后发现一点都不easy),发现OpenSource有2044人在玩,通关的超过1900了。

下面是我的通关截图:

 

先百度看看有没有作业可以抄(结果什么也没搜索到):

 

  • 题目存在的漏洞
  1. 上传存在本地文件包含漏洞,作者提供了web页面的源代码,同时还能直接上传修改的python shell(不过作者想答题人走第2点的漏洞)。
  2. 存在一个werkzeug主件,结合1的漏洞,存在泄漏PIN码的漏洞,可拿到docker里的反向shell,从而拿到第1个赛点的flag.txt (flag中文意思是旗子,也就是夺棋赛)
  3. 开了1个3000端口,能够利用这个端口进行docker逃逸拿到一下RSA密钥key文件isa_da

从而能直接远程SSH登录系统。

  1. 存在git的pre-commit漏洞,能够直接拿到root权限,从而拿到最后的/root/flag.txt

  • 必备工具

神器级武器库:kali(一个网络攻击武器库,所有的hack几乎都在用)

神器级武器:nc(号称瑞士刀)

内网渗透神器级武器:chisel

端口扫描的王者:nmap

  • 这种比赛的通用套路

 

  • 攻略过程
  1. 首先下载HTB免费的vpn,开启vpn通道

sudo openvpn lab_einyboy.ovpn

在opensoure的machine界面有目标主机的IP如下图

 

然后ping 10.10.11.164看看网络是不是真的通了,如下: 

  1. 收集信息

上军刀:nmap -sS -T4 -A -Pn 10.10.16.164

 

看到开了22,80,3000端口,22是远程用的ssh端口,80是网页端口,是werkzeug 2.1.2写的后端(看到网页端口,这里就是套路了,90%以上出题者就是在这里给答提入口了)。上浏览器:

 

点“take me there”能打开上传端口打开上传页面(有上传页面一搬就有上传漏洞)

 

但这里还有个”download”点再后可以下载到页面源码,并用vscode打开

 

看到conf结尾的文件打开记下内容(套路,这里目的看到个user=root,root后面用到)(这里原码都给了,也用不着套路2中的扫描目录了)

 

(技术点web用python写的,可以直接在原代码上写webshell直接拿到一句话shell了,但这不是出题人的初衷,这里给出代码,方法不写了)

 

  1. 拿下出题人的第1个flag
  1. Firefox设计代理--->2.burpsuite拦截网页请求--->3.修改请求文件路径拿到敏感文件信息(前面基本功,这里在不细写)--->4. werkzeug console的PIN码---->5.拿下反弹shell---->拿下user flag.txt。
  1. 先可以百度“werkzeug”漏洞

这里给出大神分析:https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/werkzeug

漏洞的原理发现如下:

  1. 读取关键的几个文件

文件(可尝试读取/etc/passwd密码文件):

/sys/class/net/eth0/address

/proc/sys/kernel/random/boot_id'

 /proc/self/cgroup

 

  1. 通过代码获取PIN(说明每个答题着PIN码不一样,请不要抄作业)

 

 

 

访问http://10.10.11.164/conolse输入上面的PIN码得到交互的python shell.

 

进去后就是通过python拿反弹shell了

先在kali上开启监听端口,命令

nc -lvnp 433

然后在网站找python反弹shell代码:

Online - Reverse Shell Generator

 

在console里执行拿到反弹shell

 

(注这里拿到的shell是在docker里面的,你可以理解为是虚拟机)

所以还得逃逸到docker拿到物理机的shell

注意下面红框的log输出,用nc 172.17.0.1 3000 -vvv命令试连3000端口,返回open状态,

这里出题着告诉你可以使用chisel进行内网的进一步参透了。

借助上传页面把chisel上传到/app/public/upload目录

命令kali中执行chmod +x chisel

./chisel server -p 8000 --reverse

在反弹的shell中

cd /app/public/upload执行下图中的命令

然后在kali浏览器访问127.0.0.1:3000 (看到了一个原代码管理页面)

怎么登录了,有源码哦(这里是出题者套路一搬有git的查看相关人历史修改,找有添加、删除过什么配置文件里面一搬有密码)

如下图的dev分支

用dev01用户名,后后面的那串密码登录,看到home-backup不要犹豫打开他,这家里出题者套路,看到backup字眼里面一搬有远程ssh的密码)

 

把.ssh文件夹里的密钥id_rsa下到kali,直接可ssh远程登录了

 

 

下图拿下第1个flag

 

  1. 拿下出题人的第2个漏洞

一搬套路是执行sudo -l 看看有没有特权文件,这里执行了没什么用。

所以套路2,pspy看看系统有没有定时调度的进程什么的(本提套路)

还是上传页面上pspy到/app/public/uploads

反弹shell中chmod +x pspy

./pspy

在下面的输出中你们看到git commit -m backup (看又是backup出题者的提示)

这里有个pre-commit的漏洞可以提权(知道这个要看攻方的基本功了)

 

 

 如果没基本务,走套路,下面网站搜索git

 

vi .git/hooks/pre-commit/myshell.sample

在里在写入反弹shell

 

 最后通过反弹的shell拿到第2个flag

总结写了那么长,我想说一点都还不easy点个赞 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huandaohack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值