### Payload分离免杀思路第二季知识点详述
#### 一、背景及概念介绍
##### Windows环境及.NET Framework
- **Windows环境**:自Windows XP Media Center Edition起,默认安装.NET Framework,直至当前的Windows 10操作系统,其默认版本已升级至4.6.00081.00。随着时间推移,最新的默认安装版本已更新为4.7.2053.0。
- **.NET Framework**:这是一个由微软开发的应用程序框架,旨在简化跨平台的Windows应用开发过程。它包含了大量预编译的代码库,以及用于执行这些代码的服务。
##### Csc.exe - C#编译器
- **简介**:Csc.exe是.NET Framework中的C#编译器,在Windows平台上,如果安装了.NET Framework SDK,则可以在特定目录下找到该文件(如`C:\WINNT\Microsoft.NET\Framework\xxxxx`)。
- **使用**:可以通过命令行调用Csc.exe来编译C#源代码文件。例如,假设有一个名为`test.cs`的源文件,可以通过以下命令将其编译成名为`test.exe`的控制台应用程序:`csc /target:exe test.cs`。
##### InstallUtil.exe - 安装工具
- **功能**:这是一个命令行工具,允许用户通过执行指定程序集中包含的安装组件来安装和卸载服务器资源。该工具可以与`System.Configuration.Install`命名空间中的类协同工作。
- **使用**:InstallUtil.exe通常与Visual Studio一同安装。要运行此工具,需要使用开发者命令提示符(或在Windows 7中的Visual Studio命令提示符)。更多详细信息,请参阅官方文档:[InstallUtil.exe - 安装工具](https://docs.microsoft.com/en-us/dotnet/framework/tools/installutil-exe-installer-tool)。
##### 默认安装位置
- **x32位系统**:`C:\Windows\Microsoft.NET\Framework\[版本号]`
- **x64位系统**:`C:\Windows\Microsoft.NET\Framework64\[版本号]`
#### 二、Payload分离免杀策略
##### 目的
- **绕过安全检测**:通过利用系统自带工具和组件执行shellcode,以达到绕过主流反病毒软件的目的。
- **适应性**:本教程侧重于Windows 7及以上版本的操作系统,以及x64架构的服务器环境。
##### 方法
- **使用系统自带工具**:通过调用系统自带的工具和组件来执行shellcode,比如利用Csc.exe编译特定的C#代码,再使用InstallUtil.exe进行安装。
- **密钥文件**:生成密钥文件,例如`installutil.snk`,用于签名编译后的可执行文件,进一步增强隐蔽性和可信度。
##### Demo示例
- **Demo 1**:以抓取密码为例,在不同环境下(包括安装有360套装、小红伞、NOD32、麦咖啡等安全软件的目标机)测试payload分离免杀策略的有效性。
- **步骤**:
1. **生成密钥**:使用`csc.exe`编译一个简单的C#程序,并指定生成密钥文件`installutil.snk`。
2. **编译程序**:编译完成后,得到名为`Micropoor.exe`的库文件。
3. **部署与执行**:利用`InstallUtil.exe`安装并执行编译好的程序,实现对目标机上密码的抓取操作。
#### 三、总结
通过对payload分离免杀策略的学习与实践,我们了解到如何利用Windows系统自带工具和组件来规避常见的安全防护措施。这种方法不仅适用于Windows 7及以上版本的操作系统,同时也适合于x64架构的服务器环境。通过具体的示例演示,可以看到即使在安装有多种安全软件的目标机上,该策略仍然能够有效实施。此外,生成密钥文件并用于签名编译后的可执行文件,也是增强隐蔽性和规避检测的重要手段之一。