【应急响应】Windows应急响应手册(远控后门篇)


前言

本篇文章以实战攻防过程中对于远程控制和恶意程序运行等利用手段做后续的应急排查工作,根据所能获取到的信息进一步跟踪动向进行排查处置。


一、远控后门

确定IOC信息

远控后门一般不会由服务器CPU或内存等占用过高告警而发现,大多数情况都是安全设备告警,可能是流量设备,可能是主机安全设备

流量设备告警通常可以得到的信息如下

  • 异常域名
  • 外连 IP
  • 外联端口
  • 事件时间

主机安全设备告警通常可以得到的信息如下

  • 恶意文件位置
  • 恶意文件动作

主机安全:直接定位文件

主机安全程序的详细描述信息十分重要,至少可以知道本次是否执行成功,不过即使执行失败,我们还是需要尝试根据文件位置查找进程

图形化工具中可以直接通过搜索框进行搜索关键字

在这里插入图片描述
更好方式是通过搜索文件句柄

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【handle 程序】

https://download.sysinternals.com/files/SysinternalsSuite.zip

这是Sysinternals Suite中的一个方便的命令行实用程序,可显示哪些文件由哪些进程打开等,可以通过下面的链接单独下载handle

https://download.sysinternals.com/files/Handle.zip

在这里插入图片描述
在这里插入图片描述
通过查询文件占用情况,如果发现存在异常进程,可以获取到进程的pid

流量检测:域名、IP、端口

如果域名没有采用 cdn 或者有稳定的 ip,就很好办了

1、netstat

netstat -ano | findstr "ip/端⼝"

在这里插入图片描述
netstat 这个命令结果和标题栏对应关系没有 Sysinternals Suite中其他工具那么好,但是还是能看出pid的位置

2、PowerShell

Get-NetTCPConnection
Get-NetUDPEndpoint

在这里插入图片描述
在这里插入图片描述
3、图形化工具

在这里插入图片描述
在这里插入图片描述
如果域名采用了cdn,且端口号比较大众化,可以考虑DNS缓存和诱骗的方式

4、DNS缓存

(1)cmd

ipconfig /displaydns

在这里插入图片描述
(2)PowerShell

Get-DnsClientCache

在这里插入图片描述
(3)wmic

wmic path Win32_PerfFormattedData_DNS_DNSCache get *

5、地址诱骗

  • 找一个内网或公网固定IP主机(诱捕主机),监听恶意域名采用对应的端口

  • 在受害主机上监控受害主机与我们的诱捕主机之间网络连接,若有链接,记录进程id、文件位置等信息

  • 通过修改host文件,将恶意域名解析到我们的诱捕主机上

  • 等待受害主机上的监控返回结果

这种方法可以有效解决域名采用了 cdn找不到IP以及进程的问题
修改 host文件方式如下
以恶意域名 du.testjj.com 为例
通过修改 C:\Windows\System32\drivers\etc\hostsdu.testjj.com 解析IP修改为
123.123.123.123
在这里插入图片描述
监控脚本如下

@echo off

:loop
if exist "%USERPROFILE%/Desktop/bat_result.txt" (
   echo "find it!!!"
   timeout /T 5 /NOBREAK
   goto loop
) else (
for /f "tokens=5" %%a in ('netstat /ano ^| findstr 123.123.123.123') do (
wmic process where processid=%%a get
name,executablepath,processid,CommandLine >>
%USERPROFILE%/Desktop/bat_result.txt
)

timeout /T 1 /NOBREAK
)

goto loop

6、内存搜索关键字

将已获取的域名、IP等作为关键字,使用僵尸网络查杀工具在内存中进行搜索

在这里插入图片描述
在这里插入图片描述
成功发现恶意程序

具体使用方法见 小技巧 -> 0x03 内存中搜索字符串

寻找恶意样本

经过以上步骤,已经确定了恶意进程的pid,接下来我们通过pid 找到恶意文件位置以及恶意文件启动时的参数

1、任务管理器

任务管理器默认情况显示的列里没有文件位置以及启动参数,可以通过调整显示列来显示
在这里插入图片描述
在这里插入图片描述
勾选 路径名称命令行

在这里插入图片描述
至于其他与任务管理器类似的程序也是一样的逻辑

2、PowerShell

