内容简介:其实很早之前,攻击者就已经开始使用合法工具来渗透目标网络并实现横向攻击了。理由很简单:使用合法工具可以降低被检测到的几率,而且进过授权的工具(而并非恶意工具)可以更容易绕过安全防护机制。因此对于攻击者来说,PowerShell就成为了一个绝佳的工具。在这篇文章中,我们将跟大家讨论PowerShell的最佳实践方式,而本文的内容将能够帮助你对抗那些使用PowerShell来攻击你的人。PowerShell是一种专为MicrosoftWindows和Windows Server设计的自动化平台兼脚本语言,它可以
其实很早之前,攻击者就已经开始使用合法 工具 来渗透目标网络并实现横向攻击了。理由很简单:使用合法工具可以降低被检测到的几率,而且进过授权的工具(而并非恶意工具)可以更容易绕过安全防护机制。因此对于攻击者来说,PowerShell就成为了一个绝佳的工具。在这篇文章中,我们将跟大家讨论PowerShell的最佳实践方式,而本文的内容将能够帮助你对抗那些使用PowerShell来攻击你的人。
PowerShell是什么?
PowerShell是一种专为MicrosoftWindows和Windows Server设计的自动化平台兼脚本语言,它可以简化系统管理步骤。与其他基于文本的 shell 不同,PowerShell还可以利用Microsoft .Net Framework的强大功能,并给用户提供多种对象和内置功能来帮助用户管理自己的Windows环境。
为什么是PowerShell?
目前有很多网络攻击都在使用PowerShell,尤其是近期的Petya/NotPetya攻击活动。对于攻击者来说,最重要的是PowerShell是Windows自带的工具,并且整合了.NET Framework组件,而在攻击者的入侵和感染活动中,这个框架组件能够提供多种操作选项。
对于攻击者而言,PowerShell最吸引人的方面有以下几个:
上面列出的这些因素让PowerShell成为了一种高效的攻击向量。
PowerShell首次被当作一种攻击平台被提出是在2010年,当时在DefCon18上有研究人员演示了利用PowerShell的PoC,详情请参考大会的演讲视频【视频地址】。https://www.youtube.com/watch?v=JKlVONfD53w
目前,社区中有很多类似Nishang、PowerSploit和PowerShell Empire平台的攻击工具,攻击者可以利用这些工具来进行网络侦察、持续性感染以及横向攻击活动。当然了,考虑到PowerShell的自身属性,它还可以进行各种形式的编程,攻击者可以采用编程的方式将其打造成一款自定义工具。
PowerShell安全最佳实践
考虑到某些组织因为需求关系不能禁用或删除PowerShell,下面给出的几条安全实践建议可以帮助你在享受PowerShell的高效性时免受网络威胁的困扰。
1. PSLockDownPloicy以及PowerShell的受限语言模式
受限语言模式能够将PowerShell限制在基础功能状态,并移除其高级功能的支持,例如.NET和Windows API调用以及COM访问。一旦PowerShell失去了这些高级功能,那么绝大多数的基于PowerShell的攻击工具都将会失效。但是在企业环境中,这种方法将会对合法脚本产生负面影响,因此我们建议在采用这种方法之前,一定要进行多次测试,以保证合法代码的正常运行。【配置参考资料】
启用受限语言模式:
通过组策略启动:
2. PowerShell v.5+Applocker+DeviceGuard
PowerShell v.5自带了很多优秀的安全增强功能,非常适合企业环境使用。这些安全增强功能包括:
除此之外,用户还可以使用Applocker来阻止未知来源的PowerShell代码。
Device Guard是Windows 10和Windows Server2016新推出的功能,它可以利用先进的硬件功能来增强受限语言模式和应用程序白名单功能。
3. 记录PowerShell活动
我们可以通过组策略来开启PowerShell模块记录功能:
为了让这些日志发挥作用,我们需要将其提供给一个中央日志系统,并针对已知的攻击方法进行警告配置。
相关活动:
检测PowerShell攻击代码最好的方法就是查找关键标识符,即关键代码段。
例子:检测Mimikatz(一种收集登录用户凭证的工具) 相关的Mimikatz事件日志关键词:
对于经过混淆处理的PowerShell,我们应该设计自定义规则。比如说:
因为它们都是在混淆技术中会经常使用的,而合法软件或正常的管理员一般是不会使用它们的。
4. 移除PowerShell V.2
由于微软给最新版本PowerShell整合的安全增强功能并不适用于PowerShell v.2,因此v.2版本的PowerShell将有可能被用于攻击者的横向渗透或持久化攻击之中。处于类似原因,微软近期宣布将在下一个Windows10更新中废除PowerShell v.2。因此,我们建议广大用户尽快移除系统中的PowerShell v.2。
5. 脚本代码签名
如果你需要在企业环境中使用PowerShell脚本的话,代码签名也是另一种可以增强安全性的方法。这种功能将只允许经过数字签名的脚本代码在计算机中运行。但是我们haixuya噢考虑到某些攻击者可能会使用恶意文件签名来绕过这种防护机制,因此我们还需要添加额外的安全层以防止这种绕过技术。
6. PowerShell检测绕过技术
由于使用PowerShell的攻击事件越来越多,因此PowerShell也逐渐开始吸引到了社区研究人员的注意。而针对各种各样的检测技术,攻击者也研发出了相应的绕过方法。其中包括:
上面列举出的只是其中的一小部分技术,但“记录PowerShell活动”那部分的安全实践建议可以检测其中的绝大部分绕过行为。
总结-PowerShell的安全并没有那么容易实现
在对目前绝大多数已知的攻击技术进行了分析之后,我们强烈建议大家升级至Windows 10和PowerShell v.5,并移除PowerShell v.2。虽然这种操作可能不适用于某些特殊的企业环境,但相关的网络管理员也应该尽量部署并激活本文所介绍的安全保护技术,并及时更新攻击识别信息。
-
参考来源:digitalshadows,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM
推荐9个管理员必备的安全相关powershell脚本
链接:
http://techgenix.com/essential-powershell-scripts/
1.清理管理员组
Remove multiple users from the local administrator group on multiple computers
2.加固SAM文件访问
SAMRi10 – Hardening SAM Remote Access in Windows 10/Server 2016
3.防止net sessions枚举攻击
Net Cease – Hardening Net Session Enumeration
4.以独立进程运行脚本
Run Script As A Process (StartScriptAsProcess.ps1)
5.文件系统安全模块
File System Security PowerShell Module 4.2.3
6.病毒汇总报告
Get-VirusTotalReport – Querying VirusTotal service using PowerShell
7.SHA-1证书签名检查
SHA1 Certificate Signature Check (Updated)
8.检测本地管理员账户
Get remote machine members of Local Administrator group
9.kerberos golden ticket检查
Kerberos Golden Ticket Check (Updated)
版权声明:关于转载非原创文章
安全初心转载的第三方文章,版权归原作者所有。如转载稿涉及版权等问题,请立即联系,我们会予以更改或删除相关文章,保证您的权利。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- vue项目实践004~~~一篮子的实践技巧
- HBase实践 | 阿里云HBase数据安全实践
- Spark 实践:物化视图在 SparkSQL 中的实践
- Spark实践|物化视图在 SparkSQL 中的实践
- HBase实践 | 数据人看Feed流-架构实践
- Kafka从上手到实践-实践真知:搭建Zookeeper集群
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
技术领导之路(中英文对照)
Gerald M.Weinberg / 余晟 / 电子工业出版社 / 2009-12 / 69.00元
《技术领导之路:全面解决问题的途径(中英文对照)》内容简介:搞定技术问题并不简单,但与人打交到也并非易事。作为一个技术专家,你是否在走上管理岗位时遇到了各种不适“症状”?《技术领导之路:解决问题的有机方法》一书将帮助你成为一个成功的解决问题的领导者。书中温伯格从一个反思者的角度阐述了要成为一个成功的解决问题的领导者必备的3个技能——MOI,即激励(Motivation)、组织(Organizati......一起来看看 《技术领导之路(中英文对照)》 这本书的介绍吧!