小米路由器管理员密码爆破分析
字数 1442 2025-08-15 21:33:37
小米路由器管理员密码爆破分析教学文档
1. 背景与目的
目标:当小米路由器管理员密码未知时,通过爆破手段获取管理员权限。
技术要点:
- 分析密码加密机制
- 逆向前端加密逻辑
- 构建自动化爆破流程
- 使用Burp Suite进行实际攻击
2. 工具准备
- Burp Suite:用于拦截和分析HTTP请求
- Python 3.7+:编写自动化脚本
- 文本编辑器:查看和修改JS代码
- 字典文件:包含常用密码的文本文件(如top100PWD.txt)
3. 技术分析流程
3.1 抓包分析
- 访问路由器管理界面(默认地址192.168.31.1)
- 输入测试密码(如"123")并使用Burp Suite拦截请求
- 关键发现:
- 即使输入相同密码,每次请求的
password和nonce字段值都不同 - 说明密码在客户端进行了加密处理
- 加密过程包含随机数(nonce)参与
- 即使输入相同密码,每次请求的
3.2 前端源码分析
- 通过浏览器开发者工具(F12)分析登录按钮(
btnRtSubmit)的点击事件 - 定位到
loginHandle方法 - 密码加密流程:
- 调用
Encrypt方法 - 具体使用
oldPwd函数 - 依赖
aes.js和sha1.js加密库
- 调用
3.3 加密机制逆向
加密过程关键点:
- 前端生成随机数(nonce)
- 密码与nonce结合进行加密
- 使用AES和SHA1算法
- 最终生成动态变化的password字段
4. 爆破脚本开发
4.1 修改JS代码
需要修改Encrypt.js文件:
- 重构
loginHandle函数使其可被外部调用 - 确保包含完整的加密逻辑(AES+SHA1)
- 输出格式为
[password, nonce]
4.2 Python脚本实现
import urllib
import execjs # 导入PyExecJS库
def get_js():
# 导入js文件
f = open("Encrypt.js", 'r', encoding='UTF-8')
line = f.readline()
htmlstr = ''
while line:
htmlstr = htmlstr + line
line = f.readline()
return htmlstr
jsstr = get_js()
ctx = execjs.compile(jsstr)
def creative_book():
# 创建密文密码字典
f = open("top100PWD.txt")
for line in f:
r = line.strip('\n')
utf = ctx.call('loginHandle', r)
h = open('adobe_top100_pass_creative.txt', 'a')
h1 = open('adobe_top100_pass_creative_random.txt', 'a')
h.write("\n" + utf[0])
h1.write("\n" + urllib.parse.quote(utf[1]))
print(utf[0], urllib.parse.quote(utf[1]))
h.close()
h1.close()
f.close()
creative_book()
4.3 生成字典文件
脚本会生成两个文件:
adobe_top100_pass_creative.txt:存储加密后的passwordadobe_top100_pass_creative_random.txt:存储对应的nonce值
5. Burp Suite爆破实施
5.1 攻击配置
- 将登录请求发送到Intruder
- 选择Pitchfork攻击类型(需要同时爆破两个相关字段)
- 设置攻击位置:
password参数nonce参数
5.2 载荷设置
- 为
password字段加载adobe_top100_pass_creative.txt - 为
nonce字段加载adobe_top100_pass_creative_random.txt - 确保两个字典的行数一致(一一对应)
5.3 结果分析
- 攻击完成后按响应长度排序
- 查找异常长度的响应
- 检查响应中的
code字段:code: 0表示成功(会返回token)- 其他值表示失败
6. 成功验证
- 找到成功的请求后,记录对应的password和nonce组合
- 使用这些值构造合法请求
- 获取管理员token,实现权限提升
7. 防御建议
针对路由器管理员:
- 使用强密码(避免常见密码)
- 定期更改管理员密码
- 启用登录失败锁定机制
针对开发者:
- 增加服务端加密salt
- 实施请求频率限制
- 添加验证码机制
8. 参考资源
本教学文档完整呈现了从小米路由器管理员密码爆破的全过程,包含技术分析、工具使用和实际攻击步骤,同时提供了防御建议。请注意此类技术仅应用于合法授权测试,未经授权的访问可能违反法律。