将以下内容保存为 PowerShell脚本 file.ps1,之后在PowerShell终端中执行就可以了

$maliciousPid = <恶意进程的PID>
$process = Get-WmiObject -Class Win32_Process -Filter "ProcessId =
$maliciousPid"
$processName = $process.Name
$processPath = $process.ExecutablePath
$commandLine = $process.CommandLine
Write-Host "进程名称:" -NoNewline -ForegroundColor Green
Write-Host $processName
Write-Host "进程文件位置:" -NoNewline -ForegroundColor Green
Write-Host $processPath
Write-Host "命令行参数:" -NoNewline -ForegroundColor Green
Write-Host $commandLine

在这里插入图片描述
也可变成一行输出

$maliciousPid=<恶意进程的PID>; $process=Get-WmiObject -Class Win32_Process -
Filter "ProcessId = $maliciousPid"; $processName=$process.Name;
$processPath=$process.ExecutablePath; $commandLine=$process.CommandLine;
Write-Host "进程名称:" -NoNewline -ForegroundColor Green; Write-Host
$processName; Write-Host "进程⽂件位置:" -NoNewline -ForegroundColor Green;
Write-Host $processPath; Write-Host "命令⾏参数:" -NoNewline -
ForegroundColor Green; Write-Host $commandLine

在这里插入图片描述
3、wmic

wmic process where ProcessId=<恶意进程的PID> get Name, ExecutablePath,
CommandLine /format:list

在这里插入图片描述

4、Process Explorer

在这里插入图片描述
在这里插入图片描述
当然,在 Process Explorer中还可以在选中异常进程后,右键 Properties看该进程的详细信息

在这里插入图片描述
在这里插入图片描述
5、Process Hacker

在这里插入图片描述
在这里插入图片描述
也可以通过右键的方式来查看

在这里插入图片描述
6、System Informer
在这里插入图片描述
在这里插入图片描述
也可以通过右键进行查看

在这里插入图片描述
7、OpenArk

https://openark.blackint3.com/
https://github.com/BlackINT3/OpenArk

OpenArk 也是⼀款集成性的安全排查工具,用于对抗 Rootkit

在这里插入图片描述
在这里插入图片描述
可以查看属性
在这里插入图片描述

确定进程启动时间

这一步骤的主要意义在于对比进程启动时间与恶意文件的相关时间,确定在进程启动后,该文件是否修改过。
根数上述信息简单判断一下启动该异常进程的文件是否为我们找到的文件

1、PowerShell

# 代码版
$maliciousPid = <恶意进程的PID>
$process = Get-Process -Id $maliciousPid
$startTime = $process.StartTime
Write-Host "进程启动时间:" -NoNewline
Write-Host $startTime

在这里插入图片描述

# 压缩成⼀条命令
$maliciousPid=<恶意进程的PID>; $startTime=(Get-Process -Id
$maliciousPid).StartTime; Write-Host "进程启动时间:" -NoNewline; Write-Host
$startTime

2、wmic

wmic process where ProcessId=<进程PID> get ProcessId, CreationDate

在这里插入图片描述
wmic的显示格式不是很友好,但是依旧可读,而且更详细

3、Process Explorer

在这里插入图片描述
在这里插入图片描述
当然还是可以通过右键属性的方式查看

在这里插入图片描述
4、Process Hacker
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5、System Informer
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6、OpenArk

在这里插入图片描述
在这里插入图片描述
7、获取异常文件的时间信息

文件浏览器
在这里插入图片描述
【Process Explorer】

在这里插入图片描述
在这里插入图片描述

处理异常进程

1、恶意文件样本采样

在Windows上这个就简单多了,可以直接通过网络或者U盘等介质进行取样

2、威胁分析

既然有了恶意样本,可以通过人工或在线平台进行分析
  • 微步云沙箱 – https://s.threatbook.com/
  • Virustotal – https://www.virustotal.com/gui/home/upload
  • virscan – https://www.virscan.org/
  • 哈勃 – https://habo.qq.com/
  • jotti – https://virusscan.jotti.org/
  • scanvir – http://www.scanvir.com/
  • 魔盾 – https://www.maldun.com/submit/submit_file/
  • HYBRID – https://www.hybrid-analysis.com/
  • 奇安信情报沙箱 – https://sandbox.ti.qianxin.com/sandbox/page
  • 大圣云沙箱检测系统 – https://sandbox.freebuf.com/
  • YOMI – https://yomi.yoroi.company/upload
  • 360沙箱云 – https://ata.360.net/
  • 安恒云沙箱 – https://sandbox.dbappsecurity.com.cn/

