欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

来源:本站整理 作者:佚名 时间:2017-06-19 TAG: 我要投稿

在一些恶意软件的变种感染计算机之后,它会定期连接它的C&C服务器。这种行为称为“beaconing”。


在Lockheed Martin Killchain(kali中自带有这款工具)中,Beaconing将发生于攻击者或APT对目标采取行动之前。
然而,这种行为很难检测到。Beaconing能在任何时间发生,且频繁改变。另外,网络通信没有完美的时间间隔,或者恶意软件可能添加干扰来阻止观察间隔。(例如每30秒)
有些定期通信是合法的,例如时间同步和软件更新。
Flare是一个免费开源的恶意分析框架,旨在尽可能简单的辨别恶意行为(例如网络中的C&C Beaconing)。
0x01 入门
在我们开始之前,你需要有下面的东西。

本文假设你有一个网络监控系统,能输出到Elastic Stack(以前叫ELK)。如果你对网络监控感兴趣,可以参考我的博文“为企业、小办公室或家庭构建监控系统”。
我们将使用SELKS 4.0,但是Flare是模块化设计,可以和安全洋葱或者任何运行Snort, Bro, Suricata的系统一起协作。在Elastic Stack(ES)中的流数据是Flare用来确定Beacon的。
另外,你需要安装Flare。(gihub上有指导)
0x02 构建一个隧道
根据你的elasticsearch的配置,你可能需要构建SSH隧道来让你的计算机和你的elasticsearch节点通信。
例如,如果你的计算机IP地址是192.168.1.150,你的elasticsearch节点是192.168.1.2,你可以在你的本地计算机打开9200端口。

在终端运行以下命令验证你的连接:

你将会收到elasticsearch的回应。

一旦能连接,就可以运行Flare。
0x03 配置Flare

在你安装Flare之后,在你的路径下应该有一个flare_beacon的二进制文件。这个文件是参数和配置文件。
在配置目录中,有一些.ini文件。包括selk4.ini,它是SELKS 4.0的预配置文件。一定要针对你环境的修改配置。
我增加了一些注释来解释每个字段。

像min_occur, min_interval, and min_percent是可以调节的。值越大,结果输出越少。
更多信息参考flare_beacon –h。
0x04 发现Beacon
注意我们已经安装并配置好了flare,现在我们准备在我们的网络中寻找Beacon。
我使用下面命令每60秒生成了一个HTTP流量请求:

在这种场景中,我们认为我们被感染的终端发信号给C&C服务器。
被感染的IP:192.168.0.53——>C&C服务器:160.153.76.129
让我们在flare中发现它!

如果一切就绪,你应该能看见下面类似的输出:

注意:Flare使用你配置文件中指定的资源,如果没有正确的配置将是你的计算机卡死。计算机资源与你的网络大小成正比。网络越大,需要的计算资源越多。
下面是flare运行期间我的计算机资源的截图。

我的家庭网络大约有100个节点,大约花一分钟处理24小时的Beacon。
0x05 理解配置选项
-group:将结果分组,让我们看起来更容易识别异常。
-whois:通过ASN查询的关于IP的更多WHOIS信息
-focus_outbound:从目的IP中过滤我们的组播,私有和广播地址
-c:使用flare的配置
-html:以html文件输出结果
-csv:以CSV文件输出结果(不会分组)
0x06 分析结果
现在是有趣的部分,你可以分析结果了。
如果你使用上面的选项,你的输出看起来如下:

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载