文章目录
弱口令
含义
弱口令( weak password ) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令。
公共弱口令
公共弱口令就是常见的密码,也就是根据大量的密码数据统计得出的出现频率较高的弱口令。
条件弱口令
往往与这个人的个人信息(姓名,生日,手机号,特殊昵称,爱好,社交软件账号,常用 username ,邮箱…),关系成员(家庭成员,男女朋友…),所处环境(车牌号,公司信息比如公司名称,公司成立时间或地点,公司 domain 等…),还有特殊的指定字符(数字,单词…)等相关。
弱口令实例
简单数字组合: 000000 111111 11111111 112233 123123
顺序字符组合:abcdef abcabc abc123 a1b2c3 aaa111
临近字符组合:123qwe Qwerty qweasd
特殊含义组合:admin password p@ssword Iloveyou 5201314
弱口令原因
与个人习惯、意识相关,为了避免忘记密码,使用一个非常容易记住的密码,或者是直接采用系统的默认密码等。相关的安全意识不够,总认为不会有人会猜到我这个弱口令的。
暴力破解
暴力破解的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的!
密码暴力破解
指用枚举的方式来爆破用户信息。具体的流程是用事先收集好的数据集成一个字典,然后用字典不断进行枚举,直到枚举成功。
暴力破解工具
Burpsuite
Hydra
Metasploit
SNETCracker
暴力破解字典
创建自己的字典
- Crunch工具在Linux下自动生成字典文件
crunch 460123456789ABCDEF -o crunch1.txt#长度从4到6用哪个字母crunch 44-f /usr/share/crunch/charset.lst mixalpha#只有长度4使用字符集mixalpha@ :小写字母字符, :大写字母字符% :数字字符^ :特殊字符,包括空格crunch 77-t ,@@^^%%
- 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
#对网站https://example.com 进行深度为2的爬行,生成最小长度为5的字典words.txt
- pydictor
使用方法,在pydictor.py的目录下打开终端,执行命令:pydictor.py --sedb
在执行show options查看条件
配合 set … 设置条件
最终run生成字典
暴力破解场景
- 不含验证码后台
- 不失效的验证码
- 各种常见应用程序,比如: phpmyadmin 、 tomcat 、 mysql
- 各种协议:ftp、ssh、rdp
- 爆破大马
实际利用
Tomcat弱口令
由于管理员安全意识不足,设置了弱口令导致了可以被爆破从而部署 war 包
getshell 。(需要注意的是tomcat 6版本之后针对爆破设置了锁定机制,爆破超过
一定频率后账户会被锁定,即使账密正确也无法登录)
- 刚进入靶场页面
环境分析
随意点击一个模块进入登录页面:
发送 登录请求后,使用burp抓包
将数据包发送到Repeater模块分析
对
Authorization: Basic YWRtaW46MTIzNDU2
进行选项查看
得到 Authorization: Basic admin:123456,admin和123456正是我在浏览器请求时使用的用户名和密码,但是使用了base64 加密,并且在用户名和密码之间增加了冒号分割
爆破思路
先从用户名爆破文件里面导入用户名,再在每一个用户名后面加一个冒号,最后再在每一个冒号后面添加所有可能的密码,再把这三个的结合体使用 base64 加密后发送给服务器,逐个尝试得到正确账号密码。也就是说我们需要给 burpsuit 导入三样东西,即:用户名表、冒号、密码表。
- 发送到Intruder模块,开始构造payload
- payload类型选择使用自定义迭代
- 这个“1”对应的是冒号前面的用户名
- 这个“2”对应的只有冒号 “:”
- 这个“3”对应的就是冒号后面的密码
- 设置base64编码
- 开始爆破
爆破后查看响应数据包的长度可以得到一个不同的数据包
用户名:tomcat
密码:tomcat
后台Getshell
登录到后台后可以通过部署 war 包进行 getshell
- war包原理
war 包是用来进行 Web 开发时一个网站项目下的所有代码,包括前台 HTML/CSS/JS 代 码,以及后台 JavaWeb 的代码。当开发人员开发完毕时,就会将源码打包给测试人员测试,测试完后若要发布也会打包成 War 包进行发布。 War 包可以放在 Tomcat 下的webapps 或 word 目录,当 Tomcat 服务器启动时, War 包即会随之被解压得到源代码并自动部署。
- war包生成
需要在前端代码文件的当前目录下打开终端,并且执行命令进行生成war包
jar -cvf mm.war *.jsp
通过tomcat管理员后台直接上传war包并部署,使用蚁剑连接,getshell。
at 下的webapps 或 word 目录,当 Tomcat 服务器启动时, War 包即会随之被解压得到源代码并自动部署。
版权归原作者 Zst4rs 所有, 如有侵权,请联系我们删除。