冰河木马病毒入侵与防范详细实验报告图文教程[汇编]

未来100年大预言目录
简介 (1)
工作原理 (1)
步骤流程 (5)
功能 (18)
清除方法 (19)
结论 (20)
简介
冰河木马开发于1999年,在设计之初,开发者的本意是编写一个功能
强大的远程控制软件。但一经推出,就依靠其强大的功能成为了黑客们发动入侵的工具,并结束了国外木马一统天下的局面,成为国产木马的标志和代名词。
在2006年之前,冰河在国内一直是不可动摇的领军木马,在国内没用
过冰河的人等于没用过木马,由此可见冰河木马在国内的影响力之巨大。目的:远程访问、控制。选择:可人为制造受害者和寻"养马场",选择前者的基本上可省略扫描的步骤。
从一定程度上可以说冰河是最有名的木马了,就连刚接触电脑的用户也听说过它。
虽然许多杀毒软件可以查杀它,但国内仍有几十万中冰河的电脑存在!作为木马,冰河创造了最多人使用、最多人中弹的奇迹!现在网上又出现了许多的冰河变种程序,我们这里介绍的是其标准版,掌握了如何清除标准版,再来对付变种冰河就很容易了。
冰河的服务器端程序为,客户端程序为,默认连接端口为7626。一旦运行G-server,那么该程序就会在C:/Windows/system目录下生成和,并删除自身。在系统启动时自动加载运行,和TXT文件关联。即使你删除了,但只要你打开TXT 文件,就会被激活,它将再次生成,于是冰河又回来了!这就是冰河屡删不止的原因。母亲的羽衣
工作原理
冰河木马是用C++Builder写的,为了便于大家理解,我将用相对比较简单的VB来说明它,其中涉及到一些WinSock编程和Windows API的知识,如果你不是很了解的话,请去查阅相关的资料。
一、基础篇(揭开木马的神秘面纱)
无论大家把木马看得多神秘,也无论木马能实现多么强大的功能,木马,其实质只是一个网络客户/服务程序。那么,就让我们从网络客户/服务程序的编写开始。
1.基本概念:
网络客户/服务模式的原理是一台主机提供服务(服务器),另一台主机接受服务(客户机)。作为服务器的主机一般会打开一个默认的端口并进行监听(Listen), 如果有客户机向服务器的这一端口提出连接请求(Connect Request), 服务器上的相应程序就会自动运
行,来应答客户机的请求,这个程序我们称为守护进程(UNIX的术语,不过已经被移植到了MS系统上)。对于冰河,被控制端就成为一台服务器,控制端则是一台客户机,
是守护进程, G_client是客户端应用程序。(这一点经常有人混淆,而且往
往会给自己种了木马!)
2.程序实现:
在VB中,可以使用Winsock控件来编写网络客户/服务程序,实现方法如下(其
中,G_Server和G_Client均为Winsock控件):
服务端:
G_Server.LocalPort=7626(冰河的默认端口,可以改为别的值)
G_Server.Listen(等待连接)
客户端:
G_Client.RemoteHost=ServerIP(设远端地址为服务器地址)
G_Client.RemotePort=7626 (设远程端口为冰河的默认端口,呵呵,知道吗?这是冰河的生日哦)
(在这里可以分配一个本地端口给G_Client, 如果不分配, 计算机将会自动分配一个, 建议让计算机自动分配)
G_Client.Connect (调用Winsock控件的连接方法)
一旦服务端接到客户端的连接请求ConnectionRequest,就接受连接
Private Sub G_Server_ConnectionRequest(ByVal requestID As Long)
G_Server.Accept requestID
End Sub
客户机端用G_Client.SendData发送命令,而服务器在G_Server_DateArrive事件中接受并执行命令(几乎所有的木马功能都在这个事件处理程序中实现)
如果客户断开连接,则关闭连接并重新监听端口
Private Sub G_Server_Close()
G_Server.Close (关闭连接)
G_Server.Listen (再次监听)
End Sub
其他的部分可以用命令传递来进行,客户端上传一个命令,服务端解释并执行命令......湿地松粉蚧
二、控制篇(木马控制了这个世界!)
由于Win98开放了所有的权限给用户,因此,以用户权限运行的木马程序几乎可以控
制一切,让我们来看看冰河究竟能做些什么(看了后,你会认同我的观点:称冰河为木马是不恰当的,冰河实现的功能之多,足以成为一个成功的远程控制软件)
因为冰河实现的功能实在太多,我不可能在这里一一详细地说明,所以下面仅对冰河的
主要功能进行简单的概述,主要是使用Windows API函数, 如果你想知道这些函数的具体
定义和参数,请查询WinAPI手册。
1.远程监控(控制对方鼠标、键盘,并监视对方屏幕)
keybd_event 模拟一个键盘动作(这个函数支持屏幕截图哦)。
mouse_event 模拟一次鼠标事件(这个函数的参数太复杂,我要全写在这里会被编辑
骂死的,只能写一点主要的,其他的自己查WinAPI吧)
mouse_event(dwFlags,dx,dy,cButtons,dwExtraInfo)
dwFlags:
MOUSEEVENTF_ABSOLUTE 指定鼠标坐标系统中的一个绝对位置。
MOUSEEVENTF_MOVE 移动鼠标
MOUSEEVENTF_LEFTDOWN 模拟鼠标左键按下
MOUSEEVENTF_LEFTUP 模拟鼠标左键抬起
MOUSEEVENTF_RIGHTDOWN 模拟鼠标右键按下
MOUSEEVENTF_RIGHTUP 模拟鼠标右键按下
MOUSEEVENTF_MIDDLEDOWN 模拟鼠标中键按下
MOUSEEVENTF_MIDDLEUP 模拟鼠标中键按下
dx,dy: MOUSEEVENTF_ABSOLUTE中的鼠标坐标
2.记录各种口令信息
(作者注:出于安全角度考虑,本文不探讨这方面的问题,也请不要给我来信询问)
3.获取系统信息
a.取得计算机名GetComputerName
b.更改计算机名SetComputerName
c.当前用户GetUserName函数
d.系统路径
Set FileSystem0bject = CreateObject("Scripting.FileSystemObject") (建立文件系统对象)
Set SystemDir = specialfolder(1)
(取系统目录)
Set SystemDir = specialfolder(0)
(取Windows安装目录)
(友情提醒: FileSystemObject是一个很有用的对象,你可以用它来完成很多有用的文
件操作)
e.取得系统版本GetVersionEx(还有一个GetVersion,不过在32位windows下可能会有问题,所以建议用GetVersionEx
f.当前显示分辨率
Width = screen.Width \ screen.TwipsPerPixelX
Height= screen.Height \ screen.TwipsPerPixelY
其实如果不用Windows API我们也能很容易的取到系统的各类信息,那就是Winodws的"垃圾站"-注册表
比如计算机名和计算机标识
吧:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSU
P中的Comment,ComputerName和WorkGroup
注册公司和用户名:HKEY_USERS\.DEFAULT\Software\Microsoft\MS Setup
(ACME)\UserInfo至于如何取得注册表键值请看第6部分。
4.限制系统功能
a.远程关机或重启计算机,使用WinAPI中的如下函数可以实现:
ExitWindowsEx(ByVal uFlags,0)
当uFlags=0 EWX_LOGOFF 中止进程,然后注销
当uFlags=1 EWX_SHUTDOWN 关掉系统电源
当uFlags=2 EWX_REBOOT 重新引导系统
当uFlags=4 EWX_FORCE 强迫中止没有响应的进程
b.锁定鼠标
ClipCursor(lpRect As RECT)可以将指针限制到指定区域,或者用
东莞pm2.5ShowCursor(FALSE)把鼠标隐藏起来也可以
注:RECT是一个矩形,定义如下:
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
c.锁定系统这个有太多的办法了,嘿嘿,想Windows不死机都困难呀,比如,搞个死循环吧,当然,要想系统彻底崩溃还需要一点技巧,比如设备漏洞或者耗尽资源什么的......
d.让对方掉线
固原市回民中学
e.终止进程
f.关闭窗口利用FindWindow函数到窗口并利用SendMessage函数关闭窗口
5.远程文件操作
无论在哪种编程语言里,文件操作功能都是比较简单的,在此就不赘述了,你也可以用上面提到的FileSystemObject对象来实现
6.注册表操作
在VB中只要Set RegEdit=CreateObject("WScript.Shell")
就可以使用以下的注册表功能:
删除键值:RegEdit.RegDelete RegKey
增加键值:RegEdit.Write RegKey,RegValue
获取键值:RegEdit.RegRead (Value)
记住,注册表的键值要写全路径,否则会出错的。
7.发送信息
很简单,只是一个弹出式消息框而已,VB中用MsgBox("")就可以实现,其他程序也不太难的。
8.点对点通讯
自由落体运动实验
呵呵,这个嘛随便去看看什么聊天软件就行了(因为比较简单但是比较烦,所以我就不写了,呵呵。又:我始终没有搞懂冰河为什么要在木马里搞这个东东,困惑......)
9.换墙纸
CallSystemParametersInfo(20,0,"BMP路径名称",&H1)
值得注意的是,如果使用了ActiveDesktop,换墙纸有可能会失败,遇到这种问题,请
不要冰河和我,去Bill吧。
三、潜行篇(Windows,一个捉迷藏的大森林)
木马并不是合法的网络服务程序,因此,它必须想尽一切办法隐藏自己,好在,Windows 是一个捉迷藏的大森林!
1、在任务栏中隐藏自己:
这是最基本的了,如果连这个都做不到......(想象一下,如果Windows的任务栏里出现一个国际象棋中木马的图标...@#!#@...也太嚣张了吧!)
在VB中,只要把form的Visible属性设为False, ShowInTaskBar设为False, 程序就不会出现在任务栏中了。
2、在任务管理器中隐形:
在任务管理器中隐形,就是按下Ctrl+Alt+Del时看不见那个名字叫做“木马”的进程,这个有点难度,不过还是难不倒我们,将程序设为“系统服务”可以很轻松的伪装成比尔盖子
的嫡系部队(Windows,我们和你是一家的,不要告诉别人我藏在哪儿...)。
在VB中如下的代码可以实现这一功能:
Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal
ProcessID As Long, ByVal ServiceFlags As Long) As Long
Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long

本文发布于:2024-09-22 15:31:04,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/626262.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:木马   冰河   系统   鼠标   功能   端口   程序
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议