计算机毕业论文,毕业论文,毕业设计 毕业论文免费检测 知网论文检测
当前位置: 骆驼论文网 > 信息安全 >

基于VC的一种简单木马

时间:2011-04-11 11:42来源: 骆驼毕业论文网 作者:admin
基于VC的一种简单木马的设计 摘 要 目前,Internet已经得到非常广泛的使用,但是同时,各种黑客工具和网络攻击手段也层出不穷。黑客入侵给人们造成的各种损失也越来越大,其中木马就是被广泛使用的黑客工具之一,它对网络安全造成了极大的威胁。 本毕业设计

QQ交谈计算机毕业设计,毕业设计,毕业论文,计算机毕业论文

基于VC的一种简单木马的设计
摘  要
目前,Internet已经得到非常广泛的使用,但是同时,各种黑客工具和网络攻击手段也层出不穷。黑客入侵给人们造成的各种损失也越来越大,其中木马就是被广泛使用的黑客工具之一,它对网络安全造成了极大的威胁。
本毕业设计使用VC++ 6.0为开发平台设计的一个简单的木马程序,主要实现了获取远程被控计算机的基本信息、锁定其鼠标和键盘、注销重启和关闭被控计算机、隐藏并开启其任务栏、向被控计算机发送消息等功能。
本论文从选题背景入手,介绍了与本系统相关的一些理论知识,以及开发工具,随后详细介绍了该木马程序的开发过程,包括服务端/客户端的socket编程,木马服务端和客户端通信的实现,以及实现远程控制的各种具体功能的实现。最后对系统进行测试,并对所做工作进行总结。

关键词:木马;远程控制;VC;Windows Socket

目  录
论文总页数:26页
1 引言 1
2 相关技术介绍 1
2.1 开发环境VC++6.0 1
2.2 套接字SOCKET编程原理 1
2.3 木马基本原理 3
2.3.1 木马定义 3
2.3.2 木马发展 3
2.3.3 木马基本组成 4
2.3.4 C/S客户服务器模式 4
2.3.5 木马入侵过程 5
3 系统设计 7
3.1 系统总体设计 7
3.1.1 设计目标 7
3.1.2 功能介绍 8
3.2 具体功能实现 9
3.2.1 获取信息功能 9
3.2.2 清除信息 10
3.2.3 锁定鼠标和键盘 10
3.2.4 注销、重启和关机 11
3.2.5 隐藏并开启任务栏 13
3.2.6 发送消息 16
3.2.7 查看进程 17
3.2.8 木马的伪装 20
4 系统测试 23
结    论 24
参考文献 24
致    谢 25
声    明 26
 
2.3 木马基本原理
2.3.1 木马定义
特洛伊木马(以下简称木马),英文叫做“Trojan horse”,其名取自希腊神话中的木马记。它是一种基于远程控制的黑客工具,具有隐蔽性和非授权性的特点。
所谓隐蔽性是指木马的设计者为了防止木马被发现,会采用多种手段隐藏木马,这样服务端即使发现感染了木马,由于不能确定其具体位置,往往只能望“马”兴叹。所谓非授权性,是指一旦控制端与服务端连接后,控制端将享有服务端大部分的操作权限,包括修改文件,修改注册表,控制鼠标,控制键盘等操作,而这些权利并不是服务端授予的,而是通过木马程序窃取的。
通常木马分为两种:一种是黑客可以通过远程控制的方式来获取信息,木马就是植入被黑者电脑中的服务端程序,而黑客则使用客户端程序。另一种是木马植入后,自动收集数据然后发送给黑客,使用电子邮件,MSN或者ICQ消息等。
2.3.2 木马发展
第一代木马:伪装型病毒
这种病毒通过伪装成一个合法性程序诱骗用户上当,不具备传染性。世界上第一个计算机木马是出现在1986年的PC-WRITE木马。它伪装成共享软件PC-WRITE的2.72版本,一旦用户信以为真运行该木马程序,那么他的下场就是硬盘被格式化。
第二代木马:AIDS型木马
1989年出现了AIDS木马,它利用电子邮件进行散播:给他人寄去一封含木马程序的邮件。该程序运行后,虽然不破坏数据,但它将硬盘加密锁死,然后提示受感染用户花钱消灾。这一代木马已经具备传播特征。
第三代木马:网络传播性木马
这一代木马具备了后门(一种可以为计算机系统秘密开启访问入口程序,使攻击者绕过安全程序进入系统)、记录键盘功能、远程控制等功能,利用网络协议进行攻击。
木马技术演变流程分类如图2-2:

 

 

 


图2-2 木马技术发展分类
2.3.3 木马基本组成
一个完整的木马由硬件、软件部分和具体连接部分组成。
 硬件部分:建立木马连接所必须的实体。
