ネットワーククライアントとしてnetcatの代替
ネットワーククライアントなので、localと呼称しているストリーム側をコンソール。remoteと呼称しているストリームをネットワーク(TCP)にする
nc.exe 192.0.2.1 90
⇔
StreamRelay.NET.exe -LocalPort 0 -RemoteHost 192.0.2.1 -RemotePort 90
ポートスキャンとしての netcatの代替
-z オプションは -ZeroIO
nc.exe -z 192.0.2.1 90
⇔
StreamRelay.NET.exe -LocalPort 0 -RemoteHost 192.0.2.1 -RemotePort 90 -ZeroIO
ネットワークサーバとしてnetcatの代替
ネットワークサーバなので、localと呼称しているストリーム側をネットワーク(TCP)。remoteと呼称しているストリームをコンソールにする
nc.exe -l -p 90
⇔
StreamRelay.NET.exe -LocalPort 90 -RemotePort 0
リバースシェルサーバのようなnetcatの代替
外部コマンドをストリームのソースにするには、ポートに-1を指定する
nc.exe -e cmd.exe 192.0.2.1 90
⇔
StreamRelay.NET.exe -LocalPort -1 -LocalProgram cmd.exe -RemoteHost 192.0.2.1 -RemotePort 90
シェルサーバのようなnetcatの代替
外部コマンドをストリームのソースにするには、ポートに-1を指定する
nc.exe -e cmd.exe -l -p 90
⇔
StreamRelay.NET.exe -LocalPort 90 -RemotePort -1 -RemoteProgram cmd.exe
UDP を使うnetcatの代替
基本的には「-RemoteUdp」か「-LocalUdp」でよい
nc.exe -u 192.0.2.1 90
⇔
StreamRelay.NET.exe -LocalPort 0 -RemoteHost 192.0.2.1 -RemotePort 90 -RemoteUDP
とか
nc.exe -u -l -p 90
⇔
StreamRelay.NET.exe -LocalPort 90 -LocalUDP -RemotePort 0
ファイルを入力源としたhttpクライアントのようなnetcatの代替
ファイル中にHTTPリクエストを記述し、それをリダイレクトする場合、StreamRelayは、基本的に双方向通信としているので、ファイル読み込み完了→レスポンス受信前にストリーム終了、となってしまうので「-AllowHalfOpen」を指定する
nc.exe 192.0.2.1 80 < httpRequest.txt
⇔
StreamRelay.NET.exe -LocalPort 0 -localinputFile httpRequest.txt -RemoteHost 192.0.2.1 -RemotePort 80 -AllowHalfOpen
ソースルーティング
IPv4 オプションのソースルーティングについては、別記事になった。
ソースルーティング試験ツールとしてのStreamRelay.NET.exe