一.弱口令
1. 基本概念
-
介绍:弱口令(weak password)是指那些容易被他人猜测或通过工具破解的密码。虽然弱口令没有严格的定义,但通常它指的是由简单的数字、字母、常用词语或规律性组合构成的密码。
-
特点:
- 密码容易被身边的人猜测或通过字典攻击、暴力破解工具破解。
- 多为用户为方便记忆所选用的简单数字、字母组合,缺乏足够的复杂性和随机性。
2. 公共弱口令
- 介绍:公共弱口令是指一些在社会中广泛使用并且频繁出现在密码统计数据中的常见密码。这类密码在用户中普遍使用,因此攻击者可以利用这些密码进行暴力破解,达到较高的成功率。
- 示例:123456、password、qwerty等。
3. 条件弱口令
-
介绍:条件弱口令指的是与个人信息、生活习惯等高度相关的密码。这类密码通常是用户根据自己的姓名、生日、社交网络账户、手机号等信息设置的,容易被知情者或攻击者通过简单猜测获得。
-
常见来源:
- 个人信息: 姓名、生日、手机号、特殊昵称、常用用户名、邮箱等。
- 家庭成员信息: 家庭成员的名字、生日等。
- 所处环境信息: 车牌号、公司名称、公司成立时间或地点、公司domain等。
- 特殊字符: 数字、字母组合等。
4. 弱口令示例
- 简单数字组合: 000000, 111111, 123123, 112233, 11111111
- 顺序字符组合: abcdef, abc123, a1b2c3, abcabc, aaa111
- 临近字符组合: 123qwe, qweasd, Qwerty
- 特殊含义组合: admin, password, Iloveyou, 5201314, p@ssword
5. 弱口令原因
-
弱口令的产生通常与以下几个因素有关:
- 个人习惯: 为了方便记住密码,用户往往使用简单、重复的数字或字母。
- 安全意识不足: 用户对密码安全缺乏足够的重视,认为自己设置的简单密码不会被攻击者猜到。
- 默认密码: 许多人直接使用系统或设备的默认密码,没有进行修改,导致密码易被破解。
6. 暴力破解
-
介绍:暴力破解(Brute Force Attack)是一种通过系统地枚举所有可能的密码来攻击目标系统的方式。攻击者通常会使用包含常见密码的字典,或尝试所有可能的字符组合。由于字典足够庞大或字符集足够广泛,理论上暴力破解能够成功,但实际情况往往更加复杂。
-
原理:
- 用户名和密码字典: 攻击者会利用包含常见密码的字典,逐一尝试登录。
- HTTP封装: 由于每次发送的数据需要封装成完整的HTTP数据包,因此在进行暴力破解时,攻击者需要先获取构造HTTP包所需的参数,利用暴力破解工具自动生成请求数据包,从而进行攻击。
-
应用场景:
- Web暴力破解: 攻击者已知部分信息(如网站后台地址、用户名等),利用暴力破解尝试爆破网站后台密码,为后续渗透测试或进一步攻击做准备。
二.破解方法
1. 密码破解介绍
-
介绍:密码破解是指通过枚举的方式尝试破解用户密码的过程。
- 收集目标用户相关信息,整合形成字典。
- 使用字典中的密码进行逐一尝试,直到找到正确密码。
- 破解成功后,利用获得的密码进行后续操作。
2. 常见暴力破解工具
-
BurpSuite Intruder模块
- 专业的渗透测试工具,支持自动化爆破。
- 可自定义请求参数和爆破逻辑,适用于Web应用的密码破解。
-
Kali自带的Hydra
- 一款功能强大的暴力破解工具,支持多种协议(如HTTP、FTP、SSH等)。
- 可利用字典对目标主机进行高效暴力破解。
-
SNETCracker弱口令破解工具
- 简单易用的弱口令破解工具,支持多协议(如RDP、MySQL、SSH等)。
- 工具地址:SNETCracker 下载链接
3. 暴力破解字典
-
常见的字典类型包括:
- Default Password:设备或系统的默认密码库。
- 历年弱口令Top100:基于大数据统计的常用弱口令合集。
- GitHub弱口令字典资源:在线开源的弱口令字典。
-
推荐资源:
- 密码字典集合(PasswordDic)
- 字典总汇(WordList-Compendium)
三.破解实例
1.Tomcat弱口令
由于管理员安全意识不足,设置了弱口令导致了可以被爆破从而部署war包getshell。(需要注意的是tomcat 6版本之后针对爆破设置了锁定机制,爆破超过一定频率后账户会被锁定,即使账密正确也无法登录)
A.Tomcat默认页面
-
B.抓取登录页面
-
点击 Manager App 弹出登录页面,打开bp进行抓包,发现账户密码经过 base64 加密
-
进行 base64 解密后,发现组合为admin:123456
C.BurpSuite爆破
-
将抓到的包发生到爆破模块。快捷键 Ctrl+i
- add:添加标记
- Clear:清除标记
- auto:自动在等于号后面添加标记
- refresh:刷新
-
配置爆破参数
-
攻击类型(Attack type)
- Sniper:一个参数对应一个字典。
- Battering ram:多个参数对应一个字典。
- Pitchfork:多个参数对应多个字典(平行爆破)
- Cluster bomb:多个参数对应多个字典(交叉爆破)
-
Payload type
- Simple list:简单字典
- Runtim file:运行文件
- Custom iterator:自定义迭代器
- Character sub:字符串替换
-
-
攻击类型选择Sniper,payload选择自定义迭代器
-
这里选用自定义迭代器,在1处输入用户名
-
在 2处 输入冒号
-
在 3处 输入密码
-
-
对Payload进行Base64编码,并关闭URL编码
-
开始爆破,选择 Start attack 进行爆破得到用户密码
2.爆破MySQL
-
介绍:这里使用超级弱口令检查工具,该工具包含许多爆破模块,支持ssh,rdp,mysql等爆破。使用简单,直接导入IP及用户名密码字典就可以使用。
-
3.验证码爆破
A.下载插件
-
下载插件:captcha-killer-modified-0.24.4-jdk14
-
安装插件:
-
B.服务安装(运行环境需python <= 3.9)
-
安装ddddocr
-
python -m pip install ddddocr -i https://mirrors.ustc.edu.cn/pypi/web/simple
-
-
安装ocr_api_server
-
项目地址:ocr_api_server: 使用ddddocr的最简api搭建项目,支持docker
-
进入ocr_api_server文件夹,打开命令行,依次执行以下命令
python -m pip install -r requirements.txt -i https://mirrors.ustc.edu.cn/pypi/web/simple
python -m pip install Pillow==9.5.0 -i https://mirrors.ustc.edu.cn/pypi/web/simple
-
启动ocr_api_server
-
python ocr_server.py --port 9898 --ocr
-
-
C.使用插件
-
获取验证码数据包,并将其发送到 captcha panel
-
获取验证码图片
-
配置验证码识别接口
-
接口URL:http://127.0.0.1:9898,填写你启动 ocr_api_server 所在的WEB服务
-
Request template:
POST /ocr/b64 HTTP/1.1 Host: 127.0.0.1:9898 User-Agent: python-requests/2.24.0 Accept-Encoding: gzip, deflate Accept: */* Connection: close Content-Length: 2540 <@BASE64><@IMG_RAW></@IMG_RAW></@BASE64>
-
-
D.爆破实例
-
将抓取到的登录请求发送到爆破模块,攻击类型选择 Positions ,并给要爆破的字段添加标记。
-
在Payloads选项卡下设置攻击Payload
-
-
-
在 Resource Pool 选项下设置线程和请求间隔(请求过快会导致验证码识别错误)
-
开始爆破,得到正确的账号密码