渗透测试工具——密码攻击工具

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

hashcat -a0 -m 0 e10adc3949ba59abbe56e057f20f883e /usr/share/john/password.lst 

密码存储的基本方法

在数据库中,有几种常见的密码存储方法。其中,明文存储是将用户的密码以普通文本的方式保存在数据库字段中。这种方法对用户来说很方便,但安全性最低。因为所有的密码都以明文形式保存,如果数据库受到黑客攻击(被”脱库”),黑客将很容易获得用户的密码。

另一种方法是加密存储,通常使用对称加密方法。该方法使用系统密钥对所有用户的密码进行加密。然而,这种方法的关键在于系统密钥的安全性。如果系统密钥泄露,所有用户的密码将变得不安全。

还有一种常见的方法是Hash存储。它利用单向散列函数对用户的密码进行运算,得到一个Hash值(指纹),然后将其存储在数据库中。与加密存储方法相比,Hash存储的好处是不需要存储和保护系统密钥。此外,攻击者无法通过Hash值逆向计算出用户密码的明文。因此,目前最常用的密码存储方法是Hash存储。

Hash函数H(x)的特性

Hash函数具有以下特性:

  1. 输入相同的数据,输出的Hash值始终相同。
  2. 输入不同的数据,输出的Hash值几乎肯定不同。
  3. Hash值的长度是固定的。
  4. 即使输入数据的长度发生微小变化,输出的Hash值也会发生巨大变化。

常用的Hash函数(算法)有MD5、SHA1、SHA2等。

密码攻击的概念

密码攻击是指在已经获取目标密码的Hash值或加密后的密文的情况下,利用某种方式还原出目标密码的明文的过程。

常见的密码攻击方法包括:

  1. 暴力攻击(Brute Force Attack):尝试所有可能的密码组合,直到找到匹配的密码。
  2. 字典攻击(Dictionary Attack):使用预先准备好的密码字典,逐个尝试其中的密码。
  3. 彩虹表攻击(Rainbow Table Attack):使用预先计算好的彩虹表,通过查找表中的Hash值来找到对应的密码。

为了抵御字典和彩虹表攻击,可以使用哈希加盐法(HASH+SALT)。

Hashcat简介

Hashcat是一款强大的密码破解工具,可以用于破解各种类型的Hash值。在Kali中,可以通过启动Hashcat来使用它。

Hashcat常用参数命令功能:

  • -a:指定破解模式。
  • -m:指定Hash类型(默认为MD5)。
  • -o:将输出结果存储到指定的文件中。
  • –force:忽略警告信息。
  • –show:仅显示已经破解的Hash及其对应的明文。
  • –increment:启用增量破解模式,可以在指定的密码长度范围内执行破解过程。
  • –increment-min:密码的最小长度,与increment模式一起使用。
  • –increment-max:密码的最大长度,与increment模式一起使用。
  • –outfile-format:指定破解结果的输出格式,默认为3。
  • –username:忽略Hash文件中的指定用户名,在破解Linux系统用户密码Hash时可能会用到。
  • –remove:删除已被成功破解的Hash。
  • -r:使用自定义破解规则。

Hashcat的破解模式(用-a参数指定)命令功能:

  • -a 0:Straight(字典破解)。
  • -a 1:Combination(组合破解)。
  • -a 3:Brute-force(掩码暴力破解)。
  • -a 6:Hybrid Wordlist + Mask(字典+掩码破解)。
  • -a 7:Hybrid Mask + Wordlist(掩码+字典破解)。

Hashcat的Hash类型(用-m参数指定)命令类型:

  • -m 900:MD4。
  • -m 0:MD5。
  • -m 100:SHA1。
  • -m 1300:SHA2-224。
  • -m 1400:SHA2-256。
  • -m 10800:SHA2-384。
  • -m 1700:SHA2-512。
  • -m 10:MD5($pass.$salt)。
  • -m 20:MD5($salt.$pass)。
  • -m 3800:MD5($salt.$pass.$salt)。
  • -m 3000:LM。
  • -m 1000:NTLM。

