弱口令扫描介绍

2019-09-03 约 1633 字 预计阅读 4 分钟

声明:本文 【弱口令扫描介绍】 由作者 白河愁 于 2019-09-03 09:06:00 首发 先知社区 曾经 浏览数 145 次

感谢 白河愁 的辛苦付出!

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,不依赖服务端,效果差些,如果训练的话,效果会好些。

可以参考:

关键词:[‘渗透测试’, ‘渗透测试’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now