目录导航
在破解密码,强调身份验证面板甚至是简单的目录Bruteforce时,所有这些都可以深入到您使用的密码字典表。今天,我们将了密码字典表,四处寻找一些好的密码字典表,运行一些工具来管理密码字典表,等等。
介绍
自从渗透测试发展开始以来,我们不断看到的一件事就是,攻击者破解了目标的密码并进入了系统!在电影和电视剧中,大多数关于攻击的描述都经常详细地说明这种情况,因为这是最简单的描述。无论多么简单的破解密码或执行凭据填充曾经都是Web应用程序的祸根。今天,我们可以通过使用CAPTCHA或速率限制对它们进行一些控制,但它们仍然是有效的攻击之一。此类攻击的灵魂在于密码字典表。
什么是密码字典表?
密码字典表是一个文件(在大多数情况下为文本文件,但不仅限于此),其中包含攻击者需要提供的一组值来测试一种机制。这有点复杂,让我们稍微稀释一下以更好地理解。每当攻击者遇到身份验证机制时,他们都可以尝试解决该问题,但是,如果这不可能,那么攻击者就必须尝试将一些众所周知的凭据放入身份验证机制中进行尝试和猜测。此众所周知的凭据列表是一个单词列表。攻击者不是使用一个一个地手动输入值,而是使用工具或脚本来自动执行此过程。类似地,在破解哈希值的情况下,该工具使用密码字典表并将密码字典表的条目编码为相同的哈希值,然后使用字符串比较功能来匹配哈希值。如果找到匹配项,则将散列视为已破解。可以看出,密码字典表的重要性在网络安全世界中至关重要。
Kali Linux中的密码字典表
由于Kali Linux是专门为执行渗透测试而设计的,因此它充满了各种单词表。这是因为Kali Linux中存在各种工具,可用于对登录名,目录等执行Bruteforce攻击。让我们仔细研究一下Kali Linux包含的庞大密码字典表中的一些词汇表。
密码字典表位于/usr/share目录中。
在这里,我们有dirb目录,其中包含使用dirb工具执行Directory Bruteforce时要使用的密码字典表。
然后,我们便有了dirbuster,它是一个类似的工具,它也执行目录爆破,但有一些附加选项。
然后,我们有一个fern-wifi目录,该目录有助于破坏Wi-Fi身份验证。
然后我们有了Metasploit,它几乎所有内容都使用单词表。然后是一个nmap单词列表,其中包含可在扫描某些特定服务时使用的单词列表。
然后,我们有了单词列表的摇滚明星:rockyou。默认情况下它是压缩的,使用前必须将其解压缩。它的值非常大,有1,44,42,062个值,可能是互联网上许多用户帐户的密码。
位置:/usr/share/wordlists

