第九章 利用Sqrrl和Bro通过PSEXEC捕捉横向运动

横向移动是网络攻击过程中的关键步骤。这是一个足够广泛的类别,它有自己的杀链步骤。虽然这是一个广泛的战术,本章将调查一个特殊的方法,可能是由一个对手执行。

一、指标的搜索

你用来寻找横向运动的数据集的类型取决于你寻找的是什么,进而,你的假设是什么。为了确定远程访问协议的使用,您将主要关注网络会话元数据,包括:

•Netflow(通用的“流”数据)

•防火墙日志(日志记录包括允许/接受数据包)

•Bro Conn日志

要识别用户访问控制(UAC)事件,您需要关注身份验证日志,包括:

•活动目录日志/Windows安全事件日志

         •EventID

             •528或4624表示登录成功

             •529或4625是登录失败

             •552和4648表示攻击者试图使用runas命令或针对远程主机的身份验证作为替代用户,# privilegeEscalation。

             •602和4698表示计划的任务创建

            •601和4697表示服务创建

       •账户功能

              •服务帐户

             •交互式登录

•Linux安全事件日志

•OSX安全事件日志

•多因素身份验证(MFA)日志

•如果存在,额外的UAC应用程序

二、技术使用

在建立了正确的假设并选择了必要的数据集之后,猎人仍然必须知道使用什么技术来调查假设。在这里,我们将调查三种类型的技术,您可以使用它们来调查上述问题。

与在狩猎中使用指示器的所有情况一样,这种方法的值将受到指示器值的影响。本地来源的指标通常会提供较高的价值,因为它们往往与您可能要保护的网络或系统相关,并且是及时的。这些类型的指标可以从以前的事件或内部威胁情报团队收集。

同样重要的是要记住,对于攻击者来说,更改他们用来进行攻击的远程基础设施是相对容易的;如果您使用指示器进行搜索,那么您应该意识到指示器可能不再与特定的攻击者或攻击工具相关。



一些常用的网络会话指标包括:

•IP地址

•端口

•顶级域名(TLD)

•URI

•连接中唯一的字符串

一些常见的基于主机的指标包括:

•文件哈希表

•文件名

•注册表修改

•过程注入

三、Virustotal

你可以向Virustotal提交一个文件散列或URL,让它被扫描或返回现有的结果,如果文件/URL之前已经提交,并附带了额外的高级信息:



VT还包含大量关于文件的有趣信息,但是您可以使用上面的链接来查看这些附加信息。

四、使用Snort检测PsExec活动

