HELK与APTSimulator对决:威胁狩猎与攻击模拟实战

本文详细介绍了HELK威胁狩猎平台与APTSimulator攻击模拟工具的对决实战,涵盖HELK的安装配置、Windows日志收集、Sysmon部署,以及如何通过Kibana检测APTSimulator模拟的各类攻击行为,包括用户权限提升、恶意文件投放和计划任务创建等。

HELK与APTSimulator对决:威胁狩猎与攻击模拟实战

引言

各位读者,让我们迎来本次的主要看点——HELK与APTSimulator的生死对决!已故的兰迪·“狂人”·萨维奇曾用他独特的方式说过许多名言,而"在疯狂的王国中期待意外吧!“这句话完全可以作为我们本月和下月的工具主题。

工具介绍

HELK来自Roberto Rodriguez(@Cyb3rWard0g),是SpecterOps的幽灵,这确实是个了不起的工具,值得我们全力以赴地宣传。

APTSimulator来自Florian Roth(@cyb3rops),法兰克福的喧嚣,将所有最恶劣的对手幻象集中在一个APT模拟中。这就是…生死对决!

HELK安装与配置

HELK的安装非常容易,文档也很完善。在Ubuntu 16.04 LTS系统上,我运行了:

1
2
3
git clone https://github.com/Cyb3rWard0g/HELK.git
cd HELK/
sudo ./helk_install.sh

在三个安装选项中,我选择了从cyb3rward0g的dockerhub拉取最新的HELK Docker镜像。安装脚本在满足依赖关系方面做得非常出色——如果你没有安装Docker,HELK安装脚本会为你完成。

安装完成后,可以通过访问HELK KIBANA URL(在我的案例中是http://192.168.248.29)立即确认安装成功。

Windows系统配置

对于测试Windows系统,我使用Virtualbox创建了一个Windows 7 x86虚拟机。成功的关键是确保在要向HELK发送日志的Windows系统上安装Winlogbeat。

更重要的是确保使用正确的winlogbeat.yml文件运行Winlogbeat。你需要修改并将其复制到目标系统。关键修改是第123行,在Kafka输出下,你需要在三个位置添加HELK服务器的IP地址。我的修改显示为:hosts: ["192.168.248.29:9092","192.168.248.29:9093","192.168.248.29:9094"]

在Windows系统上,使用适当修改的winlogbeat.yml,你将运行:

1
2
./winlogbeat -c winlogbeat.yml -e
./winlogbeat setup -e

你还应该在目标主机上设置Sysmon。我更喜欢使用@SwiftOnSecurity配置文件。如果是在初始设置过程中这样做,使用sysmon.exe -accepteula -i sysmonconfig-export.xml。如果修改现有配置,使用sysmon.exe -c sysmonconfig-export.xml

APTSimulator攻击模拟

Florian的APTSimulator进行了一些全面的模拟,使你的系统在以下场景下看起来已被入侵:

  • POC:端点检测代理/入侵评估工具
  • 测试安全监控的检测能力
  • 测试SOC对非EICAR或端口扫描威胁的响应
  • 为数字取证课程准备环境

APTSimulator可以观察到进行以下操作:

  • 创建典型的攻击者工作目录C:\TMP…
  • 激活访客用户账户
  • 将访客用户添加到本地管理员组
  • 将svchost.exe(实际上是srvany.exe)放入C:\Users\Public
  • 修改hosts文件
  • 将update.microsoft.com映射添加到私有IP地址
  • 使用curl访问已知的C2地址
  • 将PowerShell netcat替代品放入APT目录
  • 在本地网络上执行nbtscan
  • 将修改后的PsExec放入APT目录
  • 在At作业中注册mimikatz
  • 注册恶意RUN键
  • 在计划任务中注册mimikatz
  • 将cmd.exe注册为sethc.exe的调试器
  • 在新的WWW目录中投放web shell

检测结果

使用HELK的Kibana Discover选项查找上述APTSimulator活动,我们立即获得了结果,并命中了APTSimulator列表中的第1、6、7和8项:

  • 创建了TMP
  • 投放了PowerShell netcat
  • 对本地网络进行了nbtscan
  • 投放了修改后的PsExec

启用访客用户账户并将其添加到本地管理员组也在图4中得到确认。

我们在C:\Users\Public中立即找到了svchost.exe,包括process.commandline、process.name和file.creationtime引用。

At作业和计划任务创建也在图6中得到了确认。

可视化功能

在HELK的Kibana Visualize菜单下,你会注意到34个可视化。默认情况下,这些都很基础,但你可以通过子桶快速增加价值。例如,我选择了Sysmon_UserName可视化。最初,它产生了一个包含malman(我被入侵的用户)、SYSTEM和LOCAL SERVICE的环形图。不够特别有用,我添加了一个子桶来包含与每个用户关联的进程名称。结果图表更加详细,告诉我们,在最近四个小时与malman用户相关的242个事件中,有32个特定于cmd.exe进程,占18.6%。

结论

本月的工作非常愉快,我对HELK和APTSimulator都感到兴奋。蓝队和检测质量的真正原则在这些项目中是天生的。事实上,Roberto认为HELK仍处于alpha状态,使我相信还有更多功能即将到来。

下个月的第2部分将通过网络仪表板和相关的可视化来探索网络方面的内容,以及HELK与Spark、Graphframes和Jupyter笔记本的集成。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计