欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[翻译]为渗透测试者编写.NET可执行文件 part2

[翻译]为渗透测试者编写.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。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功