3、寻找病毒分析报告

  • 深信服EDR团队安全情报分析 – https://edr.sangfor.com.cn/#/information/information?%24tab=b
  • 火绒安全最新资讯 – https://www.huorong.cn/info/
  • 安全客 – https://www.anquanke.com/
  • Freebuf – https://www.freebuf.com/
  • 微步在线 X 情报社区 – https://x.threatbook.com/
  • 安天 – https://antiy.cn/research/index.html

4、进程查杀

我们不仅可以杀死进程及进程树,还可以让进程暂停(suspend)或者进程重启
进程查杀是一个危险操作,所以可以考虑先暂停,看看是否符合预期,再决定是否杀死进程
需要注意的是,即使暂停了进程,该进程的网络连接不见得会断,一般情况下无法发送和接受数据

(1)暂停进程

【资源监视器】

在这里插入图片描述
在这里插入图片描述
进程暂停后,ping的动作随即暂停

在这里插入图片描述
进程处于暂停状态时,可以恢复进程执行,也可以直接结束掉进程或进程树,我们尝试恢复
在这里插入图片描述
被暂停掉的进程继续执行,暂停和恢复前 pid不会发生变化
通过暂停以及恢复,我们基本可以确定要被处理的进程是否为该进程,当然,如果有必要的话才这么做

【PsSuspend】

https://learn.microsoft.com/zh-cn/sysinternals/downloads/pssuspend
https://download.sysinternals.com/files/PSTools.zip

暂停进程

pssuspend.exe <进程id>

在这里插入图片描述
恢复进程

pssuspend.exe -r <进程id>

在这里插入图片描述
其他图形化工具基本上都是右键,点击选择就可以了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)杀死进程

【taskkill】

taskkill /F /PID <进程ID>

在这里插入图片描述
【PowerShell】

Stop-Process -Id <进程ID> -Force

在这里插入图片描述
【wmic】

wmic process where ProcessId=<进程ID> call Terminate

在这里插入图片描述
【pskill】

https://download.sysinternals.com/files/PSTools.zip

pskill64.exe <进程ID>

在这里插入图片描述
【资源监视器】

在这里插入图片描述
其他图形化工具也是类似的使用方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)杀死进程树

如果恶意进程所在的整个进程树都是恶意的,那就需要杀死整个进程树,在某个进程上杀死进程树就是杀死由该进程起的所有子孙进程
杀死进程已经是危险操作了,杀死进程树更要谨慎

查看进程树

这件事自带的工具并不直观,需要借助第三方工具

【Process Explorer】

在这里插入图片描述
在这里插入图片描述
可以看到,PING.EXE进程的父进程为cmd.exe pid3252,再上一层父进程为explorer.exe pid3140

如果此时在PING,EXE上右键,杀死进程和杀死进程树是没有大区别的,因为PING.EXE并没有子进程,但是如果再上一层cmd.exe上杀死进程树,那么cmd.exe(pid:3252)以及其子进程conhost.exePING.EXE也会被杀死

尝试在PING.EXE右键杀死进程树

在这里插入图片描述
在这里插入图片描述
可以看到,其实只有 PING.EXE(pid:6656)自己被杀死了

我们再启动PING.EXE,尝试在 conhost.exe (pid:5240)进程右键杀死进程树

在这里插入图片描述
在这里插入图片描述
虽然cmd的黑框框消失了,但是PING.EXE还在继续运行,如果仅在cmd.exe(pid:5272)上右键,仅杀死进程

在这里插入图片描述
PING.EXE进程还是会继续进行下去

接下来尝试 “赶尽杀绝”

尝试重新起一个cmd并且执行PING.EXE,在cmd进程上右键杀死进程组

在这里插入图片描述
在这里插入图片描述
这回由该 cmd.exe (pid: 5500) 其的进程以及子进程都被杀死了

【Process Hacker】

Process Hacker以进程树形式显示的话,没有找到相关选项,可能默认就是吧,如果你的不是,可以通过以下方法实现

