1实验1木马攻击与防范一、实验目的通过对木马的练习,使读者理解和掌握木马传播和运行的机制;通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范意识。二、实验原理木马的全称为特洛伊木马,源自古希腊神话。木马是隐藏在正常程序中的具有特殊功能的恶意代码,是具备破坏、删除和修改文件、发送密码、记录键盘、实施DoS攻击甚至完全控制计算机等特殊功能的后门程序。它隐藏在目标计算机里,可以随计算机自动启动并在某一端口监听来自控制端的控制信息。1.木马的特性木马程序为了实现其特殊功能,一般应该具有以下性质:(1)伪装性:程序将自己的服务器端伪装成合法程序,并且诱惑被攻击者执行,使木马代码会在未经授权的情况下装载到系统中并开始运行。(2)隐藏性:木马程序同病毒程序一样,不会暴露在系统进程管理器内,也不会让使用者察觉到木马的存在,它的所有动作都是伴随其它程序进行的,因此在一般情况下使用者很难发现系统中有木马的存在。(3)破坏性:通过远程控制,攻击者可以通过木马程序对系统中的文件进行删除、编辑操作,还可以进行诸如格式化硬盘、改变系统启动参数等恶性破坏操作。(4)窃密性:木马程序最大的特点就是可以窥视被入侵计算机上的所有资料,这不仅包括硬盘上的文件,还包括显示器画面、使用者在操作电脑过程中在硬盘上输入的所有命令等。2.木马的入侵途径木马入侵的主要途径是通过一定的欺骗方法,如更改图标、把木马文件与普通文件合并,欺骗被攻击者下载并执行做了手脚的木马程序,就会把木马安装到被攻击者的计算机中。木马也可以通过Script、ActiveX及ASP、CGI交互脚本的方式入侵,由于微软的浏览器在执行Script脚本上存在一些漏洞,攻击者可以利用这些漏洞诱导上网者单击网页,这样IE浏览器就会自动执行脚本,实现木马的下载和安装。木马还可以利用系统的一些漏洞入侵,如微软的IIS服务器存在多种溢出漏洞,通过缓冲区溢出攻击程序造成IIS服务器溢出,获得控制权限,然后在被攻击的服务器上安装并运行木马。3.木马的种类(1)按照木马的发展历程,可以分为4个阶段:第1代木马是伪装型病毒,将病毒伪装成一个合法的程序让用户运行,例如1986年的PC-Write木马;第2代木马是网络传播型木马,它具备伪装和传播两种功能,可以进行密码窃取、远程控制,例如B02000和冰河木马;第3代木马在连接方式上有了改进,利用了端口反弹技术,例如灰鸽子木马;第4代木马在进程隐藏方面做了较大改动,让木马服务器端运行时没有进程,网络操作插入到系统进程或者应用进程中完成,例如广外男生木马。(2)按照功能分类,木马又可以分为:破坏型木马,主要功能是破坏并删除文件;密码发送型木马,它可以找到密码并发送到指定的邮箱中;服务型木马,它通过启动FTP服务或者建立共享目录,使黑客可以连接并下载文件;DoS攻击型木马,它将作为被黑客控制的肉鸡实施DoS攻击;代理型木马,可使被入侵的计算机做为黑客发起攻击的跳板;远程控制型木马,可以使攻击者利用客户端软件进行完全控制。4.木马的工作原理下面简单介绍一下木马的传统连接技术、反弹端口技术和线程插入技术。2(1)木马的传统连接技术一般木马都采用C/S运行模式,因此它分为两部分,即客户端和服务器端木马程序。其原理是,当服务器端程序在目标计算机上被执行后,一般会打开一个默认的端口进行监听,当客户端向服务器端主动提出连接请求,服务器端的木马程序就会自动运行,来应答客户端的请求,从而建立连接。C/S木马原理如图1-1所示。第1代和第2代木马都采用的是C/S(客户机,服务器)连接方式,这都属于客户端主动连接方式。服务器端的远程主机开放监听端目等待外部的连接,当入侵者需要与远程主机连接时,便主动发出连接请求,从而建立连接。(2)木马的反弹端口技术随着防火墙技术的发展,它可以有效拦截采用传统连接方式从外部主动发起连接的木马程序。但防火墙对内部发起的连接请求则认为是正常连接,第3代和第4代“反弹式”木马就是利用这个缺点,其服务器端程序主动发起对外连接请求,再通过某些方式连接到木马的客户端,就是说“反弹式”木马是服务器端主动发起连接请求,而客户端是被动的连接。根据客户端IP地址是静态的还是动态的,反弹端口连接可以有两种方式,如图1-2和图1-3所示。图1-1C/S木马原理图1-2反弹端口连接方式一图1-3反弹端口连接方式二反弹端口连接方式一要求入侵者在设置服务器端的时候,指明客户端的IP地址和待连接端3口,也就是远程被入侵的主机预先知道客户端的IP地址和连接端口。所以这种方式只适用于客户端IP地址是静态的情况。反弹端口连接方式二在连接建立过程中,入侵者利用了一个“代理服务器”保存客户端的IP地址和待连接的端口,在客户端的IP地址是动态的情况下,只要入侵者更新“代理服务器”中存放的IP地址与端口号,远程被入侵主机就可通过先连接到“代理服务器”,查询最新木马客户端信息,再和入侵者(客户端)进行连接。因此,这种连接方式适用于客户端和服务器端都是动态IP地址的情况,并且还以穿透更加严密的防火墙。表1-1总结了反弹端口连接方式一和反弹端口连接方式二的使用范围。表1-1反弹端口连接方式及其使用范围反弹端口连接方式使用范围方式一1.客户端和服务器端都是独立IP;2.客户端独立IP,服务器端在局域网内;3.客户端和服务器都在局域网内方式二1.客户端和服务器端都是独立IP2.客户端独立IP,服务器端在局域网内(3)线程插入技术我们知道,一个应用程序在运行之后,都会在系统之中产生一个进程,同时,每个进程分别对应了一个不同的进程标识符(ProcessID,PID)。系统会分配一个虚拟的内存空间地址段给这个进程,一切相关的程序操作,都会在这个虚拟的空间中进行。一个进程可以对应一个或多个线程,线程之间可以同步执行。一般情况下,线程之间是相互独立的,当一个线程发生错误的时候,并不一定会导致整个进程的崩溃。“线程插入”技术就是利用了线程之间运行的相对独立性,使木马完全地融进了系统的内核。这种技术把木马程序作为一个线程,把自身插入其它应用程序的地址空间。而这个被插入的应用程序对于系统来说,是一个正常的程序,这样,就达到了彻底隐藏的效果。系统运行时会有许多的进程,而每个进程又有许多的线程,这就导致了查杀利用“线程插入”技术木马程序的难度。综上所述,由于采用技术的差异,造成木马的攻击性和隐蔽性有所不同。第2代木马,如“冰河”,因为采用的是主动连接方式,在系统进程中非常容易被发现,所以从攻击性和隐蔽性来说都不是很强。第3代木马,如“灰鸽子”,则采用了反弹端口连接方式,这对于绕过防火墙是非常有效的。第4代木马,如“广外男生”,在采用反弹端口连接技术的同时,还采用了“线程插入”技术,这样木马的攻击性和隐蔽性就大大增强了,可以说第4代木马代表了当今木马的发展趋势。三、实验环境两台运行Windows2000/XP的计算机,通过网络连接。使用“冰河”和“广外男生”木马作为练习工具。四、实验内容和任务任务一“冰河”木马的使用1.“冰河”介绍“冰河”是国内一款非常有名的木马,功能非常强大。“冰河”一般是由两个文件组成:G_Client和G_Server,其中G_Server是木马的服务器端,就是用来植入目标主机的程序,G_Client是木马的客户端,就是木马的控制端,我们打开控制端G_Client,弹出“冰河”的主界面,如图1-4所示。4图1-4“冰河”主界面快捷工具栏简介(从左至右):(1)添加主机:将被监控端IP地址添加至主机列表,同时设置好访问口令及端口,设置将保存在Operate.ini文件中,以后不必重输。如果需要修改设置,可以重新添加该主机,或在主界面工具栏内重新输入访问口令及端口并保存设置。(2)删除主机:将被监控端IP地址从主机列表中删除(相关设置也将同时被清除)。(3)自动搜索:搜索指定子网内安装有冰河的计算机。(4)查看屏幕:查看被监控端屏幕。(5)屏幕控制:远程模拟鼠标及键盘输入。(6)“冰河”信使:点对点聊天室。(7)升级1.2版本:通过“冰河”来升级远程1.2版本的服务器程序。(8)修改远程配置:在线修改访问口令、监听端口等服务器程序设置,不需要重新上传整个文件,修改后立即生效。(9)配置本地服务器程序:在安装前对G_Server.exe进行配置(例如是否将动态IP发送到指定信箱、改变监听端口、设置访问口令等)。2.使用“冰河”对远程计算机进行控制我们在一台目标主机上植入木马,在此主机上运行G_Server,作为服务器端;在另一台主机上运行G_Client,作为控制端。打开控制端程序,单击快捷工具栏中的“添加主机”按钮,弹出如图1-5所示对对话框。图1-5添加计算机“显示名称”:填入显示在主界面的名称。“主机地址”:填入服务器端主机的IP地址。“访问口令”:填入每次访问主机的密码,“空”即可。“监听端口”:“冰河”默认的监听端口是7626,控制端可以修改它以绕过防火墙。单击“确定”按钮,即可以看到主机面上添加了test的主机,如图1-6所示。添加的远程主机列表若出现盘符,则表示连接成功5图1-6添加test主机这时单击test主机名,如果连接成功,则会显示服务器端主机上的盘符。图1-6显示了test主机内的盘符,表示连接成功。这时我们就可以像操作自己的电脑一样操作远程目标电脑,比如打开C:\WINNT\system32\config目录可以找到对方主机上保存用户口令的SAM文件。“冰河”的大部分功能都是在这里实现的,单击“命令控制台”的标签,弹出命令控制台界面,如图1-7所示。图1-7命令控制台界面可以看到,命令控制台分为“口令类命令”、“控制类命令”、“网络类命令”、“文件类命令”、“注册表读写”、“设置类命令”。3.删除“冰河”木马删除“冰河”木马主要有以下几种方法:(1)客户端的自动卸载功能在“控制类命令”中的“系统控制”里面就有自动卸载功能,执行这个功能,远程主机上的木马就自动卸载了。(2)手动卸载这是我们主要介绍的方法,因为在实际情况中木马客户端不可能为木马服务器端自动卸载木马,我们在发现计算机有异常情况时(如经常自动重启、密码信息泄漏、桌面不正常时)就应该怀疑是否已经中了木马,这时我们应该查看注册表,在“开始”的“运行”里面输入regedit,打开Windows注册表编辑器。依次打开子键目录HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run。在目录中发现了一个默认的键值C:\WINNT\System32\kernel32.exe,这就是“冰河”木马6在注册表中加入的键值,将它删除。然后再依次打开子键目录HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runservices,如图1-13所示。在目录中也发现了一个默认的键值C:\WINNT\System32\kernel32.exe,这也是“冰河”木马在注册表中加入的键值,将它删除。上面两个注册表的子键目录Run和Runservices中存放的键值是系统启动时自动启动的程序,一般病毒程序、木马程序、后门程序等都放在这些子键目录下,所以要经常检查这些子键目录下的程序,如果有不明程序,要着重进行分析。然后再进入C:\WINNT\System32目录,找到“冰河”木马的两个可执行文件Kernel32.exe和Sysexplr.exe文件,将它们删除。修改文件关联也是木马常用的手段,“冰河”木马将txt文件的缺省打开万式由notepad.exe改为木马的启动程序,除此之外,html、exe、zip、com等也都是木马的目标。所以,在最后需要恢复注册表中的txt文件关联功能,只要将注册表的HKEY_CLASSES_ROOT\txtfile\shell\open\command下的默认值,由中木马后的C:\Windows\System\Sysexplr.exe%1改为正常情况