一、什么是木马?

  • 定义
    • trojan virus,伪装成良性软件窃取数据或给主机造成危害(隐蔽性强),通常会在被感染主机上下在其他恶意软件(例如间谍软件、广告软件或勒索软件)。
  • 危害
    • 恶意代码下载、劫持计算机、DDOS网络的一部分
  • 来源
    • 文件下载传播(文件共享站点)、邮件点击传播(后缀名exe、vbs、bat等)、受感染的网站、遭入侵的wifi网络(重定向到虚假网站)
  • 使用者如何初步判断
    • 主机运行速度变慢,加载自动运行,自动变更文件名,复制到其他文件夹中
  • 基本原理
    • 服务端和客户端,植入受害主机的是服务端,黑客利用客户端进入运行了服务端的电脑。运行了木马程序的服务端以后,会产生一个有着容易迷惑用户的名称的进程,暗中打开端口,向指定地点发送数据(如网络游戏的密码,即时通信软件密码和用户上网密码等),黑客甚至可以利用这些打开的端口进入电脑系统。
  • 木马发展

    • 原始:窃取密码
    • 改变传递方式:ICMP、DNS等类型木马,利用畸形报文传递数据
    • 改变隐藏方式:内核插入式嵌入,嵌入dll线程或挂接PSAPI
    • 驱动级木马:使用rootkit加深隐藏效果,改变SSDT,驻留BIOS
    • 黏虫技术类型(盗窃篡改用户敏感信息)和特殊反显技术类型木马(动态口令和硬证书攻击)

      二、木马常见行为

  • 植入阶段

    • 利用系统漏洞、软件漏洞、交互脚本、电子邮件、超链接
  • 安装阶段
    • 自动压缩或者解压缩文件
    • 文件增大
    • 隐藏伪装安装木马控制端过程中产生的部分文件
    • 将文件属性设置为系统隐蔽、只读
    • 将文件图标更换进行伪装,冒充系统文件或者图片、文本等其他非可执行的文件
    • 将文件的名字进行伪装,冒充系统文件或常用的应用程序文件名
    • 将文件自我删除
  • 网络通信阶段

    • 利用1024以上的高端口进行网络通信。
    • 利用端口复用技术或端口寄生技术进行网络通信。
    • 利用反向连接技术进行网络通信。主要利用防火墙的漏洞、反弹端口、创建套接字连接客户端。
    • 利用潜伏技术,使用ICMP协议进行网络通信。
    • 利用电子邮件、IRC及ICQ(通信协议)等方式与控制端进行网络通信。
    • 通过发送UDP以及FTP的方式进行网络通信。
    • 在网络通信过程中,产生异常的通信流量变化。
    • 利用“HTTP隧道技术”。将所要传送的数据全部封装到HTTP协议里进行传送,访问局域网里通过HTTP、SOCK S4/5代理上网的电脑,实现穿墙。(跳板)
    • 建立隐蔽通道
    • 利用Option域和传输数据时通常很少用到的域
    • 利用传输数据时必须强制填充的域
    • 木马被控制端处于监听状态,等待其他进程通信。
    • 利用数据缓冲区暂存待发送的数据。
    • 利用进程通信发许多SYN包

      三、典型木马分析

  • Zeus(网银木马)

    • 点击邮件,下载恶意word文档,包含宏病毒
    • 使用ZwWriteVirtualMemory将解密后的PE文件写入到svchost
      • svchost: svchost.exe是一类通用的进程名称。它是和运行动态链接库(DLLs)的Windows系统服务相关的。在Windows启动时,svchost.exe检查注册表中的服务,运行并载入它们。

