测验依据字符频度检测Powershell混杂

访客5年前黑客工具680

在我从前的文章中,从前描述过运用ObfuscatedEmpire来自动化C2通道中的PowerShell混杂,以躲避杀毒软件的签名,在那篇文章中,我也提到了其他人提出的用于检测歹意PowerShell脚本的技能。该技能开始由微软的李•霍尔姆斯(Lee Holmes)提出的,是为了搜索混杂发作的一些头绪。
例如,Invoke-Obfuscation运用的令牌混杂技巧是将撇号,行将`刺进到函数称号和其他登录凭证中。Invoke-Empire可能会成为iN`v`OK`e-`eM`p`IR`e,不过这些功用在PowerShell中的效果和Invoke-Empire是类似的,但会损坏与文字字符串“Invoke-Empire”匹配的杀软签名。可是,我真的期望脚本中的一半字符是由撇号组成吗? Lee早在2019年11月就对这一类型的检测办法进行过介绍。不过,在这篇文章中,我将首要参阅他最近的一篇文章,该文为咱们供给了一些十分棒的PowerShell功用,并运用Measure-CharacterFrequency和Measure-VectorSimilarity完成一些含糊检测技能。
本文基本上仅仅我重现Lee在他这篇文章中的一些检测技能,其中就包括一个可用于检测含糊化脚本的封装脚本。
这个脚本就是Invoke-ObfuscationDetection,首要的效果就是用作函数的封装器,可用于操作依据字符剖析的混杂检测功用。Invoke-ObfuscationDetection会把PowerShell脚本界说为“正常”字符散布的基线,经过核算给定的PowerShell脚本的字符散布,界说给定脚本有必要满意的字符散布的向量类似度,然后依据回来的布尔值是True或False来判别脚本是否被含糊化。
Invoke-ObfuscationDetection会回来一个“IsObfuscated”这样的布尔成果,给定一个包括脚本的字符串:
PS> Invoke-ObfuscationDetection -Script 'iN`v`OK`e-`eM`p`IR`e'
Obfuscated
----------
      True
Invoke-ObfuscationDetection还承受包括脚本的文件名作为输入的-ScriptPath参数:
PS /opt/ObfuscatedEmpire/data/obfuscated_module_source/> Get-ChildItem -Recurse -Include *.ps1 | Invoke-ObfuscationDetection | % { $_.Obfuscated } | Group-Object
Count Name                      Group
----- ----                      -----
   72 True                      {True, True, True, True...}
    2 False                     {False, False}
该指令显现Invoke-Obfuscation的TokenAll1指令混杂的Empire模块上的Invoke-ObfuscationDetection的成果,我还能够经过Invoke-ObfuscationDetection(启用ScriptBlock日志记载)来供给ScriptBlock日志:
PS> Get-WinEvent -FilterHashtable @{ProviderName="Microsoft-Windows-PowerShell"; Id = 4104} | % { [PSCustomObject] @{ ScriptName = $_.Properties[3].Value; Script = $_.Properties[2].Value } } | Invoke-ObfuscationDetection | Select -First 2
Name                                 Obfuscated
----                                 ----------
2980cef2-ed31-4146-870a-a395b2d3debf       True
431be04f-98a5-47cf-8e47-e565ccf6e520      False
在评论Invoke-ObfuscationDetection的有效性之前,我认为有必要解释一下测验办法, Invoke-ObfuscationDetection在完成时,其更大的应战就是要确认什么才干构成“正常”的PowerShell脚本。能够经过下载poshcode.org上的每个脚本,删去Windows Defender中有意混杂的脚本和辨认为歹意软件的脚本(一共5552个脚本),并运用Measure-CharacterFrequency功用得到均匀字符散布。
接下来的应战就是确认均匀字符散布时可承受的差异,由于并不是每个脚本都完全符合均匀字符散布。尽管我会运用Measure-VectorSimilarity函数来丈量每个脚本与均匀字符散布的差异,但我怎么决议哪些差异是能承受的,哪些是不能承受的?经过测验,我发现仍是运用多年来的经历比较靠谱。我对5552个脚本中的一半进行了测验(以防止过度拟合),发现有一半会经过我供给的Measure-CharacterFrequency来确认均匀字符散布。
检测的有效性验证
现在敞开杀软环境,当我将一个含糊化的脚本供给给Invoke-ObfuscationDetection时,会发作假阴性过错,可是它没有被检测为混杂。当我向Invoke-ObfuscationDetection供给一个没有含糊化的脚本时,会发作假阳性过错,但它被检测为混杂。
在这样的情况下,确认假阳性或假阴性率发作的概率便十分重要,为此运用我多年的测验经历,我在测验过的脚本中确认了一些类似性较高的混杂脚本,以便把假阳性和假阴性的概率降到更低。我会对测验的脚本运用Invoke-Obfuscation的TokenAll1指令进行混杂,而将未混杂的那一半脚本提交给Invoke-ObfuscationDetection以确认假阳性发作的概率,然后我会将这些脚本提交到Invoke-ObfuscationDetection以确认假阴性发作的概率。
下图中,X轴代表类似度要求,Y轴代表发作的概率。

[1] [2]  黑客接单网

相关文章

赌博把家里的山林输给别人五十年,写下了字据,受

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-0708%DOMAIN_HOME%servers...

中国黑客团队接单,qq上找黑客接单怎么搜,QQ强行添加好友找黑客

ARP与MITM原理<script>图5 SPI协议通讯示意图2.进入图形化界面指令:startx[1][2][3][4][5][6][7][8]黑客接单渠道前文{ r...

如何监控微信,武汉网络黑客联系,在淘宝上怎样找黑客服务器

这是咱们历年来捕获到的影响规模最大,继续时刻最长的地下工业链活动。 二、依托第三方渠道中转 22 -l list available modules  图片2:重定向链10/tcpfi...

黑客接单网站是真的嘛_编程一小时

2018年6月,国外安全研讨人员揭露了运用Windows 10下才被引进的新文件类型“.SettingContent-ms”履行恣意指令的进犯技巧,并揭露了POC。 而该新式进犯办法被揭露后就马上被黑...

黑客业务接单团队,黑客破解联系,在淘宝黑客找丢失的手机

region.save(pic_text_path) 5地址:http://www.digitalsquid.co.uk/netspoof/[1][2][3]黑客接单渠道缝隙运用...