木马全称为特洛伊木马,来源于古希腊神话。木马是通过欺骗或诱骗的方式安装,并在用户的计算机中隐藏以实现控制用户计算机的目的。

  • 具有远程控制、信息窃取、破坏等功能的恶意代码

木马具有如下特点:

  • 欺骗性
    木马都有很强的欺骗性,执行通常都由被攻击者自己执行起来的

  • 隐藏性

  • 非授权性
    执行恶意操作是没有经过用户授权的

  • 交互性
    主机之外的攻击者可以通过某种方式对主机进行交互

接着分享木马的分类,不同视角有不同的分类。

1.行为视角

粒度细,如卡巴斯基SafeStream病毒库的分类标准。由下图所示,它是卡巴斯基整个对恶意代码分类体系,最上面的是蠕虫(Worm)和病毒(Virus),接着是后门(Backdoor)和Trojan,接着将Trojan按行为分成了很多类,最后是Rootkit和Exploit。从下往上是按照危害程度进行排序,最上面的危害程度最大、最下面的危害程度最小。

下面这张图是卡巴斯基木马的具体分类,木马分为Backdoor(后门)、Trojan(木马)、Rootkit(提权)、Exploit(漏洞利用)。 按道理说,将Exploit放到木马范畴是不合适的,接着Trojan又分为Trojan-Downloader(下载)、Trojan-Dropper(释放)、Trojan-Spy(间D软件)Trojan-DDoS(拒绝服务)、Trojan-Ransom(磁盘数据加密勒索用户)等。同时,它在命名的时候会根据其行为进行分类。对于卡巴斯基来首,Backdoor包括远程控制型程序,就是这篇文章的远控型木马。

2.功能视角

包括远程控制型、信息获取型、破坏型等。

  • 远程控制型木马

    远程控制可以对目标计算机进行交互性访问(实时或非实时),可以下发相应的指令触发恶意软件的功能,也能获取目标的各种数据。其交互性是双向的(攻击者-被控制端)。
    典型案例包括卡巴斯基分类标准下的木马之类Backdoor,还有一些实际案例,包括冰河、网络神TOU、广外女神、网络公牛、黑洞、上兴、彩虹桥、PCShare、灰鸽子等。下图展示了灰鸽子代码。

  • 信息获取型木马

    信息型获取木马的功能是信息获取,可以从键盘输入、内存、文件、数据库、浏览器Cookies等中获取有价值的信息。其交互性是单向交互,是被控制端发送数据给攻击者,比如发送至攻击者的第三方空间、文件服务器、指定邮箱等,或者直接开启FTP服务程序,攻击者直接访问从而下载数据。

  • 下图展示了BPK软件界面,包括屏幕截屏、信息记录等功能,并发送数据给攻击者。典型案例包括卡巴斯基分类标准下的Trojan-Bank、Trojan-GameThief、Trojan-IM、Trojan-Spy、Trojan-PSW、Trojan-Mailfinder等。

  • 破坏性木马

    它的功能是对本地或远程主机系统进行数据破坏、资源消耗等。其交互性也是单向的,攻击者可以向被控制端发送指令,有的情况也没有任何交互。
    典型案例包括卡巴斯基分类标准下的Trojan-DDoS、Trojan-Ransom、Trojan-ArcBomb、Trojan-Downloader、Trojan-Dropper等。

木马的植入方式

