ルートとして実行されていないアプリケーションがターミナルアプリケーションにキーストロークを送信できますか?

ルートとして実行されていないアプリケーションがターミナルアプリケーションにキーストロークを送信できますか?

私はUbuntu Linuxを使用しています。私が誤ってキーストロークを記録する悪意のあるプログラムをダウンロードしたとしましょう。これで、このプログラムは私のsudoパスワードにアクセスできるようになりました。これで、このプログラムはrootアクセス権で別のプログラムを実行できますか?たとえば、sudoコマンドを端末アプリケーションに送信し、パスワードの入力を求められたら、端末アプリケーションに送信されたキーストロークをシミュレートしてパスワードを送信できますか?

答え1

はい、疑似端末を使用してこれを行うことができます。これは、SSHサーバー、GNU画面、およびすべてのGUI端末エミュレータなどのプログラムが実行されているプログラムに端末を提供する方法です。

を使用してscreen直接テストできます。少し簡単です。screenセッションを開始して実行しますscreen -X 'sudo id\nsecretpassword\n'(内部または外部からscreen)。

screenセッションにはコマンドとその出力が表示されます。

$ sudo id
[sudo] password for ilkkachu:
uid=0(root) gid=0(root) groups=0(root)
$

関連情報