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

genpAss

项目地址:https://github.com/RicterZ/genpAss

3 弱口令相关服务

所有可能存在未授权访问类的服务

  • 远程维护类服务(SSH、Tenlent、RDP 等);
  • 数据库服务(MySQL、MSSQL、Oracle 、ES、MongoDB 等);
  • 缓存类服务(Redis、Kafka);
  • 大数据相关服务;
  • 云环境各类接口、Docker 环境各类接口;
  • 各种 Web 应用系统、手机程序、小程序等。

4 爆破工具

4.1 Burp Intruder

这个工具不多做说明,现在渗透测试可能经常遇到一些客户端 js 文件对密码做加密处理发送给服务端的情况,推荐扩展https://github.com/c0ny1/jsEncrypter

使用示例
步骤:

  1. 尝试登录,使用浏览器调试模式寻找加密函数所在的 js 文件,通常再调试模式下选取登录元素,搜索使用的函数信息;
  2. 通过检查推导调用关系找到最终使用的加密 js 文件;
  3. 将加密 js 文件下载到本地;
  4. 利用 jsEncrypter 的 js 摸板加载使用的加密函数;
  5. 使用 phantomjs 加载 jsEncrypter 的 js 摸板;
  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("[!] ^_^");
    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){
        //console.log('[Error]'+e.message+' happen '+e.line+'line');
        console.log('\n-----------------Error Info--------------------')
        var fullMessage = "Message: "+e.toString() + ':'+ e.line;
        for (var p in e) {
            fullMessage += "\n" + p.toUpperCase() + ": " + e[p];
        } 
        console.log(fullMessage);
        console.log('---------------------------------------------')
        console.log('[*] phantomJS exit!')
        phantom.exit();
    }   
});

效果

4.2 Hydra

项目地址:
https://github.com/vanhauser-thc/thc-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/

hydra 爆破 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."

4.3 超级弱口令检查工具

项目地址:https://github.com/shack2/SNETCracker

图形界面

5 验证码处理

5.1 Burp reCAPTCHA

项目地址:https://github.com/bit4woo/reCAPTCHA

利用第三方识别服务,效果

5.2 脚本爆破

最好是寻找不用验证码的登录入口,可能是手机端的登录入口,老的登录入口、小程序、APP 等的登录入口,最终没办法考虑自写脚本爆破。

几种方式:

  1. 利用图像识别接口,效果好费用高;
  2. 机器学习,效果较好,训练时间长;
  3. 利用 tesserocr,不依赖服务端,效果差些,如果训练的话,效果会好些。

可以参考:

点击收藏 | 7 关注 | 2
登录 后跟帖