web-dev-qa-db-ja.com

WindowsからMacに送信されたSSHコマンドを記録する

私は少し困惑しています-私はWindows10とMacCatalinaマシンの両方の管理者です。

Windowsマシンは現在、既知のバグがあるソフトウェアを実行しています。SSHコマンドは、SSH経由でREするのが難しい(複雑さよりもサイズが大きいため)大きな.NETソフトウェアによってMacに送信されます。 2台のPCは同じネットワーク上にあります。

SSHコマンドは失敗しますが、それが何であるかわかりません。これらのアクションを記録するか、少なくとも何らかの方法で表示したいので、受信側(Mac)の動作を変更して、正しいアクションを実行できます(バグの回避策)。

これが私がSSHコマンドを見ようとしたものです:

  • Wireshark(両側)を実行し、SSHキーを介してDiffie-Hellman交換をデコードしてみます(これがどのように機能するのかわかりません。 RSAキーを使用して会話をデコードする方法を知っている)
  • 試してくださいStrace-Macマシンには存在しません。代替オプションdtrussは機能する可能性がありますが、コマンドがわからないため、SIPをバイパスする必要があります。
  • 。bashrc自動ログを使用してSSHコマンドをログに記録してみてください-これは。zprofileおよび。zshrcに置き換えられました-これはそうではありません動作しているように見え、z_historyまたはbash_historyに履歴が残っていません。インタラクティブなターミナルコマンドを実行しても機能します。これは、コマンドが最初のSSHコマンドにチェーンされていることが原因である可能性があります。 ssh user @ HostSOMECOMMAND。
  • ProcMonを実行し、コマンドが秘密の設定ファイルにあるかどうかを確認します。見つからないようです。
  • ReflectorおよびdnSpyを使用して逆コンパイルします-SSHコマンドの送信方法に関するロジックはいくつかありますが、実際のコマンドはハードコードされていません。

何が足りないのですか?私が見落とした、これを行う明白な方法はありますか?

私は物事をうまく機能させることに比較的精通しているので、今後の最良の道がわかれば、そこに注目します。どうすればよいかわからないほど、広いスペースに選択肢が多すぎるようです。

SSHホスト(Mac)のsshd_configを介してこれを行う方法があるかもしれないと読みましたが、どの設定が実際に機能するかわかりません。Macは特別な方法で処理を行うようです。

[適切なStackExchangeサイトを自由に移動してください。どちらが最適かはわかりません]

1
Coruscate5

これは、監査の典型的なケースのように見えます。 Mac OSで設定した経験がないため、いくつかのドキュメントと例を参照してください。

https://opensource.Apple.com/source/OpenBSM/OpenBSM-21/openbsm/man/

https://krypted.com/mac-os-x/quick-dirty-openbsm-auditing-macos/

auditdのタイプも利用できるようです。

https://opensource.Apple.com/source/system_cmds/system_cmds-336.10/auditd.tproj/auditd.8.auto.html

監査の有効化とログの解析が機能し、宛先システムで実行されたすべてのコマンドが含まれている必要があります。

たとえば、sshユーザーを知っている場合は、_audit_user_から始めて、この特定のユーザーに対してログに記録されるようにexシステムコールを構成できます。セッション中にユーザーが変更された場合、すべてをキャプチャするわけではありませんが、少なくともuserswitchコマンドまではキャプチャします。

/ etc/security/audit_user _yoursshuser:ad,ex:no_

クイックスタートとして、_auditreduce -u <userid> -c ex /dev/auditpipe | praudit_のようなものを試してください

これにより、ユーザーexecsyscallsからのライブログが提供されます。

シェルが使用されているかどうかわからないため、シェルの履歴などによるアプローチは忘れることをお勧めします。例えば。スクリプトがコピーされ、シェルが切り替えられます。興味深いのはex syscallsです。これらはどのようにトリガーされたかに関係なく、すべての実行が含まれています。


MAC用に編集:特にMac用(システム整合性保護[SIP]がオンの場合、Catalina/El Capitanなど)、OpenBSMはbashコマンドを記録しませんプログラムが実際に実行されることはありません。

不適切なコマンド(ASDFASDFASDFなど)を記録したい場合は、dtrussを使用するのが最適なオプションと思われます-dtraceも機能する可能性がありますが、適切に機能させることの難易度は高くなります。

最初にSIPを無効にし、次のコマンドを実行してbashプロセスのすべてのシステムコールを記録します。

_Sudo dtruss -n bash
_

Stat64呼び出しでは、さまざまな環境の場所で誤ったコマンドが「検索」されます。例えば。 stat64("/usr/bin/ASDFASDFASDF",...)

1
hargut

コマンドが実行されるシェルにアクセスできる場合は、シェルのプロファイル内のファイル記述子をログファイルにリダイレクトしてみてください。または、履歴をオンにします。または、sysdigを使用します。

0
Spacerat