1、1实验 1 木马攻击与防范一、实验目的通过对木马的练习,使读者理解和掌握木马传播和运行的机制;通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范意识。二、实验原理木马的全称为特洛伊木马,源自古希腊神话。木马是隐藏在正常程序中的具有特殊功能的恶意代码,是具备破坏、删除和修改文件、发送密码、记录键盘、实施 DoS 攻击甚至完全控制计算机等特殊功能的后门程序。它隐藏在目标计算机里,可以随计算机自动启动并在某一端口监听来自控制端的控制信息。1木马的特性木马程序为了实现其特殊功能,一般应该具有以下性质:(1)伪装性:程序将自己的服务器端伪装成合法程序,并且诱惑被
2、攻击者执行,使木马代码会在未经授权的情况下装载到系统中并开始运行。(2)隐藏性:木马程序同病毒程序一样,不会暴露在系统进程管理器内,也不会让使用者察觉到木马的存在,它的所有动作都是伴随其它程序进行的,因此在一般情况下使用者很难发现系统中有木马的存在。(3)破坏性:通过远程控制,攻击者可以通过木马程序对系统中的文件进行删除、编辑操作,还可以进行诸如格式化硬盘、改变系统启动参数等恶性破坏操作。(4)窃密性:木马程序最大的特点就是可以窥视被入侵计算机上的所有资料,这不仅包括硬盘上的文件,还包括显示器画面、使用者在操作电脑过程中在硬盘上输入的所有命令等。2木马的入侵途径木马入侵的主要途径是通过一定的欺
3、骗方法,如更改图标、把木马文件与普通文件合并,欺骗被攻击者下载并执行做了手脚的木马程序,就会把木马安装到被攻击者的计算机中。木马也可以通过 Script、ActiveX 及 ASP、CGI 交互脚本的方式入侵,由于微软的浏览器在执行Script 脚本上存在一些漏洞,攻击者可以利用这些漏洞诱导上网者单击网页,这样 IE 浏览器就会自动执行脚本,实现木马的下载和安装。木马还可以利用系统的一些漏洞入侵,如微软的IIS 服务器存在多种溢出漏洞,通过缓冲区溢出攻击程序造成 IIS 服务器溢出,获得控制权限,然后在被攻击的服务器上安装并运行木马。3木马的种类(1)按照木马的发展历程,可以分为 4 个阶段:
4、第 1 代木马是伪装型病毒,将病毒伪装成一个合法的程序让用户运行,例如 1986 年的 PC-Write 木马;第 2 代木马是网络传播型木马,它具备伪装和传播两种功能,可以进行密码窃取、远程控制,例如 B02000 和冰河木马;第 3代木马在连接方式上有了改进,利用了端口反弹技术,例如灰鸽子木马;第 4 代木马在进程隐藏方面做了较大改动,让木马服务器端运行时没有进程,网络操作插入到系统进程或者应用进程中完成,例如广外男生木马。(2)按照功能分类,木马又可以分为:破坏型木马,主要功能是破坏并删除文件;密码发送型木马,它可以找到密码并发送到指定的邮箱中;服务型木马,它通过启动 FTP 服务或者建
5、立共享目录,使黑客可以连接并下载文件;DoS 攻击型木马,它将作为被黑客控制的肉鸡实施DoS 攻击;代理型木马,可使被入侵的计算机做为黑客发起攻击的跳板;远程控制型木马,可以使攻击者利用客户端软件进行完全控制。4木马的工作原理下面简单介绍一下木马的传统连接技术、反弹端口技术和线程插入技术。2(1)木马的传统连接技术 一般木马都采用 C/S 运行模式,因此它分为两部分,即客户端和服务器端木马程序。其原理是,当服务器端程序在目标计算机上被执行后,一般会打开一个默认的端口进行监听,当客户端向服务器端主动提出连接请求,服务器端的木马程序就会自动运行,来应答客户端的请求,从而建立连接。C/S 木马原理如
6、图 1-1 所示。第 1 代和第 2 代木马都采用的是 C/S(客户机,服务器)连接方式,这都属于客户端主动连接方式。服务器端的远程主机开放监听端目等待外部的连接,当入侵者需要与远程主机连接时,便主动发出连接请求,从而建立连接。(2)木马的反弹端口技术 随着防火墙技术的发展,它可以有效拦截采用传统连接方式从外部主动发起连接的木马程序。但防火墙对内部发起的连接请求则认为是正常连接,第 3 代和第 4 代“反弹式”木马就是利用这个缺点,其服务器端程序主动发起对外连接请求,再通过某些方式连接到木马的客户端,就是说“反弹式”木马是服务器端主动发起连接请求,而客户端是被动的连接。根据客户端 IP 地址是
7、静态的还是动态的,反弹端口连接可以有两种方式,如图 1-2 和图 1-3 所示。图 1-1 C/S 木马原理图 1-2 反弹端口连接方式一图 1-3 反弹端口连接方式二反弹端口连接方式一要求入侵者在设置服务器端的时候,指明客户端的 IP 地址和待连接3端口,也就是远程被入侵的主机预先知道客户端的 IP 地址和连接端口。所以这种方式只适用于客户端 IP 地址是静态的情况。反弹端口连接方式二在连接建立过程中,入侵者利用了一个“代理服务器”保存客户端的IP 地址和待连接的端口,在客户端的 IP 地址是动态的情况下,只要入侵者更新“代理服务器”中存放的 IP 地址与端口号,远程被入侵主机就可通过先连接
8、到“代理服务器” ,查询最新木马客户端信息,再和入侵者(客户端)进行连接。因此,这种连接方式适用于客户端和服务器端都是动态 IP 地址的情况,并且还以穿透更加严密的防火墙。表 1-1 总结了反弹端口连接方式一和反弹端口连接方式二的使用范围。表 1-1 反弹端口连接方式及其使用范围反弹端口连接方式 使用范围方式一1.客户端和服务器端都是独立 IP;2.客户端独立 IP,服务器端在局域网内;3.客户端和服务器都在局域网内方式二 1.客户端和服务器端都是独立 IP2.客户端独立 IP,服务器端在局域网内(3)线程插入技术 我们知道,一个应用程序在运行之后,都会在系统之中产生一个进程,同时,每个进程分
9、别对应了一个不同的进程标识符(Process ID,PID)。系统会分配一个虚拟的内存空间地址段给这个进程,一切相关的程序操作,都会在这个虚拟的空间中进行。一个进程可以对应一个或多个线程,线程之间可以同步执行。一般情况下,线程之间是相互独立的,当一个线程发生错误的时候,并不一定会导致整个进程的崩溃。 “线程插入”技术就是利用了线程之间运行的相对独立性,使木马完全地融进了系统的内核。这种技术把木马程序作为一个线程,把自身插入其它应用程序的地址空间。而这个被插入的应用程序对于系统来说,是一个正常的程序,这样,就达到了彻底隐藏的效果。系统运行时会有许多的进程,而每个进程又有许多的线程,这就导致了查杀
10、利用“线程插入”技术木马程序的难度。综上所述,由于采用技术的差异,造成木马的攻击性和隐蔽性有所不同。第 2 代木马,如“冰河” ,因为采用的是主动连接方式,在系统进程中非常容易被发现,所以从攻击性和隐蔽性来说都不是很强。第 3 代木马,如“灰鸽子” ,则采用了反弹端口连接方式,这对于绕过防火墙是非常有效的。第 4 代木马,如“广外男生” ,在采用反弹端口连接技术的同时,还采用了“线程插入”技术,这样木马的攻击性和隐蔽性就大大增强了,可以说第 4 代木马代表了当今木马的发展趋势。三、实验环境两台运行 Windows 2000/XP 的计算机,通过网络连接。使用“冰河”和“广外男生”木马作为练习工
11、具。四、实验内容和任务任务一 “冰河”木马的使用1 “冰河”介绍“冰河”是国内一款非常有名的木马,功能非常强大。 “冰河”一般是由两个文件组成:G_Client 和 G_Server,其中 G_Server 是木马的服务器端,就是用来植入目标主机的程序,G_Client 是木马的客户端,就是木马的控制端,我们打开控制端 G_Client,弹出“冰河”的主界面,如图 1-4 所示。4图 1-4“冰河”主界面快捷工具栏简介(从左至右):(1)添加主机:将被监控端 IP 地址添加至主机列表,同时设置好访问口令及端口,设置将保存在 Operate.ini 文件中,以后不必重输。如果需要修改设置,可以重
12、新添加该主机,或在主界面工具栏内重新输入访问口令及端口并保存设置。(2)删除主机:将被监控端 IP 地址从主机列表中删除(相关设置也将同时被清除)。(3)自动搜索:搜索指定子网内安装有冰河的计算机。(4)查看屏幕:查看被监控端屏幕。(5)屏幕控制:远程模拟鼠标及键盘输入。(6)“冰河”信使:点对点聊天室。(7)升级 12 版本:通过“冰河”来升级远程 12 版本的服务器程序。(8)修改远程配置:在线修改访问口令、监听端口等服务器程序设置,不需要重新上传整个文件,修改后立即生效。(9)配置本地服务器程序:在安装前对 G_Server.exe 进行配置(例如是否将动态 IP 发送到指定信箱、改变监
13、听端口、设置访问口令等)。2使用“冰河”对远程计算机进行控制我们在一台目标主机上植入木马,在此主机上运行 G_Server,作为服务器端;在另一台主机上运行 G_Client,作为控制端。打开控制端程序,单击快捷工具栏中的“添加主机”按钮,弹出如图 1-5 所示对对话框。图 1-5 添加计算机“显示名称”:填入显示在主界面的名称。“主机地址”:填入服务器端主机的 IP 地址。“访问口令”:填入每次访问主机的密码, “空”即可。“监听端口”:“冰河”默认的监听端口是 7626,控制端可以修改它以绕过防火墙。单击“确定”按钮,即可以看到主机面上添加了 test 的主机,如图 1-6 所示。添加的远
14、程主机列表若出现盘符,则表示连接成功5图 1-6 添加 test 主机这时单击 test 主机名,如果连接成功,则会显示服务器端主机上的盘符。图 1-6 显示了test 主机内的盘符,表示连接成功。这时我们就可以像操作自己的电脑一样操作远程目标电脑,比如打开C:WINNTsystem32config 目录可以找到对方主机上保存用户口令的 SAM 文件。“冰河”的大部分功能都是在这里实现的,单击“命令控制台”的标签,弹出命令控制台界面,如图 1-7 所示。图 1-7 命令控制台界面可以看到,命令控制台分为“口令类命令” 、 “控制类命令” 、 “网络类命令” 、 “文件类命令”、 “注册表读写”
15、 、 “设置类命令” 。3删除“冰河”木马删除“冰河”木马主要有以下几种方法:(1)客户端的自动卸载功能在“控制类命令”中的“系统控制”里面就有自动卸载功能,执行这个功能,远程主机上的木马就自动卸载了。(2)手动卸载这是我们主要介绍的方法,因为在实际情况中木马客户端不可能为木马服务器端自动卸载木马,我们在发现计算机有异常情况时(如经常自动重启、密码信息泄漏、桌面不正常时)就应该怀疑是否已经中了木马,这时我们应该查看注册表,在“开始”的“运行”里面输入 regedit,打开 Windows 注册表编辑器。依次打开子键目录 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWi
16、ndowsCurrentVersionRun。在目录中发现了一个默认的键值 C:WINNTSystem32kernel32.exe,这就是“冰河”木马6在注册表中加入的键值,将它删除。然后再依次打开子键目录HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunservices,如图 1-13 所示。在目录中也发现了一个默认的键值 C:WINNTSystem32kernel32.exe,这也是“冰河”木马在注册表中加入的键值,将它删除。上面两个注册表的子键目录 Run 和 Runservices 中存放的键值是系统启动时自动启动的程
17、序,一般病毒程序、木马程序、后门程序等都放在这些子键目录下,所以要经常检查这些子键目录下的程序,如果有不明程序,要着重进行分析。然后再进入 C:WINNTSystem32 目录,找到“冰河”木马的两个可执行文件 Kernel32.exe和 Sysexplr.exe 文件,将它们删除。修改文件关联也是木马常用的手段, “冰河”木马将 txt 文件的缺省打开万式由notepad.exe 改为木马的启动程序,除此之外,html、exe、zip、com 等也都是木马的目标。所以,在最后需要恢复注册表中的 txt 文件关联功能,只要将注册表的HKEY_CLASSES_ROOTtxtfileshellop
18、encommand 下的默认值,由中木马后的C:WindowsSystemSysexplr.exe%1 改为正常情况下的 C:Windowsnotepad.exe%1 即可。再重新启动计算机即可,这样我们就把“冰河”木马彻底删除了。(3)杀毒软件查杀大部分杀毒软件都有查杀木马的功能,可以通过这个功能对主机进行全面扫描来去除木马。任务二 “广外男生”木马的使用“广外男生”是广外程序员网络小组精心制作的远程控制以及网络监控工具。它采用了“端口反弹”和“线程插入”技术,可以有效逃避防火墙对木马程序的拦截。1 “广外男生”的客户端和服务器端的配置及连接(1)打开“广外男生”的主程序,主界面如图 1-1
19、0 所示。图 1-10“广外男生”主界面(2)进行客户端设置。依次单击“设置”“客户端设置” ,弹出客户端设置界面,如图 1-11 所示。在窗口中我们可以看到它采用“反弹端口+线程插入技术的提示。7图 1-11 客户端设置在“客户端最大连接数”中填入允许多少台客户端主机来控制服务器端,注意不要填入太大的数字,否则容易造成服务器端主机死机。在“客户端使用端口”填入服务器端连接到客户端的那个端口,这是迷惑远程服务器端主机管理员和防火墙的关键,填入一些常用的端口,会使远程主机管理员和防火墙误以为连接的是个合法的程序。比如使用端口 80,就会使管理员以为自己连接在远程的 Web 服务器上。选择“只允许
20、以上地址连接”选项,使客户端主机 IP 地址处于默认的合法控制 IP 地址池中。(3)单击“下一步”按钮,设置木马的连接类型,弹出如图 1-12 所示的对话框。图 1-12 设置连接类型如果使用反弹端口方式二,则选择“使用 HTTP 网页 IP 通知” ,如果使用反弹端口方式一,则选择“客户端处于静态 IP(固定 IP 地址)” ,在此选择第 2 项。单击“下一步”按钮,显示出完成设置的对话框,单击“完成”按钮就结束了客户端的设置。(4)进行服务器端设置。依次单击“设置”“生成服务器端” ,这时,会弹出“广外男生”服务器端生成向导,直接单击“下一步”按钮,弹出常规设置界面,如图 1-13 所示
21、。图 1-13 常规设置选项在“EXE 文件名”和“DLL 文件名”中填入加载到远程主机系统目录下的可执行文件和动态连接库文件,在“注册表项目”中填入加载到远程主机注册表中的 Run 目录下的键值名。这些文件名都是相当重要的,因为这是迷惑远程主机管理员的关键所在,如果文件名起的非常有隐蔽性,如 sysremote.exe,sysremote.dll,那么就算管理员发现了这些文件,也不知道这些文件就是木马文件而轻易删除它们。注意:把“服务器端运行时显示运行标识并允许对方退出”前面的对勾去掉,否则服务器端主机的管理员就可以轻易发现自己被控制了。(5)单击“下一步”按钮,弹出网络设置对话框,如图 1
22、-14 所示。8图 1-14 网络设置由于我们选择的是反弹端口连接方式一,所以选择“静态 IP”选项,在“客户端 IP 地址”中填入入侵者的静态 IP 地址, “客户端用端口”填入在客户端设置中选择的连接端口。(6)再单击“下一步”按钮,弹出生成文件的界面,如图 1-15 所示。图 1-15 生成文件位置选择在“目标文件”中填入所生成服务器端程序的存放位置,如 D:hacktest.exe 这个文件就是需要植入远程主机的木马文件。单击“完成”按钮即可完成服务器端程序的设置,这时就生成了一个文件名为 hacktest.exe 的可执行文件。(7)在目标主机上执行木马程序 hacktest.exe
23、,当然在实际情况中,在远程主机中植入木马程序是很复杂的事情,这涉及到社会工程学、文件伪装等技术。由于采用了反弹端口技术,在服务器端主机上执行木马程序后,需要在客户端主机上等待服务器端主机主动连接过来,过了一段时间后,客户端主机“广外男生”显示界面如 1-16 所示,表示连接成功。图 1-16 连接成功界面9这时,就可以和使用了第二代木马“冰河”一样控制远程主机,主要的控制选项有“文件共享” 、 “远程注册表” 、 “进程与服务” 、 “远程桌面”等。2 “广外男生”的检测(1)由于使用了“线程插入”技术,所以在 Windows 系统中采用任务管理器查看线程是发现不了木马的踪迹的,只能看到一些正
24、常的线程在运行,所以我们要使用两个强大的工具fport 和 tlist。fport 是第三方提供的一个工具,可以查看某个具体的端口被哪个进程所占用,并能查看 PID。tlist 是 Windows 资源工具箱中提供的工具,功能非常强,我们利用它查看进程中有哪些动态链接库正在运行,这对于检测插入在某个正常的进程中的线程是非常有用的。(2)在服务器端主机上依次单击“开始”“运行” ,输入 cmd,进入命令行提示符,在这里输入 netstat -an,查看网络端口占用状态,如图 1-17 所示。在显示的结果,反亮的部分我们发现了一个可疑的 IP 地址(就是客户端的 IP 地址)与本机建立了连接,这是
25、需要我们注意的地方,记住本机用于连接的端口号1404,1405,1406,1407。图 1-17 查看网络状态(3)接着在提示符下输入 fport(注意,要在有 fport.exe 的目录中运行 fport),显示结果如图 1-18 所示。图 1-18 查看进程占用端口情况在显示结果中,找到端口号 1404,1405,1406,1407,发现木马插入的进程是ExplorerEXE,记住此进程的 PID 号 848。(4)在提示符下输入 tlist 848,查看在 Explorer.EXE 中运行的动态链接库,显示结果如图 1-19 所示。在众多的动态链接库文件中,我们发现木马的 dll 文件
26、gwboydll.dll,在实际情况中,这10个文件名是可以改变的,所以一定要仔细检查,看是否有可疑文件,查看时可以找一台正常的主机进行对比。图 1-19 查看动态链接库(5)在命令行提示符下输入 tlist -m gwboydll.dll 查看木马是否还插入其它的进程,显示结果如图 1-20 所示。图 1-20 查看插入的进程在显示结果中,我们发现木马插入了两个进程,Explorer.EXE、ctfmon.exe,这是木马的高级之处,如果一个进程被杀,另一个进程还会运行并且立即再在其它进程中插入木马文件。3手动删除“广外男生”木马“广外男生”木马除了可以采用防病毒软件查杀之外,还可以通过手动
27、方法删除,具体手动删除步骤如下:(1)依次单击“开始”“运行” ,输入 regedit 进入注册表,依次展开到HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun,在里面找到木马自启动文件进行删除,如图 1-21 所示。11图 1-21 删除注册表中木马文件图 1-22 删除注册表中木马文件在实际情况中,这个文件名是可以改变的,应该在 Run 目录下仔细检查是否有可疑文件,对可疑文件进行删除,注意删除之前先做好注册表的备份。(2)进入 C:WlNNTSystem32,按文件大小进行排列,搜索木马文件,将文件删除。(3)在注册表中
28、,依次单击“编辑”“查找” ,查找文件名为 gwboydll.dll 的文件,找到后将相关的注册表项全部删除。(4)重新启动主机,按 F8 进入带命令行提示的安全模式,再进入 C:WINNTSystem32 中,输入 del gwboydll.dll 删除木马的动态链接库文件,这就彻底把木马文件清除了。任务三 木马的防范木马的危害性是显而易见的,通过以上实验知道了木马的攻击原理和隐身方法,我们就可以采取措施进行防御了,主要方法有以下几种:(1)提高防范意识,不要打开陌生人传过来的可疑邮件和附件,即使是熟人传过来的,也要确认来信的源地址是否合法。(2)如果网速变的很慢,这是因为入侵者使用的木马抢
29、占带宽。这时可以双击任务栏右下角的连接图标,仔细观察一下“已发送字节“项,如果数字比较大的话,比如 lkb/s3kb/s,几乎可以确认有人在下载你的硬盘文件,除非你正在使用 FTP 等协议进行文件传输。(3)查看本机的连接,在本机上通过 netstat -an(或第三方程序)查看所有的 TCPUDP 连接,当有某些 IP 地址的连接使用不常见的端口(一般大于 1024)与主机通信时,这一连接就需12要进一步进行分析。(4)木马可以通过注册表启动,所以可以通过检查注册表来发现木马在注册表里留下的痕迹。(5)使用杀毒软件和防火墙。许多杀毒软件有清除木马的工程,可以不定期在脱机的情况下进行检查和清除
30、。另外,有的杀毒软件还提供网络实时监控功能,这一功能可以在攻击者远程执行用户主机上的文件时,提供报警或让执行失败,使攻击者向用户主机上传可执行文件后无法正确执行,从而避免了进一步的损失。防火墙则可以运行 IP 规则编辑器关闭某些端口的通信,只要利用防火墙关闭木马常用的一些端口,就可以阻止一些木马的入侵。当然,木马也可以随时改变利用的端口。五、实验要求(1)利用“冰河”的命令控制台:“口令类命令” 、 “控制类命令” 、 “网络类命令” 、 “文件类命令” 、 “注册表读写” 、 “设置类命令”进行远程控制。记录下主要功能。(2)记录删除“冰河”木马过程中遇到的问题及其解决办法。(3)记录利用“广外男生”进行远程控制的主要功能(4)学习并记录如何使用 fport、tlist 等工具(在命令行提示符下输入参数/?即可查看详细的使用帮助)检查木马的进程、网络连接和动态链接库。(5)试分析“冰河” 、 “广外男生”二者的异同。(6)安装或启动一款杀毒软件,对中了木马的主机进行全面扫描,查看在哪些目录下存在木马文件,木马文件都是什么,加深对木马文件驻留主机位置和原理的认识。补充:实验报告内容:一、实验目的二、实验原理 (适当简写)三、实验环境四、实验步骤和结果