木马的欺骗性很强,那么它究竟是通过什么方式去欺骗用户安装这个程序呢?常见方式如下:

  • 网页挂MA植入
    通过网页挂MA实现比较典型,通常需要利用浏览器或相关漏洞,再结合实时新闻、热点话题制作相关网页,将漏洞和网页结合,最后生成恶意网页,当用户打开网页时,远程的木马程序会自动下载和安装。常见的漏洞比如:MS06014、MS10003。

  • 电子邮件植入(鱼叉攻击)
    电子邮件植入最常见的是通过附件的形式,当用户打开附件时被注入木马;另一种是电子邮件与恶意网页相结合,由于电子邮件是支持HTML正文的,如果将相关漏洞植入到网页中,也是能够达到相关的效果。即使不打开附件,选中就会被植入(以HTML格式发送,如求职者)

  • 文档捆绑植入(鱼叉攻击偏多)
    这也是一种有效的方式,通过office文档、pdf文档漏洞等将文档进行捆绑,当用户打开文档时会触发漏洞,从而释放木马或执行shellcode执行远程攻击。这种文档同时也常用于邮件附件的形式发送。

  • 伪装欺骗植入
    比如可以对exe的文件后缀名进行修改,在原本一个“exe”文件前增加“doc”,然后输入很多空格让其exe不显示出来,再修改成文档类图标,从而进行伪装;另一种是更改后缀名(Unicode翻转字符),将“cod”进行翻转,再就是图标伪装等。

  • 捆绑植入
    EXE捆绑、文档嵌入、多媒体文件、电子书植入。在“三十六.WinRAR漏洞复现(CVE-2018-20250)及恶意软件自启动劫持”文章中,我详细讲解了通过WinRAR捆绑文件的方法。

  • 其他
    比如特定U盘植入(故意丢弃、或者工作U盘、数据拷贝等)、社会工程等。

在APT攻击中的恶意诱饵类型众多,包括白加黑、lnk、doc文档、带有WinRARACE(CVE-2018-20250)漏洞的压缩包等,之后的攻击中还新增了伪装为word图标的可执行文件、chm文件等。比如,通过加载scrobj.dll,远程调用http://45.xxx.xxx.67/window.sct,利用Microsoft系统文件的LOLbin以绕过杀软的监测,达到远程执行代码。

远控木马的通信方式

木马的控制端和被控端要通信,首先要建立传输的通道,常见的传输通道构建需要通过IP地址、端口等信息、第三方网站地址实现。建立通信的方式包括两类:

  • 正向连接

  • 反向连接

1.正向连接

正向连接是指控制端主动去连接被控制端,需要被控制端开放相关端口来供控制端连接。首先,控制端会去连接被控端,然后发送相关的控制指令,被控端会将主机上的相关信息反馈给控制端,通常包括IP地址、MAC地址、计算机名称、内存大小等。

这种连接会存在一个问题,如果对方系统存在防火墙的话,通常会进行拦截。正向连接的优缺点如下:

  • 优点
    攻击者无需外部IP地址,只要能够上网,就能够去连接远程主机
    木马样本不会泄露攻击者IP地址,木马不会主动去对外连接,不会泄露IP

  • 缺点
    可能被防火墙阻挡
    被攻击者必须具备外部IP地址
    定位被攻击者相对困难,比如被攻击者IP是否变化?目标主机何时上线?当然有些木马,在目标主机主机能够上网时,会给指定邮箱发送IP地址信息,攻击者收到IP地址后会去主动连接主机。

2.反向连接

第一种方式是右边的被控端(服务端)主动连接控制端主机,这种情况下防火墙一般会允许通过,尤其是目前很多木马程序采用80端口作为远程连接的端口,防火墙会非常信任。

第一种方式的优缺点如下:

  • 优点
    通过防火墙相对容易
    可以控制局域网内的目标
    攻击目标随时上线,攻击者可以进行随时控制,因为攻击者控制服务器一直在线,只要被控端上线就会连接过来,甚至可以通过短信等方式告知。

  • 缺点
    样本会暴露控制服务器信息(域名或IP)
    攻击者通常应当具有外部IP

关于反向连接,还有另外一种方式,被控端和控制端之间有个第三方的肉J,它们都和第三方通信,比如肉J、Web服务器。

  • 优点
    可绕过防火墙,自动连接上线,不易被发现(代理)

  • 缺点
    肉鸡的稳定性需要保障