kali密码字典目录列表
├──dirb
│ ├── big.txt
│ ├── catala.txt
│ ├── common.txt
│ ├── euskera.txt
│ ├── extensions_common.txt
│ ├── indexes.txt
│ ├── mutations_common.txt
│ ├── others
│ │ ├── best1050.txt
│ │ ├── best110.txt
│ │ ├── best15.txt
│ │ └── names.txt
│ ├── small.txt
│ ├── spanish.txt
│ ├── stress
│ │ ├── alphanum_case_extra.txt
│ │ ├── alphanum_case.txt
│ │ ├── char.txt
│ │ ├── doble_uri_hex.txt
│ │ ├── test_ext.txt
│ │ ├── unicode.txt
│ │ └── uri_hex.txt
│ └── vulns
│ ├── apache.txt
│ ├── axis.txt
│ ├── cgis.txt
│ ├── coldfusion.txt
│ ├── domino.txt
│ ├── fatwire_pagenames.txt
│ ├── fatwire.txt
│ ├── frontpage.txt
│ ├── hpsmh.txt
│ ├── hyperion.txt
│ ├── iis.txt
│ ├── iplanet.txt
│ ├── jboss.txt
│ ├── jersey.txt
│ ├── jrun.txt
│ ├── netware.txt
│ ├── oracle.txt
│ ├── ror.txt
│ ├── sap.txt
│ ├── sharepoint.txt
│ ├── sunas.txt
│ ├── tests.txt
│ ├── tomcat.txt
│ ├── vignette.txt
│ ├── weblogic.txt
│ └── websphere.txt
├──dirbuster
│ ├── apache-user-enum-1.0.txt
│ ├── apache-user-enum-2.0.txt
│ ├── directories.jbrofuzz
│ ├── directory-list-1.0.txt
│ ├── directory-list-2.3-medium.txt
│ ├── directory-list-2.3-small.txt
│ ├── directory-list-lowercase-2.3-medium.txt
│ └── directory-list-lowercase-2.3-small.txt
│
├──fern-wifi
│ └── common.txt
│
│
├──metasploit
│ ├── adobe_top100_pass.txt
│ ├── av_hips_executables.txt
│ ├── av-update-urls.txt
│ ├── burnett_top_1024.txt
│ ├── burnett_top_500.txt
│ ├── can_flood_frames.txt
│ ├── cms400net_default_userpass.txt
│ ├── common_roots.txt
│ ├── dangerzone_a.txt
│ ├── dangerzone_b.txt
│ ├── db2_default_pass.txt
│ ├── db2_default_userpass.txt
│ ├── db2_default_user.txt
│ ├── default_pass_for_services_unhash.txt
│ ├── default_userpass_for_services_unhash.txt
│ ├── default_users_for_services_unhash.txt
│ ├── dlink_telnet_backdoor_userpass.txt
│ ├── hci_oracle_passwords.csv
│ ├── http_default_pass.txt
│ ├── http_default_userpass.txt
│ ├── http_default_users.txt
│ ├── http_owa_common.txt
│ ├── idrac_default_pass.txt
│ ├── idrac_default_user.txt
│ ├── ipmi_passwords.txt
│ ├── ipmi_users.txt
│ ├── joomla.txt
│ ├── keyboard-patterns.txt
│ ├── lync_subdomains.txt
│ ├── malicious_urls.txt
│ ├── mirai_pass.txt
│ ├── mirai_user_pass.txt
│ ├── mirai_user.txt
│ ├── multi_vendor_cctv_dvr_pass.txt
│ ├── multi_vendor_cctv_dvr_users.txt
│ ├── named_pipes.txt
│ ├── namelist.txt
│ ├── oracle_default_hashes.txt
│ ├── oracle_default_passwords.csv
│ ├── oracle_default_userpass.txt
│ ├── password.lst
│ ├── piata_ssh_userpass.txt
│ ├── postgres_default_pass.txt
│ ├── postgres_default_userpass.txt
│ ├── postgres_default_user.txt
│ ├── root_userpass.txt
│ ├── routers_userpass.txt
│ ├── rpc_names.txt
│ ├── rservices_from_users.txt
│ ├── sap_common.txt
│ ├── sap_default.txt
│ ├── sap_icm_paths.txt
│ ├── scada_default_userpass.txt
│ ├── sensitive_files.txt
│ ├── sensitive_files_win.txt
│ ├── sid.txt
│ ├── snmp_default_pass.txt
│ ├── telerik_ui_asp_net_ajax_versions.txt
│ ├── telnet_cdata_ftth_backdoor_userpass.txt
│ ├── tftp.txt
│ ├── tomcat_mgr_default_pass.txt
│ ├── tomcat_mgr_default_userpass.txt
│ ├── tomcat_mgr_default_users.txt
│ ├── unix_passwords.txt
│ ├── unix_users.txt
│ ├── vnc_passwords.txt
│ ├── vxworks_collide_20.txt
│ ├── vxworks_common_20.txt
│ ├── wp-plugins.txt
│ └── wp-themes.txt
│
├──wfuzz
│ ├── general
│ │ ├── admin-panels.txt
│ │ ├── big.txt
│ │ ├── catala.txt
│ │ ├── common.txt
│ │ ├── euskera.txt
│ │ ├── extensions_common.txt
│ │ ├── http_methods.txt
│ │ ├── medium.txt
│ │ ├── megabeast.txt
│ │ ├── mutations_common.txt
│ │ ├── spanish.txt
│ │ └── test.txt
│ ├── Injections
│ │ ├── All_attack.txt
│ │ ├── bad_chars.txt
│ │ ├── SQL.txt
│ │ ├── Traversal.txt
│ │ ├── XML.txt
│ │ └── XSS.txt
│ ├── others
│ │ ├── common_pass.txt
│ │ └── names.txt
│ ├── stress
│ │ ├── alphanum_case_extra.txt
│ │ ├── alphanum_case.txt
│ │ ├── char.txt
│ │ ├── doble_uri_hex.txt
│ │ ├── test_ext.txt
│ │ └── uri_hex.txt
│ ├── vulns
│ │ ├── apache.txt
│ │ ├── cgis.txt
│ │ ├── coldfusion.txt
│ │ ├── dirTraversal-nix.txt
│ │ ├── dirTraversal.txt
│ │ ├── dirTraversal-win.txt
│ │ ├── domino.txt
│ │ ├── fatwire_pagenames.txt
│ │ ├── fatwire.txt
│ │ ├── frontpage.txt
│ │ ├── iis.txt
│ │ ├── iplanet.txt
│ │ ├── jrun.txt
│ │ ├── netware.txt
│ │ ├── oracle9i.txt
│ │ ├── sharepoint.txt
│ │ ├── sql_inj.txt
│ │ ├── sunas.txt
│ │ ├── tests.txt
│ │ ├── tomcat.txt
│ │ ├── vignette.txt
│ │ ├── weblogic.txt
│ │ └── websphere.txt
│ └── webservices
│ ├── ws-dirs.txt
│ └── ws-files.txt
├──fasttrack.txt
├──nmap.lst
└──rockyou.txt.gz
Rockyou密码字典列表介绍
Rockyou.txt是来自社交媒体应用程序开发人员(也称为RockYou)的一组泄露的密码。它为Myspace应用程序开发了小部件。在2009年12月,该公司经历了一次数据泄露事件,导致3200万用户帐户被泄露。这主要是由于该公司的政策以明文形式存储密码。
首次启动Kali Linux时,它被压缩为gz文件。要解压缩,请运行以下命令。它会解压缩并准备用于您想要的任何类型的攻击。
gzip -d /usr/share/wordlists/rockyou.txt.gz
Wfuzz密码字典列表介绍
Wfuzz工具是为对Web应用程序执行暴力破解攻击而开发的。它还可以进一步用于枚举Web应用程序。它可以枚举目录,文件和脚本等。它也可以将请求从GET更改为POST。这在许多情况下(例如检查SQL注入)很有用。它带有一组预定义的单词表。这些词表旨在与wfuzz一起使用,但可以在您需要的任何地方使用。单词表分为几类,例如常规,注入,压力,漏洞,Web服务等。
查看Injections目录,我们看到我们有一个All_attack.txt,这是一个用于测试注入的非常通用的单词列表。然后我们有一个特定的用于SQL,目录遍历,XML,XSS注入的方法。转到常规目录,我们看到我们在Dirb部分中讨论了big.txt。我们有common.txt,由于它的尺寸很小,它也是许多工具中的默认单词列表。然后,我们有了extensions_common.txt,其中包含25种左右的扩展名,这些扩展名可能被枚举为一些文件,这些文件被认为是低挂的水果。然后,我们有了http_methods.txt单词列表。它包含HTTP方法,如POST,GET,PUT等。可以在测试目标应用程序是否启用了任何配置错误的方法时使用它们,或者在应用程序和服务器级别上忘记禁用它们。

