木马开发的基本理论基础 (二)

引言

是否有过这样的经历:当你在办公室上班时,但把一些重要的文件遗忘在家里的计算机里,此时你该如何应付呢?这应该是很头疼的问题吧。但是随着计算机网络的出现,这一问题将会迎刃而解。这便是今天大家所熟悉的远程控制技术。有了这种技术,你就不必急急忙忙回家拷贝文件,而只要通过办公室拨号上网或者通过输入用户名和密码,以VNP方式就能访问家里的计算机,这样就可以轻松拷贝到你需要的文件。从此可以看出,不管在工作或学习中远程控制技术都有很强的实用性。

现在接入Internet的计算机数量猛增,能分配的IPv4网络地址资源已远远不能满足需要,解决地址资源不足且又广泛应用的方法是采用网络地址转换(NAT,Network Address Translation)技术。NAT技术使得处于同一个局域网内的计算机能够以一个公用IP地址出现在广域网上,这就为计算机终端提供了透明接入Internet的能力,能很好地解决IPv4地址不足的问题。但是由于NAT只允许局域网内的计算机访问外网,而外网是不能直接对局域网内的计算机进行访问的,这就给远程控制中计算机间的通信带来了的困难。如何穿越NAT进行通信成为远程控制中需要解决的问题。

本论文讨论了在windows平台下的NAT穿越与远程控制的原理和开发过程。NAT穿越在服务端上实现由内至外网的连接,远程控制软件基本上是由两部分组成:一部分是客户端的应用程序,另一部分是服务端的应用程序。远程控制软件的服务端应用在windows操作系统中。
1  背景与发展

在科技发达的时代,电脑的维护也变得复杂,每个人都必须要使用电脑,但并不是每个人都会电脑维护,不难理解为什么远程控制维护会成为一种快速、方便、重要的手段,因为其可以使得维护者不需要亲自到电脑面前就可以操作电脑,检查电脑的问题并给予诊断。随着信息量的扩大,每家每户都配置上了自己的电脑,使得IP地址紧缺,人们不得不使用NAT技术来连接网络,但出现了外网不能连接内网的问题,NAT穿越技术也因此而发展起来。人们可以利用多种方式进行NAT穿越,使得内/外网主机进行通信。NAT穿越技术也逐步成为网络连接的必要手段,并且在将来的应用中也会发挥着重大的作用。

本论文的重点在于研究讨论NAT穿越和远程控制。NAT穿越的研究思路是利用固定IP的FTP服务器以及固定域名的反向连接,利用SOCKET网络编程,模拟windows操作系统的消息模式控制服务器主机。

1.1 国内外研究现状

起初,使用远程控制软件,是为了让PC用户在离开办公室时能访问其台式PC硬盘中的信息,甚至通过其台式PC访问企业网络资源。今天,许多企业和增值分销商正在把远程控制能力作为有效的技术支持工具。很多网络管理员都采用这类软件对局域网进行管理,或者在家中更新自己网站内容。这类软件对于出差在外的商务人员用处非常大,因为其可以使用户随时提取自己家里计算机中的数据和资料。远程控制软件在计算机远程教学和配置中也发挥了很大的作用,使身处异地的学生能够与老师进行适时交流,犹如坐在同一间教室。

近年来,黑客技术不断成熟,对网络安全造成了极大的威胁。黑客的主要攻击手段之一就是使用远程控制技术,渗透到对方的主机系统里,从而实现远程操作目标主机,其破坏力之大,是绝不容忽视的。目前,远程控制技术也广泛应用在工业领域,可以对远程数据进行实时监控,提高工作效率,进而降低管理成本。

远程控制系统普遍采用了客户/服务器模型(C/S模型),可以是一对一的模式,也可以是一对多的模式。远程控制一般支持下面的这些网络方式:LAN、WAN、拨号方式、互联网方式。此外,有的远程控制软件还支持通过串口、并口、红外端口来对远程机进行控制。传统的远程控制软件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP/IP等协议来实现远程控制。不过,随着网络技术发展,目前很多远程控制软件提供通过WEB页面以JAVA技术来控制远程电脑,这样可以实现不同操作系统下的远程控制。

