挖矿木马隐藏进程和网络连接主要有以下几种方式:
一、隐藏进程
挂钩系统函数
- 挖矿木马会挂钩(Hook)与进程相关的系统函数。例如,在Windows系统中,它可能会挂钩CreateToolhelp32Snapshot、Process32First和Process32Next等用于枚举进程的函数。通过修改这些函数的执行逻辑,使得在任务管理器或进程查看工具调用这些函数时,挖矿木马的进程被排除在返回结果之外,从而达到隐藏进程的目的。
修改进程链表
- 在Windows内核中,进程是以链表的形式存在于系统中的。挖矿木马可以修改进程链表的结构,将自己的进程节点从正常的进程链表中移除或者插入到其他合法进程节点之后,使得系统在遍历进程链表时无法正确识别挖矿木马的进程。这种方式需要对内核结构有一定的了解并且操作较为复杂,但可以有效地隐藏进程。
伪装成系统进程
- 挖矿木马会将自身伪装成系统正常进程。它可能会采用与系统进程相同的名称、图标或者文件路径等方式。例如,将挖矿进程命名为“svchost.exe”(这是Windows系统中常见的系统服务进程名称),并且将其文件放置在系统目录下,使得用户或安全软件在初步查看时容易将其误认为是正常的系统进程。
Rootkit技术(针对Windows和Linux等系统)
- 用户态Rootkit:在用户态下,挖矿木马可以通过替换或修改与进程管理相关的动态链接库(DLL)文件来实现隐藏进程的目的。例如,在Windows系统中,它可以替换kernel32.dll或user32.dll等关键DLL文件中的部分函数,以干扰进程的正常枚举。
- 内核态Rootkit:在内核态下,Rootkit可以深入操作系统内核,修改内核数据结构来隐藏进程。在Linux系统中,它可能会修改task_struct(进程描述符结构)相关的内核数据结构,将挖矿木马的进程信息从内核维护的进程列表中删除或者隐藏起来。这种方式对系统安全危害极大,因为内核态Rootkit可以直接操控系统的核心功能。
二、隐藏网络连接
修改网络协议栈
- 挖矿木马可能会修改操作系统的网络协议栈。在Windows系统中,它可以通过修改网络驱动程序或者网络协议相关的动态链接库来隐藏网络连接。例如,修改TCP/IP协议栈的实现,使得挖矿木马的网络数据包在传输过程中不被常规的网络监控工具(如Windows防火墙的入站/出站规则监控、网络流量分析工具等)识别为正常的网络连接。
使用代理或匿名网络
- 挖矿木马可以利用代理服务器或者匿名网络来隐藏其真实的网络连接。例如,通过使用Tor网络(The Onion Router),挖矿木马可以将网络流量层层加密并通过多个中继节点转发,使得追踪其真实的网络来源和目的地变得极为困难。或者,它可以连接到一些被恶意利用的代理服务器,将挖矿相关的网络流量混杂在代理服务器的正常流量之中,从而逃避检测。
伪装网络流量
- 挖矿木马会伪装网络流量的特征。它可能会模仿正常的网络协议流量,如将挖矿流量伪装成HTTP流量或者其他常见的网络应用流量。通过修改数据包的头部信息、端口号等方式,使网络流量看起来像是正常的网络通信,而不是挖矿木马的恶意通信。例如,将挖矿木马的通信端口伪装成80端口(HTTP默认端口)或者443端口(HTTPS默认端口),这样在网络监控中就不易被发现。
隐藏网络连接句柄(针对Windows系统)
- 在Windows系统中,挖矿木马可以通过隐藏网络连接句柄来隐藏网络连接。它可能会利用Windows内核的一些漏洞或者通过修改内核对象的管理机制,使得与网络连接相关的句柄(如套接字句柄等)不被系统正常显示或监控。这样,即使挖矿木马正在进行网络通信,安全软件或系统管理员也难以通过常规的网络连接查看工具发现其网络连接的存在。