入侵检测

windows入侵检测

排查思路

按时间线
找在攻击时间范围内,创建的文件

资源管理器

直接资源管理器慢慢审

everything
1
C:\Users\DeepMountains datemodified:2024/08/15..2024/08/16 ext:exe

修改以上命令来查就行

信息收集

看网络连接(排查暴露面)

1
netatat -ano

0.0.0.0代表全开放,排查从哪攻进来
ESTABLISHED代表建立连接的,可以审查这些ip

查看主机信息

1
systeminfo

1
msinfo32

环境变量信息

1
msinfo32


看到详细的系统信息,最主要的是能看到环境变量信息

1
set
1
2
cmd环境

进程信息

1
tasklist /v

1
wmic process get * /value
1
2
这条命令的作用是格式化输出获取的进程的所有信息


或者加个条件判断看单个进程

1
wmic process where Caption="powershell.exe" get commandline /value
1
2
cmd环境才行

收集用户信息

net user

1
net user

注册表

win+r打开注册表

1
regedit

看是否有隐藏用户

wmic

1
wmic useraccount get name /value

持久化排查

注册表

思路

前提条件:知道马的名称
然后直接全局搜索,在数据里搜索就行,因为路径是存在数据这一项

排查点

查看启动项

1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run


或者

1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
适合一次性任务

1
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
一般local_machine无权限写,但是当前用户这一条是可写的


排查表项数据有无可疑程序

启动脚本排查

打开组策略查看
win+r打开

1
gpedit.msc

计划任务

假设攻击者创建了计划任务,比如

1
schtasks /create /tn "mirage" /tr "C:\Windows\System32\cmd.exe" /sc minute /mo 1

一分钟运行了一次cmd.exe

图形化

win+r启动

1
taskschd.msc


一般查图中表项

命令行
1
schtasks /query /tn "mirage" /v /fo:list
根据计划任务名称查找

服务启动项

假设攻击者创建了服务

1
sc create ClipSVCT binpath= "C:\Users\attack$\Favorites\interceptor" displayname= "Client License Service (ClipSVCT)" depend= Tcpip start= auto

对服务增加了描述

1
sc description ClipSVCT "提供对 Microsoft Store 的基础结构支持,此服务按需启动."
思路

看注册表

1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

但是也不好找,直接火绒6.0,上专业分析工具

比如看启动项,看未知文件就行了

windows入侵检测练习

分析靶机开放了多少个端口

因为数据包没什么规律,要查端口,不可或缺的筛选条件就是tcp.flags == 0x0012,又知道靶机地址,那么对流量包先进行简易筛选

1
tcp.flags == 0x0012&&ip.src==172.17.0.101


观察到很多条数据都是目的ip为172.16.110.201,那就加入作为筛选条件

1
tcp.flags == 0x0012&&ip.src==172.17.0.101&&ip.dst==172.16.110.201


但是数据依然很多,点击统计->会话->TCP->复制为csv

然后复制到表格文件中,再数据->分列,按照逗号分列就行
然后统计,去重,得到结果为15

更简单的做法就是直接让ai分析

攻击者发现存在漏洞的端口是

提示了是向日葵rce
根据poc,第一步是获取session_id,那么直接搜verify

1
http contains "verify"


看到端口为56117

非场外因素的话,就是根据攻击者ip和靶机ip来搜索

1
http&&ip.src==172.17.0.101&&ip.dst==172.16.110.201


这明显是一个扫描行为,扫出漏洞了肯定会利用,那就直接看最后
都是56117端口的数据包

攻击者通过漏洞得到了一个key值,利用该key值可以得到相应的权限进行命令执行,该key值是?

跟第二题一样的思路,就是获得的session值

1
dmPqDgSa8jOYgp1Iu1U7l1HbRTVJwZL3

攻击者通过什么工具下载了恶意的载荷?

照着poc打,会用到cmd参数,直接搜

1
http.request.uri contains "cmd="

然后看最后一条请求,就是用curl命令下载工具(Windows的curl命令就是certutil.exe)

攻击者创建的恶意用户的明文密码是

这个要登远程桌面上去看看了