Snort可用于检测恶意SMB活动。Snort是一个开源的入侵检测和预防系统,旨在通过模式匹配签名检测攻击。下面是一个旨在检测PsExec使用的Snort规则示例(Emerging Threats, 2011 http://doc.emergingthreats.net/2010781):

五、利用Bro检测PsExec活动

PsExec是一个Windows管理工具,使用管理凭证通过SMB连接到网络上的不同系统。SMB被合法地用于提供文件共享功能,然而,错误的配置会允许恶意软件在整个网络中传播。把PsExec和Mimikatz的密码窃取能力结合起来,你就得到了一个横向移动的等式。

使用Bro检测PsExec活动的一种技术是使用定制的Bro脚本查找PsExec对C$、ADMIN$和/或IPC$共享的使用。这些共享在Bro通知日志中添加了“可能恶意使用管理共享”的通知消息。使用PsExec可以在目标系统上创建一个名为PSEXESVC.exe的可执行文件。修改代码为我的使用。代码来自https://www.sans.org/reading-room/whitep/detection -malicious-smb-activity-bro-37472

除了通过PsExec删除SMB控制之外,攻击者还会将其他二进制文件上传到受害系统或使用更多的meterpreter模块。例如,用于从内存中转储密码的工具Mimikatz可以通过C$、ADMIN$和IPC$共享上载到远程系统。Bro能够检测到Mimikatz通过SMB被转移,并且能够检查它的散列是否被病毒感染。

如果您没有将您的Bro日志转储到SIEM或其他日志聚合平台,我建议使用一个简单的grep命令来搜索PsExec使用流量,“grep -iE”、“C$|”、“C$| IPC$”。

五、堆叠

堆叠技术常用于许多不同种类的狩猎。在寻找命令和控制活动的情况下,猎人将需要为异常的入站或出站流量实例进行堆叠。同样的元数据类型从指标搜索上面可以用于堆叠,包括:

• EventID

• UserName

• Account Type

• Hostname

要查找横向移动,您需要关注双向或外部的入站连接流。使用堆叠的有效性取决于是否拥有一个完美的输入。太少不会揭示出足够的信息,太多会淹没你梳理出有意义偏差的能力。如果给定的结果集太大,则考虑对输入数据集进行进一步筛选(例如,将您的重点放在特定的内部子网上)。或者,更改正在堆叠的元数据(例如,从堆叠主机名更改为堆叠EventID和用户名)。


六、机器学习

一个更先进的技术涉及使用机器学习来隔离横向运动活动。监督机器学习使用标记的训练数据来预测未标记的数据。给定一组已知的好示例和已知的坏示例,您可以创建一个二进制分类器,该分类器能够接收新的事务,并判断它们是否更类似于好的训练集或坏的训练集。在对分类器进行了训练之后,假设您已经完成了工作,您可以通过它向您的网络和UAC数据提供数据,并获得需要分析人员注意的更小的记录集。关于使用机器学习进行狩猎的更多信息,我们强烈建议观看David Bianco和Chris McCubbin的演讲“practical cyborgism: Started with machine learning for Incident Detection”(于BSides DC 2016年展示)。

七、狩猎例子

下面的示例说明了如何使用上面列出的假设和列举的数据和技术。

后期移动(Windows环境)

1、你正在查找什么?(假设)

假设:

攻击者可能在C2通道上操作,该通道在公共网络端口上使用自定义加密(非普通协议)。

寻找:

被监视的网络端口通道中的异常,即没有与您正在查看的公共端口相关的协议工件的连接。例如,查找端口443/TCP上没有可识别的SSL元数据的连接。

2. 调查(数据)

数据集:

为了识别通用协议的使用,您将主要关注应用协议元数据,包括:

•代理日志,IIS日志

•dns解析日志

•Bro HTTP, SSL, DNS, SMTP日志

3.发现模式和lOCs(技术)

1 .通过查看协议元数据,使用搜索来识别要检查的各种公共端口上的合法协议连接

2. 如果查看端口80,则搜索给定时间段内存在的任何HTTP协议记录

3.获取步骤1的输出,并从公共端口上的会话数据中删除公共协议连接。这将在公共端口上留下不常见的协议连接

4. 根据步骤2的结果,将有助于调查你的假设的数据堆叠起来

5. 例如:传输的目标IR字节、连接持续时间/长度等。

4. 通知并丰富分析

您发现的C2活动中涉及的目标IP地址可以作为lOCs并添加到指示器数据库中,以便扩展自动检测系统。您还可以创建包级别的签名,以在您发现的自定义协议可能再次出现的情况下触发警报。

永远记住,对于每一个狩猎实例,猎人总是可以采取多种不同的路径来解决给定的假设。那么,在像Sqrrl这样的威胁捕获平台中,这种活动实际上是什么样子的呢?

首先,我需要定义不同数据源之间的关系。例如,我的网络数据和身份验证事件数据都包含IP地址字段。这意味着我可以在不同的数据集之间创建一个关系,如下所示。

八、在不同的数据集之间创建关系

图1显示了我在数据中的不同实体之间创建的所有关系。这是关系的高级可视化。图2中的可视化扩展了高级可视化,并举例说明了每个数据源与每个实体之间的所有低级字段映射。这是身份验证数据和网络数据之间IP地址字段的实际映射。


最后,在完成了所有的工作之后,图2显示了PSExec从192.168.1.100移动到192.168.1.104的事件,以及合并PSExec的Bro警报以添加进一步的验证。虽然这张图片只显示了我所描述的活动,为了便于阅读,这是我所期望的狩猎的最终结果。所有额外的数据和可能的连接都经过了调查,并从原始的大型数据集中排除,直到只剩下异常/可疑/恶意事件。



我认为这是一次成功的狩猎。如果我什么都没找到,我也会认为这是成功的,因为搜寻的目的不是每次都是真正的积极的恶意事件,而是验证一个假设,用灵活的“是”或“不是”回答一个问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容