控制端:对服务器进行远程控制的一方。
服务端:被控制端远程控制的一方。
INTERNET:控制端对被控制端进行远程控制,数据传输的网络载体。
 软件部分:实现远程控制所必须的软件程序。
控制端程序:控制端用于远程控制服务端程序。
木马程序:潜入服务器内部,获取其操作权限的程序。
木马配置程序:设置木马程序端口,触发条件,木马名称等,使其在服务端藏得更加隐蔽的程序。
 具体连接部分:通过INTERNET在服务端和控制端之间建立一条木马
通道必须的元素,包括端口和IP。
控制端IP和服务端IP:及服务端和控制端的网络地址,也是木马进行数据传输的目的地。
控制端端口,木马端口:及控制端,服务端的数据入口,数据可直达控制端程序或木马程序。
2.3.4 C/S客户服务器模式
建立分布式应用程序最常用的范例就是客户机/服务器模式,客户应用程序向服务器应用程序请求服务。这种方式隐含了在建立客户机/服务器间通讯时的非对称性。这种模式工作下要求客户机/服务器两端有对称和非对称的协议支持,在对称协议中,每一方都扮演主从角色,在非对称协议中,一方不可改变的成为主机,而另一方则是从机。但是无论对称协议还是非对称协议,服务被提供时必然存在“客户进程”和“服务进程”。 
一个服务程序通常在众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户对这个服务的地址提出了连接请求。这时,服务程序被“唤醒”,并且为客户提供服务,对客户的请求做出适当的反应。C/S模式工作流程如图2-3:

图2-3客户/服务模式
2.3.5 木马入侵过程
要对黑客使用木马入侵进行有效彻底的防护,需要先对入侵流程进行完整详细的了解。基本上黑客使用木马进行黑客工作的流程很固定,并没有很复杂的地方,具体流程如图2-4:

 

 

 

 


图2-4木马入侵过程
 选择木马
一般来说若黑客已经有特定目标,例如:想获取被黑者的某个帐户与密码,则会选择特定型木马,若没确定想从黑客电脑种获取什么样的文件或数据,则会选择综合型木马,即功能比较强大的木马。确定要使用哪种木马之后,可以从网上查找,但通常黑客需要经过多次测试与尝试之后才可能找到比较满意的木马。许多黑客也会自己写木马程序,因为自己设计的木马好处很多,最重要的一点就是几乎所有的杀毒软件都找不出来。
 伪装木马
准备好木马以后,为了避免木马被杀毒软件找出来,需要对木马进行各种易容术,以逃避杀毒软件的追杀,达到降低用户警觉,欺骗用户的目的。不过有些木马是不会被杀毒软件找出来的,或是找出来的效率很低,就不用对木马进行伪装。
常见的木马伪装技术有:1)修改图标,将服务端程序修改成HTML,TXT,ZIP等各种文件的图标,这种伪装有极大的迷惑性;2)捆绑文件,将木马捆绑在一个安装程序上面,当安装程序运行时,木马在用户毫不知情的情况下,进入系统,被捆绑的文件一般是可执行文件,如EXE,COM一类的文件;3).出错显示,当服务器端用户打开木马程序时,会弹出一个错误提示框,如“文件已破坏,无法打开”之类的信息,然而木马已经在系统种运行;4).定制端口,现在流行的技术是控制端用户可以在1024-65535之间任意选择一个端口作为木马端口,这样就给判断所感染的木马造成困难;5).自我销毁,安装木马后原木马文件将自动销毁,这样服务端就很难找到木马的来源,在没有查杀工具的帮助下,就很难删除木马了;6).木马更名,允许控制端用户自由定制安装后的木马文件名,这样就很难判断所感染的木马类型。
 植入被黑者电脑
将木马植入被黑者电脑是木马成功与否的关键,现在已经发展出各种各样的木马植入技术,这也是木马防护最重要的一道门。
常见的木马植入技术有以下几种:1).直接植入法,进入被黑者电脑,直接将木马复制进去,对黑客而言这是最好的方式,不用想尽各种方法欺骗被黑者,常见的方式有端口139入侵,漏洞入侵,直接复制;2).电子邮件植入法,利用邮件程序中的漏洞来运行附件中的木马;3).网站钓鱼法,引诱被黑者到设计好的网站,然后乘机植入木马;4).P2P传递法,例如文件加载等,就是利用现在许多人使用的P2P软件来乘机植入木马;5).免费软件与共享软件,许多人都会下载一些免费软件或共享软件来使用,将木马捆绑在某个工具软件中,让不知情的被黑者下载,然后乘机植入木马;6).注册破解程序法,黑客针对不同软件写出所谓破解程序让人下载,木马与破解程序合并后,让不知情的被黑者下载,这样木马就植入被黑者电脑中。
 触发运行木马
