web-dev-qa-db-ja.com

特定のツールを使用せずにLANマジックパケットでウェイクを送信するための1行のBashコマンド

LANマジックパケットで起動を偽造し、1行のbashコマンドで送信することは可能ですか?

もちろん、これを行うための特定のツールが1行で問題を解決することはわかっていますが、WOL鍛造の最小要件を知ることは有用です。これは、LANでのウェイクの処理方法特定のツールなしです。

19

最小要件私は考えることができます:

  • Bashブレースの展開をサポートします(v3.5.1以上だと思います)。
  • sedコマンド(1)。
  • NetCat

想定:

  • LAN用のWOLパッケージ、255.255.255.255にブロードキャストします。

コマンドラインは次のようになります。

echo -e $(echo $(printf 'f%.0s' {1..12}; printf "$(echo $MAC | sed 's/://g')%.0s" {1..16}) | sed -e 's/../\\x&/g') | nc -w1 -u -b 255.255.255.255 4000

$MACを宛先MACに置き換えます。または、今回は2ライナーの:-)コマンドで:

MAC=11:22:33:44:55:66
echo -e $(echo $(printf 'f%.0s' {1..12}; printf "$(echo $MAC | sed 's/://g')%.0s" {1..16}) | sed -e 's/../\\x&/g') | nc -w1 -u -b 255.255.255.255 4000

したがって、より一般的な表記では:

MAC=11:22:33:44:55:66
Broadcast=255.255.255.255
PortNumber=4000
echo -e $(echo $(printf 'f%.0s' {1..12}; printf "$(echo $MAC | sed 's/://g')%.0s" {1..16}) | sed -e 's/../\\x&/g') | nc -w1 -u -b $Broadcast $PortNumber

説明:

  • WOL マジックパケットの構成 of ffffffffffff(12回f)の後に、コロンなしの16回の宛先MAC(:)が続きます。
  • ここでsedコマンドを使用して、MACからコロンを削除:)に追加し、\xを追加しますhex specificator(文字列をネットワークスタックに送信する前に、11\x11になり、22\x22になるなど)。
  • 偽造されたLANパッケージは、ネットワークスタックに送信されますNetCatにパイピングSoCat を代わりに使用できます(もちろん構文は異なります)。

テスト済みworking Ubuntu、Kali、およびCygWinでも(Windows 7 SP 1 64ビット)。

検討中の場合:

  • CygWinのNetCatバージョンは-bパラメーターを必要としません。
  • NetCatのOpenBSDバージョンには、ブロードキャストデータ送信(-b)に関する今日(2015年7月)のbugがあるため、NetCat Traditionalバージョン(aptのnetcat-traditionalパッケージ)に置き換える必要があります。 -インストーラーを取得します)。
  • この例では、DPポート 4.000を使用します。 特定のポート番号は、WOLでは重要ではないようです。
  • 上記の1行のbashコマンドは、LANでウェイクする場合にも機能するはずですvia internet。この場合、$Broadcastアドレスを宛先パブリックIPに置き換え、指定された$PortNumber(UDP)を宛先でオープン/転送します。
  • echo -eprintfに置き換えることができます。

上記の例のWOLマジックパケット文字列:

FFFFFFFFFFFF112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566

(1)確かに、sedは明示的には必要ありません。ここでは、「:」を削除し、\xをマジックパケットの偽造文字列の文字の各ペアに追加するために使用されます。 sedをいくつかのシェル拡張などで置き換える方法があることを知っています。

25

ウェイクアップ送信のデフォルトポートはUDPポート9です。

UDPはWOLに使用する推奨プロトコルです。UDPは、セキュリティ制限のある生のソケットなしで生成でき、ポート9は古い既知の破棄プロトコルにマップされるため推奨されます。ポート7が使用されていることがありますが、これはエコープロトコルにマップされます。

つまり、この古いシンプルな標準サービスをサポートするホストがネットワーク上にある場合、ポート7を使用する場合は不要な後方散乱トラフィックを取得しますが、ポート9を使用する場合は後方散乱トラフィックを取得します。多くのホスト。

さらに、Wiresharkなどのネットワークスニファーを使用してWoLのトラブルシューティングを行う場合、WoLパケットはポート9のUDPパケットである場合にのみ適切にデコードされます。

ソース: https://superuser.com/questions/295325/does-it-matter-what-udp-port-a-wol-signal-is-sent-to

0
R4C3R