入侵排查

信息搜集

系统信息搜集

在"win+r -> msinfo32"即可以打开系统信息
这一步主要是了解设备的型号 去利用设备型号相关的漏洞
平时比赛遇到的不多 重点在下面

网络信息搜集

  • netstat
查看开放端口:C:\Windows\system32>netstat -ano
查看 ESTABLISHED端口:C:\Windows\system32>netstat -ano | findstr 'esta'
查看ipv4路由信息:C:\Windows\system32>netstat -rn
  • ipconfig
查看网络设置:C:\Windows\system32>ipconfig
显示DNS客户端解析程序缓存的内容:C:\Windows\system32>ipconfig /displaydns

进程排查

进程分析

  • tasklist

cmd命令行输入tasklist,先确认当前操作系统的进程信息,查看是否存在可疑进程。同样也可以直接打开任务管理器来查看进程

更具 PID定位进程:C:\Windows\system32>tasklit | findstr <pid>
输出进程的详细信息:C:\Windows\system32>tasklist  /V  /FO CSV | findstr <进程名>
查看运行服务的信息:C:\Windows\system32>tasklist /svc
强制kill进程以及由它启动的子进程:C:\Windows\system32>taskkill /f /pid <pid> /t
强制kill进程已进程名的方式:C:\Windows\system32>taskkill /f /im cmd.exe /t
  • 任务管理器
  • wmic process
查看所有的参数:C:\Windows\system32>wmic process get * /value
显示部分的内容:C:\Windows\system32>wmic process get caption,commandline /value
显示指定进程的部分内容:C:\Users\Administrator\Desktop>wmic process where caption="iexplore.exe" get caption,commandline /value

进程隐藏分析

进程隐藏是指通过特殊的手法,用户无法通过命令或者任务管理器的方式查看到某一个进程的信息 这里可以直接使用系统扫描工具扫一哈

恶意用户排查

隐藏用户

用户信息获取

  • 查看当前用户的用户名和SID:C:\Windows\system32>whoami /user
  • 查看当前用户所属的用户组:C:\Windows\system32>whoami /groups
  • 查看当前用户的权限:C:\Windows\system32>whoami /priv
  • 查看本机用户:C:\Windows\system32>net user
  • 查看admin用户的详细信息:C:\Windows\system32>net user "admin"
  • 查看用户组:C:\Windows\system32>net localgroup "administrators"
  • 查看已登录的账户:C:\Windows\system32>query user
  • 通过"win+r -> compmgmt.msc"方式来查看本地用户和组的信息

注册表用户分析

在很多情况下,使用net user命令是无法查看到所有用户的,就比如说被隐藏的用户$。那么通过查看注册表的方式就能够解决net user显示用户不全的问题。
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
如果需要查看全部用户,就需要右键修改\SAM\SAM子键的Administrator的权限,将它设置为完全控制,然后刷新注册表子键便可以看到新增了很多的目录

克隆用户

不同于上面的隐藏账户 克隆账户只能够通过注册表和wmic的方式进程查看,对于net users和本地用户组是完全隐藏的
若克隆的账号是administrator账号,则登陆的克隆账号就是对administrator账号进行控制

持久化排查

当攻击者拿下某台服务器最高权限的时候,接下来就需要思考如何长久的控制这台服务器来达到某些持久化的利益获取,方法有很多.

注册表下的RUN子健 RUNONCE

  • 特定用户登录时启动:在以下键中,键值将在特定用户登录时运行。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

  • 系统开机启动项:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

  • RunOnce启动:如果攻击者只是希望软件在启动时运行一次,则可以在此设置子键

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

服务文件 services.msc

本地组策略启动项

攻击者可以通过设置系统启动或者用户登录脚本,达到和设置启动项相同的效果。该脚本可以是一个通用的(exe、bat等)脚本也可以是一个Powershell脚本。
在"win+r -> gpedit.msc"打开本地策略编辑器。

计划任务

这里介绍windows运行过程中在未来某个时间点,来执行payload的两种计划任务的方式:at命令、schtasks命令

  • at命令介绍

配置计划任务案例:C:\Windows\system32>at 22:00 /every:M,T,W,Th,F,S,Su c:\<name>.exe
查看at命令配置的计划任务:C:\Windows\system32>at
删除计划任务:C:\Windows\system32>at 1 /delete

  • schtasks命令介绍

