如何记录和重放一个组播帧?攻击ACN E1.17

时间:2018-02-02 12:24:49

标签: multicast replay

我一直使用https://github.com/ottomata/multicast-tester配置一台主机来监听多播流量,这样我就可以用tcpdump捕获它。这很容易:

ip route add 224.0.0.0/4 dev eth0
multicast-receiver -g 239.255.0.2 -p 5568

tcpdump -A -X -veni wlan0 dst host 239.255.0.2
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:50:12.879565 10:dd:b1:99:16:45 > 12:42:99:5a:b9:c1, ethertype IPv4 (0x0800), length 680: (tos 0x0, ttl 32, id 7747, offset 0, flags [none], proto UDP (17), length 666)
    192.168.1.71.60230 > 239.255.0.2.5568: UDP, length 638
        0x0000:  4500 029a 1e43 0000 2011 c81f c0a8 0147  E....C.........G
        0x0010:  efff 0002 eb46 15c0 0286 de35 0010 0000  .....F.....5....
        0x0020:  4153 432d 4531 2e31 3700 0000 726e 0000  ASC-E1.17...rn..
        0x0030:  0004 9ecf d3c6 1b01 7547 a506 37c0 6c96  ........uG..7.l.
        0x0040:  7e12 7258 0000 0002 4d2d 5365 7269 6573  ~.rX....M-Series
        0x0050:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0060:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0070:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0080:  0000 0000 0000 0000 6400 00a1 0000 0272  ........d......r
        0x0090:  0b02 a100 0000 0102 0100 0000 0000 0000  ................
        0x00a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x00b0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x00c0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x00d0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x00e0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x00f0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0100:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0110:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0120:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0130:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0140:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0150:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0160:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0170:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0180:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0190:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x01a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x01b0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x01c0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x01d0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x01e0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x01f0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0200:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0210:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0220:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0230:  0000 0000 0000 0000 0000 0000 0000 000e  ................
        0x0240:  ff00 000e ff00 0000 0000 0000 0000 0000  ................
        0x0250:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0260:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0270:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0280:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0290:  0000 0000 0000 0000 0000            

现在,我想永远重播这个框架。我知道我需要将主机重新配置为组播源;但是应该这样做:

multicast-sender -g 239.255.0.2 -p 5568

现在,我如何重播我的画面?

我不认为多播发送者能够处理大量的空字符;但是nc应该能够做到。修复了有关src和dst字段的框架头文件中的一些细节。

对于好奇的人:这是针对DMX over Ethernet的ASC-E1.17协议;最新的设备使用E1.31或E1.37。这个IP是宇宙2.端口5568似乎固定为标准,我相信DMX插槽是在帧内内发送的(这里我在插槽421-425上发送旋转颜色,大约在0x0240)。我的目的是检查是否容易污染ACN规范,并研究是否有人访问我的网络可能会弄乱我的工作......以及我应该如何保护我的网络免受问题的影响。但是,购买第二个ACN来源会比使用nc伪造一个框架更具扩展性和灵活性......

我在网络中有另一台计算机来检查寄生虫帧是否已正确注入(并由交换机传输)。

如果此测试失败,我将需要购买其他ACN来源。

1 个答案:

答案 0 :(得分:0)

所以,我找到了一个解决方案:

记录一个框架:

ip route add 224.0.0.0/4 dev wlan0
/root/multicast-tester/bash/multicast-receiver -g 239.255.0.1 -p 556
# start playing a sequence from an ACN master
# and from an other console:
tcpdump -veni wlan0 -c 10 -w /tmp/recc dst host 239.255.0.1

现在,重播框架。以下项目是tcpreplay的一个fork: https://github.com/rigtorp/udpreplay 安装后,只需在循环中重放帧:

while true ; do ./udpreplay -i wlan0 /tmp/recc ; done

您将看到各种订单之间的DMX客户端抖动。

tcpreplay包含在debian中; udpreplay不是(还)。

我之前的问题是我在听错(DMX)宇宙(2而不是1)。

此方法也可用于记录和重放某些DMX序列;或者是家庭书面DMX大师的起点。

使用此方法可能可以与其他ACN设备一起使用。