弱口令和暴力破解
弱口令
弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含 简单数字和字母的口令。
公共弱口令
公共弱口令就是常见的密码,也就是根据大量的密码数据统计得出的出现频率较高的
弱口令。
条件弱口令
往往与这个人的个人信息(姓名,生日,手机号,特殊昵称,爱好,社交软件账号,常用username,邮箱…),关系成员(家庭成员,男女朋友…),所处环境(车牌号,公司信息比如公司名称,公司成立时间或地点,公司的指定字符(数字,单词…)等相关
弱口令示例
简单数字组合: 000000 111111 domain等...),还有特殊 11111111 112233 123123
顺序字符组合:abcdef abcabc abc123 a1b2c3 aaa111
临近字符组合:123qwe Qwerty qweasd
特殊含义组合:admin password p@ssword Iloveyou 5201314
弱口令原因
与个人习惯、意识相关,为了避免忘记密码,使用一个非常容易记住的密码,或者是直接采用系统的默认密码等。相关的安全意识不够,总认为不会有人会猜到我这个弱口令的。
暴力破解
顾名思义,暴力破解的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的!
但实际发送的数据并不像想象中的那样简单——“ 每次只向服务器发送用户名和密码字段即可!”,实际情况是每次发送的数据都必须要封装成完整的 HTTP 数据包才能被服务器接收。但是你不可能一个一个去手动构造数据包,所以在实施暴力破解之前,我们只需要先去获取构造HTTP包所需要的参数,然后扔给暴力破解软件构造工具数据包,然后实施攻击就可以了。Web暴力破解通常用在,已知部分信息,尝试爆破网站后台,为下一步的渗透测试做准备。
密码破解
密码破解介绍
指用枚举的方式来爆破用户信息。具体的流程是用事先收集好的数据集成一个字典,然后用字典不断进行枚举,直到枚举成功
暴力破解工具
Burpsuite
Hydra
Metasploit
SNETCracker
https://github.com/shack2/SNETCracker
暴力破解字典
Default Password
历年弱口令top100,github上搜索弱口令字典
https://github.com/k8gege/PasswordDic
https://github.com/danielmiessler/SecLists
https://192-168-1-1ip.mobi/default-router-passwords-list/
https://github.com/danielmiessler/SecLists/blob/master/Passwords/Defaul t-Credentials/default-passwords.csv
https://github.com/Dormidera/WordList-Compendium
创建自定义字典
1. Crunch
crunch 4 6 0123456789ABCDEF -o crunch1.txt
#长度从4到6用哪个字母
crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha
#只有长度4使用字符集mixalpha
@ :小写字母字符
, :大写字母字符
% :数字字符
^ :特殊字符,包括空格
crunch 7 7 -t ,@@^^%%
2. Cewl
ruby编写的应用程序,可以将给定的URL爬行到指定的深度,能有选择的跟随外部链接,并返回一个单词列表,这些单词可用于密码破解。
cewl [options] <url>
Options:
-h,--help:显示帮助。
-k,-keep:保留下载的文件。
-d <x>,-depth <x>:到达蜘蛛的深度,默认为2。
-m,--min_word_length:最小字长,默认为3。
-o,--offsite:让蜘蛛访问其他站点。
-w,--write:将输出写入文件。
-u,--ua <agent>:要发送的用户代理。
-n,--no-words:不输出单词表。
--with-numbers:接受带有数字以及字母
-a,--meta的单词:包括元数据。
--meta_file文件:元数据的输出文件。
-e,--email:包括电子邮件地址。
--email_file <文件>:电子邮件地址的输出文件。
--meta-temp-dir <dir>:exiftool解析文件时使用的临时目录,默认
为/ tmp。
-c,--count:显示找到的每个单词的计数。
-v,--verbose:详细。
--debug:额外的调试信息。
Authentication
--auth_type:摘要或基本。
--auth_user:身份验证用户名。
--auth_pass:验证密码。
proxy
--proxy_host:代理主机。
--proxy_port:代理端口,默认为8080
--proxy_username:代理的用户名(如果需要)。
--proxy_password:代理的密码(如果需要)。
header
--header,-H:格式为name:value-可以传递多个。
<url>:蜘蛛站点。
例子:
cewl -d 2 -m 5 -w words.txt https://example.com
3. pydictor
https://github.com/LandGrey/pydictor
暴力破解场景
1.不含验证码后台
2.不失效的验证码
3.各种常见应用程序,比如:phpmyadmin、tomcat、mysql
4.各种协议:ftp、ssh、rdp等
5.爆破大马
实际利用
Tomcat弱口令
由于管理员安全意识不足,设置了弱口令导致了可以被爆破从而部署
war包getshell。(需要注意的是tomcat 6版本之后针对爆破设置了锁定机制,爆破超过一定频率后账户会被锁定,即使账密正确也无法登录)
Tomcat发现
Tomcat默认页面
抓取登录包
如果tomcat默认页面更改或显示登录页面通过抓包分析:
发现其账户密码是经过base64加密的,组合为user:pass
Burpsuite爆破
使用burpsuit爆破的思路就是,先从用户名爆破文件里面导入用户名,再在每一个用户名后面加一个冒号,最后再在每一个冒号后面添加所有可能的密码,再把这三个的结合体使用base64加密后发送给服务器,逐个尝试得到正确账号密码。也就是说我们需要给burpsuit导入三样东西,即:用户名表、冒号、密码表。
将抓到的包发送到爆破模块。快捷键 ctrl+i
该模块会自动将等于号后面的值标记,右侧功能分别为:
add 添加标记
Clear 清除标记
auto 自动在等于号后面添加标记
refresh 刷新
attack type:攻击类型
sniper:一个字典对应一个参数值
battering ram:一个字典对应多个参数值(也就是不管选择爆破多少个参数值
都是使用同一个字典)
pitchfork:平行爆破(也就是字典一对应参数值一,字典二对应参数值二,爆破的次数取决于小的字典)
cluster bomb:交叉爆破(顾名思义,交叉爆破产生的字典非常庞大)
选定爆破参数值,进入到payloads值设置
payloads type
Simple list:简单字典
Runtim file:运行文件
Custom iterator:自定义迭代器
Character sub:字符串替换
填写完成 就可以攻击,具体的可以看百度
后台Getshell
登录到后台后可以通过部署war包进行getshell
什么是war包
war包是用来进行Web开发时一个网站项目下的所有代码,包括前台码,以及后台HTML/CSS/JS代JavaWeb的代码。当开发人员开发完毕时,就会将源码打包给测试人员测试,测试完后若要发布也会打包成/War包进行发布。War包可以放在Tomcat下的webapps或并自动部署。
war包制作方法
jar –cvf *.war *.jsp
爆破Mysql
这里使用超级弱口令检查工具,该工具包含许多爆破模块,支持
ssh,rdp,mysql等爆破。使用简单,直接导入IP及用户名密码字典就可以使用。
并且内置了许多字典
直接输入ip,也可以导入ip列表批量爆破,导入用户名及密码字典,选中服务,就可以得到用户名密码。
Hydra爆破Mysql
Hydra是一款开源的暴力破解工具,支持FTP、MSSQL、MySQL、PoP3、SSH等暴力破解
参数介绍
-l 指定用户名
-L 指定用户名字典
-p 指定密码
-P 指定密码字典
-C 使用冒号分隔,比如root:root
-M 指定目标列表文件
-f 在找到第一对登录名或密码的时候停止
MSF模块爆破SSH
use auxiliary/scanner/ssh/ssh_login
set RHOSTS 172.26.2.36
set USER_FILE /root/Desktop/tools/dic_username_ssh.txt
set PASS_FILE /root/Desktop/tools/pwd100.txt
这里metasploit在探测ssh弱口令时,如果发现存在,则会返回一个linux 行升级shell,注意此时不是meterpreter shell。接下来可以使用
sessions –u id进
验证码爆破
xp_CAPTCHA
使用xp_CAPTCHA识别验证码,进行密码爆破
Burp可以导入xp_CAPTCHA插件进行使用
可参考:
https://blog.csdn.net/weixin_55603171/article/details/141641512
https://juejin.cn/post/7469314243663593487
https://blog.csdn.net/weixin_62512865/article/details/144428528
https://blog.csdn.net/qq_66164763/article/details/144318080