3.通信协议

  • TCP协议
    稳定、易被发现
    HTTP协议伪装

  • UDP协议
    和TCP一样也有正向、反向两种方式
    负载比TCP少,但是可靠性低

  • ICMP+TCP/UDP
    该方式平时不开启端口,但会监听ICMP报文,以感知木马数据。当攻击者想对这台主机控制时,可以发送ICMP报文,发过来之后控制端监听到特定报文时,就知道到想要进行监听并开启相关端口。ICMP报文是由系统内核或进程直接处理而不是通过端口,其方式比较一笔,一般不会被防火墙过滤。

下图展示了冰河写的后门程序,叫BITS(Background Intelligent Transfer Service),是一种难以觉察的后门,采用ICMP+TCP/UDP方式实现。进程管理器首先看不到,另外平时没有端口,只是在系统中充当卧D的角色,并且提供正向连接和反向连接两种功能,适用于不同的操作系统(Windows2000/XP/2003),通过其提供的Shell,你能做很多事情。

远控木马的常见功能及意图

首先看下木马的结构,一般由三部分组成,包括木马配置程序、控制端程序(客户端)和被控制端程序(服务端程序)。其中配置程序用于配置被控端的特征和功能,包括是否创建服务、是否隐藏等。

下图展示了PcShare的主控界面,其中“生成客户”点击后就是木马的配置过程。

下图展示了木马上线后的控制界面,包括目录浏览、屏幕控制、进程列表、窗口列表、服务管理、注册表编辑、键盘记录等。

下面是灰鸽子的主界面。

木马的典型功能包括:

  • 文件管理

  • 进程管理

  • 服务管理

  • 注册表管理

  • 屏幕监控、屏幕截取

  • 语音视频截获

  • 键盘记录

  • 窗口管理

  • 远程Shell

1.文件管理

文件管理主要目的是获取目标的文件系统信息,通常包括如下功能:

  • 浏览各磁盘文件

  • 上传、下载文件(包括上传恶意文件)

  • 执行文件

  • 删除文件

  • 修改文件信息(如文件属性、时间)

可能涉及的部分关键函数: GetLogicalDriveString、 GetDiskFreeSpace(Ex)、GetVolumeInformation、GetDriveType、 FindFirstFile、 FindNextFile、 FindClose、DeleteFile、SHFileOperation 、SHEmptyRecycledBin、 MoveFile、 CreateFile( Ex) 、WriteFile 等

2.进程管理

查看、结束、暂停目标系统进程。具体目的包括:

  • 查看目标系统的环境信

  • 通过进程查看功能可以实现查看安装了哪些软件?目前对方正在做什么?

  • 停止或暂停目标系统的相关程序,从而形成干扰

如反病毒程序

涉 及 的 关 键 函 数 包 括:CreateToolhelp32SnapShot、 Process32First、Process32Next、 EnumProcesses、 GetCurrentProcess、 OpenProcessToken、LookupPrivilegeValue、 AdjustTokenPrivilege、 OpenProcess、 GetModuleBaseName、EnumProcessModules、 GetModuleFileNameEx、 TerminateProcess 等。

3.服务管理

主要功能是查看并管理目标系统的服务,包括:

  • 创建服务

  • 启动/停止服务

  • 删除服务

具体作用如下:

  • 查看目标系统的环境信息

  • 安装了哪些软件?启动了哪些服务?

  • 停止或暂停目标系统的相关程序

如反病毒程序

可能涉及的关键函数: OpenSCManager、EnumServiceStatus、OpenService、 QueryServiceConfig、 StartService、StopService、 DeleteService 等。

下图是PcShare提供的服务管理示例。

4.注册表管理

注册表管理可以浏览注册表的信息及键值,也能创建、删除一些键值。

可能涉及的关键函数包括: RegQueryInfoKey、RegEnumKeyEx、 RegEnumValue、 RegCreateKeyEx、RegDeleteKey、 RegSetValueEx、 RegDeleteValue 等。

