首页
社区
课程
招聘
[原创]任务管理器里隐藏服务名HideSrv
发表于: 2020-4-11 15:31 18875

[原创]任务管理器里隐藏服务名HideSrv

2020-4-11 15:31
18875

背景:

    前段时间有个需求,一个正规项目需要不考虑杀毒的情况下在任务管理器里隐藏服务名,各位大佬别喷先,声明一点:绝对是正规项目。虽然解释有点尴尬,但是的确是正规项目里有这个需求,不是病毒不是木马。职业操守是有的。不多说了,因为这个需求很容易越描越黑。。。

    遥想多年前就隐约的记得做过这么个东西,当时是hook的taskmgr.exe里四个api( EnumServicesStatusA/W/ExA/ExW )和mmc.exe里的EnumServiceGroupW
    于是找出代码来往win7下面实验了下,结果还是令人满意的。但是在win8和win10下实验了一下的时候,却发现了问题。结果不行!!!

    这一下就麻烦大了,研究点东西资料不多的时候还是很头疼的,最终没结果的时候问了下prochg老大,经过老大指点原来开始走rpc了,有了这个指引点之后
迅速的就想办法hookservices了,这样也方便全部接管,也顺利的定位到了 rpcrt4.dll!NdrClientCall2这个,然后这个是一个变参,不好hook,不过功夫不付有心人,
至于可变参数如何hook不在讨论范围,有兴趣的可以自行搜索一下,还是很有意思的。当hook这个成功之后,又是一个问题,如何注入services.exe.


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

上传的附件:
收藏
免费 8
支持
分享
最新回复 (32)
雪    币: 1012
活跃值: (672)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
2
2020-4-11 15:39
0
雪    币: 22
活跃值: (453)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
试了下 没效果。。win7X64
2020-4-11 15:58
0
雪    币: 429
活跃值: (418)
能力值: ( LV6,RANK:81 )
在线值:
发帖
回帖
粉丝
4
管理员 并重启taskmgr.exe
2020-4-11 16:02
1
雪    币: 22
活跃值: (453)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
重启好用了 谢谢分享 好像是用SetServiceObjectSecurity实现的。 
2020-4-11 16:11
0
雪    币: 9934
活跃值: (2554)
能力值: ( LV6,RANK:87 )
在线值:
发帖
回帖
粉丝
6
6次下载,2个人回帖。嗯emmm
最后于 2020-4-11 16:32 被Lixinist编辑 ,原因:
2020-4-11 16:32
0
雪    币: 429
活跃值: (418)
能力值: ( LV6,RANK:81 )
在线值:
发帖
回帖
粉丝
7
这下得找 雮尘珠 解除jj了
2020-4-11 16:36
0
雪    币: 18
活跃值: (1059)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
8
靴子 重启好用了 谢谢分享 好像是用SetServiceObjectSecurity实现的。 [em_1]
里面是LIB文件。。。。花几分钟凑了段隐藏的代码给伸手党。
2020-4-11 16:54
0
雪    币: 18
活跃值: (1059)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
9
靴子 重启好用了 谢谢分享 好像是用SetServiceObjectSecurity实现的。 [em_1]
#include <windows.h>
#include <stdio.h>
#include <AccCtrl.h>
#include <sddl.h>
#include <aclapi.h>
#include "HideSrv.h"
BOOL AdjustAccessRights(char *lpszServiceName)
{
  BOOL bDaclPresent = FALSE;
  BOOL bDaclDefaulted = FALSE;
  SC_HANDLE schManager = NULL;
  SC_HANDLE schService = NULL;
  PACL pacl = NULL;
  PACL pnewacl = NULL;
  EXPLICIT_ACCESS exa;
  DWORD dwSize = 0;
  DWORD code = ERROR_SUCCESS;
  SECURITY_DESCRIPTOR sd;
  PSECURITY_DESCRIPTOR psdesc = NULL;
  BOOL bError = FALSE;
  memset(&exa, 0, sizeof(exa));
  memset(&sd, 0, sizeof(sd));
  schManager = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
  if (!schManager)
  {
    bError = TRUE;
  }
  if (!bError)
  {
    schService = OpenService(schManager, lpszServiceName, READ_CONTROL | WRITE_DAC);
    if (!schService)

    {
      bError = TRUE;
    }
  }
  if (!bError)
  {
    if (!QueryServiceObjectSecurity(schService, DACL_SECURITY_INFORMATION, &sd, 0, &dwSize))
    {
      if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
      {
        psdesc = (PSECURITY_DESCRIPTOR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwSize);
        if (psdesc == NULL)
        {
          bError = TRUE;
        }
        if (!QueryServiceObjectSecurity(schService, DACL_SECURITY_INFORMATION, psdesc, dwSize, &dwSize))
        {
          bError = TRUE;
        }
      }
      else {
        bError = TRUE;
      }
    }
  }
  if (!bError)
  {
    wchar_t			sddl[] = L"D:(D;;DCWPDTSD;;;IU)(D;;DCWPDTSD;;;SU)(D;;DCWPDTSD;;;BA)(A;;CCSWLOCRRC;;;IU)(A;;CCSWLOCRRC;;;SU)(A;;CCSWRPWPDTLOCRRC;;;SY)(A;;CCDCSWRPWPDTLOCRSDRCWDWO;;;BA)";
    PSECURITY_DESCRIPTOR	sd = nullptr;
    DWORD			SecurityDescriptorSize = 0;
    if (!ConvertStringSecurityDescriptorToSecurityDescriptorW(sddl, SDDL_REVISION_1, &sd, &SecurityDescriptorSize))
    {
    }
    if (!SetServiceObjectSecurity(schService, DACL_SECURITY_INFORMATION, sd))
    {
      bError = TRUE;
    }
  }
  if (pnewacl)
  {
    LocalFree(pnewacl);
  }
  if (psdesc)
  {
    HeapFree(GetProcessHeap(), 0, psdesc);
  }
  if (schService)
  {
    CloseServiceHandle(schService);
  }
  if (schManager)
  {
    CloseServiceHandle(schManager);
  }
  return(bError);
}
int main()
{
  printf("hide ret = %d\n", AdjustAccessRights("wmiApSrv"));
  return(0);
}



