引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足;对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以我就想到了通过写博客(课程笔记)的形式去学习它,虽然写博客会让我多花几倍的时间去学习它,但是当我完成一篇博客所获得的成就感和你们对于我的认同感,让我很满足,能够鼓励我一天天的坚持下去,也希望和我一起学习本期视频的"同道"们也能给一直坚持下去。我们大家一起加油。由于作者本身也是网络信息安全小白,大部分知识点都是初次接触,出现对其理解不深入,不完整,甚至也会出现错误有问题的地方,希望大家谅解、留言提出指正,同时也欢迎大家来找我一起交流学习!!!
往期博客:
第一阶段:
[网络安全学习篇1]:windowsxp、windows2003、windows7、windows2008系统部署(千峰网络安全视频笔记)
[网络安全学习篇24]:漏洞与木马(千峰网络安全视频笔记 p117-p118)
第二阶段:
[网络安全学习篇25]:初识Linux及简单命令
[网络安全学习篇32]:Linux脚本编写汇总及应用
第三阶段:
[网络安全学习篇33]:0基础带你入门python
[网络安全学习篇38]:基础环境搭建
[网络安全学习篇39]:HTML标签基础 常用的标签 表格
[网络安全学习篇42]:靶场环境搭建(ubuntu系统安装优化及vulhub安装)
[网络安全学习篇43]:PHP基础+变量 运算符 流程控制语句
[网络安全学习篇48]:JS 基础 函数 事件)
第四阶段:
[网络安全学习篇49]:渗透测试方法论
[网络安全学习篇50]:Web架构安全分析
[网络安全学习篇51]:信息收集
[网络安全学习篇52]:扫描技术
[网络安全学习篇53]:口令破解(本篇)
下期博文:
[网络安全学习篇54]:SQL注入
目录
口令破解
*口令安全概述
*口令安全现状
*破解方式
·在线破解方式
·离线破解方式
*暴力破解
*字典破解
·弱口令字典
·社工字典
·字符集字典
·crunch
·密码字典
·简单介绍字典
*Windows口令破解
·windows口令远程爆破
·windows账户hash值破解
*linux 口令破解
·破解ssh 服务
·本地shadow 文件破解
*网络服务口令破解
·破解MSSQL 口令
·破解RDP 口令
·破解FTP 口令
口令安全威胁
现在很多地方以用户名(账户)和口令(密码)作为鉴权的方式,口令(密码)就意味着访问权限。例如网站后台、数据库、服务器、个人电脑、QQ、邮箱等等。
·弱口令
类似123456、654321、admin123 等这些常见的弱密码
·默认口令
很多应用或者系统存在默认口令。比如phpstudy 的mysql 数据库默认账密[root/root], Tomcat 管理控制台默认账密[tomcat/tomcat]等。
·明文传输
比如HTTP|FTP|TELNET
等服务,在网络中传输的数据流都是明文的,包括口令认证信息等。这样的服务,有嗅探的风险。
账密,需要认证
hydra
---------------
-l |
指定一个用户名 |
-p |
指定一个密码 |
-P |
指定密码字典 |
-L |
指定用户名字典 |
-vV |
显示爆破细节 |
-o |
保存爆破结果 |
-f |
找到正确的密码就停止爆破 |
-t |
线程 |
|
-e | n | null |
s | same | |
r | 反向 |
---------------
用户名未知,密码未知
用户名已知,密码未知
用户名未知,密码已知
密文,还原成明文的过程
暴力破解就是利用所有可能的字符组密码,去尝试破解。这是最原始,粗暴的破解方法,根据运算能力,如果能够承受的起时间成本的话,最终会爆破出密码。下表根据不同的位数生成密码的空间大小
字符集 |
密码位数 |
密码空间 |
[0-9] |
8 位 |
10^8=100000000 |
[0-9][a-z] |
8位 |
36^8=2821109907456 |
[0-9][a-z] |
8位 |
?? |
工具:crunch(kali自带)
[crunch 1 8 1234567890abcdefghijklmnopqrstuvwxyz]
---------------
Crunch will now generate the following amount of data: 26032511341944 bytes
24826537 MB
24244 GB
23 TB
0 PB
------
如果 能通过比较合理的条件,删选或者滤掉一些全字符组合内容,就会打幅度降低爆破的成本。我们把筛选出来的密码组成特定的字典。用字典爆破密码也是可以的,但是这样可能会漏掉真正的密码。密码字典大致分为以下几大类
比如123456,admin 等这样的默认口令或弱口令
人在设置密码的时候,往往为了便于记忆,密码的内容和组合会与个人信息有关,比如常见的密码组合“名字+生日”
[zhangsan1992]
社工字典更具针对性,准确率也比较高。
我们可以根据个人信息生成密码字典。可以使用cupp工具
但是cupp工具 是国外人开发的
-------------
apt-get update 更新软件列表
apt-get install cupp
cupp -i
-------------
[zhangsan|ajest|19920701|dnsec|123]
如果能确定密码的字符集合,也将大大降低爆破的成本
是一种创建密码字典的工具,按照指定的规则生成密码字典,可以灵活的定制自己的字典文件。
使用crunch 工具生成的密码可以输出到屏幕,保存文件或另一个程序。尤其是渗透测试需要爆破的时候,字典的编排等直接影响到我们的爆破速度,对整个渗透测试流程起着十分重要的作用。
安装
kali
crunch 为kali自带工具
[crunch]
查看帮助
[man crunch > crunch.help]
命令格式
crunch
[ ] [options] 参数说明
min-len
设定密码的最小长度
max-len
设定密码的最大长度
charset string
字符集
oprions
-b
指定文件输出的大小,避免字典文件过大
-c
指定文件输出的行数,记包含密码的个数
-d
限制相同元素出现的次数
-e
定义停止字符,即到该字符串就停止生成
-f
调用库文件(/usr/share/crunch/charset.lst)
-i
改变输出格式,即aaa,aab -> aaa,baa
-o
将密码保存到指定文件
-q
读取密码文件,即读取pass.txt
-r
定义重复一个字符串就重新开始
-s
指定一个开始的字符
-t
指定密码输出的格式
-u
禁止打印百分比
-z
压缩生成的字典文件,支持gzip,bzip2,lzma,7z
-l
生成特殊字符
-p
指定生成元素
查看库文件
[cat /usr/share/crunch/charset.lst]
特殊字符
%
代表数字
^
代表特殊符号
@
代表小写字母
,
代表大写字母
生成密码字典
生成1-8位密码字典,字符集合位小写字母,从a 开始到zzzzzzzz结束
[crunch 1 8]
生成1-6位的密码字典,字符集合位[abcdefg],从a 开始到gggggg结束
[crunch 1 6 abcdefg]
生成3 位密码字典,字符集合[ab ],从a 开始到 [ ]
生成指定字符串,比如生日的日期
[crunch 8 8 -t 199307%% -e 19930731]
生成元素的组合,比如123.com
[crunch 7 7 -t %%%.com -s 111.com -e 123.com]
在字典中输出特殊字符
[crunch 3 3 abc -t @@@ -l @aa]
以元素组合生成字典
[zhangsan|1993|0701]
[CRUNCH 4 4 -P AJEST 1992 0701]
保存字典文件
[crunch 11 11 -t 1700010%%%% -b 20mb -o START]
自定义字符集合
将自带字典进行备份
创建自定义字符集合[*.com] 字典文件
[crunch 5 5 -f charset.lst test -t @.com]
子域名字典
默认账号密码字典
文件路径字典
日志文件
Web 目录
常用变量名字典
常用文件名字典
弱口令字典
[hydra -l administrator -P ../dic/pwd.dic 192.168.1.200 smb]
除了可以远程爆破windows密码,我们还可以从本地破解windows密码。
本地Windows 账户破解主要有两种方式
@ 从内存中读取windows 密码
我们可以用getpass 直接从Windows 系统内存中读取用户数据
@ Windows hash 值破解
Windows hash 值破解一共有两步操作。
首先我们使用QuarkPwDump 工具读取(导出)Windows 账户密码hash 值,
[C:\Users\Administrator\Desktop\QuarksPwDump.exe -dhl -t JOHN -o win2008.hash]
然后在使用 john 工具破解
[john win2k8.hash --format=NT --wordlist=/root/dic/winPass.dic]
[john --show win2k8.hash --format=NT]
linux 口令破解,也分远程破解和和本地破解。
远程破解主要是爆破ssh 服务,属于在线密码攻击。
本地破解需要拿到linux 的shadow 文件,进行hash 值破解,属于离线密码攻击
我们使用hydra 攻击破解ssh 服务,hydra 攻击已经自动集成在kali 虚拟机中。
命令如下:
[hydra -l root -P ../dic/pwd.dic 192.168.1.150 ssh]
[hydra -L /root/dic/user.dic -P /root/dic/winPass.dic 127.0.0.1 ssh -e nsr -vV -o 127.ssh]
我们可以使用john 工具,破解shadow 密码文件。
john 也是自动集成在kali 中。
john 破解的时候也需要准备一个字典。
[john shadow]
在渗透测试中,我们同样会对服务的口令进行审计
[hydra -l sa -P /root/dic/test_pwd.dic 192.168.1.150 mssql -vV]
[hydra -l administrator -P /root/dic/test_pwd.dic 192.168.1.150 rdp -vV]
[hydra -L /root/dic/test_user.dic -P /root/dic/test_pwd.dic 192.168.1.150 ftp -vV]
这是我从整理出来的本节课使用到的软件包。
链接:https://pan.baidu.com/s/1vZwxhejojJkhFCP9tRl8mg
提取码:ze1m
参考文献:
千峰网络信息安全开源课程