接続時に、認証をしてくれるストリームSystem.Net.Security.NegotiateStreamクラスがあるので、これを使うことで、Workstation上では同一ユーザ/パスワードのプロセス、またはNTドメイン(ActiveDirectory)上の場合は同一ドメインユーザでないと認証されないと思う。
Windows認証させる StreamRelay.NET.exe
サーバ側(192.0.2.1)
StreamRelay.NET.exe -LocalPort 91 -RemotePort 80 -RemoteHost 192.0.2.2 -LocalProxy netstream:///?NTLM
とすると、91/tcpに接続するには、NTLM認証(Windows統合認証)が必要となる
クライアント側
StreamRelay.NET.exe -LocalPort 90 -RemotePort 91 -RemoteHost 192.0.2.1 -RemoteProxy netstream:///?NTLM
とすると、互いに認証されて接続される
Windows認証させるリモート・シェル
nc -nvv -l -p 90 -e cmd.exe
⇔
StreamRelay.NET.exe -LocalPort 90 -RemotePort -1 -RemoteProgram cmd.exe
では、認証のないリモート・シェル・サービスだけど、
StreamRelay.NET.exe -LocalPort 90 -RemotePort -1 -RemoteProgram cmd.exe -LocalProxy netstream:///?NTLM
としてあげると、認証機能付(Windows統合認証)リモート・シェル・サービスになるよ。