PE 文件检测
PE (Portable Executable) 可执行文件,该文件酱油 Windows 加载器执行代码、引用库、导入和导出 API 表等
检测方法一般如下
1. 基于字符特征的检测方法(静态)
2. 启发式检测方法(单步跟踪 / 静态分析)
3. 基于行为的检测方法(动态)
AV (Anti Virus) 躲避技术
一般来说分磁盘 / 内存两种
磁盘
- 打包(修改特征码、减小体积)
- 混淆(花指令、重组等)
- 加密 Crypters(改变可执行代码,在内存中执行加密文件)
- 软件保护(反逆向、反调试、虚拟机检测)
内存
一般流程如下
1. 利用 Windows API 向正常 PE 进程注入攻击代码
2. 获得目标进程 Handle 并分配空间
3. 将恶意代码注入到新分配内存中
4. 执行内存中的恶意代码
除此之外还有反射 DLL 注入技术、进程挖空技术、内连挂载技术等
下面有一种使用 Powershell 的内存注入方法
Todo: 有空再补
Shellter
Windows 下动态 shellcode 注入工具,在 kali 中使用时需要借助 Wine 环境
原理如下
对 PE 文件进行深入分析,将 payload 注入到另一个正常文件之中
改变 PE 文件的 Section 权限,并创建新的 Section
使用现有的 PE Import Address Table (IAT) 条目来定位将用于内存分配、传输和执行负载的函数
省流:将 Payload 加载到一个正常的程序中
sudo apt install wine sudo dpkg --add-architecture i386&apt update&apt -y install wine32 shellter