木马攻击实验
木马是隐藏在正常程序中的具有特殊功能恶意代码,是具备破坏,删除和修改文件,发送密码,记录键盘,实施Dos攻击甚至完全可能告知计算机等特殊功能的后门程序。它隐藏在目标计算机里,可以随计算机自动启动并在某一端口监听来自控制端的控制信息。
1、木马的传统连接技术
一般木马都采用C/S(client/server,即服务器/客户端)运行模式,因此它分为两部分,即客户端和服务器端木马程序。其原理是,当服务器端程序在目标计算机上被执行后,一般会打开一个默认的端口进行监听,当客户端向服务器端主动提出连接请求,服务器端的木马程序就会自动运行,来应答客户端的请求,从而建立连接。第一代和第二代木马就采用这种方式。
2、木马的反弹端口技术
随着防火墙技术的发展,它可有效拦截从外部主动发起的连接的木马程序。但防火墙对内部发起的连接请求则认为是正常连接,第三代第四代木马就是利用这个缺点,其服务器端程序主动发起对外连接请求,再通过某些方式连接到木马的客户端,就是说“反弹式”木马是服务器端主动发起连接请求,而客户端是被动的连接。
3、线程插入技术
我们知道,一个应用程序在运行之后,都会在系统之中产生一个进程,同时,每个进程分别对应了一个不同的进程标识符。系统会分配一个虚拟的内存空间地址段给这个进程,一切相关的程序操作,都会在这个虚拟的空间中进行。一般情况下,线程之间是相互独立的,当一个线程发生错误的时候,并不一定会导致整个进程的崩溃。“线程插入”技术就是利用线程之间运行的相对独立性,使木马完全地融进了系统那个内核。系统运行时会有很多的进程,而每个进程又有许多的线程,这就导致了查杀利用“线程插入”技术木马程序的难度。
实验步骤一
本实验通过对木马的练习与实践。使学习者理解和掌握木马的运行与传播的机制,共分为三个实验任务,详情如下:
冰河木马植入与控制
分别进入虚拟机中PC1与PC2系统。在PC1中安装服务器端,在PC2中安装客户端。
(1)服务器端。打开C:\tool\“木马攻击实验”文件夹,在“冰河”文件存储目录下,双击G_SERVER。G_Server是木马的服务器端,即用来植入目标主机的程序。此时,会弹出“Windows安全警报”窗口如图,点击“解除阻止”,木马的服务器端便开始启动。(如果防火墙已关闭会直接运行不会弹窗)
2)客户端。打开C:\tool\“木马攻击实验”文件夹,在“冰河”文件存储目录下,双击G_CLIENT。G_Client是木马的客户端,即木马的控制端。此时,会弹出“Windows安全警报窗口”如图,点击“解除阻止”,则可打开控制端。
打开控制端G_CLIENT后,弹出“冰河”的主界面.如图。
(3)添加主机。
在PC1(服务器端),查询ip地址:“cmd”界面
“开始”---“运行”---输入“cmd”,在“cmd”模式下输入“ipconfig”,如图查询ip界面
(此PC1的地址为“192.168.59.136”)
单击添加的主机(PC1)出现如图6添加主机界面,如果连接成功,则会显示服务器端主机上的盘符如图7服务器端主机盘符。这时我们就可以像操作自己的电脑一样操作远程目标电脑.
显示名称,填入显示在主界面的名称(PC1),即PC1的ip地址
主机地址:填入服务器端主机的IP地址(192.168.59.136)
访问口令:填入每次访问主机的密码,“空”即可
监听端口:冰河默认的监听端口是7626
实验步骤二
命令控制台命令的使用方法
(1)口令类命令:
点击“命令控制台”,然后点击“口令类命令”前面的“+”即可图界面出现如图口令类命令。
各分支含义如下:
“系统信息及口令”:可以查看远程主机的系统信息,开机口令,缓存口令等。可看到非常详细的远程主机信息,这就无异于远程主机彻底暴露在攻击者面前
“历史口令”:可以查看远程主机以往使用的口令
“击键记录”:启动键盘记录后,可以记录远程主机用户击键记录,一次可以分析出远程主机的各种账号和口令或各种秘密信息
(2)控制类命令
点击“命令控制台”,点击“控制类命令”前面的“+”即可显示图所示界面如图控制类命令。
各分支含义如下:
“捕获屏幕”:这个功能可以使控制端使用者查看远程主机的屏幕,好像远程主机就在自己面前一样,这样更有利于窃取各种信息,单击“查看屏幕”按钮,然后就染成了远程主机的屏幕。可以看到,远程主机屏幕上的内容就显示在本机上了,显示内容不是动态的,而是每隔一段时间传来一幅。
“发送信息”:这个功能可以使你向远程计算机发生Windows标准的各种信息,在“信息正文”中可以填入要发给对方的信息,在图表类型中,可以选择“普通”,“警告”,“询问”,“错误”等类型。按钮类型可以选择“确定”“是”“否”等类型。
“进程管理”:这个功能可以使控制着查看远程主机上所有的进程
“窗口管理”:这个功能可以使远程主机上的窗口进行刷新,最大化,最小化,激活,隐藏等操作。
“系统管理”:这个功能可以使远程主机进行关机,重启,重新加载“冰河”自动卸载”冰河”的操作
“鼠标控制”:这个功能可以使远程主机上的鼠标锁定在某个范围内
“其他控制”:这个功能可以使远程主机进行自动拨号禁止,桌面隐藏,注册表锁定等操作
(3)网络类命令
点击“命令控制台”,点击“网络类命令”前面的“+”即可展开网络类命令如图。
各分支的含义是:
“创建共享”:在远程主机上创建自己的共享
“删除共享”:在远程主机上删除某个特定的共享
“网络信息”:查看远程主机上的共享信息
(4)文件类命令
点击“命令控制台”,点击“文件类命令”前面的“+”即可展开“文件类命令”,如图。
该类命令中,“文件浏览”、“文件查找”、“文件压缩”、“文件删除”、“文件打开”等菜单可以查看、查找、压缩、删除、打开远程主机上某个文件。“目录增删”、“目录复制”、可以增加、删除、复制远程主机上的某个目录。
(5)注册表读写
点击“命令控制台”,点击“注册表读写”前面的“+”即可展开“注册表读写”命令,如图注册表读写。
注册表读写提供了“键值读取”、“键值写入”、“键值重命名”、“主键浏览”、“主键增删”、“主键复制”的功能。
(6)设置类命令
点击“命令控制台”,点击“设置类命令”前面的“+”即可展开“设置类命令”,如图设置类命令。
设置类命令提供了“更换墙纸”、“更改计算机名”、“服务器端配置”的功能
实验步骤三
删除冰河木马
删除冰河木马主要有以下几种方法:
(1)客户端的自动卸载功能
点击“控制类命令”前面的“+”,点击“系统控制”可看到“自动卸载冰河”按钮并点击,在弹出的窗口里面点击“是”,则可以卸载远程主机上的木马如图自动卸载冰河木马。
(2)手动卸载
在实际情况中木马客户端不可能为木马服务器端自动卸载木马,我们在发现计算机有异常情况时(如经常自动重启,密码信息泄露时),就应该怀疑是否已经中了木马,这时我们应该查看注册表,此处操作在PC1中进行,在“开始”→“运行”里面输入“regedit”,打开Windows注册表编辑器,依次打开一下目录 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
在目录中发现了一个默认的键值C:\WINNT\System32\kernel32.exe,这就是“冰河”密码在注册表中加入的键值,选中它,右键,点击删除,即可把它删除如图删除冰河木马的。
然后依次打开目录
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runservices
在目录中也发现了一个默认的键值C:\WINNT\System32\kernel32.exe,这也是“冰河”木马在注册表中加入的键值,将它删除如图。
上面两个注册表的子键目录Run和Runservices中存放的键值是系统启动时自动启动的程序,一般病毒程序,木马程序,后门程序等都放在这些子键目录下,所以要经常检查这些子键目录下的程序,如果有不明程序,要着重进行分析。
修改文件关联也是木马常用的手段,“冰河”木马将txt文件的缺省打开方式由notepad.exe改为木马的启动程序,除此之外,html、exe、zip、com等文件也都是木马的目标,所以,在最后需要回复注册表中的txt文件关联功能。
方法是找到注册表的HKEY_CLASSES_ROOT\txtfile\Shell\open\command下的默认值,选中“(默认)”,单击鼠标右键,选择修改如图编辑字符串。
然后即可出现如下窗口,将数值数据C:\Windows\System32\Sysexplr.exe%1改为正常情况下的C:\Windows\notepad.exe%1即可,如图修改编辑字符串,最后重新启动计算机,冰河木马就彻底删除了。
心得体会
通过这次试验我理解掌握了木马运行以及传播的原理,通过手动删除木马,掌握检查木马和删除木马的技巧,增强了对木马的安全防范意识。
分析与思考
1、 如何发现木马威胁?
-
打开C:\WINDOWS\system32文件夹,查看详细信息,排列图标按创建日期排列。(定期检查)如发现最新日期的文件名可疑,按这个最新日期搜索文件,在搜到的文件中(如果没有C:\Program Files中的文件,即说明不是你安装的程序)。
2、 画出木马工作流程图,加深对木马原理理解。