然后我们有了spanish.txt单词列表,就像您猜到的西班牙语单词/名称/密码一样。另一个目录包含公用密码和名称,这些密码和名称可用于以某种忘记密码的形式提取用户名或密码,在该密码格式中,它将以用户存在或不存在的消息作为响应。让我们进入压力测试目录。它包含一个旨在对这种机制进行压力测试的单词表。它包含的单词表包含字母或数字或特殊字符以及相同的十六进制代码。然后是vulns目录,其中包含专门用于测试特定漏洞的单词列表。我们有apache单词列表,CGI单词列表,目录单词列表,iis单词列表,oracle9单词列表,SharePoint单词列表,tomcat单词列表等等。
在线密码字典表
GitHub密码字典表
我们了解了Kali Linux包含的大量资源。但是有时它们往往没有我们要求的那么最新。在发现新的0天的情况下可能会发生这种情况。这些词典中将没有任何条目。这是我们可以在互联网上疯狂搜索的地方,但是它庞大且需要更多时间。这是我们可以在GitHub上窥探的地方,因为很多人可能会创建这样的字典。因此,搜索GitHub可能会给您带来那些新鲜的字典,或者它可以帮助您找到模糊测试特定框架所需的特定字典。

Seclists
Seclists是可在渗透测试或漏洞评估期间使用的多种类型的单词列表的集合,所有这些单词列表集中在一个位置。这些单词表可以包含用户名,密码,URL,敏感数据模式,模糊有效载荷,Web Shell等。要在Kali Linux上安装,我们将使用apt命令,后跟Seclists,如下所示。
GitHub上的Seclists
apt install seclists
安装将在/usr/share位置内以Seclists的名称创建一个目录。通过浏览,我们可以看到单词表的不同类别,例如发现,模糊测试,IOC,其他,密码,模式匹配,有效载荷,用户名和Web Shell。