Hashcat的掩码字符集命令功能:

  • 小写字母(abcdefghijklmnopqrstuvwxyz)。
  • 大写字母(ABCDEFGHIJKLMNOPQRSTUVWXYZ)。
  • 十进制数字(0123456789)。
  • 十六进制数字,字母小写(0123456789abcdef)。
  • 十六进制数字,字母大写(0123456789ABCDEF)。
  • 特殊字符(!”#$%&'()*+.-./:;?@[]^_’{|}~)。
  • 相当于?I?u?d?s,即键盘上所有可见的字符。
  • 0x00 – 0xff。

Hashcat掩码运用实例:

  • 八位数字密码。
  • 八位未知密码。
  • 前四位为大写字母,后四位为数字。
  • 前三个字符未知,中间为admin,后三位未知。
  • 6-8位数字密码。
  • 6-8位数字+小写字母密码。

Hashcat使用实例——字典破解(-a 0):

使用单个字典对经过MD5算法运算后的Hash值进行破解。

hashdump

Hashcat使用实例——掩码暴力破解(-a 3):

步骤1:利用漏洞ms17 010攻击靶机并进入meterpreter模块。详细教程在渗透测试工具——Metasploit_.SYS.的博客-CSDN博客。

步骤2:在meterpreter提示符中输入以下命令获取系统账号密码的Hash值。

hashcat -a 3 -m 1000 75f1d23f3a2527c6bfaada3e93b32a8b ?d?d?d
hydra -l admin -P /usr/share/john/password.lst  ftp://192.168.147.132

步骤7:连续输入两次exit退出meterpreter和msf,在终端下输入以下命令,利用Hashcat对获取的Hash值进行暴力破解。其中,-m 1000表示Hash类型为NTLM,掩码?d?d?d表示破解的对象为3位十进制数字。

提示:使用Hashcat进行密码攻击的关键是了解Hashcat的使用方法。

Hydra的使用

Hydra是另一款常用的密码破解工具,可以用于爆破各种协议的用户名和密码。在Kali中,可以使用Hydra进行密码攻击。

Hydra常用功能选项(参数)说明:

  • -h:显示帮助信息。

选项功能:

  • -I:指定单个用户名,适用于在已知用户名的情况下爆破密码。
  • -L:指定多个用户名,参数值为存储用户名的文件(字典)的路径(建议使用绝对路径)。
  • -p:指定单个密码,适用于在已知密码的情况下爆破用户名。
  • -P:指定多个密码,参数值为存储密码的文件(字典)的路径(建议使用绝对路径)。
  • -C:当用户名和密码存储在同一个文件中时使用此参数。注意:文件(字典)的格式必须为”用户名:密码”。
  • -M:指定多个攻击目标,此参数为存储攻击目标的文件路径(建议使用绝对路径)。注意:列表文件的格式必须为”地址:端口”。
  • -S:指定端口,适用于攻击目标端口非默认的情况,例如http服务使用非80端口。
  • -t:指定爆破时的任务数量(可以理解为线程数),默认为16。
  • -v/-V:显示爆破的详细信息。
  • -o:将破解成功的结果输出到文件中。

Hydra支持破解的协议类型包括FTP、SSH、Telnet、HTTP等。

利用Hydra进行密码攻击的一般步骤:

  1. 选择目标:输入目标地址,可以是单独的IP、CIDR或存储在文件中的列表。
  2. 选择协议:输入需要爆破的协议,如ftp://等。
  3. 需要开始之前,探测服务检查参数,如果爆破需要加入额外的参数,则添加。
  4. 启动Hydra进行密码破解。

Hydra使用实例——爆破FTP服务器登录密码(已知用户名)。

hydra -L /usr/share/wordlists/rockyou.txt.gz  -P /usr/share/john/password.lst  ftp://192.168.147.132
hydra -L /root/password.txt -P /root/password.txt rdp://192.168.147.132 
crunch   [] [options]

Hydra使用实例——爆破FTP服务器的用户名和密码。

Hydra使用实例——爆破远程桌面服务的用户名和密码。

图形化的Hydra——Hydra-gtk。

Crunch的使用

Crunch是一款强大的密码生成工具,可以用于生成自定义的密码字典。在Kali中,可以使用Crunch进行密码生成。

Crunch命令格式:

crunch 6 6 123 -o /root/number.txt

命令参数说明:

  • min-len(必选):字符串的最小长度。
  • max-len(必选):字符串的最大长度。
  • charset string(可选):字符集设置,默认为小写字符集。
  • options(可选):选项参数。

Crunch常用选项参数:

  • -b:指定文件输出的大小,避免字典文件过大。
  • -C:指定文件输出的行数,即包含密码的个数。
  • -d:限制相同元素出现的次数。
  • -e:定义停止字符,即到该字符串就停止生成。
  • -i:改变输出格式,即aaa,aab -> aaa,baa。
  • -o:将密码保存到指定文件。
  • -p:指定元素以组合的方式进行。
  • -q:读取密码文件,即读取pass.txt。
  • -s:指定起始字符串。
  • -t:指定密码输出的格式。%代表数字,^代表特殊符号,@代表小写字符,,代表大写字符。
  • -f:调用库文件/usr/share/crunch/charset.lst。

Crunch使用实例:

生成长度为6的以123元素为组合的字典集,并输出到/root/number.txt。

crunch 4 4 -t %^@, -o /root/pass.txt

生成长度为4的字典集,第一位为数字,第二位为特殊字符,第三位是小写字符,第四位是大写字符,并输出到/root/pass.txt。

以charset.lst密码库的mixalpha-numeric模块为字符集,以3a2b为开始字符,生成长度为4的字典集,输出到/root/w.txt。

crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha-numeric -o /root/w.txt -s 3a2b

赞(0)