[原创]夺棋赛HackTheBox OpenSource攻略

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

  • 简介

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

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

  • 起因选题目

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

HTB官网:Hack The Box

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

[原创]夺棋赛HackTheBox OpenSource攻略_第1张图片

下面是我的通关截图:

[原创]夺棋赛HackTheBox OpenSource攻略_第2张图片

 

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

[原创]夺棋赛HackTheBox OpenSource攻略_第3张图片

 

  • 题目存在的漏洞
  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

  • 这种比赛的通用套路[原创]夺棋赛HackTheBox OpenSource攻略_第4张图片

 

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

sudo open lab_einyboy.o

[原创]夺棋赛HackTheBox OpenSource攻略_第5张图片

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

[原创]夺棋赛HackTheBox OpenSource攻略_第6张图片 

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

[原创]夺棋赛HackTheBox OpenSource攻略_第7张图片

  1. 收集信息

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

 [原创]夺棋赛HackTheBox OpenSource攻略_第8张图片

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

[原创]夺棋赛HackTheBox OpenSource攻略_第9张图片 

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

[原创]夺棋赛HackTheBox OpenSource攻略_第10张图片 

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

[原创]夺棋赛HackTheBox OpenSource攻略_第11张图片 

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

[原创]夺棋赛HackTheBox OpenSource攻略_第12张图片

[原创]夺棋赛HackTheBox OpenSource攻略_第13张图片 

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

[原创]夺棋赛HackTheBox OpenSource攻略_第14张图片 

  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

[原创]夺棋赛HackTheBox OpenSource攻略_第15张图片

漏洞的原理发现如下:

[原创]夺棋赛HackTheBox OpenSource攻略_第16张图片

  1. 读取关键的几个文件

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

/sys/class/net/eth0/address

/proc/sys/kernel/random/boot_id'

 /proc/self/cgroup

[原创]夺棋赛HackTheBox OpenSource攻略_第17张图片

[原创]夺棋赛HackTheBox OpenSource攻略_第18张图片 

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

 

 [原创]夺棋赛HackTheBox OpenSource攻略_第19张图片

[原创]夺棋赛HackTheBox OpenSource攻略_第20张图片 

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

[原创]夺棋赛HackTheBox OpenSource攻略_第21张图片 

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

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

nc -lvnp 433

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

Online - Reverse Shell Generator

 [原创]夺棋赛HackTheBox OpenSource攻略_第22张图片

在console里执行拿到反弹shell

[原创]夺棋赛HackTheBox OpenSource攻略_第23张图片

[原创]夺棋赛HackTheBox OpenSource攻略_第24张图片 

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

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

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

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

[原创]夺棋赛HackTheBox OpenSource攻略_第25张图片

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

命令kali中执行chmod +x chisel

./chisel server -p 8000 --reverse

在反弹的shell中

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

[原创]夺棋赛HackTheBox OpenSource攻略_第26张图片

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

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

如下图的dev分支

[原创]夺棋赛HackTheBox OpenSource攻略_第27张图片

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

[原创]夺棋赛HackTheBox OpenSource攻略_第28张图片 

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

[原创]夺棋赛HackTheBox OpenSource攻略_第29张图片 

[原创]夺棋赛HackTheBox OpenSource攻略_第30张图片 

下图拿下第1个flag

[原创]夺棋赛HackTheBox OpenSource攻略_第31张图片 

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

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

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

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

反弹shell中chmod +x pspy

./pspy

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

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

 

 [原创]夺棋赛HackTheBox OpenSource攻略_第32张图片

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

 [原创]夺棋赛HackTheBox OpenSource攻略_第33张图片

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

在里在写入反弹shell

[原创]夺棋赛HackTheBox OpenSource攻略_第34张图片

 

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

[原创]夺棋赛HackTheBox OpenSource攻略_第35张图片

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

 

 

 

 

 

你可能感兴趣的:(安全,安全,web安全,网络)