KarakOverdosee/Write-ups
GitHub: KarakOverdosee/Write-ups
一个记录各类 CTF 网络安全挑战详细解题过程的 write-up 仓库,涵盖密码攻击、凭据破解等多种实战场景的完整分析。
Stars: 0 | Forks: 0
挑战链接:https://tryhackme.com/room/checkmate (TryHackMe)
# 概述
Checkmate 是一个密码安全评估挑战,你将扮演一名安全分析师,负责评估系统管理员 Marco Bianchi 的身份验证操作,他负责管理多个内部服务。在操作压力下,Marco 在多个系统中重复使用了弱的、可预测的以及基于模式的密码,这为攻击者获取未经授权的访问创造了机会。你的任务是识别这些弱点,并展示糟糕的密码管理习惯如何危及组织的安全。
在整个挑战过程中,你将对多个服务执行一系列实际的密码攻击,例如防火墙管理控制台、员工门户、内部社交平台和 SSH 服务器。使用 Hydra 进行在线密码攻击,使用 John the Ripper 进行离线密码破解,以及逻辑密码猜测技术,你将逐步发现有效的凭据并在系统之间进行枢纽转移。该房间强调了强密码策略、凭据唯一性和安全身份验证实践在保护企业环境中的重要性。
# 目标
执行密码猜测攻击,以识别弱密码和常用凭据。
使用 Hydra 对暴露的身份验证服务进行有针对性的在线密码攻击。
使用 John the Ripper 破解密码哈希以恢复弱密码。
展示密码重用和可预测的密码模式如何导致多个系统遭到入侵。
# 逐步解答
我首先开启了实验室机器以及 Attackbox。在这两台虚拟机都启动后,我尝试使用实验室 IP 和端口(即 5000)访问网页 (http://LAB_IP:5000/)
# 第一关
第一关的说明:
_Marco 在 firewall.thm:5001 部署了防火墙,但保留了默认凭据。_
我将端口从 5000 改为 5001,并进入了防火墙登录页面。
由于该 Web 应用的安全性较弱,并且说明中提到了“**保留了默认凭据**”,我开始尝试为用户名“admin”(用户名已经给出)使用一些基本密码(password、123、12345、user)。密码 **1234** 生效了,我成功进入了防火墙仪表板。
# 第二关
第二关的说明:
_Marco 在 jobs.thm:5002 上构建了一个内部员工登录面板,并使用常见的公司关键词作为密码。_
我将端口从 5001 改为 5002,进入了公司招聘发布页面。
点击员工登录按钮会将我们重定向到登录页面,这里的用户名已经写为“marco”。为了找到密码,说明中已经给出了提示:“**使用常见的公司关键词作为密码**”。招聘发布页面中给出的关键词有 [ innovation excellence security digital cloud future talent ]
我尝试遍历每个关键词,发现关键词“excellence”让我成功登入了该员工账户。
# 第三关
第三关的说明:
_前往 social.thm:5003,并根据个人信息推导出 Marco 的密码。_
我将端口从 5002 改为 5003,进入了社交登录页面。
对于登录详情,我知道用户名会是 marco,而为了获取密码,我使用 cupp 生成了一个字典(一个用于生成字典的工具:https://github.com/Mebus/cupp)
python3 cupp.py -i
我们将输入以下信息来生成字典:
First Name: Marco
Surname: Bianchi
Nickname: marky
Birthdate (DDMMYYYY): 14021995
对于其他输入字段,我直接跳过了。
生成字典后,我使用 Hydra 对登录页面进行了暴力破解
hydra -l marco \
-P /Downloads/cupp/marco.txt \
-f -V -t4 \
-s 5003 \
social.thm http-post-form \
"/login:username=^USER^&password=^PASS^:Invalid credentials
找到正确的密码即 Bianchi#### 后,我成功登录了账户并进入了她的个人资料页面。
# 第四关
第四关的说明:
_在 social.thm:5003 上,Marco 最近上传了一张新的头像。为了隐私和存储的一致性,平台会自动将上传的文件重命名为原始文件名的 SHA256 哈希值,并以 (SHA256).png 格式保存。你的任务是找出 Marco 上传头像的原始文件名。只需提交文件名即可继续。_
由于图像文件的名称经过了哈希处理,我首先找到了该图像的 SHA256 哈希值,并使用 John the ripper 来破解它的名称。
为了找到文件的哈希名称,我右键点击图像并在新标签页中打开。打开后,我复制了哈希值(png 的名称就是哈希值)并将其保存在一个文本文件中。
# 第一关
第一关的说明:
_Marco 在 firewall.thm:5001 部署了防火墙,但保留了默认凭据。_
我将端口从 5000 改为 5001,并进入了防火墙登录页面。
由于该 Web 应用的安全性较弱,并且说明中提到了“**保留了默认凭据**”,我开始尝试为用户名“admin”(用户名已经给出)使用一些基本密码(password、123、12345、user)。密码 **1234** 生效了,我成功进入了防火墙仪表板。
# 第二关
第二关的说明:
_Marco 在 jobs.thm:5002 上构建了一个内部员工登录面板,并使用常见的公司关键词作为密码。_
我将端口从 5001 改为 5002,进入了公司招聘发布页面。
点击员工登录按钮会将我们重定向到登录页面,这里的用户名已经写为“marco”。为了找到密码,说明中已经给出了提示:“**使用常见的公司关键词作为密码**”。招聘发布页面中给出的关键词有 [ innovation excellence security digital cloud future talent ]
我尝试遍历每个关键词,发现关键词“excellence”让我成功登入了该员工账户。
# 第三关
第三关的说明:
_前往 social.thm:5003,并根据个人信息推导出 Marco 的密码。_
我将端口从 5002 改为 5003,进入了社交登录页面。
对于登录详情,我知道用户名会是 marco,而为了获取密码,我使用 cupp 生成了一个字典(一个用于生成字典的工具:https://github.com/Mebus/cupp)
python3 cupp.py -i
我们将输入以下信息来生成字典:
First Name: Marco
Surname: Bianchi
Nickname: marky
Birthdate (DDMMYYYY): 14021995
对于其他输入字段,我直接跳过了。
生成字典后,我使用 Hydra 对登录页面进行了暴力破解
hydra -l marco \
-P /Downloads/cupp/marco.txt \
-f -V -t4 \
-s 5003 \
social.thm http-post-form \
"/login:username=^USER^&password=^PASS^:Invalid credentials
找到正确的密码即 Bianchi#### 后,我成功登录了账户并进入了她的个人资料页面。
# 第四关
第四关的说明:
_在 social.thm:5003 上,Marco 最近上传了一张新的头像。为了隐私和存储的一致性,平台会自动将上传的文件重命名为原始文件名的 SHA256 哈希值,并以 (SHA256).png 格式保存。你的任务是找出 Marco 上传头像的原始文件名。只需提交文件名即可继续。_
由于图像文件的名称经过了哈希处理,我首先找到了该图像的 SHA256 哈希值,并使用 John the ripper 来破解它的名称。
为了找到文件的哈希名称,我右键点击图像并在新标签页中打开。打开后,我复制了哈希值(png 的名称就是哈希值)并将其保存在一个文本文件中。
标签:DOS头擦除, TryHackMe, 在线爆破, 安全 Writeup, 密码破解