配置计划任务案例:C:\Windows\system32>schtasks /create /tn "<计划名>" /tr c:\<name>.exe /sc minute /mo 1
查看schtasks命令配置的计划任务:C:\Windows\system32>schtasks /query |findstr "<计划名>"
删除计划任务:C:\Windows\system32>schtasks /Delete /tn "joke payload"

应急响应排查工具

火绒剑(这个就很全面了 就可以覆盖大多数的小工具)

排查技巧

  • 关注时间线 使用everything搜索
  • 确定恶意程序名称时 去注册表搜索

日志分析

这里Windows系统是默认只记录与用户有关系的日志的 需要在本地组策略中专门打开一些审核策略 但是本地组策略只有专业版才有 家庭版是没有的

日志类型

  • 系统日志(System.evtx)

系统日志是记录系统中硬件、软件和系统问题的信息,用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。

  • 应用程序日志(Application.evtx)

包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件。如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录。

  • 安全日志(Security.evtx)*important

登录日志、对象访问日志、进程追踪日志、特权使用、帐号管理、策略变更、系统事件。安全日志也是调查取证中最常用到的日志。

事件ID

常用于安全日志审计 一般查看安全日志(Security.evtx)

  • 5156--出站记录

失陷资产在什么时候第一次连接了攻击者的服务器以及连接的端口
攻击者在什么时候第一次远程登陆了恶意账户 关注端口445 3389 5984(WinRM)

  • 4720-创建用户

攻击者在攻击时间范围内创建了什么账户 攻击者创建用户的时间(隐藏用户也可以被查到)

  • 4732-用户组管理

什么时候mirage账户具有远程登陆权限

  • 4733-用户组管理

安全日志4732中可以查看攻击者将创建的用户加入到了哪个用户组中,4733则是查看用户从哪个组中移除了

  • 4624-登陆成功

登录类型7 远程桌面方式

  • 4634-登录失败
  • 4688-进程创建

攻击者什么时候第一次运行了恶意程序 挖矿木马什么时候运行

审计目录服务访问
    4768 Kerberos身份验证服务
    4934 ActiveDirectory对象的属性被复制
    4935 复制失败开始
    4936 复制失败结束
    5136 目录服务对象已修改
    5137 目录服务对象已创建
    5138 目录服务对象已删除
    5139 目录服务对象已经移动
    5141 目录服务对象已删除
    4932 命名上下文的AD的副本同步已经开始
    4933 命名上下文的AD的副本同步已经结束
审计用户事件
    4624 账号登陆成功
    4625 账号登陆失败
    4634 帐户被注销
    4647 用户发起注销
    4624 帐户已成功登录
    4625 帐户登录失败
    4648 试图使用明确的凭证登录
    4672 授予特殊权限
    4675 SID被过滤
    4649 发现重放攻击
    4719 系统审计策略修改
    4720 创建用户
    4726 删除用户
    4728 将成员添加到启用安全的全局组中
    4729 将成员从安全组移除
    4732 将成员添加到启用安全的本地组中
    4733 将成员从启用安全的本地组移除
    4756 将成员添加到启用安全的通用组中
    4757 将成员从启用安全的通用组中移除  
    4778 会话被重新连接到WindowStation
    4779 会话断开连接到WindowStation
    4800 工作站被锁定
    4801 工作站被解锁
    4802 屏幕保护程序启用
    4803 屏幕保护程序被禁用
    5378 所要求的凭证代表是政策所不允许的
    5632 要求对无线网络进行验证
    5633 要求对有线网络进行验证
审计对象访问
    5140 网络共享对象被访问
    4664 试图创建一个硬链接
    4985 交易状态已经改变
    5051 文件已被虚拟化
    5031 Windows防火墙服务阻止一个应用程序接收网络中的入站连接
    4698 计划任务已创建
    4699 计划任务已删除
    4700 计划任务已启用
    4701 计划任务已停用
    4702 计划任务已更新
    4657 注册表值被修改
    5039 注册表项被虚拟化
    4660 对象已删除
    4663 试图访问一个对象
