巨魔给的面试题,打开HTB的流量分析大门
Meerkat
背景
作为一家快速发展的初创公司,Forela 一直在利用业务管理平台。不幸的是,我们的文档很少,而且我们的管理员也不是最有安全意识的。作为我们新的安全提供商,我们希望您查看我们导出的一些 PCAP 和日志数据,以确认我们是否已(或尚未)受到损害。
Task1
我们相信我们的业务管理平台服务器已受到损害。请确认正在运行的应用程序的名称?
筛选http请求,然后追踪tcp流发现/bonita/portal/homepage
很明显是和bonita有关,google搜索引擎得到答案为bonitasoft
Task2
我们认为攻击者可能使用了暴力破解攻击类别的子集 - 所执行的攻击的名称是什么?
经过查看后续的一些 http 包,可以发现产生了大量失败的登录请求,可以怀疑攻击者正在尝试进行凭据爆破
1 | Credential Stuffing |
Task3
所利用的漏洞是否分配有 CVE - 如果有,是哪一个?
查找一下是否有被命令执行
1 | http contains "whoami" |
可以发现在第1091个流出现命令执行,往前翻找到黑客上传zip文件进行攻击
那么肯定是通过此zip文件使得命令执行得到root权限
通过搜索引擎可以知道漏洞编号为CVE-2022-25237
Task4
攻击者利用哪个字符串附加到 API URL 路径来绕过授权过滤器?
我们往下找,注意到/bonita/API/portal/page/;i18ntranslation
路径的请求,并且后面就直接RCE了,说明i18ntranslation
字符大概率是绕过waf。
Task5
撞库攻击中使用了多少种用户名和密码组合?
查看访问/bonita/loginservice
总共多少个包
1 | http.request.method=="POST" && http.request.uri=="/bonita/loginservice" |
但是发现很多个包username和password均为install,这些我们不用算在里面所以排除一下
(当然也可以url解码username会发现为邮箱格式)
1 | http.request.method=="POST" && http.request.uri=="/bonita/loginservice" && !http contains "install" |
右下角显示59个,因为可能存在重复密码所以要查看下
1 | http.request.method=="POST" && http.request.uri=="/bonita/loginservice" && !http contains "install" && http contains "seb.broom%40forela.co.uk" |
找到用户名seb.broom%40forela.co.uk
存在四次重复密码
整理一下59-4+1
总共56次碰撞
Task6
哪个用户名和密码组合成功?
我们查找一下响应包也就是用到ip.src
1 | http && ip.src==172.31.6.44 |
注意到响应为204说明爆破成功,追踪下tcp
得到用户名和密码(答案注意url编码)
1 | username=seb.broom%40forela.co.uk&password=g0vernm3nt |
Task7
如果有,攻击者使用了哪个文本共享网站?
使用网站的话那么请求包中应该有http
字符(也可以筛选字符串cmd
)
1 | http contains "http" && http |
找到为pastes.io
Task8
请提供攻击者用于在我们的主机上获得持久性的公钥的文件名。
我们已经知道黑客用wget去下载该文件,我们打开kali去下载看看
不给连接这就怪了,文件内容如下
1 | #!/bin/bash |
所以文件名为hffgra4unv
Task9
您能否确认攻击者修改的文件以获得持久性?
通过前一道题可以知道用curl命令将文件写到/home/ubuntu/.ssh/authorized_keys
所以能知道攻击者修改了文件
Task10
您能确认这种持久性机制的 MITRE 技术 ID 吗?
搜索引擎搜索MITRE authorized_keys
,成功找到id为T1098.004