使用Bro/Zeek进行信标检测

来源: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就越低。

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