在这里插入图片描述
点击Name标题栏三次,其实就是我们之前排序,第三次正好是取消排序,之后就会以进程树的形式显示

剩下的使用方法和Process Explorer一样了

【System Informer】

基本与Process Hacker一样

在这里插入图片描述
这里需要提一点,可以看到,在PING.EXE上右键时,结束进程树的按钮是灰色的,这些小细节应该就是System InformerProcess Hacker相比进步的地方吧,所以现在比较建议用新工具,当然前提是你测试过没有蓝屏这种严重BUG

(4)杀死线程

这是一个更加危险的操作,可能对操作系统的稳定性产生影响

【System Informer】

在这里插入图片描述
通过右键->属性(Properties)->Threads就可以看到该线程具体的线程信息了

在线程上右键就可以选择Terminate来杀死线程

在这里插入图片描述
在这里插入图片描述
可以看到,杀死PING.EXE进程中的一个线程后,原本的PING命令卡死了,不再输出PING命令的信息,但是并没有退出(结束进程),进程依旧活着,而且剩余两个线程也没有退出

过了几秒
在这里插入图片描述
整个进程就死掉了

Process Explorer会提示下载一个其他小程序,但是不下载也能显示,System Informer没有这个提示

删除恶意文件

1、确定文件占用情况

图形化工具中可以直接通过搜索框进行搜索关键字

在这里插入图片描述
更好方式是通过搜索文件句柄

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【Handle程序】

https://download.sysinternals.com/files/SysinternalsSuite.zip

这是Sysinternals Suite中的一个方便的命令行实用程序,可显示哪些文件由哪些远程打开等

可以通过下面的链接单独下载handle:前往下载

在这里插入图片描述
在这里插入图片描述

若发现存在其他进程占用恶意文件,可能也是恶意进程,可以考虑按照之前的方法处理

2、查询注册表

部分恶意程序可能对注册表进行了修改,内容包含恶意程序的名字,这里需要在注册表中搜索一下

Win+R打开运行框,输入regedit,回车

在这里插入图片描述
在这里插入图片描述
这样就可以进行全局搜索了

即使搜索到了,也不要着急删除或修改,跟各方确定好,很重要

3、删除恶意文件

直接图形化删除或者通过下面命令

# cmd
del xxx

# Powershell
Remove-Item -Path xxx

善后阶段

后续文章会更新有关善后阶段相关内容,主要为定损以及针对性排查处理,目的是解决潜在的受害服务器

常规安全检查阶段

后续文章会更新该阶段有关内容,目的是找出当前系统中存在的隐藏后门等

### Informer在微服务架构和Kubernetes中的角色 #### 微服务架构中的Informer机制 对于长时间序列预测任务,Informer通过优化Transformer模型结构来提高效率。具体来说,在处理长序列时间序列数据时,为了减少计算复杂度并加速推理过程,Informer采用了Q、K抽样以及蒸馏机制等技术手段[^2]。 然而,当考虑将Informer应用于微服务架构的消息总线组件时,则需注意两者功能定位上的差异: - **消息传递 vs 数据处理**:传统意义上的消息总线主要用于不同服务之间的异步通信;而Informer本质上是一个改进版的深度学习框架,专注于高效的时间序列数据分析与预测。 因此,直接把Informer当作微服务间的消息传输工具并不合适。不过,可以在某些特定场景下利用其强大的时间序列处理能力辅助业务逻辑决策支持系统的设计实现。 #### Kubernetes中的Informer机制 相比之下,Kubernetes环境下的Informer概念完全不同。这里指的是客户端库`client-go`所提供的一种监听API对象变化的方式。它允许开发者创建自定义资源定义(CRD),并通过制器模式自动响应集群状态的变化[^1]。 这种类型的Informer主要作用如下: - 实现事件驱动的应用程序; - 提供缓存层以降低对API服务器的压力; - 支持增量更新从而提升性能表现。 综上所述,虽然名称相似,但在微服务架构中讨论的是两种完全不同的技术和应用场景。前者属于机器学习领域内的创新成果,后者则是容器编排平台的一项重要特性。 ```go // 创建一个新的共享 Informed 的例子 factory := informers.NewSharedInformerFactory(clientset, time.Minute*30) podInformer := factory.Core().V1().Pods() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李火火安全阁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值