Etherify - 将以太带回以太网
(c) 2020 Jacek Lipkowski SQ5BPF [email protected]
2020 RC3 会议演讲: https://www.youtube.com/watch?v=7ek994-fwNE
Etherify 1 和 2: https://lipkowski.com/etherify (使用 RPI 4)
Etherify 3: https://lipkowski.com/etherify3/ (不接网线)
Etherify 4: https://lipkowski.com/etherify4/ (使用戴尔笔记本)
Etherify 5: https://lipkowski.com/etherify5/ (使用以太网交换机)
这些是通过以太网泄漏进行无线传输的尝试。 更多信息请阅读 https://lipkowski.com/ 上的所有文章,并观看 RC3 会议演讲。
################################################################
etherify1.sh - 通过改变以太网接口的速度来无线发送数据。
用法:
./etherify1.sh <文件>
如果给定了 <文件>,则发送其内容,否则发送 "etherify 1 demo"。
其原理是在 10Mbps 和 100Mbps 之间切换,导致设备泄漏的电磁辐射发生变化。 切换到 100Mbps 会产生 125MHz 的信号,用于发送莫尔斯电码。
在 2 台运行 Raspbian 10 的 Raspberry Pi 4 上测试, 通过 2 米网线连接。
在另一台 Raspberry Pi 上:
killall dhcpcd #禁用任何其他干扰 eth0 接口的软件,如 NetworkManager
ifconfig eth0 up
ethtool eth0 #确认链路已启用
./etherify1.sh /tmp/secret.txt #泄漏 /tmp/secret.txt 的内容 ./etherify1.sh #或仅发送标准文本
################################################################
etherify2.sh - 通过产生以太网接口负载来无线发送数据的简陋黑客手段。
用法:
./etherify2.sh <文件>
如果给定了 <文件>,则发送其内容,否则发送 "etherify 2 demo"。
在 2 台运行 Raspbian 10 的 Raspberry Pi 4 上测试, 通过 2 米网线连接。 其原理可能是:生成数据包时加载电源电压,电压变化可能轻微改变某个时钟的频率,从而产生 FSK(确切地说是 F1A)。
在一台 Raspberry Pi 上:
killall dhcpcd #禁用任何其他干扰 eth0 接口的软件,如 NetworkManager
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 route add -net 192.168.1.0/24 dev eth0 #不确定为什么 ifconfig 没有设置路由
在另一台 Raspberry Pi 上:
killall dhcpcd #禁用任何其他干扰 eth0 接口的软件,如 NetworkManager
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 route add -net 192.168.1.0/24 dev eth0 #不确定为什么 ifconfig 没有设置路由
ping 192.168.1.1 #确认连通性
./etherify2.sh /tmp/secret.txt #泄漏 /tmp/secret.txt 的内容 ./etherify2.sh #或仅发送标准文本
################################################################
etherify3.sh - 通过改变以太网接口的速度来无线发送数据。
更多信息请见: https://lipkowski.com/etherify3
用法:
./etherify3.sh <文件>
如果给定了 <文件>,则发送其内容,否则发送 "etherify 3 demo"。
其原理是在 10Mbps 和 100Mbps 之间切换,导致以太网接口泄漏的电磁辐射发生变化。 切换到 100Mbps 会产生 125MHz 的信号,用于发送莫尔斯电码。
在运行 Raspbian 10 的 Raspberry Pi 4 上测试, 未连接以太网,通过移动电源供电。
ethtool eth0 #确认链路已断开
./etherify3.sh /tmp/secret.txt #泄漏 /tmp/secret.txt 的内容 ./etherify3.sh #或仅发送标准文本
我不确定这究竟是我的特定 Raspberry Pi 4B 泄漏了如此多的射频,还是普遍问题。
################################################################
etherify4.sh - 通过改变以太网接口的速度来无线发送数据。此实现适用于在更改接口速度后需要几秒钟才能建立链路的设备。
更多信息请见: https://lipkowski.com/etherify4
用法:
./etherify4.sh <文件>
如果给定了 <文件>,则发送其内容,否则发送 "etherify 4 demo"。
其原理是在 10Mbps 和 100Mbps 之间切换,导致以太网接口泄漏的电磁辐射发生变化。 切换到 100Mbps 会产生 125MHz 的信号,用于发送慢速莫尔斯电码。
在两台戴尔 Latitude 笔记本(E6220 和 D610)上测试,通过 2 米网线连接。
./etherify4.sh /tmp/secret.txt #泄漏 /tmp/secret.txt 的内容 ./etherify4.sh #或仅发送标准文本
符号长度(点长度)等于更改链路速度与建立链路之间的延迟,通常为几秒。接收时请使用任何能够调谐到 125MHz 及其谐波(整数倍)的接收器,并将音频输入任何能够显示慢速频谱图的软件。例如,业余无线电操作员用于 QRSS CW(通过视觉解码的慢速莫尔斯电码)的软件。
sq5bpf_etherify4.usr 文件包含 DL4YHF Spectrum Lab 的示例配置。在 Linux/Wine 下运行时,来自接收器(如 gqrx)的音频可通过 pulseaudio 传送到 Spectrum Lab。
################################################################
etherify5.sh - 与 etherify4.sh 相同,但通过 SNMP 改变接口速度,利用网络设备(如交换机、路由器)进行传输。
更多信息请见: https://lipkowski.com/etherify5
用法:
./etherify5.sh <文件>
如果给定了 <文件>,则发送其内容,否则发送 "etherify 5 demo"。
其原理是在 10Mbps 和 100Mbps 之间切换,导致网络设备泄漏的电磁辐射变化,用于发送莫尔斯电码。
此脚本已在两台 Linksys LGS318 交换机上测试。请编辑 etherify5.sh 脚本以实现切换速度适配您的交换机。同时请设置交换机 IP、端口和型号。
./etherify5.sh /tmp/secret.txt #泄漏 /tmp/secret.txt 的内容 ./etherify5.sh #或仅发送标准文本
符号长度(点长度)等于更改链路速度与建立链路之间的延迟,通常为几秒,可在脚本中设置(LINKDELAY 参数)。信号可能出现在不同频率,具体取决于交换机硬件。例如,Linksys LGS318 交换机辐射的信号约为 50MHz。
请始终使用两台相同型号的设备进行测试(因为如果使用不同设备,则无法确定哪台设备产生无线电信号)。
将接收器音频输入任何能够显示慢速频谱图的软件。例如,业余无线电操作员用于 QRSS CW(通过视觉解码的慢速莫尔斯电码)的软件。
sq5bpf_etherify4.usr 文件包含 DL4YHF Spectrum Lab 的示例配置。在 Linux/Wine 下运行时,来自接收器(如 gqrx)的音频可通过 pulseaudio 传送到 Spectrum Lab。
#######################################################
两者均在 2 台通过 Raspberry Pi 入门套件附带的 2 米网线连接的 Raspberry Pi 4 上测试。选择这些硬件是为了便于在任何地方复现。测试也使用了其他硬件:etherify1.sh 适用于大多数硬件,etherify2.sh 仅适用于部分硬件。
请将接收器调谐至约 125MHz,使用 CW 模式并搭配极窄的滤波器。有时也可使用 AM 模式。测试使用 Yaesu FT-817 接收器(500Hz CW 滤波器,人耳解码),以及使用 rtl-sdr dvb-t 加密狗的 SDR 接收器,搭配 gqrx 作为接收器和 fldigi 作为莫尔斯解码器(或人耳解码)。
测试中,etherify1.sh 可在 100 米距离内接收,etherify2.sh 可在 30 米距离内接收。
注意: