Linuxのpeekfdコマンドが面白い(全ファイル入出力を盗聴)

  • 157
    Like
  • 0
    Comment
More than 1 year has passed since last update.

psmiscパッケージに入っているpeekfdコマンドを使うと、任意のプロセスの全ファイルディスクリプタへの読み書きを監視(内容を盗聴)することができる。

実行例:
あるシェルからこれを実行

$ echo $$; while true; do echo hoge; sleep 1;done
3457
hoge
hoge
hoge

このシェルのPIDは3457と分かったので、別のシェルからrootでpeekfdを実行する:

# peekfd 3457

writing fd 1:
hoge
hoge
hoge

echo hogeによる標準出力への書き込みを盗聴できている。
3457のシェルでwhileループを止めてキー入力すれば、キー入力も盗聴できる。

/proc/{PID}/fdの中を見ればfd何番がどのファイルか分かる。