5.屏幕控制

  • 利用 keybd_event 或者SendInput 模拟按键PrintScreen

  • 利用 CreateDC 获取当前屏幕设备的句柄,然后获取屏幕图像

6.键鼠操作

下图是PcShare远程控制的键盘控制,主要涉及函数:

  • SetCursorPos

  • mouse_event

  • SendInput

7.屏幕截取

对于有些木马来说,会认为屏幕控制功能流量消耗很大,不希望引起被控制着注意,有时候进行屏幕抓取即可。

  • 抓取屏幕(单张、多张连续)

  • 了解目标主机的当前操作情况

常见函数包括:

  • CreateDC

  • CreateCompatibleBitmap

  • BitBlt

8.语音视频截获

录音包括窃取对方谈话信息、窃取对方对外语音通话(如QQ、SKYPE、MSN等),甚至即使是在断网的环境也可能会被录音,当连接网络后再传输对应的数据。另一个是摄像头,主要包括打开摄像头(了解对方现场环境)、摄像录制(敲Z)等。下图展示了语音视频截获的过程。

9.键盘记录

获取目标电脑中的键盘击键信息,包括:

  • 用户名、密码信息

  • QQ、邮箱、网银、网上证券、网络游戏、支付宝等

  • 聊天信息

  • 部分木马支持中文汉字记录

其他功能还有窗口管理,比如查看目标主机目前开启了哪些窗口,了解目标用户正在做什么;再就是远程Shell,包括交互式或非交互式Shell(远程交互的Cmd.exe)、直接执行命令或第三方程序等。部分木马功能如下图所示,其中很多功能所有木马都具有,比如文件管理、注册表管理、屏幕监控,也有一些功能是特有的。

最后简单总结下编写木马的关键性

  • 功能适当[精简灵活]

  • 适用性强[功能、权限]

  • 高效、稳定、隐蔽[传输]

  • 可穿透性

  • 自更新、自销毁

  • 反调试、反分析、防追踪、反制对抗

  • 持续免杀性能等

  • 特征值、通用主机行为、异常的通信流量

既然远控木马也是恶意软件,那么怎么检测木马呢?下面简单提供了一些思路。

  • 静态文件特征(木马程序是独立的文件,就存在静态文件特征)

  • 网络流量特征(交互性木马检测流量)

  • 系统行为特征(木马执行时创建线程、进程、驱动、网络等行为)

  • 功能行为特征(录音、截屏、键盘、shell行为检测)

  • 攻击意图(自动化检测功能是正常或恶意,当然难度也大)