Assetnode密码字典表
Assetnode字词表发布了一个专门策划的字词表,用于整个范围广泛的领域,例如子域发现或特殊工件发现。最好的部分是,它会根据他们的网站在每月的28号进行更新。这是自犹太人以来第二个发布的最好的东西。要一次下载所有单词表,任何人都可以使用以下wget命令。
网站:Assetnote词汇表
您可以使用以下命令一次下载所有密码字典表:
wget -r --no-parent -R "index.html*" https://wordlists-cdn.assetnote.io/ -nH



PacketStrom密码字典表
Packet Storm Security是一个信息安全网站,提供当前和历史上的计算机安全工具,漏洞利用和安全建议。它由一群安全爱好者操作,这些爱好者发布新的安全信息并提供用于教育和测试目的的工具。但是,令我们惊讶的是,它还发布了词表。具有精心设计的某些指定单词列表的任何用户都可以在其网站上提交其单词列表。因此,如果您正在寻找一个独特的单词表,请务必将其收藏。

clean密码字典列表
到目前为止,我们看到了多个单词列表,其中包含成千上万个条目。现在,在易受攻击的服务器或任何CTF上进行渗透测试时,可能很好,因为它们旨在处理这种暴力行为,但是当我们进入实际场景时,情况会变得有些复杂。与现实生活中一样,没有开发团队或所有者会允许您执行一千又一千个单词列表的暴力破解。这可能会影响其向其他客户的服务质量。因此,我们应该减少单词表条目。我知道这听起来适得其反,但事实并非如此。单词表可能包含一些有效载荷,这些载荷可能超过100个字符,甚至对于它们而言太具体,以至于无法直接提取任何内容。然后,我们确实有一些有效载荷彼此相似,如果我们替换其中任何一个,。乔恩·巴伯(Jon Barber)创建了一个脚本,可以删除嘈杂的宪章,例如!(,%。此外,整理单词表,使其更有效。
GitHub上的CleanWordlist.sh

我们可以使用diff命令检查从HTML5注入单词列表中删除的行,如上图所示。
diff HTML5sec-Injections-Jhaddix.txt_cleaned < (sort HTML5sec-Injections-Jhaddix.txt) | more
用法:
指定您的单词表,脚本将为您输出后缀为“ _cleaned”的新版本
./clean_wordlist.sh <单词表>
例如
./clean_wordlists.sh HTML5sec-Injections-Jhaddix.txt
Crafting密码字典表
CeWL
CeWL是一个Ruby应用程序,可将给定URL扩展到指定深度,并有选择地跟随外部链接,并返回一个单词列表,这些单词然后可用于密码破解程序,例如Ripper。CeWL还具有一个关联的命令行应用程序FAB(文件已袋装),该应用程序使用相同的元数据提取技术从已下载的内容中创建作者/创建者列表。在这里,我们针对tart URL运行CeWL,并将输出以dict.txt的名称保存到单词列表中。
GitHub:C eWL –自定义单词列表生成器
了解更多:CeWL工具的综合指南

制作密码字典表:Crunch
Crunch是一个单词表生成器,您可以在其中指定标准字符集或指定的字符集。紧缩可以生成所有可能的组合和排列。在这里,我们使用Crunch编写了一个最少2个字符,最多3个字符的单词表,并将输出以dict.txt的名字写在单词表中。

制作词表:Cupp
弱密码可能非常短,或者仅使用字母数字字符,从而使解密变得简单。仿冒用户的人也很容易猜出一个弱密码,例如生日,昵称,地址,宠物或亲戚的名字,或诸如上帝,爱,金钱或密码之类的常用词。这是Cupp投入使用的地方,因为它可以用于合法渗透测试或法医犯罪调查等情况。在这里,我们创建了一个专门针对名为Raj的人的单词表。我们输入详细信息,并在提交后,会得到一个专门为此用户生成的单词表。
GitHub:CUPP –通用用户密码探查器
了解更多:Cupp综合指南–单词列表生成工具

制作字词清单:Pydictor
Pydictor是新手和专业人士都可以欣赏的工具之一。这是一个字典构建工具,在处理密码强度测试时非常有用。该工具提供了许多功能,可用于为几乎任何类型的测试情况创建完美的字典。在这里,我们将基数和长度定义为5,然后创建一个单词表。单词表最多包含5位数字。
GitHub:pydictor
了解更多:Pydictor综合指南–单词列表生成工具
密码生成器 黑客暴力破解密码字典生成器pydictor

制作密码字典:Bopscrk
Bopscrk(在开始使用Password CRacKing之前)是一种工具,可以针对定向攻击生成智能而强大的单词列表。只要我们记得,它就是Black Arch Linux的一部分。它介绍与目标有关的个人信息,并将每个单词组合在一起,然后将其转换为可能的密码。它还包含一个抒情通行证模块,该模块允许它搜索与目标的喜欢的歌手有关的歌词,然后将其包含在单词表中。
GitHub:Bopscrk

在这里,我们可以看到,从我们提供的详细信息中精心制作的单词列表很整洁,很有可能成为Raj用户的实际密码。

制作密码字典:BEWGor
首先,让我们从发音开始。它的发音为Booger。我知道把头缠起来并不容易。BEWGor旨在帮助确保密码安全。它是一个Python脚本,提示用户输入有关某个人的传记数据,称为“主题”。然后,该数据用于为该主题创建可能的密码。BEWGor很大程度上基于Cupp,但是它们在某些方面有所不同,因为它提供了有关主要主题的大量详细信息,它包括对任意数量的家庭成员和宠物的支持,用户可以使用排列生成可能的密码。此外,BEWGor可以生成大量密码,创建输入值的上/下/反向变体,在生成变体之前,将原始输入值保存到术语文件中,设置输出线长度的上限和下限,并检查输入的生日有效。生日不能是未来,错误的leap日,6月32日等。
GitHub:BEWGor – Bull’s Eye单词列表生成器

工作了一段时间后,我们看到我们为用户Raj提炼了一个词表。现在可以使用它来暴力破解Raj的凭据。

合并词表:DyMerge
一个简单但功能强大的工具(仅用python编写)可以获取给定的单词表,并将它们合并到一个动态字典中,然后可以将其用作弹药,以成功进行基于字典(或蛮力)的攻击。
GitHub:DyMerge –动态字典合并
了解更多:Dymerge综合指南
在这里,我们有两个单词表:1.txt和2.txt。两者均包含5个条目。我们将使用DyMerge组合两个单词表。

运行DyMerge,我们提供result.txt作为通过合并1.txt和2.txt创建的单词列表。可以看出,result.txt在两个单词列表中都有10个条目

制作字词清单:心理主义者(mentalist)
它是用于制作自定义单词列表的GUI工具。它使用常见的人类范例来创建基于密码的单词列表。它可以使用密码制作完整的单词表,但也可以创建与Hashcat和John Ripper兼容的规则。
它通过联接节点而生成,节点依次采用链状形状。链中的初始节点称为“基本单词”节点。然后,每个基本字在处理时都会传递到链中的下一个节点。这就是整个单词列表中单词被修改的方式。在处理完链后,它最终将链的结果写入指定的文件中,或根据用户请求将其转换为规则。
Hashcat / John规则
对于离线破解,有时完整的单词表太大而无法整体输出。在这种情况下,输出到规则很有意义,这样Hashcat或John可以以编程方式生成完整的单词表。从GitHub下载发行版。
GitHub:心理主义者
我们在这里使用Windows OS来演示Mentalist的功能。我们选择了英语词典作为基础词。它以英语词典为基础,计算出可以将235,886个可能的关键字操纵为密码。然后,我们提供了一些其他选项,例如Case(案例),是否要替换条目以及是否要在每个条目后添加特殊字符。

运行一段时间后,它以dict.txt的名称制作了一个文本文件。它包含根据我们的要求可以制作的所有密码。

结论
我们试图通过本文传达的观点是,密码字典表是渗透测试人员可以拥有的最重要的资产之一。有多种资源可获取字词列表,也有多种工具可制作您自己的字词列表。我们希望本文在您尝试学习或使用单词表或任何用于制作单词表的工具时,作为您的入门指南。