Meerkat
解压密码为hacktheblue
作为一家快速发展的初创公司,Forela 一直在使用业务管理平台。遗憾的是,我们的文档匮乏,且管理员的安全意识较为薄弱。作为新任安全服务提供商,我们希望您能查看我们导出的部分 PCAP 和日志数据,以确认我们是否遭受(或未遭受)入侵。
Task1
我们怀疑业务管理平台服务器可能已遭入侵。请确认当前运行的应用程序名称?
Bonitasoft
wireshark-统计-端点-TCP-按照流量包大小排序

能看见一个外部地址发包最多,其次是内网地址的三个端口,猜测第一个为攻击者ip,8080为服务端口,过滤此端口
ip.dst==172.31.6.44 && tcp.port==8080
找到访问记录;

搜索得知软件名称

Task2
我们相信攻击者可能使用了暴力破解攻击类别的一个子集——所进行的攻击名称是什么?
Credential Stuffing
按照info和time排序,找到爆破行为:

查看


不像是暴力,更像是撞库
Task3
被利用的漏洞是否分配有 CVE 编号?如果有,是哪一个?
CVE-2022-25237
能看见访问了这个路由

搜索得到编号,CVE-2022-25237

Task4
攻击者的漏洞利用在 API URL 路径后附加了哪个字符串以绕过授权过滤器?
i18ntranslation
参见上一问即可
Task5
在凭证填充攻击中使用了多少组用户名和密码的组合?
56
文件-导出分组解析结果为纯文本,用脚本提取即可
import re
def extract_usernames(filename):
pattern = r'Form item: "username"\s*=\s*"([^"]+)"'
usernames = []
with open(filename, 'r', encoding='utf-8') as file:
for line in file:
match = re.search(pattern, line)
if match:
usernames.append(match.group(1))
return usernames
# 使用示例
usernames = extract_usernames('1.txt')
usernames = set(usernames)
print(len(usernames))
for i in usernames:
print(i)
得到结果57,但是不对,去掉默认账户install:install就对了
Task6
哪一组用户名和密码组合成功了?
seb.broom@forela.co.uk:g0vernm3nt
过滤响应码200的包
ip.addr == 172.31.6.44 && tcp.port == 8080 && http.response.code == 200

Task7
如果有的话,攻击者利用了哪个文本分享网站?
pastes.io

Task8
请提供攻击者用于在我们主机上维持持久访问的公钥文件名。
hffgra4unv
题目翻译的有点问题,意思应该是用哪个文件写入的公钥 打开上一题找到的url能看见

Task9
你能确认攻击者为维持持久访问所修改的文件吗?
/home/ubuntu/.ssh/authorized_keys
见上一题
Task10
您能确认这种持久化机制对应的 MITRE 技术 ID 吗?
T1098.004
