[渗透测试]:口令破解

[渗透测试]:口令破解

 
口令破解
 
口令安全威胁
 
*口令安全概述
 
现在很多地方以用户名(账户)和口令(密码)作为鉴权的方式,口令(密码)就意味着访问权限。例如网站后台、数据库、服务器、个人电脑、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
是一种创建密码字典的工具,按照指定的规则生成密码字典,可以灵活的定制自己的字典文件。
 
使用crunch 工具生成的密码可以输出到屏幕,保存文件或另一个程序。尤其是渗透测试需要爆破的时候,字典的编排等直接影响到我们的爆破速度,对整个渗透测试流程起着十分重要的作用。
 
    安装
 
    kali
 
    crunch 为kali自带工具
 
    [crunch]
 
    查看帮助
 
    [man crunch > crunch.help]
 
    命令格式
 
    crunch <min-len> <max-len> [<charset string>] [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 目录
 
常用变量名字典
 
常用文件名字典
 
弱口令字典
 
 
*Windows口令破解
 
  • windows口令远程爆破
[hydra -l administrator -P ../dic/pwd.dic 192.168.1.200 smb]
 
  • windows账户hash值破解
除了可以远程爆破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 口令破解
 
linux 口令破解,也分远程破解和和本地破解。
 
远程破解主要是爆破ssh 服务,属于在线密码攻击。
 
本地破解需要拿到linux 的shadow 文件,进行hash 值破解,属于离线密码攻击
 
  • 破解ssh 服务
我们使用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]
 
  • 本地shadow 文件破解
我们可以使用john 工具,破解shadow 密码文件。
 
john 也是自动集成在kali 中。
 
john 破解的时候也需要准备一个字典。
 
[john shadow]
 
*网络服务口令破解
 
在渗透测试中,我们同样会对服务的口令进行审计
 
  • 破解MSSQL 口令
[hydra -l sa -P /root/dic/test_pwd.dic 192.168.1.150 mssql -vV]
 
  • 破解RDP 口令
[hydra -l administrator -P /root/dic/test_pwd.dic 192.168.1.150 rdp -vV]
 
  • 破解FTP 口令
[hydra -L /root/dic/test_user.dic -P /root/dic/test_pwd.dic 192.168.1.150 ftp -vV]
 
 
posted @ 2021-06-23 10:53  jpSpaceX  阅读(801)  评论(0编辑  收藏  举报