还剩19页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
计算机病毒与防治课程设计题目木马制作原理分析姓名孙明杨学号201230210223班级1232102专业信息工程(安全方向)指导老师韩梅2014年10月目录TOC\o1-3\h\z\u第一章引言
31.1研究背景
31.2发展的现状3第二章木马技术基础
42.1系统结构
42.2基本特征
52.3功能
52.4分类6第三章远程控制木马的设计
83.1功能分析
83.2系统总体设计
83.3系统实现的关键技术
93.4系统的__工具
93.5代码实现10第四章远程控制木马的实现
124.1服务端程序的实现
124.
1.1服务端的自启动
124.
1.2通信模块的实现
134.
1.3服务端管理模块
134.2客户端的实现
144.
2.1远程文件控制
154.
2.2系统控制
164.
2.3冰河信使17第五章结束语20____20第一章引言
1.1研究背景木马的全称是“特洛伊木马”(Trojanhorse),来源于希腊神话古希腊围攻特洛伊城多年无法攻下,于是有人献出木马计策,让士兵藏匿于巨大的木马中,然后佯作退兵,城中得知解围的消息后,将“木马”作为战利品拖入城内,匿于木马中的将士出来开启城门,与城外__里应外合攻下特洛伊城,后世称这只大木马为“特洛伊木马”随着网络的快速发展,Internet深入到社会的每个角落,人们充__受到了其给工作和生活带来的巨大便利,人类社会对计算机系统和___络的依赖性也越来越大工业和信息化部统计数据显示,2009年中国网民规模已达
3.84亿;预计2010中国网民规模突破4亿
[1]由于计算机系统和___络系统本身固有的脆弱性,网络入侵工具如蠕虫、木马等不断涌现,社会、企业和个人也因此蒙受了越来越大的损失木马由于它的隐蔽性、远程可植入性和可控制性等技术特点,已成为黑客攻击或不法分子入侵网络的重要工具,目前,不断发生的互联网安全事故中,大部分都有木马的身影木马程序不仅可能侵害到个人乃至某些公司的利益和权力,更可能危及整个社会和国家的利益和安全如果公安部用于采集处理人们___信息的计算机被__了木马,那么这些信息就可能被木马以有线或无线的方式通过网络泄露出去,后果不堪设想木马是受控的,它能分清敌我,所以与分不清敌我的其它病毒和攻击技术相比,具有更大的危险性和破坏性
1.2发展的现状自从世界上出现第一个木马程序(1986年的PC-Write木马)到今天,木马的发展已经历了五代
[4]
[5]第一代木马出现在网络发展的早期,是以窃取网络__为主要任务,即简单的__窃取、发送等,在隐藏和通信方面均无特别之处第二代木马在技术上有很大的进步,使用标准的C/S架构,提供远程文件管理、屏幕监视等功能但是由于植入木马的服务端程序会打开连接端口等候客户端连接,比较容易被发现如“冰河”、“Qmitis”第三代木马在功能上与第二代木马没有太大差异,它的改变主要在网络连接方式上,它的特征是不打开连接端口进行侦听,而是使用ICMP通信协议进行通信或使用反向连接技术让服务器端主动连接客户端,以突破防火墙的拦截在数据传递技术上也做了不小的改进,出现了ICMP等类型的木马,利用畸形报文传递数据,增加了查杀的难度如网络神偷、Peep201等___木马在进程隐藏方面,做了大改动,采用了内核插入式的嵌入方式,利用远程插入线程技术,嵌入DLL线程,或者挂接PSAPI
[6],实现木马的隐藏前三代木马,大多都有__的木马,因此用户可以根据启动项目中的描述内容,很快找到木马,并删除它但是,___木马选择注册表的方式,伪装成DLL文件形式加载到正常的启动程序上,无法通过“任务管理器”查看到正在执行的木马不过在连接方式上,依然使用第三代木马或第二代木马的连接方式如Beast木马第五代木马实现了与病毒紧密结合,利用操作系统漏洞,直接实现感染传播的目的,而不必象以前的木马那样需要欺骗用户主动激活例如类似冲击波病毒的木马——噩梦II特洛伊木马程序发展到今天已经相当完善了,但随着计算机技术的发展,木马仍会继续演变并运用一些新的技术和方法使其更具有攻击性和破坏性从现在的趋势来看,木马将在隐藏性、代码的模块化设计、及时通知、跨平台、底层通信以及和蠕虫病毒技术融合等方面有所提升和发展第二章木马技术基础在计算机领域中特洛伊木马程序是一种未经授权的程序,它包含在一段正常的程序当中,这个未经授权的程序提供了一些用户不知道的功能,其目的是不需要___的准许就可获得系统使用权它可以控制用户计算机系统,造成用户资料的泄漏,甚至造成整个计算机系统崩溃等特洛伊木马和病毒的区别是它不能自行传播,而要依靠宿主以其它假象出现,冒充一个正常的程序,如Bo、Happy
99、sub
7、网络神偷、冰河等就是典型的特洛伊木马程序本章详细论述了木马的分类、特征、功能、工作原理和攻击手段等木马的全称是“特洛伊木马”,是一种新型的计算机网络病毒程序在RFC1244安全手册中给出的“特洛伊木马是这样一种程序,它提供了一些有用的,或仅仅是有意思的功能但是通常要做一些用户不希望的事,诸如在你不了解的情况下拷贝文件或窃取你的__”它利用自身所具有的植入功能,依附其它具有传播能力病毒,或者通过入侵后植入等多种途径,进驻目标机器,搜集其中各种敏感信息,并通过网络与外界通信,发回所搜集到的各种敏感信息,接受植入者指令,完成其它各种操作,如修改指定文件、格式化硬盘等
2.1木马系统结构一个完整的木马系统由硬件部分、软件部分和具体的连接部分组成
[7]
1、硬件部分,建立木马连接所必须的硬件实体,分为控制端,服务端和Internet控制端是对服务进行远程控制的一方;服务端是被控制端远程控制的一方;Internet是控制段对服务端进行远程控制,数据传输的网络载体
2、软件部分,实现远程控制所必须的软件程序控制端程序,控制端用以远程控制服务端的程序木马程序,潜入服务端内部,获取其操作权限的程序木马配置程序,设置木马的端口号,触发条件,木马名称等,并使其在服务端隐藏的更隐蔽的程序
3、具体连接部分,通过Internet在服务端和控制端之间建立一条木马通道所必须的一条元素控制端IP和服务端IP,即控制端和服务端的网络地址,也是木马进行数据传输的目的地控制端端口和木马端口,即控制端和服务端的数据入口,通过这个端口,数据可以直达控制端程序或木马程序
2.2木马的基本特征综合现在流行的木马程序,它们都具有以下基本特征
1、隐蔽性木马必须有能力__潜伏于目标机器中而不被发现一个隐蔽性的木马往往会很容易暴露自己,进而被杀毒或杀马软件,甚至用户手工检查来,这样将使得这类木马变得毫无价值因此可以说隐蔽性是木马的生命
2、自动运行性木马程序是一个系统启动即自动运行的程序,所以它可能嵌入在启动配置文件(如win.ini、system.ini、winstart.bat等)、启动组或注册表中
3、欺骗性木马程序要达到__隐藏的母的,就必须借助系统中已有的文件以防被发现木马经常类似以常见的文件名或扩展名的名字(如dll、win、sys),或者仿制一些不易被人区分的文件名(如字母“i”和数字“1”,字母“o”和数字“0”),或者伪装成常见的文件图标以骗取用户的信任
4、顽固性木马顽固性就是指有效清除木马的易程度若一个木马在检查出来之后,仍然无法将其一次性有效清除,那么该马就具有较强的顽固性很多木马程序中的功能模块已不再是单一的文件组成,而是将文件分别存储在不同的位置这些分散的文件可以相互恢复,因此难以清除
5、易植入性任何木马必须首先能够进入目标机器(植入操作),因此易入性就成为木马有效性的先决条件欺骗性是自木马诞生起最常见的植入手段因此各种好用的小功能软件就成为木马常用的栖息地利用系统漏洞进行木马入也是木马入侵的一类重要途径目前木马技术与蠕虫技术的结合使得木马具类似蠕虫的传播性,这也就极大提高了木马的易植入性
2.3木马的功能只要在本地计算机上能操作的功能,目前的木马基本上都能实现木马的控制端可以像本地用户一样操作远程计算机木马的功能可以概括为以下内容
[8]
1、窃取数据以窃取数据为目的,本身不破坏计算机的文件和数据,不妨碍系统的正常工作,它以系统使用者难以察觉的方式向外传送数据
2、接受非法授权操作的指令当网络中的木马被激活后,它可以获取网络服务器系统___的权限,随心所欲地窃取__和各类数据,逃避追踪,同时不会留下任何痕迹
3、篡改文件和数据对系统文件和数据有选择地进行篡改,使计算机处理的数据产生错误的结果,导致作出错误的决策有时也对数据进行加密
4、删除文件和数据将系统中的文件和数据有选择地删除或者全部删除
5、施放病毒将原先埋伏在系统中但出于休眠状态的病毒激活,或从外界将病毒导入计算机系统,使其感染并实施破坏
6、使系统自毁包括改变时钟频率、使芯片热崩溃而损坏、造成系统瘫痪等
2.4木马的分类木马的分类多种多样,根据不同的分类标准,木马的种类也有所不同
(一)根据木马程序对计算机的具体动作方式,可以把现在的木马程序分为以下几类
1、远程控制型远程控制型木马是现今最广泛的特洛伊木马.这种木马起着程监控的功能,使用简单,只要被控制主机联入网络,并与控制端客户程序建立网络连接,控制者就能任意访问被控制的计算机这种木马在控制端的控制下可以在被控主机上做任意的事情,比如键盘记录,文件上传/下载,截取屏幕,远程执行等这种类型的木__较著名的有BOBackOrifi__和国产的冰河等
2、__发送型__发送型木马的目的是找到所有的隐藏__,并且在受害者不知道的情况下把它们发送到指定的信箱大多数这类木马程序不会在每次Windows系统重启时都自动加载,它们大多数使用25端口发送____
3、键盘记录型键盘记录型木马非常简单,它们只做一种事情,就是记录受害者的键盘敲击,并且在LOG文件里进行完整的记录这种木马程序随着Windows系统的启动而自动加载,并能感知受害主机在线,且记录每一个用户__,然后通过邮件或其他方式发送给控制者
4、毁坏型大部分木马程序只是窃取信息,不做破坏性的__,但毁坏型木马却以毁坏并且删除文件为己任它们可以自动删除受控主机上所有的.ini或.exe文件,甚至远程格式化受害者硬盘,使得受控主机上的所有信息都受到破坏总而言之,该类木马目标只有一个就是尽可能的毁坏受感染系统,致使其瘫痪
5、FTP型FTP型木马打开被控主机系统的21号端口使每一个人都可以用一个FTP客户端程序来不要__连接到受控制主机系统,并且可以进行最高权限的文件上传和下载,窃取受害系统中的机密文件
(二)根据木马的网络连接方向,可以分为两类
1、正向连接型发起通信的方向为控制端向被控制端发起,这种技术被早期的木马广泛采用,其缺点是不能透过防火墙发起连接
2、反向连接型发起通信的方向为被控制端向控制端发起,其出现主要是为了解决从内向外不能发起连接的情况的通信要求,已经被较新的木马广泛采用
(三)根据木马使用的架构,可以分为四类
1、C/S架构这种为普通的服务器、客户端的传统架构,一般我们都是采用客户端作控制端,服务器端作被控制端在编程实现的时候,如果采用反向连接的技术,那么客户端也就是控制端要采用Socket编程的服务器端的方法,而服务端也就是被控制端采用Socket编程的客户端的方法
2、B/S架构这种架构为普通的网页木马所采用的方式通常在B/S架构下,Server端被上传了网页木马,控制端可以使用浏览器来访问相应的网页,达到对Server端进行控制的目的
3、C/P/S架构这里的P是Proxy的意思,也就是在这种架构中使用了代理当然,为了实现正常的通信代理也要由木马__编程实现,才能够实现一个转换通信这种架构的出现,主要是为了适应一个内部网络对另外一个内部网络的控制但是,这种架构的木马目前还没有发现
4、B/S/B架构这种架构的出现,也是为了适应内部网络对另外的内部网络的控制当被控制端与控制端都打开浏览器浏览这个Server上的网页的时候,一端就变成了控制端,而另外一端就变成了被控制端,这种架构的木马已经在国外出现了第三章远程控制木马的设计在目前发现的所有木马当中,以远程控制木马数量最多,危害最大,同时知名度也最高的一种木马,它可以让攻击者完全控制被感染的计算机,攻击者可以利用它完成一些甚至连计算机主人本身都不能顺利进行的操作,其危害之大实在不容小觑由于要达到远程控制的目的,所以,该种类的木马往往集成了其他种类木马的功能使其在被感染的机器上为所欲为,可以任意访问文件,得到机主的私人信息甚至包括___,银行账号等至关重要的信息远程控制木马一般采用C/S构架,包括客户端和服务端客户端运行在被控制端,执行服务端发送的各种命令服务端运行在控制端,用于向客户端发送操作命令,并接受客户端发送的信息
3.1功能分析由于要实现的是远程控制木马程序,因此需要实现的功能如下1被控制端上网后自动通知当己植入服务器端程序的计算机上网后,程序自动连接信息中转系统,获得客户端所在主机的IP,然后通知客户端2获取被控制端主机硬盘资料信息利用本系统可列举被控计算机所有硬盘上的所有目录和文件信息,具体信息包括目录名、文件名、目录或文件属性、大小、修改时间等3远程文件操作远程修改文件、文件夹,下载、上传文件,删除、新建文件等4远程系统控制该功能可实现对被控制端主机的重启、关机、注销,鼠标、键盘的锁定和解锁5获取目标机的系统信息包括计算机名、当前用户名、当前运行的软件和计算机__了那些软件6进程管理管理被控制的进程,包括查看当前运行的进程信息,终止进程等7被控制端的伪装、隐藏、自启动等功能
3.2系统总体设计本系统采用Client/Server工作模式,由服务端程序、客户端程序和中转服务器三部分构成客户端(控制端)程序运行在本地主机系统上,这些程序主要负责向被控端程序发送控制指令,并对被控端返回的取证结果进行证据处理,以友好的图形界面形式显示给控制者服务端被控端程序是__在被控的计算机上,主要负责接收并处理客户端程序发来的各种控制命令、完成服务端程序的加载,完成服务端启动、隐藏和进程的隐藏,并返回结果中转服务器是拥有固定的IP地址,它在整个木马系统中充当中转功能,为服务端提供最新的客户端IP地址和端口信息,不管客户端的地址如何变化,都能使服务端正确连接到客户端中转服务器作为整个木马系统的中转关键环节,提供一定空间用来更新存储客户端的信息
3.3系统实现的关键技术所谓隐蔽通信就是在用户毫无感知的情况下完成木马客户端与服务器端的数据交互首先明确用户在什么情况下可以察觉与外界的异常数据交流,用户感知到非正常数据流通的征兆无非通过以下几种途径
[27]1利用Netstat查看连接,并有异常连接处于ESTABLISHED状态2当__有防火墙时,防火墙有异常连接警报3用网络嗅探器如TCPDUMP,Sniffer分析数据流的时候,有异常数据流通过
3.4系统的__工具随着计算机应用的发展,__工具的种类越来越多,功能也越来越强大不同的__工具在__应用中有不同的优点和侧重点选择一种最适合的__工具,既能更好地实现系统功能,也能大大减轻__难度,减少__工作量,加速__进程选择__工具,要根据应用程序的实际__需求进行选择应用程序的__发展到今天,良好的用户界面是一个应用程序__好坏的基础和最直观的条件网络监控系统的实现不可避免会涉及到用户界面的__操作,友好的用户界面可以使系统操作简单直观,增加其应用度现在的程序设计方法已由过去的结构化程序设计发展为面向对象的程序设计在面向对象的程序设计__中,可以很轻易方便地实现用户界面的__,获得良好的用户界面当前流行的各种__工具,如VisualBasic,VisualC#,Delphi,J__a,PowerBuilder等等__软件都是面向对象的__工具,都可以很容易完成用户界面__的工作从用户界面的__方面来考虑,可以选择当前常用的面向对象的__工具中的任何一种__者可根据自己的喜好选择自己最熟悉的__工具本木马程序要实现对目标主机的控制,就需要服务端与客户端之间不断进行交互;系统___需要通过目标监控子系统获得目标主机的信息并对其进行控制,这都是通过网络编程来实现的在当前较流行的各种__工具中,支持网络编程、提供较好的Winsock支持的主要有VisualC#和J__a两种VisualC#具有强大的功能实现体系,并且具有和Windows操作系统良好的兼容性,因此选择VisualC#进行系统的网络编程
3.5代码实现void CPeeperSetDlg::OnOK { GetDlgItemTextIDC_EDIT_IP m_strIP; m_uPort = GetDlgItemIntIDC_EDIT_PORT; m_nBits = GetDlgItemIntIDC_EDIT_BITS; m_nSpeed = GetDlgItemIntIDC_EDIT_SPEED; CDialog::OnOK; } BOOL CPeeperSetDlg::OnInitDialog { CDialog::OnInitDialog; SetDlgItemTextIDC_EDIT_IP SetDlgItemIntIDC_EDIT_PORT PL_PEEPER_PORT; SetDlgItemTextIDC_EDIT_BITS _T4; SetDlgItemIntIDC_EDIT_SPEED 1000; __dit *GetDlgItemIDC_EDIT_SPEED-SetLimitText6; __dit *GetDlgItemIDC_EDIT_BITS-SetLimitText2; return TRUE; } { ::PostMessagem_pPeeperWnd-GetSafeHwnd PL_GET_DIB_MESSAGE WPARAMPL_GET_DIB_MESSAGE LPARAMztZip; } } } TRA___TGet data times:%dms.\nGet data sizes:%dbytes.\n ::GetTickCount - d1 ::GlobalSizem_pPeeperWnd-m_hDib; return nRet; void CPeeperWnd::SetNotifyWnd__nd *pNotifyWnd { m_pNotifyWnd = pNotifyWnd; } void CPeeperWnd::SetBitsint nBits { m_nBits = nBits; SendDIBBits; } void CPeeperWnd::SetUpdateSpeedUINT nTimer { m_nSpeed = nTimer; KillTimerm_nTimerID; SetTimerm_nTimerID m_nSpeed NULL; }
(五)Client端发送和读取数据 int CPeeperWnd::SendDataBYTE *chData int nLen BYTE chFlag { int nRet = INVALID_SOCKET; ifm_sckClient
[0] != INVALID_SOCKET { nRet = ::PL_SendSocketDatam_sckClient
[0] chData nLen chFlag; } return nRet; } int CPeeperWnd::ReadDataBYTE *chData int nLen BYTE *chFlag { int nRet = INVALID_SOCKET; ifm_sckClient
[0] != INVALID_SOCKET { nRet = ::PL_ReadSocketDatam_sckClient
[0] chData nLen chFlag; } return nRet; }
(六)得到鼠标位置 POINT CPeeperWnd::GetMousePointBYTE *chData { POINT pt1 pt2 point; ::GetCursorPospt1; pt2 = GetOffsetPos; pt
1.x = pt
1.x + pt
2.x; pt
1.y = pt
1.y + pt
2.y; CDC *pDC = GetDC; GetDCOrgExpDC-GetSafeHdc pt2; point.x = pt
1.x - pt
2.x; point.y = pt
1.y - pt
2.y; ifAfxIsValidAddresschData 12 { int cx = point.x; int cy = point.y; ZeroMemorychData 12; memcpychData cx sizeofint; memcpychData+sizeofint cy sizeofint; } return point; } CPoint CPeeperWnd::GetOffsetPosBOOL bScroll { CPoint pt = GetScrollPosition; CPoint point = CPoint0 0; CRect rect; GetClientRectrect; ifrect.Width m_szScreen.cx { point.x = rect.Width - m_szScreen.cx/2; } ifrect.Height m_szScreen.cy { point.y = rect.Height - m_szScreen.cy/2; } ifbScroll { pt.x -= point.x; pt.y -= point.y; } else { pt = point; } return pt; } int CPeeperWnd::OnCreateLPCREATESTRUCT lpCreateStruct { if CScrollView::OnCreatelpCreateStruct == -1 return -1; m_hPeeperThread.m_pPeeperWnd = this; m_hPeeperThread.CreateThread;#else //不使用Doc类时,可以在这里增加参数的设置 #endif if!m_strIP.IsEmpty { ConnectServer; } } void CPeeperWnd::OnDrawCDC* pDC { CRect rect; GetClientRectrect; ifm_memDC.m_hDC == NULL || rect.right m_szScreen.cx || rect.bottom m_szScreen.cy { rect.right = __xrect.right m_szScreen.cx; rect.bottom = __xrect.bottom m_szScreen.cy; pDC-FillSolidRectrect RGB0 100 150; } ifm_memDC.m_hDC != NULL { CPoint pt = GetOffsetPosFALSE; pDC-BitBltpt.x pt.y m_szScreen.cx m_szScreen.cy m_memDC 0 0 SRCCOPY; } else { CFont font; font.CreatePointFont120 _T宋体; CFont *old = pDC-SelectO__ectfont; CRect rc; GetClientRectrc; pDC-SetTextColorRGB255 255 255; pDC-DrawTextm_strState rc DT_SINGLELINE | DT_V__NTER | DT___NTER; pDC-SelectO__ectold; } }
(七)发送鼠标操做信息 void CPeeperWnd::DrawDIB { ifm_hDib ::IsWindowm_hWnd { CClientDC dcthis; != m_szScreen.cx || != m_szScreen.cy { m_szScreen.cx = m_szScreen.cy = ifm_memDC.m_hDC { m_memDC.DeleteDC; } m_memDC.CreateCompatibleDCNULL; CBit__p bmp; bmp.CreateCompatibleBit__pdc m_szScreen.cx m_szScreen.cy; m_memDC.SelectO__ectbmp; SetScrollSizesMM_TEXT CSizem_szScreen.cx m_szScreen.cy; Invalidate; UpdateWindow; } else { if!m_memDC.m_hDC { m_memDC.CreateCompatibleDCNULL; CBit__p bmp; CClientDC dcthis; bmp.CreateCompatibleBit__pdc m_szScreen.cx m_szScreen.cy; m_memDC.SelectO__ectbmp; SetScrollSizesMM_TEXT CSizem_szScreen.cx m_szScreen.cy; } } ::PL_DrawDIBm_memDC.m_hDC NULL m_hDib NULL NULL; m_memDC.Draw3dRectCRect0 0 m_szScreen.cx m_szScreen.cy RGB255 255 255 RGB80 80 80; #ifdef USE_DOC //设置文件标题 CString str; str.For__t_T偷窥者窗口--[IP/Name:%s Port:%d Refresh Time:%.3fS/T] m_strIP m_uPort float::GetTickCount - m_nLastUpdateTime/
1000.0f; ifm_pDocument { m_pDocument-SetTitlestr; } #endif CPoint pt = GetOffsetPos; dc.BitBlt-pt.x -pt.y m_szScreen.cx m_szScreen.cy m_memDC 0 0 SRCCOPY; m_strState = _T连接完毕; } m_bIsDoing = FALSE; m_nLastUpdateTime = ::GetTickCount; } BOOL CPeeperWnd::PreTranslateMessageMSG* pMsg { return CScrollView::PreTranslateMessagepMsg; } void CPeeperWnd::OnLButtonDblClkUINT nFlags CPoint point { ifCanSend GetEnableFlagPL_ENABLE_MOUSE_LDBLCLK { BYTE chData
[20]; GetMousePointchData; BOOL bMouseMove = GetEnableFlagPL_ENABLE_MOUSE_MOVE; bMouseMove = !bMouseMove; memcpychData+sizeofint*2 bM第四章远程控制木马的实现本章将详细介绍远程控制木马的主要实现过程,包括客户端和服务端的实现;通信模块的实现;程序的界面和功能的测试等
4.1服务端程序的实现
4.
1.1服务端的自启动本模块通过修改注册表来实现目标监控子系统的自启动在Windows系统中,不论是Windows9X操作系统,还是Windows2000/XP/NT操作系统,其注册表的结构大体上是基本相同的,都是一种层叠式结构的复杂数据库,由键、子键、分支、值项和缺省值几部分组成
4.
1.2通信模块的实现在服务端的功能模块之中,对于通信模块的性能要求比较高要实现对目标主机的监控和管理,必须以可靠、稳定的数据通信为前提服务端与客户端之间采用TCP/IP协议进行通信,为了躲避防火墙采用了基于反弹端口机制的C/S客户机/服务器模型由服务器主动向客户机发出连接请求通信模块的__采用WinsockAPI,建立基于阻塞模式的流式Sockets套接字,数据的接收和发送除了与通用流式套接字编程模型相同外,还增加了对数据的处理功能通信过程的实现,主要包括C/S模型的实现,数据接收和发送,文件的接收和发送和通信阻塞模式
1、基于反弹端口机制的C/S客户机/服务器模型基于反弹端口机制的C/S模型的通信方式与一般C/S模型的区别仅在于建立连接时的方式不同,基于反弹端口机制的C/S模型建立连接时是由服务器主动向客户机发起连接请求客户端首先初始化套接字,然后创建监听Socket,绑定地址端口,调用函数Listen,开始监听服务端则在创建监听套接字后,发起连接请求客户端接收到连接请求后,再进行后续处理
2、接收数据流程接收数据的函数定义为
4.
1.3服务端管理模块管理模块是服务端的主模块,它将各个功能模块融合在一起,实现对目标主机的监控和管理它主要负责接收监控系统的命令,对其命令进行识别解释,并调用各个功能模块,执行管理器命令因此它和其它模块都有接口,它自身包含的函数主要有文件管理查看、上传、下载、删除等、抓取屏幕等管理模块的设计思想并不复杂,它的主要任务就是与监控系统建立连接,接收判断监控系统发出的操作命令并有效执行图
5.1管理模块过程图管理模块的流程如图
5.1所示模块初始化主要包括变量初始化和建立互斥体两个过程在建立连接和发送目标主机基本信息后,管理模块即进入等待命令—判断命令—执行命令一回应信息的命令循环状态,若在此循环中出错如网络不通,应答出错时,程序将会退回到建立连接的状态
4.2客户端的实现客户端是运行在控制端主机上,用来远程控制被控制端的信息和操作运行客户端程序,出现客户端程序界面(如图
5.2)图
5.2客户端程序主界面客户端运行后,修改中间服务器上的客户端信息,包括客户机IP,开放的端口和链接__修改成功后,等待远程主机的上线如果有远程主机上线,则可以完成的操作有文件控制、系统控制和文件传输下面将分别介绍
4.
2.1远程文件控制操作远程主机的文件,完成所需要的目的,包括文件的新建、删除,上传和下载如图
5.3,目前有一台主机上线图
5.3文件操作界面下面对监控被控端的文件操作进行说明1选择被控端及路径在左边一览表中选择一个在线的、可控的被控端,用鼠标左键单击后,右边框中将显示当前所选中的被控端C盘目录下的所有文件及文件夹可以通过改变“驱动器”或直接在当前目录处输入要查看的D、E等目录2查看文件夹内容如果要查看其中某文件夹中的文件可选中该文件夹,然后单击右键弹出菜单,选择“打开”菜单项或双击打开,此时将该文件夹中的文件或子文件夹显示在右框中3下载被控端文件如果要将被控端中的某一文件下载的控制端计算机中,可单击选中该文件,然后右击选择弹出菜单中的“下载到”菜单项,此时出现要存放下载文件的路径,单击保存按钮系统将提示是否要打开下载的文件,如果想查看内容,则单击“是”,否则单击“否”4删除被控端文件如果要想删除被控端中的某一文件,则单击选中,右击选择弹出菜单中的“删除”菜单项,即可删除被控端中的该文件5刷新被控端文件夹内容在右框中右击选择弹出菜单中的“刷新”菜单项,可对显示的文件及子文件夹刷新显示6上传选定文件到被控端选择被控端,指定要上传的位置,在右边框中单击右键选择弹出菜单中的“上传文件到⋯”菜单项,等待文件上传,上传完毕后系统给予提示
4.
2.2系统控制作为木马的破坏功能,系统控制中包括了远程关机、重启、注销、鼠标屏幕控制等功能选择需要控制的主机,然后__相应的按钮,即可完成操作如图
5.4图
5.4系统控制界面进程管理、网络连接、启动项和系统信息,在设计时也作为系统控制的一部分,其相应的功能和操作如下
1、文件管理,实现了对远程主机进程的操作可以查看当前运行的进程ID,进程名和文件来源如图
5.5所示,单击“刷新”按钮,则刷新当前的进程列表;选择所需进程,然后__“结束进程”则可结束该进程图
5.5进程管理界面
4.
2.3冰河信使我们还可以通过冰河信使功能和服务器方进行聊天,当主控端发起信使通信之后,受控端也可以向主控端发送消息了图
5.6冰河信使查杀木马当我们发现机器无故经常重启、__信息泄露、桌面不正常时,可能就是中了木马程序,需要进行杀毒判断是否存在木马一般病毒都需要修改注册表,我们可以在注册表中查看到木马的痕迹在“开始”---“运行”,输入“regedit”,这样就进入了注册表编辑器,依次打开子键目录“HKEY_LOCAL___CHINE\SOFTWARE\Microsoft\Windwos\CurrentVersion\Run”图
5.7注册表中的Run子键在目录中我们发现第一项的数据“C\WINDOWS\system32\Kernel
32.exe”,Kernel
32.exe就是冰河木马程序在注册表中加入的键值,将该项删除然后再打开“HKEY_LOCAL___CHINE\SOFTWARE\Microsoft\Windwos\CurrentVersion\RunServi__s”如图
5.8所示图
5.8注册表中的RunServi__s子键在目录中也发现了一个键值“C\WINDOWS\system32\Kernel
32.exe”将其删除Run和RunServi__s中存放的键值是系统启动是启动启动的程序,一般的病毒、木马、后门等都是存放在这些子键目录下,所以要经常检查这些子键目录下的程序,如有不明程序,则要认真检查删掉其在注册表中的启动项后,再删除病毒原文件打开“C:\WINDWOS\system32”,找到kernel
32.exe将其删除,如图
5.9所示图
5.9C:\WINDWOS\system32中kernel
32.exe的搜索结果如图
5.10所示,打开“C:\WINDWOS\system32”,找到sy___plr.exe将其删除图
5.10\WINDWOS\system32中sy___plr.exe的搜索结果之后重启之后,冰河木马就彻底被删除掉了第5章结束语这次课设根据网络上下载的源码进行修改,使之可以免杀并将原木马未实现的Server端上线后自动发送本机IP到Client端的功能得以实现通过查找资料实现了开机启动不被360__,360免杀原代码是__01年用VC
5.0所写,屏幕监事和控制做得不是很好,压缩处理后图像不够清晰,而且在屏幕上直接开机启动,隐藏进程,绑定文件,木马加壳、脱壳,木马加密、解密等都进行了很多试验,虽然有很多最后没有应用到本次的木马上,但是对于木马的工作原理和免杀以及木马的查杀都有了很深刻的认识,同时在制作木马的过程中在老师给的资料里学到了很多知识,学会了很多工具的使用,很大程度的开阔了眼界,对木马产生了浓厚的兴趣,如果不是时间紧一定可以做出更加__的木马____
[1]中国互联网络信息中心(CNNIC).第25次中国互联网络发展状况统计报告.
[3]刘峰.互联网进入“木马”经济时代[N].中国企业报,2007年7月9日,第8版.
[4]徐宇茹,李志勇,肖__.嵌入式计算机木马设计[J].海军__工程学院学报,2004,1905578—579.
[5]杨瑾.基于远程线程插入DLL技术的嵌套式木马设计[J].计算机与信息技术,2007,0478—80.
[6]徐宇茹,李志勇,肖__.嵌入式计算机木马设计[J].海军__工程学院学报,2004,1905578—579.
[7]刘功申.计算机病毒及其防范技术[M].北京清华大学出版社,
2008.
131.
[8]傅建明等.计算机病毒分析与对抗[M].湖北武汉大学出版社,
2004.
299.
[9]刘克勤等编著.谁动了我的电脑[M].北京中国青年出版社,20031260-286
[10]程胜利.计算机病毒及其防治技术[M].北京清华大学出版社,20041.
[11]RogerGrimes著.恶意传播代码[M].北京机械工业出版社,20041.
[12]李新宇.论特洛伊木马程序及其引发的刑法学问题.[D]:[硕士学位论文].北京中国政法大学,
2007.。