远程控制型木马
1. 基本原理
远程控制型木马一般采用Client/Server架构,由木马程序和控制端程序两部分组成。
网络应用上的Client/Server架构,其工作原理是服务器端程序提供服务,客户端程序接受服务。服务器端程序会打开一个默认的端口进行监听,如果有客户端程序提出连接请求,服务端程序就会自动接受客户端请求,执行特定功能,并对客户端程序进行应答。
木马程序即是服务器端程序,在受害者主机上植入,获得运行机会后,等待攻击者通过控制端程序进行连接和控制。控制端程序是客户端程序,在攻击者的主机上运行,用于攻击者远程控制被植入木马的主机。
2. 与远程控制软件的区别
从主题功能上看,远程控制型木马与远程控制软件相类似,都能够实现对远程主机的访问操作。远程控制型木马与远程控制软件的不同主要体现在两个方面:
①非授权性:利用远程控制型木马对远程主机的访问是非授权的。而远程控制软件一般需要访问者输入被访问主机的账号和密码,这种访问是在身份认证的基础上进行的合法授权访问。
②隐蔽性:考虑到一旦计算机用户发现自己的主机感染木马,会采用各种手段清除,攻击者会采用各种技术手段隐藏木马,避免被计算机用户发现。而通过远程控制软件对主机进行远程访问时,被访问主机的任务栏或者系统托盘等区域会有明显的图标标识,表明有用户正在进行远程访问。
3. 运行步骤
木马运行步骤大致如下:配置木马—>传播木马—>运行木马—>信息反馈—>建立连接—>远程控制
1)配置木马阶段:主要实现两个功能:
定制木马:设置图标、捆绑文件、定制端口、自我销毁等,主要是便于隐藏,定制端口是其中的核心功能。
信息反馈:设置信息反馈的方式。
2)传播木马:通过各种传播方式散播木马(往往结合病毒的传播手段,如电子邮件、网络下载等等)。
3)运行木马:木马服务端程序在植入计算机后,会根据攻击者在配置木马阶段的设置适时运行,为攻击者实施远程控制提供服务。
4)信息反馈:完成启动后,木马程序会把感染主机的一些信息反馈给配置和传播木马的攻击者,如感染主机的IP地址。
5)建立连接:完成信息反馈后,就可以建立连接。
6)远程控制:木马的客户端程序和服务端程序一旦建立连接,黑客就获得了感染主机的控制权,可以在感染主机上进行各种操作,如修改注册表等。
4. 连接方式
4.1 正向连接
受害者主机开放一个端口进行监听,由控制主机主动去连接受害者主机(目标ip:目标机器端口),这是比较常规的形式,称为正向连接。远程桌面、web服务、ssh、telnet等等都是正向连接。
4.2 反向连接
控制主机配置一个静态、互联网可路由的IP地址,并将该IP地址和木马客户端监听端口配置在木马的服务端程序内。受害者主机植入木马服务端程序后,控制主机运行木马客户端程序,受害者主机上的木马服务端程序运行,根据预先配置的IP地址和端口号主动连接木马的客户端程序。这个过程即称为反向连接。
反弹shell,就是控制主机监听的某个TCP/UDP端口为服务端,受害者主机主动发起请求到控制主机监听的端口,并将其命令行的输入输出转到控制主机。
反向连接通常适用于如下几种情况:
①绕过防火墙的限制。如果受害者主机在防火墙以内,控制主机对受害者主机发出的网络连接请求很可能被防火墙过滤,因为大多数防火墙在配置时都会严格限制外网主机对内部网络的访问。如果采用了反向连接技术,由受害者主机主动建立外向连接,这种连接请求一般不会被过滤。
②受害者主机端口被占用。
③受害者主机在局域网内,使用内网IP地址;或者IP会动态变化。这些情况控制主机无法直接连接。
④对于木马感染受害者主机的时间,受害者主机的网络环境情况,开关机的时间,都是未知的。
对于以上几种情况,无法利用正向连接,要用反向连接。
5. 木马的隐藏技术
5.1 木马服务端的隐藏
隐藏性是木马的生命线。想要隐藏木马的服务端,可以是伪隐藏,也可以是真隐藏。伪隐藏是指程序的进程仍然存在,只不过是让它消失在进程列表里。真隐藏则是让程序彻底的消失,不以一个进程或者服务的方式工作。
①设置窗口不可见 (从任务栏中隐藏)
②把木马程序注册为服务 (从进程列表中隐藏)
③欺骗查看进程的函数 (从进程列表中隐藏)
④使用可变的高端口 (端口隐藏技术)
⑤使用系统服务端口 (端口隐藏技术)
⑥替换系统驱动或系统DLL (真隐藏技术)
⑦动态嵌入技术 (真隐藏技术)
5.2 木马的通信隐藏手段
ICMP由内核或进程直接处理,不需要与端口建立连接,木马可以利用ICMP这一特性进行潜伏。采用这种潜伏技术的木马在感染主机后,对ICMP报文进行监听。当木马监听到特定的ICMP报文时开始活动,ICMP报文的具体特征由攻击者在编写木马时设置。
为了保证远程控制的可靠性,远程控制操作可以使用TCP进行通信。木马在接收到ICMP控制信号以后再打开特定的TCP端口进行监听,之后攻击者再通过木马的控制端程序对感染主机实施远程控制。采用这种潜伏方法,攻击者所设置的特定ICMP报文可以被看作木马活动的触发条件,感染木马的主机大部分时间并不监听端口,木马处在等待触发的状态。木马在接收到特定的ICMP报文时才使用端口为攻击者提供服务,攻击者完成活动后关闭端口,重新进入等待触发条件的状态。由于端口的使用时间非常短暂,只能在攻击者进行远程控制时进行监听,因此计算机用户很难发现通信端口的异常。
6. 木马的防范
虽然远程控制型木马程序隐蔽性强,种类多,攻击者会设法采用各种隐藏技术来增加被用户检测到的难度,但由于木马实质上是一个程序,必须运行后才能工作,所以会在计算机的文件系统、系统进程表、注册表、系统文件和日志等中留下蛛丝马迹。
针对这种木马,可以采取以下检测方法:
①监控网络流量,检查是否存在异常的反向连接通信;
②检查系统进程和开放端口,是否存在异常的进程和开放端口;
③对主机进行全盘扫描,检查是否存在异常的文件、服务或注册表项;
④运行实时监控程序;
⑤对系统进行安全加固,及时修补漏洞,安装补丁。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通