1.2 本课题研究的意义

随着社会、科技、经济的不断发展,远程控制技术的应用范围也在不断扩展。小到个人的使用,大到整个行业的应用。远程控制技术应用渗透到我们生活各行各业中,从银行、军事、机要部门等特殊行业领域到电业部门、邮政电信部门、商业部门、普通工矿企业、道路交通领域、卫生医疗部门以及宾馆酒店行业等等,其卓越的功能也日益受到各个应用行业的重视和青睐。

远程控制是当前信息技术领域的热点。使用远程控制技术,我们可以克服因地域差异而造成的操作不便,让网络效率得到更大的发挥。随着技术的发展与网络的日益普及,目前远程控制技术的应用领域已经相当广泛。我们不仅可以通过远程控制技术管理远端电脑,解决远端电脑的故障,与其他同事通过网络实现远程协议,一起编辑一份文档或者与其他团队成员交流信息。还可以在家里或旅途中使用公司内部网络的数据与办公设备,实现远程办公。此外,你还能与让学员远程连接到你的电脑,实时学习软件操作,或者与多位远程连接用户进行多点会话。

1.3 远程控制技术的应用现状及发展趋势

远程控制就目前状况来说,在微软windows操作系统中的远程控制工具软件非常多。这些远程控制工具软件都可以通过网络来控制特定的计算机,共享特定计算机的数据资料,操作其外部设备。随着网络技术和通信技术的发展,远程控制技术也将得到迅速的发展和广泛的应用。

2  相关理论基础

整个系统采用C/S(服务器/客户机)架构,即被控端/主控端模型设计。主控端程序运行在主控机上,被控端程序运行在受控机上。主控端向被控端发送请求和控制指令,被控端响应请求并执行相应的功能,双方之间是基于TCP/IP协议进行点对点的通信。利用VC进行编程,使用Visual C++6.0进行编译。

2.1 NAT穿越简述

NAT穿越(NAT traversal)涉及到TCP/IP网络中的一个常见问题,即在处于使用了NAT设备的私有TCP/IP网络中的主机之间建立连接的问题。由于NAT只允许局域网内的计算机访问外网,而外网是不能直接对局域网内的计算机进行访问,所以在内网与外网通信的时候,需要用到NAT穿越技术,使其能够连接通信,才能使得控制成为可能。

2.2 NAT穿越原理

网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部计算机。

要使得内/外网连接通信,就必须使用NAT穿越技术,即内网主动连接至外网时,内网主机的IP地址就会转换成公网地址和相应的端口号连接外网主机。连接外网主机后,外网主机知道其公网中的IP地址和端口并与其通信。那么由于现在IPV4的地址是动态分配的,内网主机如何知道外网的主机IP地址呢?有两种方法可以获取到外网主机的IP地址。

方法一:客户端每次上线的时候都将自己的IP地址以及端口号以文本的形式存入FTP空间中,当服务器端上线时就主动到此FTP中读取外网主机的IP地址以及端口号,然后进行连接。

方法二:客户端申请一个域名空间,则服务端通过访问这个域名空间就可以得到它的域名空间的IP地址,即是客户端的IP地址,那么可以与该客户端进行连接。

2.3 远程控制概述

