尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

网络安全——网络渗透测试(密码破译)

网络安全——网络渗透测试(密码破译) 密码破译1、密码及其安全性2、枚举法破解3、在线破译3.1、被动在线破译3.2、主动在线破译4、离线破译4.1、预计算的哈希值又称彩虹表4.2、制作彩虹表4.3、利用彩虹表破解密码5、非技术方法破译5.1、默认密码5.2、猜测密码5.3、网络钓鱼5.4、分析推理5.5、密码心理学密码是网络空间最基本的身份认证形式也是网络攻击的主要目标之一。可以说密码是否安全关系到整个网络的安全是网络安全的第一道防线。登录网络系统通常需要用户账号和密码如果用户密码遭到黑客破解将引起非常严重的后果例如身份盗窃、入侵破坏、窃取机密信息、网络银行的存款被转账等。因此提高密码安全意识、强化密码保护措施是十分重要的。在加强密码保护力度的同时了解密码破解的方法方能对症下药。对于一名渗透测试技术人员而言破解密码的能力也是一项必备技能因为它是获取网络系统访问权限的一种有效方式。1、密码及其安全性密码也称为口令password​是一种用来混淆信息的技术使用者希望将正常的可识别的信息转变为无法识别的信息但这种无法识别的信息部分是可以再加工并恢复和破解的。密码是一门科学其含义很丰富在此主要讨论用于登录网络系统的口令。密码应当易于记忆且难以猜测或破解。密码的安全性可以用密码强度来评价。密码强度是指一个密码被非授权用户或计算机破译的难度。密码强度通常用“弱”或“强”来形容。​“弱”和“强”是相对的不同的密码系统对密码强度有不同的要求。强密码是指独一无二且随机的密码不容易被猜测或破解。强密码应具备以下基本特征至少8个字符长不包含全部或部分用户的账户名至少包含大写字母、小写字母、数字以及键盘上的符号如、、#中的3类字符。弱密码是指易于被猜测或通过枚举法破解的密码包括短密码、常用密码、系统默认密码等。这些密码通常由一些可能被用作密码的词组成如字典里的单词、真实姓名或与用户名相关的词汇。一般情况下这些密码可以被快速破解。采用生日或者宠物的名字作为密码也是弱密码因为有可能被熟人轻易猜解。以下是一些虽然易于记忆但容易破解的弱密码包含字母、特殊字符和数字的密码如stud58、jun003liu。只包含数字的密码如195808。只包含特殊字符的密码如%*#。包含字母和数字的密码如meet56。只包含大写或小写字母的密码如MYDATE或者iloveyou。只包含字母和特殊字符的密码如daysdate。只包含特殊字符和数字的密码如819163。这些密码在许多情况下经常被使用可以说具有这些特征的密码都是不安全的。更有甚者为了简单省事一些用户喜欢直接输入计算机字母键盘第一排从左往右的6个字母“qwerty”​这种低级密码难以起到保护作用。有些网络系统虽然要求至少输入8个字符的密码但有一些用户为方便起见直接按序输入1至8的阿拉伯数字。若按照8至1逆序输入其安全性也要高许多。​“password”长期位居全球最危险密码榜首而“123456”被公认为全球安全性最低的密码。破解密码的方法千变万化有多种多样的方法可供选择。从社会工程学到密码存储缺陷再到安全性低的身份认证服务任何一种手段都可以破解密码。例如一些常用的密码破解技术包括枚举法破解暴力破解​、字典攻击和混合攻击。除此之外还有在线攻击、离线攻击以及非技术性破解等。仔细研究这些密码破解技术有助于提高渗透测试人员的洞察力从而进一步提高密码安全防护能力。2、枚举法破解在对通过扫描获得的目标信息进行归纳推理时若逐个考察了某类事件的所有可能情况因而得出一般结论那么该结论是可靠的则称这种归纳方法为枚举法。从数学和逻辑学的角度枚举法破解是一种暴力破解属于暴力枚举在现实场景的运用。当攻击者获得密码哈希时常用枚举法尝试登录用户账户即通过利用大量猜测和枚举的方式来尝试获取用户口令。在实际应用中枚举法破解通常有如下四种技术形态。密码猜测Password Guessing​在不了解账户密码的情况下使用常用密码字典猜测登录密码而无须事先了解系统或环境密码。密码破解Password Cracking​当获得凭证材料例如密码哈希值时尝试解密密码并恢复可用的凭据例如纯文本密码。密码喷洒Password Spraying​使用多个密码暴力破解一个账号可能会导致该账号被锁定此时可针对许多不同账户使用单个或少量的常用密码列表尝试获取有效账户凭据。撞库Credential Stuffing​使用受害者历史上泄露的数据获得凭据通过凭据重叠访问目标系统。作为枚举法破解的一个典型实例当属字典攻击。字典攻击是一种基于枚举法破解原理的密码破解技术。所谓字典是指一种文本文档其中预先也可手动加载了一个可能的密码通用列表。这类通用列表字典可以从许多网站免费下载得到其中一些字典含有数百万条单词、短语、数字、符号等。实施字典攻击时采用相应的应用程序字典攻击软件通过尝试使用该密码通用列表来依次猜测用户的密码。如果字典中的某个单词或短语能够成功猜中攻击者就可以通过该密码访问目标系统的账户获取敏感信息或实施其他攻击行为。字典攻击通常用于攻击弱密码因为许多用户使用常见的单词、短语、数字、日期等作为密码这些密码容易被字典攻击破解。字典攻击成功的关键是密码字典Kali Linux不但内置了许多字典文件还提供了许多密码字典生成工具如crunch等。使用crunch工具生成的密码可以发送到终端、文件或另一个程序。使用crunch命令生成密码的语法格式如下crunch命令常用选项如下-o用于指定输出字典文件的位置。-b指定写入文件的最大字节数。其大小可以指定为KB、MB或GB但必须与-o START选项一起使用。-t设置使用的特殊格式。-l该选项用于当-t选项指定、%或^时用来识别占位符的一些字符。例如使用crunch命令生成一个密码列表并保存在桌面上。其中生成密码列表的最小长度为7最大长度为7并使用ahjl0123为字符集。执行该命令后的运行结果如图所示。执行完成以上命令后将在桌面上生成一个名为password.txt的字典文件。由于组合生成的密码较多需要很长时间及存储空间。密码字典文件生成后使用nano命令打开可以看到文件中保存的使用crunch命令生成的所有密码。需要注意创建密码字典是一个需要耗费一定时间和计算资源的过程也可以到互联网的相关字典网站下载但需要遵守相关法律法规避免侵犯他人的隐私。Kali Linux自带rockyou词典压缩包/usr/share/wordlists/rockyou.txt.gz​解压后就能用。字典攻击是一种常见的密码破解方式用于字典破解的软件工具也比较多常见的有Hashcat、John the Ripper、Hydra等。例如Hashcat的基本使用方法如下其中-a参数指定破解模式-m参数指定哈希类型​[hash type]是所要破解的密码哈希的类型代码​[hash file]是包含哈希值的文件也可以直接给出哈希值​​[dictionary file]是字典文件。Hashcat能在后台运行并尝试使用字典文件中的每个密码组合破解哈希值需要耐心等待破解完成。例如对于单个哈希值如1a1fae753c443890539f21163b47a058​使用上述字典文件破解哈希值的运行示例如图所示。为了防止字典攻击用户应该选用强密码包括大小写字母、数字和符号并避免使用常见单词、短语、日期等作为密码。此外用户还可以使用多因素认证等安全措施来增强密码的安全性。另外系统管理员可以限制密码尝试次数设置密码复杂度要求禁止使用弱密码等方式来防范字典攻击。3、在线破译在线破译是指针对在线服务的认证凭证进行用户密码枚举破译可分为被动在线破译和主动在线破译两种情况。3.1、被动在线破译被动在线破译主要指通过搭线联入网络利用嗅探器对网络进行监听、捕获数据包获取目标登录信息后进行流量分析来寻找密码。目前已有许多嗅探器软件工具如Sniffer、WireShark等也可以采用某种计算机高级语言如Python自行编程实现。在局域网上要想迅速获得大量的账号包括用户名和密码​最为有效的手段是采用嗅探器。目前使用较为广泛的是WireShark。WireShark是一款可用于监听和分析流经网络流量的软件通常可用于网络诊断但也可以用于隐蔽地监听网络流量实施被动在线破译密码。当网络流量以明文形式在网络上传输时便可以使用网络监听的方式截获网上传送的数据包。任何直接通过HTTP、FTP、POP、SMTP、Telnet协议传输的数据包都会被WireShark监听。3.2、主动在线破译主动在线破译是指与目标系统直接交互破解密码。许多情况下这种破译方法速度较快但有隐蔽性不强、易被监测发现的缺陷。主动在线破译常采用一些恶意软件攻陷目标系统来获取密码和其他数据。具体而言诸如木马、间谍软件和密钥记录器等恶意软件被证明比较行之有效。恶意软件的一种形式是键盘嗅探或击键记录在用户输入时截获用户的各种信息而不限于密码。如果用户密码较为复杂使用穷举方式很难破解这时可以通过给用户安装木马病毒设计“击键记录”程序记录和监听用户的击键操作然后对所记录的用户击键内容进行分析判断破解出用户密码。在Kali Linux中Hydra是一款支持几乎所有协议的典型在线密码破解工具可以爆破http、ftp、ssh、mysql等多种协议和认证机制。使用Hydra需根据其帮助信息配置相关参数。例如破解HTTP基本认证时Hydra的配置参数主要为-l/L指定要破解的用户-l指定破解的用户名-L指定用户名字典文件​。-p/P指定密码-p指定密码破解-P指定密码字典文件​。-s/S指定要破解的目标URL-s指定非默认端口-S采用SSL链接​。-v/-V详细日志模式/每次尝试仅显示用户名密码。-o指定结果输出文件。Hydra的基本命令格式为hydra-l admin-P password.txt-s http: //localhost/-V http-get/admin表示使用密码字典文件password.txt以用户名admin通过http-get请求尝试登录http: //localhost/admin。若找到正确的用户名和密码则返回详细信息。在Kali Linux中打开终端运行Hydra或者使用Kali Linux应用程序的Applications菜单→PasswordAttacks→Online Attacks→hydra或者hydra-gtk。使用Hydra进行HTTP基本认证破解执行hydra-Lusername.txt-P passwd.txt-u-e ns http-get://222.190.127.22/WebGoat/示例​结果如图7.17所示。可以看到Hydra最后显示“1 of 1 targetsuccessfully completed, 113 valid passwords found”​即找到113个不同的用户名/密码组合成功登录到服务器。若要破解FTP服务账号可参考使用如下Hydra命令格式示例若要破解MySQL账号可参考使用如下Hydra命令格式示例若要破解SSH账号可参考使用如下Hydra命令格式示例注意不要在生产服务器上使用大量密码进行暴力破解因为可能会中断服务、阻塞正常用户或触发保护机制。4、离线破译离线破译是一种攻击者不直接接触目标本身而获取密码的攻击方式这种攻击方式不仅有效且难以被监测到。一种较新、较先进的高级离线攻击技术是通过预计算的哈希值通常称为彩虹表进行攻击即彩虹表攻击。4.1、预计算的哈希值又称彩虹表为了保护账号安全几乎所有网站都不会明文保存用户的密码而是用哈希算法对密码进行计算将得到的哈希值保存在数据库中。每次用户登录时将用户提交的密码用同样的算法计算并将结果与数据库中保存的哈希值进行比对以验证用户身份。彩虹表攻击的基本原理是组合使用暴力破解和字典查表法并在这两者之中取得一个折中用可以承受的时间和存储空间进行破解。所谓彩虹表就是一个用于哈希函数如MD5、SHA逆运算的预先计算好的表常用于破解密码的哈希值或称散列值、指纹、哈希密文、摘要、微缩图等​。哈希值通常包含在配置文件、数据库、备份文件等中。在Linux系统中密码通常以SHA-512的哈希值的形式存储在/etc/shadow文件中如图所示。4.2、制作彩虹表利用彩虹表破解密码的基本步骤为①制作彩虹表rtgen​②排序rtsort​③破解rcrack​。其中有许多制作彩虹表的方法如可以使用RainbowCrack或Cain来生成。对于一台正常运行Windows系统的PC机需要管理员权限​一种制作彩虹表的流程如下下载winrtgen软件双击运行winrtgen。单击“Add Table”按钮出现“Rainbow Table Properties”对话框。在“Rainbow Table Properties”对话框中从“Hash”下拉列表中选择“ntlm”​。设置“Minimum Length”为4​“Maximum Length”为9​“Chain Count”为4000000。从“charset”下拉表中选择“loweralpha”​单击“ok”按钮保存设置。单击“ok”按钮Windows将开始创建彩虹表。制作彩虹表文件需要花费许多时间和计算资源具体取决于计算机的速度和所选择的设置。在大多数情况下用户不需要自行制作彩虹表主流的彩虹表都可以在网络上下载。彩虹表常用于破解由有限字符集组成的固定长度的纯文本密码。4.3、利用彩虹表破解密码通过上述两个步骤就完成了离线密码攻击的重要环节一是从目标系统提取密码哈希值二是制作了一个可能存在匹配密码的彩虹表。如果匹配成功密码破解就成功了。一般来说获取目标系统的哈希值后根据哈希值的类型和破解需求可以选择相应的破解方式和工具实施破解。常用的破解方式包括暴力破解、字典攻击、彩虹表攻击等。一种利用John the Ripper命令破解密码的基本语法格式为其中options为命令参数选项如–wordlist、–format、–show等​password-files为密码字典文件和哈希文件。例如使用John the Ripper命令破解Linux系统中的/etc/shadow文件时其命令执行情况如图所示。其中/etc/shadow为Kali Linux系统哈希值的存放文件也可以自己指定文件password.txt是密码字典文件。密码能否成功破解在于字典是否强大。彩虹表是一种有效的密码破解手段但并不是万能的。在操作前通过对原始密码进行“加盐”​可增加彩虹表的破解难度。所谓“加盐”​是指在哈希操作前先添加伪随机值以产生不同且唯一的哈希值的方法。在原始密码中“加盐”​再进行哈希可增加随机性加大密码分析的难度。5、非技术方法破译获取密码并不仅仅依赖于破解技术还可以用许多非技术方法获得。常见的一些非技术方法并不复杂而且也很有效。5.1、默认密码探测目标系统的默认密码虽然称不上是一种真正的密码破解方法但也是获取密码的一种途径。默认密码是系统硬件或软件制造商在开发时设置的。当用户购置了设备并安装使用时应当及时更改密码。5.2、猜测密码猜测目标系统的密码虽然是一种技术含量最低的攻击方式但有时却很有效尤其是在那些不具备或未实施密码保护策略的环境中。通常可按照如下步骤猜测密码①确定一个有效的用户②确定一个可能的密码列表③将可能的密码按照可能性排序④逐一尝试密码直到获得访问权限或穷尽所有可能的密码。5.3、网络钓鱼“网络钓鱼”是指通过发送大量欺骗性电子邮件、伪造网站登录站点等方式引诱用户给出自己的敏感信息如用户名、口令、账号、PIN码或信用卡等的一种攻击活动。网络钓鱼属于社会工程学攻击的一种形式常用的手段包括社会工程学、假冒电子商务网站、假冒网银、假冒证券网站等。5.4、分析推理如果用户使用了多个系统可以先破解较为简单系统的用户密码然后用已经破解的密码推算出其他系统的用户密码。有时许多用户对于所有系统都使用相同的密码。5.5、密码心理学许多黑客破解密码并非依赖尖端的破解技术而只是运用密码心理学从用户心理入手细微分析用户的心理及信息从而猜测出密码。其实还有很多途径可以获得用户机密信息密码心理学如果运用得当也可以快速破解并获得用户机密信息。
返回列表