LANマジックパケットで起動を偽造し、1行のbashコマンドで送信することは可能ですか?
もちろん、これを行うための特定のツールが1行で問題を解決することはわかっていますが、WOL鍛造の最小要件を知ることは有用です。これは、LANでのウェイクの処理方法特定のツールなしです。
最小要件私は考えることができます:
想定:
コマンドラインは次のようになります。
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
説明:
ffffffffffff
(12回f
)の後に、コロンなしの16回の宛先MAC(:
)が続きます。sed
コマンドを使用して、MACからコロンを削除(:
)に追加し、\x
を追加しますhex specificator(文字列をネットワークスタックに送信する前に、11
が\x11
になり、22
が\x22
になるなど)。テスト済みworking Ubuntu、Kali、およびCygWinでも(Windows 7 SP 1 64ビット)。
検討中の場合:
-b
パラメーターを必要としません。-b
)に関する今日(2015年7月)のbugがあるため、NetCat Traditionalバージョン(aptのnetcat-traditionalパッケージ)に置き換える必要があります。 -インストーラーを取得します)。$Broadcast
アドレスを宛先パブリックIPに置き換え、指定された$PortNumber
(UDP)を宛先でオープン/転送します。echo -e
はprintf
に置き換えることができます。上記の例のWOLマジックパケット文字列:
FFFFFFFFFFFF112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566
(1)確かに、sed
は明示的には必要ありません。ここでは、「:」を削除し、\x
をマジックパケットの偽造文字列の文字の各ペアに追加するために使用されます。 sed
をいくつかのシェル拡張などで置き換える方法があることを知っています。
ウェイクアップ送信のデフォルトポートは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