首页
社区
课程
招聘
[原创] 简单的应用层进程隐藏
发表于: 2024-9-10 14:15 3545

[原创] 简单的应用层进程隐藏

2024-9-10 14:15
3545

众所周知,我们在使用电脑的过程中,经常会被某些恶意软件上传文件,侵犯个人隐私。
为此众多安全研究人员开发了各种对抗方案。
包括但不限于:

  • 改peb,ldr,eprocess
  • 句柄降权
  • ssdt hook

大部分依赖于驱动去修改内核对象,那么有没有更简单快捷而且稳定不蓝屏的方案呢?

版本答案 movefile

我们知道,windows经过众多版本的阿三迭代,代码已经成了一坨屎,bug数不胜数,同时解决bug最好的办法不是修复,而是加一层if else 不让用户触发。

比如:当我们新建一个名字含有. 的文件夹时,会马上被explore阻止。
图片描述

于是,我们来加一点点特技

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
void check_path(string path) {
    cout << "check_path: "<<path<<" , result: " << PathFileExistsA(path.c_str()) << endl;
}
 
int main() {
    char buf[MAX_PATH];
    GetModuleFileName(NULL, buf, ARRAYSIZE(buf));
    string cur_path = buf;
    cout << "cur_path: " << cur_path << endl;
    check_path(cur_path);
 
    HMODULE base = GetModuleHandle("mov2.exe");
    cout << "base: " << base << endl;
 
    SECURITY_ATTRIBUTES sec = { 0 };
    BOOL ret = CreateDirectory("C:\\Users\\root\\AppData\\Local\\Temp\\1234567", &sec);
    cout << ret << endl;
    ret = CreateDirectory("C:\\Users\\root\\AppData\\Local\\Temp\\1234567\\....\\", &sec);
    cout << ret << endl;
    ret = MoveFile(cur_path.c_str(), "C:\\Users\\root\\AppData\\Local\\Temp\\1234567\\....\\Temp");
    cout << ret << endl;
    ret = MoveFile("C:\\Users\\root\\AppData\\Local\\Temp\\1234567\\....\\", "C:\\Users\\root\\AppData\\Local\\Temp\\1234567\\Temp");
    cout << ret << endl;
 
 
    cout << "------------check path 1 -----------" << endl;
    GetModuleFileName(NULL, buf, ARRAYSIZE(buf));
    cur_path = buf;
    cout << "cur_path: " << cur_path << endl;
    check_path(cur_path);
 
    cout << "------------check path 2 -----------" << endl;
    GetModuleFileNameEx(GetCurrentProcess(), NULL, buf, ARRAYSIZE(buf));
    cur_path = buf;
    cout << "cur_path: " << cur_path << endl;
    check_path(cur_path);
 
 
    cout << "------------check path 3 -----------" << endl;
    char buf3[1024] = { 0 };
    SIZE_T size = 1024;
    NtQueryVirtualMemory(GetCurrentProcess(), base, 2, buf3, size, &size);
    UNICODE_STRING* us_str = (UNICODE_STRING*)buf3;
    wcout << L"cur_path: " << us_str->Buffer << endl;
    return 0;
}

cur_path: C:\Users\root\Desktop\mov2.exe
check_path: C:\Users\root\Desktop\mov2.exe , result: 1
base: 00007FF6B6680000
1
1
1
1
------------check path 1 -----------
cur_path: C:\Users\root\Desktop\mov2.exe
check_path: C:\Users\root\Desktop\mov2.exe , result: 0
------------check path 2 -----------
cur_path: C:\Users\root\AppData\Local\Temp\1234567....\Temp
check_path: C:\Users\root\AppData\Local\Temp\1234567....\Temp , result: 0
------------check path 3 -----------
cur_path: \Device\HarddiskVolume4\Users\root\AppData\Local\Temp\1234567....\Temp

最后

图片描述


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2024-9-10 14:22 被劫局丶编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 3878
活跃值: (3668)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
强制删除?  还有个方案  cs的插件 
2024-9-10 15:44
0
雪    币: 412
活跃值: (2181)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
3
iamasbcx 强制删除? 还有个方案 cs的插件
纯r3强删不了吧
2024-9-10 15:50
0
雪    币: 232
活跃值: (380)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
牛逼 魔幻
2024-9-10 17:54
0
雪    币: 4713
活跃值: (3224)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
啥意思,进程运行在一个文件夹里,把文件夹强行改名.,再强制删除文件夹,进程 就隐藏了?
2024-9-10 20:22
0
雪    币: 412
活跃值: (2181)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
6
所有查询exe路径的api,返回的路径,都找不到这个exe。
2024-9-11 23:00
0
雪    币: 734
活跃值: (3802)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
ret = MoveFile("C:\\Users\\Administrator\\AppData\\Local\\Temp\\1234567\\....\\", "C:\\Users\\Administrator\\AppData\\Local\\Temp\\1234567\\Temp");

Win11系统,上面这行拒绝访问(已经用管理员身份打开的VS调试的)

最后于 2024-9-12 09:38 被appview编辑 ,原因:
2024-9-12 09:24
0
雪    币: 412
活跃值: (2181)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
8
appview ret&nbsp;=&nbsp;MoveFile(&quot;C:\\Users\\Administrator\\AppData\\Local\\Temp\\1234567\\ ...
不需要管理员权限
2024-9-12 17:04
0
雪    币: 246
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
910
9
MoveFile函数无法在不同磁盘卷之间移动文件或者目录,所以说这个方式的做法,只适合临时目录所在盘符的操作,换个盘符,一定是失败的!
2024-9-12 18:03
0
雪    币: 412
活跃值: (2181)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
10
910 MoveFile函数无法在不同磁盘卷之间移动文件或者目录,所以说这个方式的做法,只适合临时目录所在盘符的操作,换个盘符,一定是失败的!
同盘符就可以,你在其他盘可以不move到temp目录
2024-9-13 12:42
0
雪    币: 232
活跃值: (380)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
appview ret&nbsp;=&nbsp;MoveFile(&quot;C:\\Users\\Administrator\\AppData\\Local\\Temp\\1234567\\ ...
模式调试 是无效果的  至少在我电脑上是这样的
2024-9-13 15:25
0
雪    币: 97
活跃值: (584)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
为什么没人说会蓝屏 我的系统是win10版本号20H2
2024-9-14 19:38
0
游客
登录 | 注册 方可回帖
返回
//