首页
社区
课程
招聘
[分享]ring3下伪装进程名绕过HS 部分Inline hook ,有码。
发表于: 2012-7-9 09:27 14439

[分享]ring3下伪装进程名绕过HS 部分Inline hook ,有码。

2012-7-9 09:27
14439
以前有人发过类似文章(或者说我抄袭了吧。),但是那个代码我测试了已经不能用了。貌似MFC上也会出错。这里我的代码可以在mfc上使用。
此方法不需注入就读写Hackshield的进程地址空间数据,以及其它API的Detour Hook。【不能用于过保护。】
HS白名单可用伪装的进程列表,摘自【原创】Hackshield内幕(http://bbs.pediy.com/showthread.php?t=150758):
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
1. Name: patcher.exe
2. Name: WerFault.exe
3. Name: IAANTmon.exe
4. Name: avp.exe
5. Name: WmiApSrv.exe
6. Name: xsync.exe
7. Name: fssm32.exe
8. Name: LGDCORE.exe
9. Name: ACS.EXE
10.Name: ITPYE.EXE
11.Name: Joy2Key.exe
12.Name: JOYTOKEYHIDE.EXE
13.Name: JOYTOKEYKR.EXE
14.Name: JOYTOKEY.EXE
15.Name: DWM.EXE
16.Name: WMIPRVSE.EXE
17.Name: DK2.EXE
18.Name: CSTRIKE-ONLINE.EXE
19.Name: RAGII.EXE
20.Name: EKRN.EXE
21.Name: GOM.EXE
22.Name: GAMEMON.DES
23.Name: VAIOCAMERACAPTUREUTILITY.EXE
24.Name: IPOINT.EXE
25.Name: NMCOSRV.EXE
26.Name: DEKARON.EXE
27.Name: AUDIODG.EXE
28.Name: NGM.EXE
29.Name: TASKMGR.EXE
30.Name: HGSCRAPEDITORHELPER.EXE
31.Name: SETPOINT.EXE
32.Name: NMSERVICE.EXE
33.Name: NSVCAPPFLT.EXE
34.Name: UPSHIFTMSGR.EXE
35.Name: NOD32KRN.EXE
36.Name: IMJPCMNT.EXE
37.Name: TCSERVER.EXE
38.Name: SPOOLSV.EXE
39.Name: IEXPLORE.EXE
40.Name: EXPLORER.EXE
41.Name: WINLOGON.EXE
42.Name: SERVICES.EXE
43.Name: CSRSS.EXE
44.Name: LSASS.EXE
45.Name: SVCHOST.EXE


浅谈ImagePath映像路径
Q:
ImagePath是什么?

A:
执行程式的时候,系统会建立一些资料区块,里面放了该程式执行时的一些资料,例如:CommandLine(就是程式参数,像是XX谷就是透过CommandLine来决定的IP和Port)....等
而ImagePath就是其中的一项

Q:
为什么改ImagePath可以过HackShield的记忆体存取保护?

A:
因为HackShield对于NtOpenProcess、 NtReadVirtualMemory...等这几条API有做Hook,就是大家一直说的InlineHook和Deep Inline Hook,然后去找这是哪个程式呼叫的,再去去 得该程式的ImagePath判断是否为白名单,不然就拒绝呼叫,所以我们只要改掉ImagePath骗HackShield说我们是白名单上的程式(工 作管理员)。

Q:
ImagePath怎么改?

A:
透过一连串的结构、指标下去改就好了,但是Win7 64bit的架构似乎不太一样,虽然有找到结构体,但是似乎无效。

ImagePath的修改
ImagePath位于...
PEB->_RTL_USER_PROCESS_PARAMETERS->ImagePathName

所以说我们要先取得PEB的位址,再延着这条路径往下走去改..
(亦可使用ZwQueryInformationProcess这条API取得PEB基址)
获取ImagePathName并修改的关键代码如下(x86机子可用):
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
void GetTaskMgr()
{
    ULONG Addr;
    const char taskmgr[] = "\\system32\\taskmgr.exe";
    int length = strlen(taskmgr) + strlen(getenv("windir")) + 1;
    char* tmp = (char*)malloc(length);
    memset(tmp, 0, length);
    strcpy(tmp, getenv("windir"));
    strcat(tmp, taskmgr);
    wchar_t* tmp2;
    AnsiToUnicode(tmp, &tmp2);
    _asm
    {
        mov eax, fs:[0x30];
        mov eax, [eax+0x10];
        add eax, 0x3c;
        mov Addr,eax;
    }
    *(ULONG*)Addr=(ULONG)tmp2;
}
 
HRESULT AnsiToUnicode(LPCSTR pszA, LPOLESTR* ppszW)
{
    ULONG cCharacters;
    DWORD dwError;
    if (NULL == pszA)
    {
        *ppszW = NULL;
        return NOERROR;
    }
    cCharacters =  strlen(pszA)+1;
    *ppszW = (LPOLESTR) malloc(cCharacters*2);
    if (NULL == *ppszW)
        return E_OUTOFMEMORY;
    if (0 == MultiByteToWideChar(CP_ACP, 0, pszA, cCharacters,
        *ppszW, cCharacters))
    {
        dwError = GetLastError();
        free(*ppszW);
        *ppszW = NULL;
        return HRESULT_FROM_WIN32(dwError);
    }
    return NOERROR;
}

调用GetTaskMgr函数即可伪装自身的程序为taskmgr.exe,绕过部分的HS Inline Hook

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费
支持
分享
最新回复 (7)
雪    币: 1898
活跃值: (1935)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
mark。记得之前在哪里看过一个bin,在R3层绕过HS防护的。

感谢楼主分享经验。
2012-7-9 09:41
0
雪    币: 22
活跃值: (478)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
记录一下:)
2012-7-9 11:14
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好像第一次看到是pjf提过的?
2012-7-9 11:20
0
雪    币: 44
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
哇。。大哥。。 太感谢了
2012-7-9 13:37
0
雪    币: 122
活跃值: (72)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
踩个。
2012-7-10 13:02
0
雪    币: 44
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
ruoko。。。
2012-7-10 13:30
0
雪    币: 13
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
能够在win7下面使用吗?谢谢
2018-7-7 00:17
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册