1
xfreerdp /dynamic-resolution +clipboard /cert:ignore /v:ip /u:user /p:'passwd'
1
2
如果是windows的话直接启动远程桌面就行

或者直接按照命令来搜

1
http.request.uri contains "/add"


攻击者第一次下载的恶意载荷回连攻击者服务器的端口是

导出就那个马就行了

然后上传沙箱就行了

攻击者向恶意服务器上的哪个URI地址去请求需要命令执行的任务?

根据沙箱信息就得到了

CS流量分析练习

攻击者的载荷休眠时间调整为了多少秒?

筛选http的

看到后面的数据包都是3秒3秒有规律的
所以载荷休眠时间是3秒

防护人员添加了策略阻断了CS载荷的回连,阻断策略的ID为?

注意明文传输的,比如telnet ftp
统计->协议分级

有telnet那就主要看telnet数据包

随便点开一个看看就有了,id为1265

CS载荷多少次请求没有获取到任务多少次请求?获取到了任务?

获取任务意味着命令执行带回数据,没有获取到任务以为是保持连接,也就是保活
所以后者注意submit,前者注意activity就行,activity是保活的

1
http.request.uri contains "submit"&&ip.src==10.1.100.102


就七个数据包

1
http.request.uri contains "activity"&&ip.src==10.1.100.102


数据包太多了,那就统计->会话,然后看tcp的

有145个,那减去之前的7个,就是138个
所以138次请求没有获取到任务,7次请求获取到了任务

攻击者创建了一个恶意用户,该用户所属的用户组为?

主要看icmp包,根据环境提示,不看提示就不加过滤语句看协议分级

那就看icmp的包就行

很多,先一个一个慢慢看,第二个数据包就有东西了

右边的十六进制:ascii码显示了类似命令终端的字符
继续往下看,发现,数据包中带有no respones found!的基本都是有可用信息的,那就直接将它作为过滤项

然后看到第四个包有创建用户成功信息

再往下,第七个数据包,有添加组成功的信息

可以看到命令是net localgroup DPBackdoor DPUser /add
尽管失败了,但是可以确认是DPBackdoor这个组

攻击者创建了一个恶意的计划任务,该计划任务的名称为?

根据之前的思路,数据包中带有no respones found!的基本都是有可用信息的
那就继续往下看,看到有个添加计划任务的命令

可以看到名称为callback

失陷主机RDP侦听的端口为?

筛选no response的(因为有数据的包都有这个特征)
看到有个修改注册表项的,并且是修改端口的


并且在这个数据包前有个修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server键值项为fDenyTSConnections​(数据类型为 REG_DWORD)为1的(0​​:表示“允许连接”(Deny 为“否”),即开启服务,1​​:表示“拒绝连接”(Deny 为“是”),即关闭服务)

而这也符合修改rdp端口的逻辑,先禁用rdp服务,然后修改端口,再启用
所以可得端口为22234

勒索病毒排查练习

无流量包,要上机排查,任务目标:清除所有持久化(有3个),并恢复加密的文件

1
2
3
10.3.4.165  
Administrator
385fiv


首先先恢复桌面,先快捷键打开任务管理器

文件->运行->explorer

启动两次,就能启动桌面了

思路(提示,下班了,人太多来不及做)

发现会周期性的kill掉explorer(就是桌面会周期性的打不开)
说明有个计划任务,那就排查计划任务
先看看可以的计划任务,看完信息再删

根据信息,c盘有个temp目录,那就注册表中搜

在run里找到一个键值

在userini.exe那个键值那里找到可以程序的键值

实操

环境是win server 2008

win+r启动任务计划程序

1
taskschd.msc

根据环境特点以及它的下一次运行时间判断这就是要找的计划任务

查看可知,他是要运行图中显示程序

然后没什么可利用信息,这个计划任务可以删除了
这个文件夹中有两个程序

经尝试,这个文件夹删不掉,那么就从注册表中删除
先查找

找到了一个

继续搜又找到一个

将这两个表项都删除以后,那个文件夹就能删了(不知道为什么与提示说的位置有点出入)
至此,持久化被删除完

恢复加密文件就有桌面上的diskgenuis

至此,目标达成