
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/ (Dell ノートパソコン使用)
Etherify 5: https://lipkowski.com/etherify5/ (イーサネットスイッチ使用)
これらは、イーサネットからの漏洩を介して送信を試みるものです。 詳細については、https://lipkowski.com/ の全記事をお読みください。また、RC3 カンファレンストークもご覧ください。
################################################################
etherify1.sh - イーサネットインターフェースの速度を変更することで、データをワイヤレスで送信します。
使い方:
./etherify1.sh
が指定された場合はその内容が送信され、それ以外の場合は "etherify 1 demo" が送信されます。
これは、10Mbps と 100Mbps を切り替えることで動作し、デバイスから漏洩する電磁放射が変化します。 100Mbps に切り替えると 125MHz の信号が発生し、これを使用してモールス信号を送信します。
2台の Raspberry Pi 4 (Raspbian 10 実行) でテスト済み。 2m のイーサネットケーブルで接続。
もう一方の Raspberry Pi で:
killall dhcpcd #disable any other software messing with the eth0 interface, such as NetworkManager
ifconfig eth0 up
ethtool eth0 #verify link is up
./etherify1.sh /tmp/secret.txt #to leak out the contents of /tmp/secret.txt ./etherify1.sh # or just to send the standard text
################################################################
etherify2.sh - イーサネットインターフェースに負荷を生成することで、データをワイヤレスで送信する愚かなハック。
使い方:
./etherify2.sh
が指定された場合はその内容が送信され、それ以外の場合は "etherify 2 demo" が送信されます。
2台の Raspberry Pi 4 (Raspbian 10 実行) でテスト済み。 2m のイーサネットケーブルで接続。 おそらく、パケット生成時に供給電圧に負荷がかかり、電圧の変化が何らかのクロックの周波数をわずかに変化させ、FSK (正確には F1A) を生成することで動作します。
一方の Raspberry Pi で:
killall dhcpcd #disable any other software messing with the eth0 interface, such as NetworkManager
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 route add -net 192.168.1.0/24 dev eth0 #not sure why ifconfig doesn't set the route
もう一方の Raspberry Pi で:
killall dhcpcd #disable any other software messing with the eth0 interface, such as NetworkManager
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 route add -net 192.168.1.0/24 dev eth0 #not sure why ifconfig doesn't set the route
ping 192.168.1.1 #verify you have connectivity
./etherify2.sh /tmp/secret.txt #to leak out the contents of /tmp/secret.txt ./etherify2.sh # or just to send the standard text
################################################################
etherify3.sh - イーサネットインターフェースの速度を変更することで、データをワイヤレスで送信します。
詳細: https://lipkowski.com/etherify3
使い方:
./etherify3.sh
が指定された場合はその内容が送信され、それ以外の場合は "etherify 3 demo" が送信されます。
これは、10Mbps と 100Mbps を切り替えることで動作し、イーサネットインターフェースから漏洩する電磁放射が変化します。 100Mbps に切り替えると 125MHz の信号が発生し、これを使用してモールス信号を送信します。
イーサネット接続なしで、パワーバンクから電源供給された Raspberry Pi 4 (Raspbian 10 実行) でテスト済み。
ethtool eth0 #verify link is down
./etherify3.sh /tmp/secret.txt #to leak out the contents of /tmp/secret.txt ./etherify3.sh # or just to send the standard text
私の特定の Raspberry Pi 4B がこれほど多くの RF を漏洩しているのか、それともこれが一般的な問題なのかはわかりません。
################################################################
etherify4.sh - イーサネットインターフェースの速度を変更することで、データをワイヤレスで送信します。これは、インターフェース速度変更後にリンク確立まで数秒かかるデバイス向けの実装です。
詳細: https://lipkowski.com/etherify4
使い方:
./etherify4.sh
が指定された場合はその内容が送信され、それ以外の場合は "etherify 4 demo" が送信されます。
これは、10Mbps と 100Mbps を切り替えることで動作し、イーサネットインターフェースから漏洩する電磁放射が変化します。 100Mbps に切り替えると 125MHz の信号が発生し、これを使用して低速モールス信号を送信します。
2台の Dell Latitude ノートパソコン (E6220 と D610) を 2m のイーサネットケーブルで接続してテスト済み。
./etherify4.sh /tmp/secret.txt #to leak out the contents of /tmp/secret.txt ./etherify4.sh # or just to send the standard text
シンボル長 (ドット長) は、リンク速度変更からリンク確立までの遅延に等しくなります。通常は数秒です。受信には、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 を切り替えることで動作し、ネットワークデバイスから漏洩する電磁放射が変化します。これを使用してモールス信号を送信します。
2台の Linksys LGS318 スイッチでテスト済み。etherify5.sh スクリプトを編集して、お使いのスイッチで速度変更を実装してください。また、スイッチの IP、ポート、およびタイプを設定してください。
./etherify5.sh /tmp/secret.txt #to leak out the contents of /tmp/secret.txt ./etherify5.sh # or just to send the standard text
シンボル長 (ドット長) は、リンク速度変更からリンク確立までの遅延に等しくなります。通常は数秒で、スクリプト内で設定できます (LINKDELAY パラメータ)。 信号はスイッチのハードウェアによって異なる周波数で現れる可能性があります。例えば、Linksys LGS318 スイッチは約 50MHz の信号を放射します。
常に同じタイプの 2 台のデバイスを使用してテストしてください (異なるデバイスを使用すると、どちらが無線信号を生成しているか分からなくなるため)。
受信機のオーディオを、低速スペクトログラムを表示できる任意のソフトウェアにパイプします。このようなソフトウェアは、例えばアマチュア無線家が QRSS CW (視覚的にデコードされる低速モールス信号) に使用しています。
sq5bpf_etherify4.usr ファイルには、DL4YHF Spectrum Lab の設定例が含まれています。linux/wine で実行する場合、受信機 (gqrx など) からのオーディオは pulseaudio を介して Spectrum Lab にパイプできます。
#######################################################
両方とも、Raspberry Pi 4 スターターキットに含まれる 2m のイーサネットケーブルで接続した 2 台の Raspberry Pi 4 でテスト済みです。ハードウェアの選択は、どこでも簡単に再現できるように行われました。テストは他のハードウェアでも行われました。etherify1.sh はほとんどのハードウェアで動作しますが、etherify2.sh は一部のものでのみ動作します。
受信機を CW モードで約 125MHz に同調し、非常に狭いフィルタを使用してください。AM モードが使用できる場合もあります。テストは、Yaesu FT-817 受信機 (500Hz CW フィルタ、耳で CW デコード) と、rtl-sdr dvb-t ドングルを使用した SDR 受信機 (gqrx を受信機、fldigi をモールスデコーダとして使用、または耳でデコード) の両方で実施しました。
テスト中、etherify1.sh は 100m の距離で受信でき、etherify2.sh は 30m の距離で受信できました。
注意: