弱口令扫描介绍
字数 1678 2025-08-26 22:11:40
弱口令扫描与爆破技术详解
一、弱口令字典收集与生成
1. 弱口令字典来源
- 推荐资源:GitHub上的弱口令字典(需长期收集积累)
- 临时方案:临时寻找往往效果不佳,建议建立自己的字典库
2. 社工属性弱口令生成
宗旨:生成既满足密码复杂度要求又便于记忆的密码
2.1 获取账号信息
- 中国常用名Top500及其组合:
- 拼音全拼+[数字]
- 姓全拼+名首字母+[数字]
- 其他来源:
- 招聘网站信息
- 社交工具(如脉脉)
- Google hacking
- 工号信息
2.2 密码分片策略
- 用户个人信息:
- 姓名、昵称、ID、QQ号
- 生日及相关纪念日
- 手机号及亲友手机号
- 父母亲人相关信息
- 公司相关信息:
- 公司域名、邮箱
- 公司电话、部门信息
- 习惯习性:
- 键盘分布(如SHIFT+键盘布局)
- 特殊节日、纪念日、年份
- 易记的数字/字母组合
- 特殊字符组合
- 有特殊含义的单词
- 字母数字替换(如"我"-5,"是"-4,"o"-0)
2.3 组合方式
- 理想情况:获取目标经常使用的默认密码清单
- 社工密码:根据历史密码记录针对性生成
- 部门密码习惯:同一部门往往有相似密码习惯
- 常见组合模式:有含义字符@有含义数字(如"姓名全拼@2017")
2.4 字典生成工具
- 白鹿社工字典生成器:
- 项目地址:https://github.com/HongLuDianXue/BaiLu-SED-Tool
二、弱口令相关服务
所有可能存在未授权访问的服务都应检查:
- 远程维护类服务:SSH、Telnet、RDP等
- 数据库服务:MySQL、MSSQL、Oracle、ES、MongoDB等
- 缓存类服务:Redis、Kafka
- 大数据相关服务
- 云环境接口:各类云服务API、Docker接口
- 应用系统:Web应用、手机程序、小程序等
三、爆破工具详解
3.1 Burp Intruder
特殊场景处理:当遇到客户端JS加密密码的情况
解决方案:使用jsEncrypter扩展
- 项目地址:https://github.com/c0ny1/jsEncrypter
使用步骤:
- 尝试登录,使用浏览器调试模式寻找加密函数所在的JS文件
- 通过调用关系分析找到最终使用的加密JS文件
- 下载加密JS文件到本地
- 利用jsEncrypter模板加载加密函数
- 使用PhantomJS加载jsEncrypter模板
- 通过Burp的jsEncrypter扩展连接PhantomJS服务
- 测试加密效果
- 使用Burp Intruder的payload处理功能,通过jsEncrypter处理明文密码后进行爆破
基础JS脚本模板:
/**
* author: c0ny1
* date: 2017-12-16
* last update: 2019-5-30 11:16
*/
var fs = require('fs');
var logfile = 'jsEncrypter.log';
var webserver = require('webserver');
server = webserver.create();
var host = '127.0.0.1';
var port = '1664';
// 加载实现加密算法的js脚本
var wasSuccessful = phantom.injectJs('md5.js'); /*引入实现加密的js文件*/
// 处理函数
function js_encrypt(payload){
var newpayload;
/*在这里编写调用加密函数进行加密的代码*/
var newpayload = hex_md5(payload) + "djmis"; /*
return newpayload;
}
if(wasSuccessful){
console.log("[*] load js successful");
console.log("[*] jsEncrypterJS start!");
console.log("[+] address: http://"+host+":"+port);
}else{
console.log('[*] load js fail!');
}
var service = server.listen(host+':'+port, function(request, response){
try{
if(request.method == 'POST'){
var payload = request.post['payload'];
var encrypt_payload = js_encrypt(payload);
var log = payload + ':' + encrypt_payload;
console.log('[+] ' + log);
fs.write(logfile, log+'\n', 'w+');
response.statusCode = 200;
response.write(encrypt_payload.toString());
response.close();
}else{
response.statusCode = 200;
response.write("^_^\n\rhello jsEncrypter!");
response.close();
}
}catch(e){
var fullMessage = "Message: "+e.toString() + ':' + e.line;
for(var p in e){
fullMessage += "\n" + p.toUpperCase() + ": " + e[p];
}
console.log(fullMessage);
console.log('[*] phantomJS exit!')
phantom.exit();
}
});
3.2 Hydra
项目地址:https://github.com/vanhauser-thc/thc-hydra
基本用法:
- 查看帮助:
hydra -h - 基础示例:
hydra -l admin -p password ftp://localhost/ hydra -L default_logins.txt -p test ftp://localhost/ hydra -l admin -P common_passwords.txt ftp://localhost/ hydra -L logins.txt -P passwords.txt ftp://localhost/
HTTP请求爆破:
hydra -l admin -p password 192.168.43.131 http-post-form "/login.php:username=^USER^&password=^PASS^&Login=Login:F=Username and/or password incorrect."
3.3 超级弱口令检查工具
项目地址:https://github.com/shack2/SNETCracker
特点:图形化界面操作
四、验证码处理技术
4.1 Burp reCAPTCHA
项目地址:https://github.com/bit4woo/reCAPTCHA
原理:利用第三方识别服务绕过验证码
4.2 脚本爆破方案
优先策略:
- 寻找无需验证码的登录入口:
- 手机端登录入口
- 老的登录入口
- 小程序/APP登录入口
技术方案:
- 图像识别API:
- 优点:识别效果好
- 缺点:费用较高
- 机器学习:
- 优点:效果较好
- 缺点:需要长时间训练
- tesserocr:
- 优点:不依赖服务端
- 缺点:默认效果较差,需针对性训练提升效果
五、最佳实践建议
- 字典建设:建立并维护自己的弱口令字典库,定期更新
- 目标分析:充分收集目标信息,生成针对性社工字典
- 工具组合:根据场景灵活组合使用不同工具
- 验证码处理:优先寻找绕过方案,其次考虑识别方案
- 合法合规:所有测试必须在授权范围内进行
通过系统性地应用以上技术和方法,可以显著提高弱口令扫描和爆破的成功率。