基于Windows的远程控制平台设计实现
基于Windows的远程控制平台设计实现[20191207151717]
摘要
本文主要对目前较为流行的木马技术的工作原理、关键技术和实现方式进行着重研究,重点对木马程序的实现方式和通信控制进行深入分析。在Windows平台下,利用Socket和木马等关键技术的基础上,实现有效实时监控的系统设计与实现。
远程控制软件一般分为客户端和服务器两个部分。客户端程序安装在受控端计算机上,而服务端程序安装在控制端计算机上,通过客户端和服务端相互通信,并使服务端发送控制命令实现对客户端计算机的控制。远程控制具有广泛的用途,比如远程教育、远程办公和远程帮助等,为此研究此课题具有很好的现实意义。同时,木马程序工作原理和实现的研究具有对于维护互联网的安全具有重要意义。木马程序是一种基于客户端和服务器的远程控制技术,能在入侵对象毫无察觉的情况下隐藏在被控计算机中。一旦在入侵和触发成功的情况下,就能通过远程控制进行数据通信,从而实现对被控计算机的控制。
关键字:Windows平台Socket通信木马程序远程控制
目录
1. 绪论 1
1.1 课题研究背景 1
1.2 课题研究意义 1
1.3 课题研究内容和成果 2
1.4 论文结构 2
2. 相关工作 4
2.1 远程控制工作原理 4
2.2 远程控制功能 5
2.3 木马发展趋势 7
2.4 木马传播和攻击方式 7
2.4.1木马传播方式 7
2.4.2木马攻击方式 8
2.5 木马隐藏技术 9
2.5.1木马客户端静态程序隐藏技术 9
2.5.2木马客户端运行进程隐藏技术 10
2.6 木马自启动技术 10
2.6.1 系统配置文件启动木马技术 10
2.6.2注册表启动木马技术 10
2.6.3 映像劫持启动木马技术 11
2.6.4 利用系统启动目录启动 11
2.6.5 通过替换可执行文件启动 11
2.7木马通信技术 12
2.7.1TCP/IP模型 12
2.7.2进程通信 14
2.7.3客户机/服务器模式 14
2.8 反向连接技术 16
2.9 DLL木马技术 17
2.10 本章小结 18
3.系统设计与实现 19
3.1 系统总体方案 19
3.1.1系统开发环境 19
3.1.2 系统框架结构 20
3.1.3系统模块设计 20
3.1.4系统工作流程 22
3.2 系统设计 24
3.2.1控制端界面设计 24
3.2.2被控端设计 28
3.3系统实现 29
3.3.1 Winlogon进程加载DLL客户端 29
3.3.2 控制端实现 30
3.3.3 被控端实现 39
3.4本章小结 44
4. 性能测试 46
4.1 测试方案 46
4.2 测试环境 46
4.2.1 硬件环境 46
4.2.2 软件环境 47
4.3 测试结果与分析 47
4.3.1 对Windows XP客户端单独测试 47
4.3.2 对Windows 7客户端单独测试 56
4.4 本章小结 57
5. 总结与展望 58
5.1 论文工作总结 58
5.2 未来工作展望 58
参考文献 59
致谢 60
本科期间参加项目及获奖成果 60
1. 绪论
1.1 课题研究背景
随着互联网的快速发展,Internet对人们的生活方式产生了重大的影响。互联网在给人们生活方式产生便利的同时,也带来了潜在的安全危险,为不法分子利用计算机网络实施犯罪提供了便利。
今天,木马病毒已经成为黑客获取经济利益的主要工具。目前,世界上已经有成千上万种木马。虽然它们被不同的语言所编写,运行在不同的操作系统平台上,但是它们的目的基本一致,就是控制目标用户主机获取有价值的数据信息,或者攻击目标主机使其系统瘫痪。甚至有的不法分子通过木马程序获取国家机密并泄露出去,严重危害了国家的利益。越来越多的木马病毒严重影响了人们正常的工作和生活,甚至对国家安全构成了威胁。因此,对木马程序的深入研究十分必要。
1.2 课题研究意义
远程控制软件是控制端发送指令给分布在网络上的计算机,从而操纵远端计算机进行监控。有利于公安民警在特定的时间和特定的条件下使用远程控制软件来掌握犯罪分子在网络上实施犯罪的证据并予以有效地打击,具有很好的现实意义。
远程控制软件在现实生活中有多种用途,如远程文件传输、远程视频聊天、远程协助、远程监控和远程教育等,解决了我们生活中诸多的问题。当前流行的诸多远程控制软件功能已经相当强大,但各有特点,不能兼顾所有用户或同一用户的不同需求。若能开发一款功能尽可能全的远程控制软件,将会很好地改善用户的体验,所以本课题有很好的现实研究意义。
远程控制软件一般基于TCP/IP协议来实现远程控制计算机。自从Java编程语言出现后,很多远程控制软件采用Java技术通过Web方式来操控计算机,并且可以实现跨平台,在不同的操作系统上实现远程控制。但是由于Java语言本身的限制,通过Java语言编写的远程控制软件运行速度较慢,在许多场合无法满足客户的需要。因此,本课题在Windows平台下采用C/C++语言和VC++网络编程技术实现远程操作控制,该方法能方便、快速和有效实时地实现远程计算机的控制与操作。
1.3 课题研究内容和成果
(1) 提出了远程线程插入技术。本系统通过使用远端线程函数将木马客户端主程序DLL插入到目标进程地址空间。然后调用LoadLibrary函数调用木马客户端DLL程序。
(2) 提出了反向连接技术。防火墙或杀毒软件对于由外向内的连接往往会非常严格地监视和过滤,然而对于由内向外的连接却疏于防范。与一般的木马连接相反,本系统采用反向端口连接技术,木马客户端程序会根据服务器的IP地址的端口主动向服务器发起连接请求。服务端(控制端)定时监测客户端(被控端)是否发起连接请求,一旦发现有来自客户端的连接请求便马上建立起通信连接。
(3) 提出了捆绑木马文件技术。利用FindResource,LoadResource和LockResource等API函数来实现木马客户端程序与普通应用文件的捆绑。
(4) 提出了利用Win32 API来实现编程开发。在Windows平台下利用Win32 API能够灵活地实现Windows网络编程。使用Win32 API不仅能编写出功能强大的应用程序,还能对Windows的底层结构进行访问,比如开发驱动程序。利用Win32 API所编写的应用程序拥有许多优点,例如:生成的可执行程序体积小、执行效率高、易于代码后期维护和更适合编写系统底层功能模块等。
(5) 提出了利用IOCP模型来实现客户端和服务端通信的功能。IOCP是一种高性能的I/O模型,具有很好地伸缩性,非常适合用来处理成百上千个套接字,是Windows平台上用于开发高性能服务器程序最好的I/O模型。但由于时间问题,本系统采用了效率较低的Socket阻塞模型。
1.4 论文结构
本文重点介绍了木马的工作原理、使用技术和远程控制通信使用的Sock技术等,主要章节安排如下:
第1章首先介绍了本课题的研究背景与意义,然后概括了本课题的研究内容和成果,最后给出了文章的组织结构。
第2章介绍了木马开发使用到的相关技术,包括工作原理、功能、发展趋势、传播方式、隐藏技术、启动技术和通信技术等。
第3章首先介绍了本系统的方案设计,然后分别介绍了系统中各个部件的功能,最后给出了系统各个功能模块的实现原理及详细的实现步骤。
第4章主要对本系统的性能进行了测试。首先给出了测试方案及测试环境,然后根据不同的测试指标对系统进行了详细的测试实验,并对测试结果进行了分析与比较。
第5章对毕业设计所做的工作进行了总结,并对下一步的研究进行了展望。
2. 相关工作
2.1 远程控制工作原理
远程控制软件的网络连接方向可以分为两类:正向连接和反向连接[1]。其中正向连接是指服务端(控制端)向客户端(被控端)发起连接,客户端(被控端)会打开一个默认的端口进行侦听,等待服务器端(控制端)发起连接,这种连接不容易透过防火墙和多种杀毒软件与客户端(被控端)建立起连接。反向连接是指客户端(被控端)主动向服务端(控制端)发起连接,这种连接是由内向外发起的主动连接,不容易被防火墙和杀毒软件阻断。
远程控制软件采用C/S客户端和服务端两部分架构。客户端(被控端)使用主动连接方式去连接服务端(控制端),这样有利于绕过防火墙和多种杀毒软件,使得服务端(控制端)能远程对客户端(被控端)进行控制。一旦双方建立连接后,如图2-1所示,服务端(控制端)会发送命令,如:屏幕监控命令、键盘记录命令、文件管理命令等,客户端(被控端)接收并执行这些命令,然后返回相应的结果给服务端(控制端)。
图2-1 远程控制工作模式
木马的攻击过程[2]如图2-2所示,木马攻击的第一步是对木马程序进行相应的设置,比如在木马程序里设置主动连接的IP地址和端口号为控制端主机的IP地址和木马控制软件进程的端口号。还可以在木马程序启动的时候进行相应的初始化设置。木马攻击的第二步即木马的传播/植入方式有:即时视频传播、音频传播、电子邮件传播、脚本植入、缓冲区溢出攻击等。木马攻击的第三步是当木马程序运行后,被系统映射进入内存,然后与控制端建立主动连接。当控制端与被控端通信连接成功后,控制端就能对被控端实行远程控制。
木马的一般攻击过程通常分为被控制端配置、传播/攻击植入、运行木马、建立通信连接和远程控制。这些过程都带有隐藏操作的实施,如在传播步骤前通常会将正常的文件与木马程序进行绑定,或者传播/攻击植入后,将木马文件名称修改成与系统文件名称类似等。木马攻击的最后两个阶段为建立通信连接和远程控制,这两个阶段主要涉及在技术上实现木马程序在被控端系统里隐藏以及主控端与被控端隐蔽通信。总之,木马可生存性的首要前提是隐藏性。
图2-2 木马的一般攻击过程
2.2 远程控制功能
目前远程控制软件的功能主要有:CMD管理功能、文件管理功能、进程管理功能、键盘记录功能、注册表管理功能、远程关机功能、屏幕监控功能、声音功能、密码功能、自启动功能和隐藏功能等。表2-1显示了远程控制软件的主要功能。
表2-1 远程控制功能
类型 功能 描述
管理功能 CMD管理 服务端(控制端)的CMD管理功能与Windows操作系统自带的CMD管理器功能类似。服务端(控制端)向客户端(被控端)发送相应的CMD指令,客户端(被控端)接收指令并执行指令后,将执行结果发送给服务端(控制端)。
文件管理 文件管理功能包括服务端(控制端)向客户端(被控端)发送执行文件上传和文件下载的指令。客户端(被控端)接收到指令后执行相应的功能。
进程管理 服务端(控制端)的进程管理功能与Windows操作系统自带的任务管理器功能类似。其功能主要有显示进程信息(进程的名称、PID、进程优先级等)、刷新进程和关闭进程。
键盘记录 客户端(被控端)将用户敲击键盘按键的信息记录在本地磁盘的文本日志中保存起来并将文本日志发送给服务端(控制端)。
注册表管理 此功能类似Windows操作系统自带的注册表管理功能,服务端(控制端)不仅能够查看客户端(被控端)的注册表信息,还能对客户端(被控端)的注册表进行操作,如:插入子键、插入子项、删除子键和删除子项。
控制功能 远程关机 服务端(控制端)发送关机指令给客户端(被控端),使客户端(被控端)执行关机程序。
屏幕监控 服务端(控制端)开启目标主机的摄像头,进行视频录制。可以更直观地了解目标主机的周边环境。
声音 远程监听并记录被控端用户的语音,还能把本地用户当前发出的语音传送给远程目标主机用户进行语音聊天。
摘要
本文主要对目前较为流行的木马技术的工作原理、关键技术和实现方式进行着重研究,重点对木马程序的实现方式和通信控制进行深入分析。在Windows平台下,利用Socket和木马等关键技术的基础上,实现有效实时监控的系统设计与实现。
远程控制软件一般分为客户端和服务器两个部分。客户端程序安装在受控端计算机上,而服务端程序安装在控制端计算机上,通过客户端和服务端相互通信,并使服务端发送控制命令实现对客户端计算机的控制。远程控制具有广泛的用途,比如远程教育、远程办公和远程帮助等,为此研究此课题具有很好的现实意义。同时,木马程序工作原理和实现的研究具有对于维护互联网的安全具有重要意义。木马程序是一种基于客户端和服务器的远程控制技术,能在入侵对象毫无察觉的情况下隐藏在被控计算机中。一旦在入侵和触发成功的情况下,就能通过远程控制进行数据通信,从而实现对被控计算机的控制。
关键字:Windows平台Socket通信木马程序远程控制
目录
1. 绪论 1
1.1 课题研究背景 1
1.2 课题研究意义 1
1.3 课题研究内容和成果 2
1.4 论文结构 2
2. 相关工作 4
2.1 远程控制工作原理 4
2.2 远程控制功能 5
2.3 木马发展趋势 7
2.4 木马传播和攻击方式 7
2.4.1木马传播方式 7
2.4.2木马攻击方式 8
2.5 木马隐藏技术 9
2.5.1木马客户端静态程序隐藏技术 9
2.5.2木马客户端运行进程隐藏技术 10
2.6 木马自启动技术 10
2.6.1 系统配置文件启动木马技术 10
2.6.2注册表启动木马技术 10
2.6.3 映像劫持启动木马技术 11
2.6.4 利用系统启动目录启动 11
2.6.5 通过替换可执行文件启动 11
2.7木马通信技术 12
2.7.1TCP/IP模型 12
2.7.2进程通信 14
2.7.3客户机/服务器模式 14
2.8 反向连接技术 16
2.9 DLL木马技术 17
2.10 本章小结 18
3.系统设计与实现 19
3.1 系统总体方案 19
3.1.1系统开发环境 19
3.1.2 系统框架结构 20
3.1.3系统模块设计 20
3.1.4系统工作流程 22
3.2 系统设计 24
3.2.1控制端界面设计 24
3.2.2被控端设计 28
3.3系统实现 29
3.3.1 Winlogon进程加载DLL客户端 29
3.3.2 控制端实现 30
3.3.3 被控端实现 39
3.4本章小结 44
4. 性能测试 46
4.1 测试方案 46
4.2 测试环境 46
4.2.1 硬件环境 46
4.2.2 软件环境 47
4.3 测试结果与分析 47
4.3.1 对Windows XP客户端单独测试 47
4.3.2 对Windows 7客户端单独测试 56
4.4 本章小结 57
5. 总结与展望 58
5.1 论文工作总结 58
5.2 未来工作展望 58
参考文献 59
致谢 60
本科期间参加项目及获奖成果 60
1. 绪论
1.1 课题研究背景
随着互联网的快速发展,Internet对人们的生活方式产生了重大的影响。互联网在给人们生活方式产生便利的同时,也带来了潜在的安全危险,为不法分子利用计算机网络实施犯罪提供了便利。
今天,木马病毒已经成为黑客获取经济利益的主要工具。目前,世界上已经有成千上万种木马。虽然它们被不同的语言所编写,运行在不同的操作系统平台上,但是它们的目的基本一致,就是控制目标用户主机获取有价值的数据信息,或者攻击目标主机使其系统瘫痪。甚至有的不法分子通过木马程序获取国家机密并泄露出去,严重危害了国家的利益。越来越多的木马病毒严重影响了人们正常的工作和生活,甚至对国家安全构成了威胁。因此,对木马程序的深入研究十分必要。
1.2 课题研究意义
远程控制软件是控制端发送指令给分布在网络上的计算机,从而操纵远端计算机进行监控。有利于公安民警在特定的时间和特定的条件下使用远程控制软件来掌握犯罪分子在网络上实施犯罪的证据并予以有效地打击,具有很好的现实意义。
远程控制软件在现实生活中有多种用途,如远程文件传输、远程视频聊天、远程协助、远程监控和远程教育等,解决了我们生活中诸多的问题。当前流行的诸多远程控制软件功能已经相当强大,但各有特点,不能兼顾所有用户或同一用户的不同需求。若能开发一款功能尽可能全的远程控制软件,将会很好地改善用户的体验,所以本课题有很好的现实研究意义。
远程控制软件一般基于TCP/IP协议来实现远程控制计算机。自从Java编程语言出现后,很多远程控制软件采用Java技术通过Web方式来操控计算机,并且可以实现跨平台,在不同的操作系统上实现远程控制。但是由于Java语言本身的限制,通过Java语言编写的远程控制软件运行速度较慢,在许多场合无法满足客户的需要。因此,本课题在Windows平台下采用C/C++语言和VC++网络编程技术实现远程操作控制,该方法能方便、快速和有效实时地实现远程计算机的控制与操作。
1.3 课题研究内容和成果
(1) 提出了远程线程插入技术。本系统通过使用远端线程函数将木马客户端主程序DLL插入到目标进程地址空间。然后调用LoadLibrary函数调用木马客户端DLL程序。
(2) 提出了反向连接技术。防火墙或杀毒软件对于由外向内的连接往往会非常严格地监视和过滤,然而对于由内向外的连接却疏于防范。与一般的木马连接相反,本系统采用反向端口连接技术,木马客户端程序会根据服务器的IP地址的端口主动向服务器发起连接请求。服务端(控制端)定时监测客户端(被控端)是否发起连接请求,一旦发现有来自客户端的连接请求便马上建立起通信连接。
(3) 提出了捆绑木马文件技术。利用FindResource,LoadResource和LockResource等API函数来实现木马客户端程序与普通应用文件的捆绑。
(4) 提出了利用Win32 API来实现编程开发。在Windows平台下利用Win32 API能够灵活地实现Windows网络编程。使用Win32 API不仅能编写出功能强大的应用程序,还能对Windows的底层结构进行访问,比如开发驱动程序。利用Win32 API所编写的应用程序拥有许多优点,例如:生成的可执行程序体积小、执行效率高、易于代码后期维护和更适合编写系统底层功能模块等。
(5) 提出了利用IOCP模型来实现客户端和服务端通信的功能。IOCP是一种高性能的I/O模型,具有很好地伸缩性,非常适合用来处理成百上千个套接字,是Windows平台上用于开发高性能服务器程序最好的I/O模型。但由于时间问题,本系统采用了效率较低的Socket阻塞模型。
1.4 论文结构
本文重点介绍了木马的工作原理、使用技术和远程控制通信使用的Sock技术等,主要章节安排如下:
第1章首先介绍了本课题的研究背景与意义,然后概括了本课题的研究内容和成果,最后给出了文章的组织结构。
第2章介绍了木马开发使用到的相关技术,包括工作原理、功能、发展趋势、传播方式、隐藏技术、启动技术和通信技术等。
第3章首先介绍了本系统的方案设计,然后分别介绍了系统中各个部件的功能,最后给出了系统各个功能模块的实现原理及详细的实现步骤。
第4章主要对本系统的性能进行了测试。首先给出了测试方案及测试环境,然后根据不同的测试指标对系统进行了详细的测试实验,并对测试结果进行了分析与比较。
第5章对毕业设计所做的工作进行了总结,并对下一步的研究进行了展望。
2. 相关工作
2.1 远程控制工作原理
远程控制软件的网络连接方向可以分为两类:正向连接和反向连接[1]。其中正向连接是指服务端(控制端)向客户端(被控端)发起连接,客户端(被控端)会打开一个默认的端口进行侦听,等待服务器端(控制端)发起连接,这种连接不容易透过防火墙和多种杀毒软件与客户端(被控端)建立起连接。反向连接是指客户端(被控端)主动向服务端(控制端)发起连接,这种连接是由内向外发起的主动连接,不容易被防火墙和杀毒软件阻断。
远程控制软件采用C/S客户端和服务端两部分架构。客户端(被控端)使用主动连接方式去连接服务端(控制端),这样有利于绕过防火墙和多种杀毒软件,使得服务端(控制端)能远程对客户端(被控端)进行控制。一旦双方建立连接后,如图2-1所示,服务端(控制端)会发送命令,如:屏幕监控命令、键盘记录命令、文件管理命令等,客户端(被控端)接收并执行这些命令,然后返回相应的结果给服务端(控制端)。
图2-1 远程控制工作模式
木马的攻击过程[2]如图2-2所示,木马攻击的第一步是对木马程序进行相应的设置,比如在木马程序里设置主动连接的IP地址和端口号为控制端主机的IP地址和木马控制软件进程的端口号。还可以在木马程序启动的时候进行相应的初始化设置。木马攻击的第二步即木马的传播/植入方式有:即时视频传播、音频传播、电子邮件传播、脚本植入、缓冲区溢出攻击等。木马攻击的第三步是当木马程序运行后,被系统映射进入内存,然后与控制端建立主动连接。当控制端与被控端通信连接成功后,控制端就能对被控端实行远程控制。
木马的一般攻击过程通常分为被控制端配置、传播/攻击植入、运行木马、建立通信连接和远程控制。这些过程都带有隐藏操作的实施,如在传播步骤前通常会将正常的文件与木马程序进行绑定,或者传播/攻击植入后,将木马文件名称修改成与系统文件名称类似等。木马攻击的最后两个阶段为建立通信连接和远程控制,这两个阶段主要涉及在技术上实现木马程序在被控端系统里隐藏以及主控端与被控端隐蔽通信。总之,木马可生存性的首要前提是隐藏性。
图2-2 木马的一般攻击过程
2.2 远程控制功能
目前远程控制软件的功能主要有:CMD管理功能、文件管理功能、进程管理功能、键盘记录功能、注册表管理功能、远程关机功能、屏幕监控功能、声音功能、密码功能、自启动功能和隐藏功能等。表2-1显示了远程控制软件的主要功能。
表2-1 远程控制功能
类型 功能 描述
管理功能 CMD管理 服务端(控制端)的CMD管理功能与Windows操作系统自带的CMD管理器功能类似。服务端(控制端)向客户端(被控端)发送相应的CMD指令,客户端(被控端)接收指令并执行指令后,将执行结果发送给服务端(控制端)。
文件管理 文件管理功能包括服务端(控制端)向客户端(被控端)发送执行文件上传和文件下载的指令。客户端(被控端)接收到指令后执行相应的功能。
进程管理 服务端(控制端)的进程管理功能与Windows操作系统自带的任务管理器功能类似。其功能主要有显示进程信息(进程的名称、PID、进程优先级等)、刷新进程和关闭进程。
键盘记录 客户端(被控端)将用户敲击键盘按键的信息记录在本地磁盘的文本日志中保存起来并将文本日志发送给服务端(控制端)。
注册表管理 此功能类似Windows操作系统自带的注册表管理功能,服务端(控制端)不仅能够查看客户端(被控端)的注册表信息,还能对客户端(被控端)的注册表进行操作,如:插入子键、插入子项、删除子键和删除子项。
控制功能 远程关机 服务端(控制端)发送关机指令给客户端(被控端),使客户端(被控端)执行关机程序。
屏幕监控 服务端(控制端)开启目标主机的摄像头,进行视频录制。可以更直观地了解目标主机的周边环境。
声音 远程监听并记录被控端用户的语音,还能把本地用户当前发出的语音传送给远程目标主机用户进行语音聊天。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/qrs/146.html