审计政策变化
    4715 对象上的审计政策(SACL)已经更改
    4719 系统审计政策已经更改
    4902 Per user审核政策表已经创建
    4906 CrashOnAuditFail值已经变化
    4907 对象的审计设置已经更改
    4706 创建到域的新信任
    4707 到域的信任已经删除
    4713 Kerberos政策已更改
    4716 信任域信息已经修改
    4717 系统安全访问授予帐户
    4718 系统安全访问从帐户移除
    4864 名字空间碰撞被删除
    4865 信任森林信息条目已添加
    4866 信任森林信息条目已删除
    4867 信任森林信息条目已取消
    4704 用户权限已分配
    4705 用户权限已移除
    4714 加密数据复原政策已取消
    4944 当开启WindowsFirewall时下列政策启用
    4945 当开启WindowsFirewall时列入一个规则
    4946 对Windows防火墙例外列表进行了修改,添加规则
    4947 对Windows防火墙例外列表进行了修改,规则已修改
    4948 对Windows防火墙例外列表进行了修改,规则已删除
    4949 Windows防火墙设置已恢复到默认值
    4950 Windows防火墙设置已更改
    4951 因为主要版本号码不被Windows防火墙承认,规则已被忽视
    4952 因为主要版本号码不被Windows防火墙承认,部分规则已被忽视,将执行规则的其余部分
    4953 因为Windows防火墙不能解析规则,规则被忽略
    4954 Windows防火墙组政策设置已经更改,将使用新设置
    4956 Windows防火墙已经更改主动资料
    4957 Windows防火墙不适用于以下规则
    4958 因为该规则涉及的条目没有被配置,Windows防火墙将不适用以下规则:
    6144 组策略对象中的安全政策已经成功运用
    6145 当处理组策略对象中的安全政策时发生一个或者多个错误
    4670 对象的权限已更改
审计特权使用
    4672 给新登录分配特权
    4673 要求特权服务
    4674 试图对特权对象尝试操作
审计系统事件
    5024 Windows防火墙服务已成功启动
    5025 Windows防火墙服务已经被停止
    5027 Windows防火墙服务无法从本地存储检索安全政策,该服务将继续执行目前的政策
    5028 Windows防火墙服务无法解析的新的安全政策,这项服务将继续执行目前的政策
    5029 Windows防火墙服务无法初始化的驱动程序,这项服务将继续执行目前的政策
    5030 Windows防火墙服务无法启动
    5032 Windows防火墙无法通知用户它阻止了接收入站连接的应用程序
    5033 Windows防火墙驱动程序已成功启动
    5034 Windows防火墙驱动程序已经停止
    5035 Windows防火墙驱动程序未能启动
    5037 Windows防火墙驱动程序检测到关键运行错误,终止。
    4608 Windows正在启动
    4609 Windows正在关机
    4616 系统时间被改变
    4621 管理员从CrashOnAuditFail回收系统,非管理员的用户现在可以登录,有些审计活动可能没有被记录
    4697 系统中安装服务器
    4618 监测安全事件样式已经发生
其它事件
    1102 清理审计日志
    1074 计算机的开机、关机、重启的时间以及原因和注释
  • Powershell查看日志

这里的话还可以使用powershell来查看日志文件

  • 查询所有系统事件:
    PS C:\Windows\system32> Get-WinEvent -LogName system
  • 查询所有安全事件:
    PS C:\Windows\system32> Get-WinEvent -LogName security
  • 查询所有应用事件:
    PS C:\Windows\system32> Get-WinEvent -LogName application
  • 查询所有USB插入事件:
    PS C:\Windows\system32> Get-WinEvent -FilterHashtable@{Path="C:\Windows\System32\winevt\Logs\System.evtx"} | Where {$_.Message -like "USB"}
  • 查询所有Windows Defender事件:
    PS C:\Windows\system32>Get-WinEvent -FilterHashtable @{logname="Microsoft-Windows-Windows Defender/Operational"}
  • 查询所有Windows Defender相关具体事件,以1117为例(1117为阻止恶意软件):
    PS C:\Windows\system32>Get-WinEvent -FilterHashtable @{logname="Microsoft-Windows-Windows Defender/Operational";id=1117}
  • 列出powershell可以查看的所有日志名:
    PS C:\Windows\system32> Get-WinEvent -ListLog *