专栏名称: 深信服千里目安全实验室
深信服科技旗下安全实验室,致力于网络安全攻防技术的研究和积累,深度洞察未知网络安全威胁,解读前沿安全技术。
目录
相关文章推荐
汽车金融大全APP  ·  被骗了,6.98 万海鸥没有智驾天神之眼 ·  昨天  
51好读  ›  专栏  ›  深信服千里目安全实验室

从SharPersist思考恶意软件持久化检测

深信服千里目安全实验室  · 公众号  ·  · 2019-10-19 17:50

正文


持久化( Persistence 是一个攻击链周期中非常重要的环节,攻击者会利用各种技术确保恶意软件在系统上驻留的时间更加长久,即使在设备重启、凭据修改或其他可能破坏当前恶意活动的操作发生后,也能够重新拉起和保持恶意的行为。


建立持久化又分为 持久化注入 持久化触发 两个部分。持久化注入通常指植入恶意 payload,通常包括进程注入、EXE 文件注入、动态链接库( DLL )注入、 HTML 应用程序( HTA )注入、脚本注入等;而持久化触发则包括添加自启动项、服务、计划任务等。


国外安全研究人员在九月发布了一个用 C#编写的持久化工具包SharPersist ,主要用于实现 Windows下的各类持久化操作,该项目的开源地址为:https://github.com/fireeye/SharPersist


SharPersist 支持的持久化技术包括以下几种:


  • keepass – keepass配置文件中植入后门

  • reg – 添加/修改注册表项

  • schtaskbackdoor – 在计划任务中添加后门操作

  • startupfolder – 自启动目录添加LNK文件

  • tortoisesvn - tortoise svn hook 脚本

  • service – 创建服务

  • schtask – 创建计划任务


使用 SharPersist 实现持久化非常简单,命令行下添加参数即可实现指定的功能,会用到的参数表如下:


参数

说明

-t

进行持久化

-c

执行命令

-a

执行的命令所需要的参数

-f

需要创建或修改的文件

-k

需要创建或修改的注册表项

-v

需要创建或修改的注册表键值

-n

计划任务或服务的名称

-m

需要执行的方法(添加、删除、查询、列出)

-o

可选参数(如添加计划任务的频率:每天、每小时、每次登录等)

-h

查看帮助


使用-h参数可以获取到非常详细的使用说明,下面用一些实例如何使用SharPersist实现持久化,例如,把notepad.exe添加到注册表自启动:


> SharPersist.exe -t reg -m add -k "hkcurun" -v "notepad" -c "C:\Windows\System32\cmd.exe" -a "/c notepad.exe"



将powershell命令添加到计划任务:


>SharPersist.exe -t schtask -m add -c "%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe" -a "-e bypass C:\Windows\notepad.exe" -n notepad



SharPersist 中实现的几项持久化功能都是比较容易识别的,实际上还有更多可被利用的持久化技术, MITRE ATT&CK 给出了一份更为详细的列表:



随着对抗手段日益复杂化,持久化技术也将演变得更加隐蔽,想要在端点上识别出攻击者的持久化手段,就需要采集大量的数据进行分析判别,看起来简单的检测工作,在实际环境中面临着很多困难。

在真实环境中捕获有效恶意样本是一个难题,况且还要对采集到的样本进行确认和分类,好在很多渗透测试工具提供了能够实现持久化的功能,如本文提到的 SharPersist ,还有 Metasploit以及Persistence Aggressor Script 等,可以用于模拟各种常见的恶意软件持久化操作,以便安全研究人员从中提取特征。

实际应用中,仍然还会存在很多阻碍,如某些正常软件和运维工具,也可能会触发检测规则,要如何减少类似的误报;在采集和存储系统安全日志时,是否会影响到系统性能,并且 在大量的日志中如何有效的进行检测,避免过度消耗资源,都是安全研究人员要面临的挑战。


参考链接







请到「今天看啥」查看全文