木马 --- 基本概念和分类相关推荐

  1. (转载)安全漏洞概念及分类

    http://pan.baidu.com/s/1kT9LT4r 安全漏洞概念及分类 本文是一个安全漏洞相关的科普,介绍安全漏洞的概念认识,漏洞在几个维度上的分类及实 例展示. 安全漏洞及相关的概念 本 ...

  2. Java:异常的概念及分类、异常的处理、异常抛出及自定义异常

    异常概念 异常分类   Java异常处理机制 try ...catch...finally throw和throws 自定义异常 一.异常的概念         什么是异常?             ...

  3. 《大话数据结构》第9章 排序 9.2 排序的基本概念与分类

    9.2 排序的基本概念与分类 9.2.1 排序的定义         排序是我们生活中经常会面对的问题.同学们做操时会按照从矮到高排列:老师查看上课出勤情况时,会按学生学号顺序点名:高考录取时,会按成 ...

  4. FPGA的ip核之概念和分类

    ip核之概念和分类 IP(Intellectual Property)内核模块是一种预先设计好的甚至已经过验证的具有某种确定功能的集成电路.器件或部件.它有几种不同形式.IP内核模块有行为(behav ...

  5. 10 计算机组成原理第六章 总线 总线的概念与分类 总线性能指标 总线仲裁 总线操作和定时 总线标准

    文章目录 1 总线的概念与分类 1.1总线的定义 1.2 总线的特点 1.3 总线的特性 1.4 总线的分类 1.4.1 串行总线与并行总线 1.4.2 按总线功能分类 1.5 系统总线的结构 1.6 ...

  6. 18 操作系统第五章 设备管理 IO设备的基本概念和分类 IO控制器 IO控制方式 IO软件层次结构 IO核心子系统 假脱机技术 设备的分配与回收 缓冲区管理

    文章目录 1 IO设备的基本概念和分类 1.1 什么是I/O设备 1.2 I/O设备分类 2 IO控制器 2.1 I/O设备组成 2.2 I/O控制器功能 2.3 I/O控制器的组成 2.4 寄存器编 ...

  7. 复练-软考网规-IDS和IPS概念、分类、评价标准

    时间戳:2020年10月13日15:44:01 前情提要:IDS和IPS概念.分类.评价标准 IDs是英文" Intrusion Detection Systems'的缩写,中文意思是&qu ...

  8. Java简单类、变量详解(概念和分类、声明、命名、初始化)

    1初识JAVA简单类 (1)创建第一个Java程序的具体步骤: 第一步:创建一个工程,在Package Explorer空白区域中右击New->点击Java Project->填写Proj ...

  9. 【信号与系统】(一 )信号与系统概述——信号的基本概念与分类

    文章目录 第一章 信号与系统概述 1.1 信号的基本概念与分类 1.1.1 消息.信息.信号 1.1.2 信号的描述 1.1.3 信号的分类 1.1.3.1 确定信号和随机信号 1.1.3.2 连续信 ...

  10. 决策理论与方法——决策概念与分类

    决策理论与方法--决策概念与分类 决策方法与理论是管理学.领导学的一门核心课程,他们的核心目的是为了 实现科学决策.如果你是零基础,也想自学这门课,我们就一起吧.我想我们会像一个行道树一样,蔓生出很多 ...

最新文章

  1. groupby elasticsearch
  2. AC-Tek Sidewinder v7.2.2 输送机设计+IDEA StatiCa v9.1.31.50722 钢结构混凝土结构件设计...
  3. Linux下的inode记录
  4. 02-JDBC学习手册:JDBC编程步骤【重点重点】
  5. 任何抛开业务谈大数据量的sql优化都是瞎扯
  6. 银行营业网点管理系统——entity类(CityArea)
  7. CocosStudio的节点如何使用自定义shader
  8. linux 搭建go编译环境搭建,linux上搭建完整go语言vim开发环境
  9. mongodb的安装与简单操作
  10. 12 月 Web 服务器调查:“王者” nginx 增长最快!
  11. 1080. MOOC期终成绩 (25)-PAT乙级真题
  12. [编程与人生的韵味]注重实效的哲学
  13. Linux Ubuntu/Centos7 定时备份mysql数据库
  14. 产品经理面试题(面试经历)
  15. 初学AD9画PCB板的拦路虎
  16. 易通文件夹锁免费版 v4.5.8.06
  17. Intel研究院院长吴甘沙演讲全文:大数据分析师的卓越之道(32PPT珍藏版)
  18. HTML5游戏 围住神经猫 开发
  19. 使用云函数构建短信验证码服务的案例
  20. 推荐系统简介+算法详解+项目介绍

热门文章

  1. prosody之component
  2. Android系统中的常用时间戳及时间单位
  3. Python体重指数计算器源代码
  4. 微信消息模板换行符转义问题处理
  5. omnet++tictoc12案例解析
  6. 判断一个正整数是素数还是合数
  7. 乐视第4代超级电视引领行业风向标
  8. 什么是503服务不可用错误(以及如何解决)?
  9. 车牌识别--opencv(python)
  10. 无效镜像问题image has dependent child images