远程控制是在网络上由一台电脑(主控端Client/客户端)远距离控制另一台电脑(被控端Server/服务器端)的技术。这里的远程不是字面意思理解的远距离,一般指通过网络控制远端电脑。不过,大多数时候我们所说的远程控制往往是针对局域网中的远程控制而言的。当操作者使用主控电脑所控制被控电脑时,就如同坐在被控电脑的屏幕一样,可以启动被控电脑的应用程序,可以使用被控电脑的文件资料,甚至可以利用被控电脑的外部打印设备(打印机)和通信设备(调试解调器或者专线等)来进行打印和访问互联网,就像你利用遥控器遥控电视的音量、变换频道等一样。不过有一个概念需要明确,那就是主控电脑只是将键盘和鼠标的命令传送给远程电脑,同时将被控电脑的屏幕画面通过通信线路回转过来。也就是说,我们控制被控的计算机,并对其进行操作,似乎是在眼前的电脑上进行的,实质是在远程电脑上实现的,不论打开文件,还是上网浏览、下载等都是存储在远程被控电脑中。

2.4 远程控制原理

远程控制软件一般分两个部分:一部分是客户端程序Client,另一部分是服务端程序Server,在使用前需要将客户端程序安装到主控制电脑上,将服务器端程序安装到被控电脑上。它的控制的过程一般是先在主控制电脑上执行客户端程序,然后在被控端电脑上安装服务程序,服务程序主机就会向客户端发送被控请求,控制主机可以控制被控电脑中的各种应用程序运行,我们称这种远程控制方式为基于远程服务的远程控制。该系统的主控端(客户端)、被控端(服务端)有以下功能。

客户端:可以对服务端进行文件管理、键盘记录、系统服务监视,SHELL控制、屏幕监视、进程管理等控制,并且可以获取该主机的计算机名称、用户名、操作系统类型、CPU频率、内存大小等信息。

服务端:被客户端操作控制,服务端可以通过三种方式连接至客户端。第一种,服务器在内网中、客户端在外网时,会通过访问FTP来获取客户端的IP地址进行连接;

 

第二种,服务端在内网、客户端在外网时,服务端可以通过访问客户端的域名来主动连接客户端;第三种,服务端在内网、客户端也在内网时,客户端生成服务端的时候将自己的IP地址传给服务端,那么服务端就可以直接连接客户端。详见图2.1。

2.5 C/S模式

C/S(Client/Server,客户端/服务端)模式又称C/S结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。Client端的任务是将用户的命令提交给Server端,Server端的任务是接受客户端提过的服务请求,进行相应的处理,再将结果返回给客户端。

2.6 TCP 协议

数据传输协议允许创建和维护与远程计算机的连接。连接两台计算机就可以彼此进行数据传输。

如果创建服务器应用程序,就必须知道服务器计算机名或者IP地址,还要知道进行“侦听”的端口,然后调用Connect方法进行连接。

如果创建客户应用程序,就应设置一个收听端口并使用listen方法。当客户端计算机被连接时就会发生ConnetionRequest事件,接受服务端的连接,并对服务端进行控制。

2.7 应用市场分析

2.7.1 远程办公

通过远程控制功能,我们可以轻松的实现远程办公。这种远程办公方式新颖、轻松,从某方面来说可以提高员工的工作效率和工作兴趣。

2.7.2 远程技术支持

远距离的技术支持必须依赖技术人员和用户之间的电话交流来进行,这种交流既耗时又容易出错。但是有了远程控制技术,技术人员就可以远程控制用户电脑,就像直接操作本地电脑一样,只需要用户的简单帮助就可以得到该计算机存在的问题的第一手资料。很快就可以找到问题的所在,并加以解决。

2.7.3 远程交流

利用远程技术,商业公司可以实现和用户的远程交流。采用交互式的教学模式,通过实际操作来培训用户,使用户从技术支持专业人员那里学习示例知识将变得非常容易。而教师和学生之间也以利用这种远程控制计算机实现教学问题的交流,学生可以不用见到老师,就得到老师手把手的辅导和讲授。学生还可以直接在电脑中进行习题的演算和求解。在此过程中,教师能够轻松看到学生的解题思路和步骤,并加以实时的指导。

2.7.4 远程维护和管理

网络管理员或者普通用户可以通过远程控制技术为远端的电脑安装和配置软件、下载并安装软件修补程序、配置应用程序和进行系统软件设置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三雷科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值