image.png

  • 隐藏:添加注册表启动项、加密、以svchost做为傀儡进程
  • 反杀:
    • 添加注册表启动项到自启动,RegNotifyChangeKeyValue函数来监控注册表,防止启动项被删除;
    • 使用FindFirstChangeNotificationW函数监控木马副本的寄生目录,在开始监控之前,先读取木马Buffer到内存中做备份,一旦目录下的文件被重命名或重写,就判断木马和寄存目录的文件夹是否存在,不存在则重新创建目录,如果木马副本文件被删除,则从内存读取之前保存的木马Buffer重新写入该文件。
  • 反调试:通过遍历进程列表、读取注册表、文件路径和一些系统监控工具的设备名称,判断是否被反病毒人员进行分析,如果检测到有以下环境,则不做任何事情并结束进程。
  • 功能:盗取其银行账户同时还会收集用户计算机内的数据信息,包括系统版本(WMI接口),CPU情况,内存,用户名,系统中的服务项,浏览器中保存的密码、证书等信息等,还可以远程控制
  • 冰河(远古,远控)
    • G_Client.exe、G_Server.exe
    • 服务端(受害主机)打开一个端口等待连接(监听),客户端连接远程端口后开始通信。
    • 隐藏方式:在注册表的HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\Run和RUNSERVICE键值中加上了\kernl32.exe,其次如果你删除了这个键值,冰河的服务端会在c:\windows下生成一个叫sysexplr.exe文件,这个文件是与文本文件相关联的,只要你打开文本,sysexplr.exe文件就会重新生成krnel32.exe。
  • dll木马:灰鸽子(下载型)

    • 功能:监视摄像头、键盘记录、监控桌面、文件操作等。还提供了黑客专用功能,如:伪装系统图标、随意更换启动项名称和表述、随意更换端口、运行后自删除、毫无提示安装等,并采用反弹链接这种缺陷设计,使得使用者拥有最高权限,一经破解即无法控制
    • G_Server.exe、G_Server.dll和G_Server_Hook.dll三个文件相互配合组成了灰鸽子服务端, G_Server_Hook.dll负责隐藏灰鸽子。通过截获进程的API调用隐藏灰鸽子的文件、服务的注册表项,甚至是进程中的模块名。截获的函数主要是用来遍历文件、遍历注册表项和遍历进程模块的一些函数。所以,有些时候用户感觉中了毒,但仔细检查却又发现不了什么异常。有些灰鸽子会多释放出一个名为G_ServerKey.dll的文件用来记录键盘操作。注意,G_Server.exe这个名称并不固定,它是可以定制的,比如当定制服务端文件名为A.exe时,生成的文件就是A.exe、A.dll和A_Hook.dll。Windows目录下的G_Server.exe文件将自己注册成服务(9X系统写注册表启动项),每次开机都能自动运行,运行后启动G_Server.dll和G_Server_Hook.dll并自动退出。
  • 网银木马:弼马温(盗号型)

  • FTP木马(远控型)
  • 鬼影(寄生在硬盘主引导区MBR)
    • 整个样本以非文件形式存在,直接写入磁盘扇区。包括感染的MBR以及保存在磁盘末尾非文件系统的payload。
    • 绕过windows的PatchGuard保护
    • 兼容XP, win7(x86,x64)
    • 自保护功能:感染木马后通过WinHex等工具查看到的MBR是正常的,而且无法修改被感染的MBR
    • 从内核态向用户态的指定系统进程注入下载者DLL
    • 启动过程中关闭指定进程

image.png

  • 邮件炸弹木马(DOS攻击肉鸡)
  • Gozi网银木马变种(Ursnif)

image.png

  • AutoIt解释器木马(Auto456)

    • AutoIt解释器:用于解释用AutoIt语言写成的自动化脚本(au3或者a3x文件),自动化脚本中包含恶意代码
    • 盗号+远控

      四、木马常用技术

  • 伪装方式(诱导点击)

    • 修改图标:隐写术,伪装在普通文件中:图片(.jpg.exe)、文本、图标(windows一般默认不显示文件后缀名)、自解压文件
    • 捆绑文件:绑定到某一应用程序或系统文件,每次启动对应程序或系统就会运行木马(在任务管理器中仍然可以看到)
    • 出错显示:提示文件错误但是其实木马已经运行(出错显示)
    • 定制端口:控制端用户可以在1024-65535之间任选一个端口作为木马端口(一般不选1024以下的端口),这样就给判断木马的类型带来了麻烦。
    • 自我销毁
    • 木马更名
  • 身份隐藏

    • 自身为隐藏文件
    • 隐藏到配置文件
    • 隐藏在win.ini,系统启动时自动运行
      • [windows]字段下:run=c:\windowsfile. Exe load=c:\windowsfile.exe(windowsfile.exe很可能是木马)
    • 隐藏在注册表(regedit)

      HKEY_LOCAL_MACHINE\Software\Microsof\Windows\CurrentVersion\ 下所有以“run”开头的键值; HKEY_CURRENT_USER\Software\Microsof\Windows\CurrentVersion\ 下所有以“run”开头的键值; HKEY-USERS.Default\Software\Microsoft\Windows\CurrentVersion\ 下所有以“run”开头的键值。 HKCU64\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RunOnce

    • 隐藏在驱动程序

      • 例:Windows安装目录下(C:\WINDOWS)的System.ini
        • [boot]字段:shell=
        • [386Enh]字段:driver=
        • [mic]、[drivers]、[drivers32]字段
    • 隐藏在驱动组(自动加载到系统中)
      • 检查HKEY_CURRENT_USER\Softwar\Microsoft\Windows\CurrentVersio\Explorer\ShellFolders\Startup的值对应目录中是否有可疑文件
    • 隐藏在Autoexec.bat和Winstart.bat(都能自动加载)
    • 隐藏在超链接中点击下载
    • 隐藏在恶意网站中


  • 自动销毁
  • 防查杀
    • 恶意程序每隔一段时间检查一下指向病毒的程序或快捷方式是否正常
    • 一旦木马进程被杀掉主机立刻蓝屏
  • 加密混淆
    • RC2算法
    • RC4
    • SHA256
    • RSA密钥
    • CRC32
  • 信息收集和传递

    • SMTP通信数据和DNS请求

      五、木马查杀

  • 检测网络连接

    • netstat -an
  • 禁用不明服务
    • net stop server
  • 检查不明账户
    • net user 用户名
  • 其他检测技巧
    • 查看快捷方式的属性发现目标目录异常
    • 将GUI文件改成控制台文件:修改PE头中的IMAGE_SUBSYSTEM

      六、总结