引言
本文为“浅谈攻击与防御”系列博文的其中一篇。 本月度系列博文将重点介绍已知的攻击者为实施网络攻击而采用的多种不同策略和技术,以及组织可如何进行检测并最终阻止它们。我将使用 Mitre ATT&CK 知识库和术语来帮助大家了解各种技术。如果您还不知道 Mitre ATT&CK 是做什么的,请观看我在 2018 年发表的博客和视频:了解敌人战术,方能百战不殆( https://www.fortinet.com/blog/industry-trends/smarter-security-starts-with-understanding-how-cybercriminals-wo )。 我使用 ATT&CK 知识库的原因之一是安全行业正趋于更精细地评估某项安全措施在应对现实世界攻击时是否有效。越来越多的组织和网络安全专业人员正在使用该知识库来更准确地衡量安全措施的有效性。如果贵组织尚未这样做,那么我强烈建议您考虑一下,绝对不会让您失望。 首先,我将在本文分析一款广受欢迎的工具:PowerShellPowerShell 概述
微软的 .NET 是一种免费的跨平台 Web 服务策略,旨在帮助管理员使用多种语言编辑器和库来快速构建应用。PowerShell 于 2006 年 11 月首次发布,是一种基于 .NET 的命令行脚本语言,可帮助管理员和高级用户快速自动化管理操作系统所需的某些日常任务。它还可用于使用多种语言编辑器和库来快速构建跨平台应用。在管理网络操作系统方面,它几乎已成为事实上的标准。PowerShell 现在已经开源,并默认安装在许多版本的 Windows 上。与此同时,我们大多数人也都知道,恶意攻击者非常成功地利用了这种易于使用的脚本语言,包括利用它来安装恶意负载。以下是其中几个原因:
PowerShell 现在预装在 Windows 计算机上;
它提供了一种简单的方法,可以直接从内存中执行任意有效负载,该功能可能非常有用,但同时它也允许传递无文件恶意软件 ;
容易混淆,以逃避基于签名的防御;
PowerShell 是受信任的工具(管理员每天都在使用),并且通常不会对其进行加固;
许多使用 PowerShell 的恶意脚本都可以免费获得,包括 PowerShellEmpire、PowerSploit 等工具。
抵御 PowerShell 攻击
您可以利用下面的 PowerShell 防御措施:
受限语言模式
禁止直接访问:.NET 脚本,通过 Add-Type cmdlet 调用 Win32 API,以及与 COM 对象进行交互(注意:请谨慎操作,因为您可能会破坏一些现有的 PowerShell 管理任务)
PowerShell v5(此版本具有许多不错的功能,可提供更好的安全性 - 请升级)
脚本块日志记录 – 允许查看脚本试图执行的操作。之前的版本未记录此活