2020-4-11 16:55
0
雪    币: 429
活跃值: (418)
能力值: ( LV6,RANK:81 )
在线值:
发帖
回帖
粉丝
10
自古评论出人才
2020-4-11 17:07
0
雪    币: 1129
活跃值: (2761)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
感谢分享
2020-4-11 17:09
0
雪    币: 181
活跃值: (621)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
o ? 好不好Hook.。。第一次听说还跟是不是变参有关系  0.0
2020-4-11 17:20
0
雪    币: 2534
活跃值: (1648)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
盲猜更改的安全描述
2020-4-11 17:25
0
雪    币: 1353
活跃值: (2336)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
收藏一份
2020-4-12 10:39
0
雪    币: 515
活跃值: (3272)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wem
15
收了
2020-4-12 21:52
0
雪    币: 7092
活跃值: (2988)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
收藏
2020-4-12 22:15
0
雪    币: 73
活跃值: (923)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
我就想问下楼主,为啥你们这么牛逼
2020-4-12 22:33
0
雪    币: 74
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
收藏一份
2020-4-13 15:21
1
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
看看,怕是看不懂。
2020-4-15 16:44
0
雪    币: 0
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
厉害
2020-4-15 17:48
0
雪    币: 3738
活跃值: (3872)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
感谢分享!
2020-4-22 20:27
0
雪    币: 300
活跃值: (2477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
mark
2020-4-23 20:39
0
雪    币: 2264
活跃值: (307)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
23
NB
2020-4-27 13:21
0
雪    币: 259
活跃值: (283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
没有代码 只有lib?
2020-4-27 14:30
0
雪    币: 4006
活跃值: (726)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
25
666
2020-4-28 17:19
0
游客
登录 | 注册 方可回帖
返回
//