某数据安全大赛真题wp

2022年某数据安全竞赛上的一道真题,今天刚好在课堂上听到老师讲起,刚好做个记录。

说到数据安全竞赛总让人联想到网络安全行业的CTF竞赛,两者的竞赛形式类似,采用线上或线下解密寻找flag的方式提交答案取得积分,但竞赛的方向却不一样,CTF着重的是攻击渗透,数据安全竞赛则更像是特定场景下的应急响应。下面这个题目包含了五个小题,且随我来看看吧!

题目为一个压缩包,共146个文件,包含了三种类型的文件:

1、144个*.evtx 操作系统日志文件

2、1个Logfile.PML(process monitor导出的进程监视记录,存储了目标计算机的内存中活动进程镜像)

3、1个log1.pcap(目标计算机的流量抓包)

第一题:

先从题目中提取几个关键字:

1、未被隔离的机器上进行远程登陆

2、6月27号的晚上

从题目得可以得知6月27日之前的日志可以忽略不用关注,排除一大批干扰项,根据题目要求要提交操作异常的用户名字,所以重点需要关注Security.evtx日志中的登陆记录,从中找到异常的登陆用户名。

使用elex.exe打开Security.evtx日志,并进行一波筛选:

条件1:4624(windows登陆成功的事件ID)

条件2:登录类型:        10 (注意,登陆类型10要从elex中复制正确的格式,10代表从远程桌面或远程协助访问计算机时的记录类型)

筛选后发现登陆成功的事件过多29条,无法准确定位异常用户。

所以需要反向操作,查找未成功登陆的事件。

未成功登陆事件ID是4625,筛选前需要删除掉之前输入在Text in description中的”登陆类型 10“。

经过筛选发现了6月27日夜间22:13同一秒内大量的用户名为ming登陆类型为3(常对应暴力破解,常在日志中批量见到此类型)的RDP暴力破解痕迹,由此可以判断异常用户为ming,但需要进一步佐证ming这个用户是否登陆成功了。

ming是否暴破成功了?需要再次进行筛选,筛选出登陆成功的日志,并着重观察最后一次暴破时间节点附近的记录:

条件1:4624(登陆成功)

条件2:登陆类型10(通过远程桌面登陆成功)

筛选后发现ming这个用户登陆成功了:

至此第一题的答案找到了:Ming

第二题:

第一题解决了,第二题的答案也在日志中有记录:

攻击者进来的IP地址是192.168.13.1端口3389(为什么不是日志里的源端口呢?这题目出题时出现了歧义,竞赛公告中进行了澄清可以多次提交,多次尝试用192.168.13.1:3389的md5值提交成功。)

第三题:

第三题需要对提权所使用的文件进行查找,需要使用process monitor对Logfile.PML文件进行分析寻找可疑的进程和提权使用的可执行文件,攻击在提权时大部分使用cmd.exe对提权程序进行调用,所以在PM(process monitor)中对内存中的cmd.exe进行过滤筛选。

点击filter创建过滤器,过滤c:\windows\system32\cmd.exe发现了大量winword.exe使用运行在cmd.exe下,这很可疑。

进一步添加过滤条件,只过滤WINWORD.EXE应用程序 。

通过在过滤界面ctrl+f搜索.doc发现了攻击者使用的账号ming的download目录运行了helper.doc

方法二

点击PM的tools——Process Tree...——寻找winword.exe发现了可疑之处,用word调用cmd运行了whoami

第三题答案即helper.doc,提交文件名md5得分。

第四题

在PM的进程树中发现可疑进程,首先它是由攻击者ming创建且运行在tmp临时目录,并在攻击者提权程序的子进程中运行,它就是yoWtVVigSCtVR.exe进行md5后提交得分。

技巧:可以观察绿色的小进度条(left time),发现该程序在winword运行后开始进入运行状态且一直未退出。

第五题

在进程树中发现多个excel进程(通常用于存放敏感文件)观察小绿条(left time)当提权程序(yoWtVVigSCtVR.exe)运行后,pid为4325的excel进程随即运行了一段时间,较为可疑,因为在PM中进行PID筛选,查看excel进程有没有对应可疑敏感文件。

增加过滤条件后(1),搜索.xls(2)发现了敏感文件(3)

提交文件名的md5值得分

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
NOC编程大赛中的kitten真题是一个有趣且具有挑战性的编程问题。这个问题要求我们设计算法,找出给定的整数数组中最短的连续子数组,使得该子数组的和大于等于指定的目标值。 首先,我们可以使用双指针的方法来解决这个问题。我们定义两个指针start和end,分别指向子数组的起始位置和结束位置。开始时,它们都指向数组的第一个元素。 然后,我们使用一个循环来移动end指针,直到子数组的和大于等于目标值或者end指针到达数组的末尾。在每一次循环中,我们先计算当前子数组的和,如果它大于等于目标值,则记录当前子数组的长度,并更新最短子数组的长度。 接下来,我们需要移动start指针,缩小子数组的长度,以便找到更短的子数组。在移动start指针的过程中,我们需要不断更新子数组的和,以确保它仍然大于等于目标值。如果子数组的和大于等于目标值,我们记录当前子数组的长度,并更新最短子数组的长度。 最后,当end指针到达数组的末尾时,我们得到了最短的连续子数组的长度。 总结起来,解决这个问题的关键步骤如下: 1. 定义双指针start和end,初始时都指向数组的第一个元素; 2. 使用一个循环来移动end指针,计算当前子数组的和,并记录最短子数组的长度; 3. 如果当前子数组的和大于等于目标值,移动start指针,更新子数组的和和最短子数组的长度; 4. 循环结束后,得到最短子数组的长度。 通过以上算法,我们可以有效地解决这个kitten真题,找到给定整数数组中最短的连续子数组,使得该子数组的和大于等于指定的目标值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值