细数那些在2017年被黑客滥用的系统管理工具和协议
“用指尖改变世界”
系统管理工具和合法协议原本是为了给系统管理员、信息安全专业人员、开发人员和程序员的日常工作提供灵活性和高效性而设计的。然而,当被黑客、网络犯罪分子和其他恶意行为者使用时,它们可以使恶意软件融入正常的网络流量,规避传统的安全机制,同时留下很少的痕迹。
从2017年发生一些安全事件来看,系统管理工具和合法协议的意外暴露或者处于其他不安全状态,都可能带来大家昂贵的后果。
以下是我们为大家带来的一些在2017年发生的安全事件中被普遍滥用的工具和协议,以及与之相对应的预防措施:
PowerShell
它是什么?
Windows PowerShell 是一个包含脚本环境和命令行外壳程序的管理框架。它使系统管理员能够自动化任务和管理流程,包括启动命令提示符、终止进程、定位文件夹和文件、安排命令并将其设置在后台、访问应用程序接口(API)以及管理系统和服务器的配置。
它如何被滥用?
PowerShell是许多恶意软件的主要组成部分之一,尤其是“无文件”攻击。例如,像Cerber和PowerWare等这样的勒索软件、FAREIT这样的信息窃取程序、VAWTRAK这样的银行木马程序以及后门程序,它们都通过将恶意PowerShell脚本嵌入到其可执行文件或宏病毒文件中,以此来检索和启动有效负载。
鉴于PowerShell的性质,它通常被列入白名单,而攻击者恰好能利用这一点来逃避防病毒软件的安全检测。
有什么防御措施?
限制其使用是最直接的办法,或将可能被滥用的命令解释程序列入黑名单。这两种措施都能够提高安全性,但必然会影响其他系统功能。
另外,则可以通过使用PowerShell本身来触发脚本中的命令和参数,以此来检测该脚本中是否含有恶意命令或参数。值得注意的是,PowerShell本身具有日志功能,可以用来分析系统内的可疑行为。
PsExec
它是什么?
PsExec是一个命令行工具,可以让用户远程启动进程并执行命令或可执行文件,在登录到系统的用户权限内运行。
PsExec是多功能的,因为它可以让管理员重定向系统之间的控制台输入和输出,也可以用来推出补丁或修补程序。
它如何被滥用?
勒索软件Petya、NotPetya以及HDDCryptor使用PsExec的恶意版本来访问并感染远程机器;“无文件”勒索软件SOREBRECT则通过滥用PsExec实现了代码注入功能。此外,由于PsExec的灵活性,它也被滥用来劫持终端,成为僵尸网络的一部分。据报道,PsExec也被用于目标数据泄露。
有什么防御措施?
PsExec的开发者Mark Russinovich 指出,在攻击者的手中,它可以提供横向移动的方式。因此,首先需要限制用户的写入权限,以阻止通过网络传播的攻击。其次,需要定期检查分配给每个用户的权限。更重要的是,仅限于那些需要它的人使用。
Command-line Tools
它是什么?
命令行工具,也称为命令语言解释器。使用户能够与操作系统或应用程序/程序交互,并通过基于文本的命令执行任务。示例包括例子包括PowerShell、Windows Management Instrumentation 命令行 (WMIC)、Microsoft注册服务器(regsvr32)以及命令提示符(CMD)。
管理员、开发人员和程序员可以使用命令行工具来自动化任务,它们也是操作系统或应用程序中的重要组件。
它如何被滥用?
勒索软件Petya、NotPetya使用WMIC作为安装勒索软件的自动防故障选项,以防其PsExec版本不成功。
黑客组织Cobalt滥用了三种命令行工具来实现他们的有效负载:PowerShell;odbcconf.exe,它与Microsoft数据访问组件相关以及regsvr32,用于在注册表中注册动态链接库。
后门程序通常包括一个例程,在这个例程中,CMD被启动来发出恶意命令,比如执行额外的恶意软件。
有什么防御措施?
对于开发人员和程序员,在设计中应用安全性。大多数命令行工具都内置在系统中,所以管理员应该只在需要时启用它们,并为它们施加身份验证和访问策略。他们通常被列入白名单,因此,部署行为监控机制可以阻断对系统或文件的异常修改。
Remote Desktop
它是什么?
远程桌面允许用户远程连接到其他客户机(即虚拟桌面)。在Windows中,远程桌面通过远程桌面协议(RDP)进行连接。RDP是一种网络通信协议,内置于大多数Windows操作系统中,提供了一个图形用户界面,用户可以与其他系统进行远程交互。
它如何被滥用?
当远程桌面没有正确配置或没有得到安全保护的情况下暴露在互联网上时,它们就成为攻击媒介。例如,Crysis这样一种勒索软件,以暴力破解RDP客户端和手动执行而闻名。另外,POS机恶意软件还使用远程桌面来进行端点的非法访问。
有什么防御措施?
首先,如果不需要,请禁用或限制使用远程桌面。其次,使用高强度密码来防止其遭到暴力破解或词典攻击。最后,使用加密来阻止攻击者窃听网络流量并采用身份验证和帐户锁定策略。
Server Message Block (SMB)
它是什么?
SMB是一种网络通信协议(使用TCP端口445),可在所有Windows操作系统中使用,允许用户通过网络共享文件、打印机、串行端口和其他资源。用户可以通过SMB访问进行各种操作,比如可以打开、读取、写入(创建或修改)、复制和删除远程服务器上的文件或文件夹。
它如何被滥用?
臭名昭着的勒索软件WannaCry和“无文件”勒索软件UIWIX,以及利用“永恒之蓝(EternalBlue)”漏洞的加密货币挖掘恶意软件 Adylkuzz,利用SMB V1中的漏洞(CVE-2017-0144)传播到其他系统。
黑客组织影子经纪人(Shadow Brokers)的其他漏洞也针对SMB漏洞,比如“永恒之石(EternalRocks)”、“永恒浪漫(EternalRomance)”和“永恒冠军(EternalChampion)”等等。
勒索软件坏兔子(Bad Rabbit)就使用了“永恒协作(EternalSynergy)”的自定义版本的进行传播。
另外,一个Linux系统中实施SMB的漏洞SambaCry被用来感染具有后门的网络存储(NAS)设备。
有什么防御措施?
禁用SMB v1及其相关协议和端口是最直接的办法。 如果在工作场所使用SMB,则需要更新到最新版本,使用不需要和过时的协议只会扩大系统的攻击面。
选用具备主动监控网络功能的网络安全产品,比如防火墙、入侵检测以及防御系统在这方面会有所帮助,虚拟补丁则提供了针对老旧系统或网络中遗留漏洞的保护。
本文由 黑客视界 综合网络整理,图片源自网络;转载请注明“转自黑客视界”,并附上链接。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Spring全家桶之SpringBoot——高级阶段
- feign.FeignException$MethodNotAllowed: status 405 reading xxx#yyy(Integer)
- No serializer found for class 类名 and no properties discovered to create BeanSerializer
- 三步让你在Linux中发布SpringCloud项目
- 【赵渝强老师】MySQL高可用架构:MHA
- Python终极调试指南
- Spring全家桶之SpringCloud——高级阶段(上)
- go实现利用最大堆寻找最小k个数
- Go实现字符串相乘无溢出最详细解释
- 寻找和为定值的两个数
- 还不会命令行?用Go Flag自写命令行程序
- 【go】剑指offer:常见排序算法
- 剑指offer:重建一个二叉树
- Redis基础数据类型(string、hash、list)
- 【go】编程之法:01背包问题及滚动数组优化