官方公众号企业安全新浪微博
FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。
FreeBuf+小程序
Sliver 框架迅速蹿红,被越来越多的攻击者所使用。该框架是 Golang 编写的,开源且经常更新。Sliver 支持控制失陷主机的所有基本功能,对检测也构成了巨大的挑战。
恶意软件
与各种 C&C 框架相同,攻击者需要在失陷主机上运行恶意软件,并且在后端的攻击基础设施进行监听。
配置 HTTPS 通信,只需要两个命令:https 与 generate。https 命令会启动 Web 服务器来监听 443 端口,generate 命令编译生成恶意软件。
配置命令
测试环境由三台机器组成,一台 Windows 10 主机、一台 Windows 7 主机和一台 Windows Server 2019。恶意软件被执行后,如下图所示。OUTSTANDING_DOUBTER.exe 立即连接到 C&C 服务器,根据 net view 命令也能看出。
恶意软件运行
横向平移
攻击者要通过横向平移来控制最重要的基础设施,如域控和数据库等。Sliver 也可以进行横向平移,从一台主机转移到另一台主机。
攻击者使用 use 命令进入会话中,再利用 gengrate --format service 命令创建新的恶意软件。完成后,就可以通过执行 psexec 命令来进行横向平移。主要分为三个步骤:(1)将恶意软件复制到远程系统;(2)创建系统服务;(3)启动执行。
操作记录
psexec 命令以 acidm.exe 的形式执行服务植入,连接到 C&C 服务器的 HTTPS 监听端口。攻击者使用 use 命令连接并控制恶意软件,info 命令显示恶意软件确实在 Windows 7 机器上运行了。
作为服务运行的恶意软件
检测
尽管使用了 SSL,但并不总是能够对 C&C 通信协议进行指纹识别。相反的,横向平移更容易检测。借助 psexec 进行横向平移时,攻击者需要(1)复制文件;(2)发起 CreateServiceW 请求;(2)使用 StartServiceW 调用启动服务。这是常见的方式,Emotet 恶意使用了这种方法进行传播。
通过 SMB 的横向平移流量
每次 psexec 执行,Sliver 都会随机生成一个文件名。远程服务名称、服务描述以及可执行文件上传到的目录都是可配置的,但默认服务名称为 Sliver、默认目标目录为 Windows\Temp)。在检测横向移动时,不能依赖网络流量中的特定字符串或二进制序列,重要的是依赖一系列不变的事件。
Sliver 除了依赖内置的 psexec 命令之外,还支持多种方式使用第三方组件进行横向平移。这都可以通过 armory 进行安装。例如 SharpWMI 能够通过 WMI 创建远程进程;ServiceMove-BOF 能够滥用 Windows 感知模拟服务;SCShell 能够依赖 ChangeServiceConfigA 运行命令等等。由于所采用的技术差异很大,不同的方法需要量身定制的检测技术。
结论
本文介绍了攻击者如何使用 Sliver 生成恶意软件,以及如何利用其进行横向平移。根据活动产生的网络流量,指出可能的检测模式方法。
目前 Sliver 已经成为仅次于 Cobalt Strike 和 Metasploit 的第三大 C&C 框架。Sliver 的成功主要有三方面:开源、发布频率快与有效且不冗余的代码。