弱口令扫描介绍
字数 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

二、弱口令相关服务

所有可能存在未授权访问的服务都应检查:

  1. 远程维护类服务:SSH、Telnet、RDP等
  2. 数据库服务:MySQL、MSSQL、Oracle、ES、MongoDB等
  3. 缓存类服务:Redis、Kafka
  4. 大数据相关服务
  5. 云环境接口:各类云服务API、Docker接口
  6. 应用系统:Web应用、手机程序、小程序等

三、爆破工具详解

3.1 Burp Intruder

特殊场景处理:当遇到客户端JS加密密码的情况

解决方案:使用jsEncrypter扩展

  • 项目地址:https://github.com/c0ny1/jsEncrypter

使用步骤

  1. 尝试登录,使用浏览器调试模式寻找加密函数所在的JS文件
  2. 通过调用关系分析找到最终使用的加密JS文件
  3. 下载加密JS文件到本地
  4. 利用jsEncrypter模板加载加密函数
  5. 使用PhantomJS加载jsEncrypter模板
  6. 通过Burp的jsEncrypter扩展连接PhantomJS服务
  7. 测试加密效果
  8. 使用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 脚本爆破方案

优先策略

  1. 寻找无需验证码的登录入口:
    • 手机端登录入口
    • 老的登录入口
    • 小程序/APP登录入口

技术方案

  1. 图像识别API
    • 优点:识别效果好
    • 缺点:费用较高
  2. 机器学习
    • 优点:效果较好
    • 缺点:需要长时间训练
  3. tesserocr
    • 优点:不依赖服务端
    • 缺点:默认效果较差,需针对性训练提升效果

五、最佳实践建议

  1. 字典建设:建立并维护自己的弱口令字典库,定期更新
  2. 目标分析:充分收集目标信息,生成针对性社工字典
  3. 工具组合:根据场景灵活组合使用不同工具
  4. 验证码处理:优先寻找绕过方案,其次考虑识别方案
  5. 合法合规:所有测试必须在授权范围内进行

通过系统性地应用以上技术和方法,可以显著提高弱口令扫描和爆破的成功率。

弱口令扫描与爆破技术详解 一、弱口令字典收集与生成 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脚本模板 : 3.2 Hydra 项目地址 :https://github.com/vanhauser-thc/thc-hydra 基本用法 : 查看帮助: hydra -h 基础示例: HTTP请求爆破 : 3.3 超级弱口令检查工具 项目地址 :https://github.com/shack2/SNETCracker 特点 :图形化界面操作 四、验证码处理技术 4.1 Burp reCAPTCHA 项目地址 :https://github.com/bit4woo/reCAPTCHA 原理 :利用第三方识别服务绕过验证码 4.2 脚本爆破方案 优先策略 : 寻找无需验证码的登录入口: 手机端登录入口 老的登录入口 小程序/APP登录入口 技术方案 : 图像识别API : 优点:识别效果好 缺点:费用较高 机器学习 : 优点:效果较好 缺点:需要长时间训练 tesserocr : 优点:不依赖服务端 缺点:默认效果较差,需针对性训练提升效果 五、最佳实践建议 字典建设 :建立并维护自己的弱口令字典库,定期更新 目标分析 :充分收集目标信息,生成针对性社工字典 工具组合 :根据场景灵活组合使用不同工具 验证码处理 :优先寻找绕过方案,其次考虑识别方案 合法合规 :所有测试必须在授权范围内进行 通过系统性地应用以上技术和方法,可以显著提高弱口令扫描和爆破的成功率。