当黑客成功将木马植入被黑者电脑中后,及黑客已经进入被黑者电脑以后,通常要设置一些触发条件来触发木马的运行。
常见的触发木马运行的条件如下:1). 让被黑者自己运行,让诱骗被黑者自己运行木马,通常利用电子邮件、网站钓鱼、P2P软件等方式。2).使用at命令,若黑客经由端口139直接入侵,而且具有最高的权限,被黑者电脑使用WinNT、Win2K或WinXP,则可以利用远程运行命令at来运行放在被黑者电脑中的木马,当然这需要被黑者电脑中的Task scheduler服务打开。3).使用net命令,如果木马设计成系统服务方式,那就必须要使用net命令来载入和启动它,黑客必须取得最高权限,才能使用net命令。例如:利用使用漏洞入侵,目前许多使用远程缓冲区溢出漏洞成功打开后门后,再使用telnet入侵,然后使用net命令来载入和启动被黑者电脑中的木马。4).与其他程序一起运行,将木马的运行加入一个特殊的注册表项中,当任何可执行程序运行时,都会一并运行设置在其中的木马。5).启动与自动运行,当木马已经植入被黑者电脑,只要电脑重新启动就可以运行木马,迫使被黑电脑重新启动的方法如下:数据包死机漏洞(Win9x,WinNT适用),一般使用工具IPHacker迫使被黑电脑死机,使用Angry IP Scanner工具来查看被黑IP,如果不再就说明死机。
 执行黑客任务
木马被植入被黑者电脑并成功运行后,就可以对被黑者电脑进行一系列的非法操作。只要所选择的木马功能比较完善,控制端一般可以享受以下权限:1).窃取密码,一切以明文形式,*形式或缓存在cache中的密码都能够被木马侦测到,很多木马还提供按键记录功能。2).文件操作,控制端可以对服务端上的文件进行删除,新建,修改,上传,下载,运行,修改属性等一系列操作。3).修改注册表,控制端任意修改注册表,包括删除,新建或修改主键,子键,键值,可以禁止服务端软驱、光驱等操作。4).系统操作,注销、重启、关闭操作系统,断开服务端网络连接,控制服务端鼠标、键盘、查看服务端进程等,控制端可以随时给服务端发送恐吓信息。

3.2 具体功能实现
3.2.1 获取信息功能
当Server先在被控计算机上启动以后,Client输入被控计算机IP如:192.168.0.5,就可以连接上服务端,Client 端单击获取信息按钮,Server端收到Client发过来的消息并响应,然后Server端调用四个API函数:调用函数GetSystemInfo()来返回当前系统的信息,调用函数GlobalMemoryStatus()来获得当前可用的物理和虚拟内存信息,调用函数GetVersionEx()来返回当前操作系统的版本信息,调用函数GetSystemMetrics()来返回与Windows环境有关的信息。Server通过调用以上函数,得到系统消息,并返回给Client. Client 端收到Server返回的消息并显示在文本框中如图3-3:

客户端源获取消息控件的核心代码如下:
void CClientDlg::OnGetinformation()
{
// TODO: Add your control notification handler code here
m_message.ResetContent();
m_message.SendMessage(LB_SETHORIZONTALEXTENT,0,0);
pThreadInformation=::AfxBeginThread(_GetInformationThread,this); 
}

3.2.2 清除信息
此功能主要实现客户端文本框中对获取的系统信息和进程信息进行删除。当Client接收到Server返回的系统信息和进程信息以后,单击Client上面的清除信息按钮就可以清除掉文本框中的信息。本功能不需要要Server和Client进行通信,client通过调用成员函数CClientDlg::OnClean(){}中的函数CClientDlg::OnClean(){}就可以实现。Client端获取Server端系统信息并清除的效果如图3-4和3-5:

客户端核心代码如下:
void CClientDlg::OnClean()
{
// TODO: Add your control notification handler code here
m_message.ResetContent();
m_message.SendMessage(LB_SETHORIZONTALEXTENT,0,0);
}
参考文献
[1] 程秉辉,霍克.木马攻防全攻略[M].北京:中国铁道出版社,2005。
[2] 黄维通.Visual C++面向对象与可视化程序设计[M].北京:清华大学出版社,2003。
[3] 付慧青,黎圣,冯庆辉,李刚.黑客日记[M].济南:山东电子音像出版社,2005。
[4] 孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2006。
[5] 张仕斌,谭三.网络安全技术[M].北京:清华大学出版社,2004。
[6] 邓吉.黑客攻防实战入门[M].北京:电子工业出版社,2004。
 

本文内容只是论文部分简介,如需了解更多详情请咨询本站客服! QQ交谈计算机毕业设计,毕业设计,工程硕士论文,计算机毕业论文
毕业论文搜集整理:毕业论文网 计算机毕业设计 计算机毕业论文 毕业设计


顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
计算机毕业设计
计算机毕业论文
论文发表