通过 DDE 活动检测 Excel/Word 文件

红蓝对抗 2019-11-09

Threat Hunting #4 通过 DDE 活动检测 Excel/Word 文件

Windows 提供了几种在应用程序之间传输数据的方式。其中一种方法是使用动态数据交换 (DDE,Dynamic Data Exchange) 协议。DDE 协议是一组规则集。它在共享数据的应用程序之间发送消息,并使用共享内存 (Shared Memory) 交换数据。应用可以使用 DDE 协议进行一次性的数据传输,也可以在当有新数据可用时互相推送更新做持续性的数据交换。

攻击者可能使用 DDE 执行任意命令。微软 Office 文档可能直接或间接的通过植入文件被恶意嵌入 DDE 命令,并通过钓鱼或托管网站内容的方式执行命令,从而避免了 VB 宏的使用。DDE 也能被一个攻陷了机器却无法直接使用命令行执行命令的攻击者所利用。

打开一个含有 DDE 内容的文档,office 程序将会弹出两个连续的警告信息:

实例中后缀名为 slk 的文件含有 DDE 表达式,调用 cmd.exe 作为外部数据源以执行任何命令。

img

受害者必须点击开启 (Enable) 并选择是(Yes)来绕过安全警告(通过社会工程的方式可能会让受害者觉得这是访问机密数据的方法)

img

img

最后提供的命令会被执行:

img

我们发现 office 程序确实会将之前的两个安全警告信息记录在事件日志文件中:

%SystemRoot%System32WinevtLogsOAlerts.evtx (EventID=300)

img

你能在截图中看到cmd.exe 的字符串:

img

关于以上两个事件的文件名没有被捕捉到同一个事件中,但是你能在下一个事件 300 中找到:

img

此外,根据用户/机器活动,你还可能发现三个月前的警告(不包含过多内容的事件日志文件),这在取证和寻找此前的 DDE 感染中非常实用。

参考资料

https://attack.mitre.org/techniques/T1173/

https://docs.microsoft.com/en-us/windows/desktop/dataxchg/about-dynamic-data-exchange

原帖链接:

https://blog.menasec.net/2019/02/threat-hunting-4-detecting-excelword.html

Threat Hunting#5 通过 Net.exe 或 Netl.exe 检测用户枚举

在侦查阶段 (Reconnaissance Phase) 发现攻击者非常重要,因为如果他在该阶段,就意味着他已经绕过了你所有外围和端点的标准安全解决方案。如果你能在此阶段检测到行为并制止攻击者,那就祝贺你了!

微软的 Net.exe 工具可以被用来枚举本地和域用户/组(任何攻击者都会通过这种手段收集信息以达成目标)。

著名 Net.exe 用户枚举检测技术受限于程序命令行的值以及程序名称验证(例如:程序名为 net.exe,命令行:.net.users.*)。这是一种较弱的检测方法,并能通过简单的程序重命名或在命令行中引入特殊的混淆字符的方法进行绕过(如 ^,set x,环境变量等)。

本文我们将会用事件 ID 4661 对试图枚举已知的高权限活动目录用户/组的行为进行检测:

· Enterprise Admins · Domain Admins · Administrators group · Administrator · etc

下图示例为枚举 “Domain Admin” 组:

img

你需要在所有域控制器(任何用户枚举行为的预期目标)上开启这个事件记录。

注意:这种方法也能检测到使用其他其他工具进行的用户枚举行为。

检测逻辑:

寻找事件 4661 中信息主体含有已知的活动目录高权限用户/组的 SID 值。例:使用 IBM Qradar AQL 查询语言进行查询:

select "SourceUserName", "ObjectType", "ObjectName" from events where "EventID"=4661 and not (SourceUserName IMATCHES '.$') and (UTF8(payload) IMATCHES '.S-1-5-21-.-(512|502|500|505|519|520|544|551|555).') last 180 DAYS

参考资料

https://support.microsoft.com/en-us/help/243330/well-known-security-identifiers-in-windows-operating-systems

https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4661

原帖链接:

https://blog.menasec.net/2019/02/threat-hunting-5-detecting-enumeration.html

Threat Hunting#6 利用真实或伪造的计算机账号隐藏于明处 -第一部分

每台加入域的 Windows 计算机都有一个计算机账号。与用户账号相同,计算机账号提供了一种认证和审计计算机访问网络和域资源的途径。每个计算机账号都必须唯一。计算机名必须以 “$” 字符结尾(如 SERVER01$)。

问题是很多已知的检测用例都根据名称后缀的 “$” (如果账号与计算机或用户有关联,该符号并不是一个真的计算机账号指示符)排除计算机账号,以减少假正(False Positive)或者仅仅因为它不相关。一些你可以找到此类问题的用例例子:

· Unusual Logon Activity (异常登录活动) · Pass the hash | Over Pass the hash (哈希传递) · Pass the ticket (票据传递) · Kerberoasting (服务票据离线爆破)

有时这些例外是有必要的,为拥有足够权限(在活动目录中的 ”Account Operators” 组, ”Domain Admins” 组以及 ”Enterprise Admins” 组)的攻击者开启了大门,让他们可以创建一个伪/真的计算机账号并从标准的监控方法中隐藏他的活动。如果攻击者能够获得有效的高权限计算机账号的 NLTM 哈希,他便无需创建账号直接隐藏了。

你能从下图中看到,合法计算机账号 PC01 的登录事件 4624 和一个伪造的计算机账号(用户账号模仿计算机账号命名格式)的登录活动是相似的:

img

可以使用活动目录管理工具或 dsadd 命令工具( net.exe 仅限于用户账号使用 ) 创建一个真实的计算机账号。

使用 net.exe 工具创建的名为 HMIDA$ 的用户账号(使得该账号看起来像计算机账号)的事件 4720”一个用户账号被创建 ”(“a user account was created”):

img

为了降低这种盲点的风险,我们会寻找标志计算机账号异常登录活动的方法。下列潜在的指示器是我们需要查看的:

· 模仿计算机账号名称创建的


本文由 信安之路 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论