信息收集之社工字典
本次文章依然是由八戒哥哥投稿,如果大家想来七夜安全博客投稿,可以后台联系我们哈。如果文章不错,我就找七夜要几个鹅厂公仔送给大家。
字典项目
对于字典的生成,推荐一个开源项目:https://github.com/LandGrey/pydictor/,这个项目可以帮助我们快速生成爆破字典。
(1) 安装
git clone --depth=1 --branch=master https://www.github.com/landgrey/pydictor.git
cd pydictor/
chmod +x pydictor.py
python pydictor.py:
(2) 典型场景
1. 基础字典
-base 可以指定密码的取值范围,dLc 代表着 [0-9 a-z A-Z],具体如下所示:
-base Type Choose from (d, L, c, dL, dc, Lc, dLc)
d digital [0 - 9]
L lowercase letters [a - z]
c capital letters [A - Z]
dL Mix d and L [0-9 a-z]
dc Mix d and c [0-9 A-Z]
Lc Mix L and c [a-z A-Z]
dLc Mix d, L and dL [0-9 a-z A-Z]
生成长度为1~3的,包含 数字,大小写字母的字典:
python pydictor.py -base dLc --len 1 3 -o /awesome/pwd
2. 自定义字符集字典
-char 可以指定生成密码的数据源,也就是使用哪些数据生成密码,--tail 指定生成密码的后缀:
python pydictor.py -char "asdf123._@ " --len 1 3 --tail @site.com
3. 排列组合字典
通过排列组合的方式生成字典,通过 -chunk 指定多个参与排列的数据。--head 指定生成内容的前缀,--encode会对生成的数据进行编码。
python pydictor.py -chunk abc 123 '!@#' @ . _ " " --head a --tail @pass --encode md5
4. 字典合并
python pydictor.py -tool combiner /my/mess/dir
5. 字典比较
python pydictor.py -tool comparer big.txt small.txt
6. 合并去重
python pydictor.py -tool uniqbiner /my/all/dict/
7. 字典去重
python pydictor.py -tool uniqifer /tmp/dicts.txt --output /tmp/uniq.txt
8. 多字典文件组合
python pydictor.py -tool hybrider heads.txt some_others.txt tails.txt
更多的使用方式,大家可以去项目主页看一下具体用法,或者直接学习pydictor的options参数。
https://github.com/LandGrey/pydictor/blob/master/README_CN.md
https://github.com/LandGrey/pydictor/blob/master/docs/doc/usage.md
(3) 社工字典
最后的社工字典,我要重点说一下,这个是我比较喜欢的功能,在渗透测试中非常有用。上面的字典生成方式,没有针对目标本身进行生成,具有普遍性,从而导致无法精准打击目标。社工字典的方式,通过我们输入目标的一些信息,可以针对这个目标生成定制化的字典。
python pydictor.py --sedb
_ _ _
_ __ _ _ __| (_) ___| |_ ___ _ __
| '_ | | | |/ _` | |/ __| __/ _ | '__|
| |_) | |_| | (_| | | (__| || (_) | |
| .__/ __, |__,_|_|___|_____/|_|
|_| |___/
Social Engineering Dictionary Builder
Build by LandGrey
----------------------------[ command ]----------------------------
[+]help desc [+]exit/quit [+]clear/cls
[+]show option [+]set option arguments [+]rm option
[+]len minlen maxlen [+]head prefix [+]tail suffix
[+]encode type [+]occur L d s [+]types L d s
[+]regex string [+]level code [+]leet code
[+]output directory [+]run
----------------------------[ option ]----------------------------
[+]cname [+]ename [+]sname
[+]birth [+]usedpwd [+]phone
[+]uphone [+]hphone [+]email
[+]postcode [+]nickname [+]idcard
[+]jobnum [+]otherdate [+]usedchar
pydictor SEDB>>
假如我对目标的已知信息如下,包括 中文名,英文名,手机号,生日,email,宠物名字,曾经用过的密码等。
information items |
value |
---|---|
chinese name |
李伟 |
pinyin name |
liwei |
english name |
zwell |
birthday |
19880916 |
used password |
liwei123456. |
used password |
liwei@19880916 |
used password |
abc123456 |
phone number |
18852006666 |
email account |
33125500@qq.com |
email account |
13561207878@163.com |
pet name |
tiger |
我们根据这些信息,通过 pydictor --sedb功能设置参数:
python pydictor.py --sedb
set cname liwei
set ename zwell
set birth 19880916
set usedpwd liwei123456. liwei@19880916 lw19880916_123
set phone 18852006666
set email 33125500@qq.com
set email 13561207878@163.com
set usedchar tiger
通过show命令查看设置的参数,如果参数设置没有问题,最后运行run即可生成字典。
如果你认为生成的密码还不够,可以和自己收集的弱口令进行随机排列组合,扩大命中率。
- 使用Swagger2Markup实现API文档的静态部署(二):Markdown和Confluence
- Dubbo官方的Starter发布1.0.0测试版,与Spring Boot的结合将更加自然
- spring-boot-starter-swagger 1.2.0.RELEASE:新增分组配置功能
- 领域驱动设计
- Spring Boot中使用JavaMailSender发送邮件
- Spring Boot的应用限流
- Spring Cloud构建微服务架构:服务网关(过滤器)【Dalston版】
- 虚拟机类加载机制
- 深入理解JVM垃圾收集机制(JDK1.8)
- 你真的懂let和const吗?
- MYSQL GTID使用运维介绍
- MongoDB系列一(查询).
- Angular CLI 简介
- 编程思想 之「接口、内部类」
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 用 Python 写一个颜值测试小工具
- 当 Python 遇到微信
- CenterNet之loss计算代码解析
- 爬取林丹和赵雅淇的微博评论,看看网友都说了些什么
- 静默安装单机Oracle数据库软件
- 如何用 Python 生成炫酷二维码
- 一个在交流群里讨论过两轮的问题,答案竟然跟一个 PEP 有关
- Python 函数为什么会默认返回 None?
- 潘粤明的《龙岭迷窟》到底怎么样?我用 Python 得出了一些结论!
- [译]按照EIP-712规范签名完成委托和投票
- 更好Solidity合约调试工具: console.log
- 发现了合自己胃口的公众号,但文章太多翻来翻去真麻烦,还好我学了 Python
- 用 Python 下载抖音无水印视频
- 《民国奇探》的弹幕有点逗比,用 Python 爬下来看看
- MySQL information_schema详解 PARTITIONS