[翻译]为渗透测试者编写.NET可执行文件 part2
这篇文章是对上周那篇 .NET 可执行文件的一些改进。首先,我们将payload PowserShell执行直接写入exe文件。然后,我们将添加一个自定义的应用程序清单来控制程序运行的进程级别。有关part1的部分在这里, 相关代码可以在这里找。
Stageless payload
这里不是让 PowerShell 下载并执行我们的 payload ,而是将 payload写进一个文件里,让PowerShell去读取和执行。
“什么什么?我们要往磁盘里面写东西?!”
是的,但是...我们会加密它,而且很多应用程序都是把东西写到磁盘上,因此这并不容易被发现。
虽然不是真正意义上的加密,但对我们来说已经足够了。
我们将payload中的每个字节进行异或,然后对其使用base64加密。此处的异或就是我们所说的“加密”,这样在PowerShell中很容易实现“解密”,base64加密是为了产生普通的字符以便粘贴到程序中去。如下是PowerShell脚本:
param (
[string]$in = $( Read-Host "Please specify a file to encode with -in" ),
[string]$out = $( Read-Host "Please specify an output file with -out" )
)
if (-Not (Test-Path $in)) { Read-Host "Please specify a valid filepath" }
$str = [System.IO.File]::ReadAllText($in)
$bytes = [System.Text.Encoding]::Ascii.GetBytes($str)
for($i=0; $i -lt $bytes.count; $i++) {
$bytes[$i] = $bytes[$i] -bxor 0x71
}
[Convert]::ToBase64String($bytes) | Out-File $out
注意:上传附件及图片大小不得大于30M。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
复制成功
