灰鸽子2008生成木马详细分析

首先使用灰鸽子2008生成木马样本,ip地址为虚拟机地址192.168.115.129

图片.png

静态分析

对样本进行初步的静态分析:

基本信息

名称 内容
文件名称 Server.exe
MD5 ed558582817df8ba97f47e042af917c3
文件类型 EXE
壳或编译器信息 COMPILER:Borland Delphi 6.0 - 7.0

PE文件分析,可以看到灰鸽子木马是用Delphi编写的32位程序


图片.png

哈勃分析系统结果:
https://habo.qq.com/file/showdetail?pk=ADcGZ11pB2YIP1s5U2U%3D

图片.png

木马运行原理详细分析

进入木马的start函数,首先进入资源文件释放函数sub_49C7D4


图片.png

跟进函数sub_49C7D4后可以看到,显示加载加密后的资源文件,之后解密资源文件并按格式分开


图片.png

OD动态分析,并且可以在resouce hacker里找到名为hacker的资源文件


图片.png

图片.png

资源成功加载后,将会进入解密函数对字符串进行解密,可以看到是具体的木马配置信息,包括IP地址,密码,木马释放目录等,之后程序对这些信息进行了分段处理
图片.png

图片.png

图片.png

解密出的木马配置如下所示:
堆栈 ss:[0018FF38]=01EC3A8C, (ASCII "\r\n192.168.115.129\r\n8b4ca58172880bbb\r\n$(WinDir)\Hacker.com.cn.exe\r\n50\r\n自动上线主机\r\n\r\n8000\r\n1\r\n0\r\n0\r")

获取程序名字,与IEXPLORE.EXE作比较:


图片.png

获取程序当前路径与木马释放路径,作比较:


图片.png
图片.png

创建一个 MutexName = "Hacker.com.cn_MUTEX"的互斥锁,如果创建不成功,getlasterror返回值为183,程序退出。创建成功就继续执行


图片.png

在函数sub_49C0C0中,在木马释放的目录下搜索所有后缀为dat的文件


图片.png

获取操作系统运行时间


图片.png

检查释放路径,木马程序是否已经存在,如果存在则程序退出


图片.png

如果木马不存在,复制自身到目标文件夹,也就是C:\Windows\Hacker.com.cn.exe

图片.png

图片.png

执行完去打开C:\Windows\,发现果然复制了一个进来


图片.png

修改文件属性,只读隐藏


图片.png

图片.png

获取系统版本号,判断当前系统,去创建系统服务,服务名为GrayPigeon_Hacker.com.cn


图片.png

图片.png

执行完,到服务选项里可以看到木马创建的服务:


图片.png

弹一个安装成功的窗,在创建木马的时候,我勾选了安装完提示的选项:
图片.png

图片.png

至此木马程序已经添加到服务了,木马程序在这里就直接退出了,接下来到C:\Windows\Hacker.com.cn.exe这里,先将木马的服务停止掉,将文件的只读属性去掉后用OD调试,可以看到在这个判断处,木马会根据路径自动选择行为,直接跳转到之前程序退出地点的下方


图片.png

准备启动服务
图片.png

由于没法在windows服务中下断点,选择直接在OD中修改jz跳转到服务线程中
图片.png

在里面首先会找到C:\Program Files\Internet Explorer\IEXPLORE.EXE,判断文件是否存在:
图片.png

之后解出一个PE文件(其实就是木马程序本身,这个版本的灰鸽子没有释放dll文件,全部功能都在一个exe里面),之后的网络操作应该都在其中执行,用loadPE把内存提取出来,再用foremost进行切割
图片.png

把PE文件加载到虚拟内存中,并且启动一个无窗口的浏览器进程,将PE文件注入到进程中,实际上是运行了PE文件的内容,浏览器只是为了遮人耳目
图片.png

图片.png

木马系统操作

获取系统目录(sub_49C4A4)


图片.png

获得进程访问令牌的句柄(sub_49BC64)


图片.png

自我删除(sub_4A1474)


图片.png

搜索文件(sub_4A1048)


图片.png

枚举所有磁盘类型信息。(sub_4A0DA4)


图片.png

获取计算机名(sub_49FA18)


图片.png

获取窗口分辨率(sub_49FA60)


图片.png

获得特定文件的时间信息。(sub_49FB3C)


图片.png

分析时候发现有些地方没法调试,静态看不明白,于是从网上找到了灰鸽子的delphi源码,是分成客户端和服务端的,只需要分析server的源码即可,虽然没学过delphi,但是看得比伪代码舒服,代码里还有注释,对功能了解的更透彻,其他的系统操作:

  1. 枚举窗口,获取窗口名窗口类型等等信息,控制窗口的隐藏和显示。
  2. 删除文件。
  3. 启动服务,删除服务,更改服务,停止服务等等操作(由不同的命令控制)。
  4. 枚举网络共享,打开网络共享,删除网络共享(由不同的命令控制)。
  5. 设置指定文件的属性。
  6. 设置指定的注册表信息,删除注册表。
  7. 打开指定的文件。
  8. 重启机器。

木马网络连接

经过分析,灰鸽子木马使用的是反向链接,这种方式的好处就是受害者连网,只要能访问到控制者机器的ip或者域名,就能建立连接,连接的ip和端口都在上面进行分析了,通过des解密将密文变为明文,加载到配置信息中,所以比较容易找到攻击者的ip和域名信息


图片.png

通过抓流量包可以看到,服务端TCP三次握手请求客户端确认:


图片.png

主机上线之后,打开文件管理功能,服务端会传送一个加密的数据包给客户端解密查看,加密方式是每一位和8进行异或,加密数据如下:
图片.png

写一个脚本帮助解密,可以看到解密的数据和灰鸽子客户端的一致:


图片.png

图片.png

总结

图片.png

你可能感兴趣的:(灰鸽子2008生成木马详细分析)