美文网首页
使用Bro/Zeek进行信标检测

使用Bro/Zeek进行信标检测

作者: Threathunter | 来源:发表于2020-08-22 09:23 被阅读0次

    来源:https://activecm.github.io/threat-hunting-labs/beacons/

    一、目标

    使用两个IP地址之间的常规连接来识别命令和控制(C2)会话。

    二、工具使用

    Wireshark

    Tshark

    电子表格程序(如LibreOffice Calc)

    RITA

    三、狩猎

    我们会找到在固定时间间隔内发生的联系。这可能表明攻击者具有持久的C2会话。

    在这个实验中,我们将分析两个特定系统之间的流量:192.168.88.2和165.227.88.15。在识别系统之间存在可疑的通信流之后,我们会在这个实验室中使用这些技术,比如系统中有大量的连接或发送的数据。

    四、Wireshark

    打开你的pcap在Wireshark。这将加载主窗口中的每个数据包。

    应用过滤器ip.src==192.168.88.2 && ip.dst==165.227.88.15。本练习旨在说明使用RITA等工具实现自动化的过程。你的窗口现在看起来应该是这样的:

    如果您查看时间列,您已经可以看到一个模式出现了。秒数持续增加1。

    通过右键单击其中一列(例如目的地)并从菜单中选择列首选项来打开列首选项。

    在首选项内部,单击+按钮添加一个新项,并使其与字段列中的“Time Delta”和“frame.time_delta_display”中的条目相匹配。您需要在框内双击来编辑值。然后取消选中Info/Information行以临时隐藏该项目,然后单击OK。

    然后,您应该会看到一个新列,其中包含每个包与前一个包之间的时间差。

    我们之前的预感——大多数数据包间隔1秒——得到了证实。这表明,IP 192.168.88.2以1秒的间隔与165.227.88.15通信。

    五、Tshark

    Tshark是与Wireshark等价的命令行。我们可以使用它来处理pcap,并使用它的协议分解器提取不同的字段。如果我们想使用其他工具来操作数据,这是很有用的。

    tshark -r sample.pcap -T fields -e ip.src -e ip.dst -e udp.dstport -e frame.time_delta_displayed 'ip.src==192.168.88.2 && ip.dst==165.227.88.15' | head -25

    192.168.88.2 165.227.88.15 53 0.000000000

    192.168.88.2 165.227.88.15 53 1.074819358

    192.168.88.2 165.227.88.15 53 1.084471967

    192.168.88.2 165.227.88.15 53 1.078728781

    192.168.88.2 165.227.88.15 53 1.069749570

    192.168.88.2 165.227.88.15 53 1.077714934

    192.168.88.2 165.227.88.15 53 1.076642909

    192.168.88.2 165.227.88.15 53 1.070790122

    192.168.88.2 165.227.88.15 53 1.071048506

    192.168.88.2 165.227.88.15 53 1.064914560

    192.168.88.2 165.227.88.15 53 0.093778795

    192.168.88.2 165.227.88.15 53 0.961346162

    192.168.88.2 165.227.88.15 53 1.062188142

    192.168.88.2 165.227.88.15 53 1.065854491

    192.168.88.2 165.227.88.15 53 1.075033821

    192.168.88.2 165.227.88.15 53 1.066068845

    192.168.88.2 165.227.88.15 53 1.063321512

    192.168.88.2 165.227.88.15 53 1.071506357

    192.168.88.2 165.227.88.15 53 1.058017495

    192.168.88.2 165.227.88.15 53 1.075381485

    192.168.88.2 165.227.88.15 53 1.078740794

    192.168.88.2 165.227.88.15 53 1.062031167

    192.168.88.2 165.227.88.15 53 1.065914897

    192.168.88.2 165.227.88.15 53 1.063939728

    192.168.88.2 165.227.88.15 53 1.066905553

    tshark的论点是:

    -r sample.pcap -到pcap文件的路径。

    - t字段-告诉tshark输出指定字段的值。

    -e ip.src -e ip.dst -e udp.dstport -e frame.time_delta_display -这些选项告诉tshark应该打印哪些字段。在本例中,我们需要源和目的IP、目的端口(您也可以尝试tcp.dstport)以及自发送前一个包以来的时间。该语法与Wireshark中使用的语法相同。您可以在wireshark的文档中找到所有字段的列表。

    ip.src==192.168.88.2 && ip.dst==165.227.88.15 -要使用的过滤器。这使用了Wireshark的显示过滤器语法。在本例中,我们告诉tshark只处理从192.168.88.2发送到165.227.88.15的数据包。

    例如,您可以使用以下命令将所有数据包大小和时间间隔输出到一个CSV文件。

    然后在电子表格程序中打开文件并计算一些基本的统计数据,例如数据的最小值、最大值、平均值和标准差。

    提示:下面是上面示例中使用的公式。但是您可以通过使用Data -> Statistics ->描述性统计菜单项在LibreOffice Calc中自动生成它们。

    六、RITA

    RITA为连接之间的时间间隔和每个连接的大小计算各种统计度量。

    您还没有从pcap生成Zeek日志,并按照基本工具使用文档中的描述导入Zeek文件。

    本例中的数据集名称为“sample”。

    rita show-beacons sample | head

    Score,Source IP,Destination IP,Connections,Avg Bytes,Intvl Range,Size Range,Top Intvl,Top Size,Top Intvl Count,Top Size Count,Intvl Skew,Size Skew,Intvl Dispersion,Size Dispersion

    1,192.168.88.2,165.227.88.15,108858,199,860,230,1,89,53341,108319,0,0,0,0

    1,10.55.100.111,165.227.216.194,20054,92,29,52,1,52,7774,20053,0,0,0,0

    0.838,10.55.200.10,205.251.194.64,210,308,29398,4,300,70,109,205,0,0,0,0

    0.835,10.55.200.11,205.251.197.77,69,308,1197,4,300,70,38,68,0,0,0,0

    0.834,192.168.88.2,13.107.5.2,27,198,2,33,12601,73,4,15,0,0,0,0

    0.834,10.55.100.111,34.239.169.214,34,704,5,4517,1,156,15,30,0,0,0,0

    0.833,10.55.182.100,23.52.161.212,25,777,41422,40,1800,465,19,13,0,0,0,0

    0.833,10.55.100.108,23.52.161.212,24,1183,43303,0,1800,505,15,24,0,0,0,0

    0.833,10.55.100.108,23.52.162.184,24,2232,43303,0,1800,467,18,24,0,0,0,0

    在这种情况下,ascii表输出没有那么有用,因为它太宽了。但是,您可以将输出传输到一个新的CSV文件,并在电子表格程序中打开它。这将为您提供基于不同列的筛选和排序的灵活性。

    rita show-beacons sample > sample.csv

    或者您可以将结果导出到HTML报告中,并在web浏览器中查看数据。

    各列如下:

    分数Score——分数是一个度量标准,考虑了时间间隔倾斜、分散和持续时间以及数据大小倾斜、分散和模式。该分数越接近1,表示此活动的可能性越大。

    Source-启动连接的IP地址。

    目标Destination-接收连接的IP地址。

    连接Connections——源ip和目标ip之间的连接总数。

    Avg字节-每个连接在任何方向上传输的平均字节数。

    Intvl范围-这是看到的最大和最小时间间隔之间的差异。例如,如果有2个连接相隔80秒,另外2个连接相隔20秒,那么整个间隔范围将是80-20 = 60秒。这对于了解连接的分散程度或紧密程度很有用,但很容易被错过的连接打乱。

    大小范围-这是看到的最大和最小连接大小之间的差异。

    顶部Intvl (CSV) / Intvl模式(HTML) -连接之间的间隔,我们看到的最多。

    Top Size (CSV) / Size模式(HTML) -在我们看到的连接中传输的字节数。

    顶部Intvl计数(CSV) / Intvl模式计数(HTML) -我们看到间隔模式的次数。

    顶部大小计数(CSV) /大小模式计数(HTML) -我们看到的大小模式的次数。

    Intvl倾斜-倾斜测量数据的扭曲程度或不对称程度。接近0的值表示数据非常对称。这一措施是有用的情况下,恶意软件没有试图隐藏自己,但更重要的是,将检测恶意软件试图隐藏添加抖动。这是可行的,因为带有jitter的恶意软件很可能使用随机数生成器来添加或减去一个平均值(例如30秒+/- 5秒)。随机数生成器将均匀地分布使数据对称的值,因此这种特殊的措施是很难击败的。

    大小倾斜-连接数据大小的倾斜。对于数据大小,倾斜并不是一个重要的度量标准,因为如果攻击者通过C2会话主动发送命令或传输数据,我们期望它们会自然地发生变化。但是大多数时候,我们期望C2会话只是简单地签入。

    Intvl分散/大小分散——Avg Bytes描述了一个区间或数据大小偏离均值的可能性(非常类似于偏离均值的标准偏差)。接近0的值意味着大部分的间隔或数据大小都聚集在平均值周围,且变化很小。这对于那些不通过更改信标间隔或数据大小来隐藏自己的信标非常有用。信标上的抖动越多,有效Avg Bytes就越低。

    相关文章

      网友评论

          本文标题:使用Bro/Zeek进行信标检测

          本文链接:https://www.haomeiwen.com/subject/hvwmjktx.html