美文网首页
灰鸽子2008生成木马详细分析

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

作者: Ginkgo_Alkaid | 来源:发表于2019-08-26 17:26 被阅读0次

    首先使用灰鸽子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生成木马详细分析

          本文链接:https://www.haomeiwen.com/subject/kofssctx.html