Web工具,还是从哪里开始?

我们将继续讨论有用的工具。 在新文章中,我们将考虑用于分析Web应用程序安全性的工具。

大约7年前,我们的同事BeLove已经做出了类似的选择 。 有趣的是,哪些工具保持并加强了它们的位置,哪些工具已退到后台并且现在很少使用。


请注意,Burp Suite在这里也适用,但是将有一个单独的出版物介绍他和他有用的插件。

内容:



阿马斯


Amass是一个Go工具,用于查找和枚举DNS子域以及映射外部网络。 Amass是一个OWASP项目,旨在显示Internet上的组织如何看起来像外部观察者。 Amass以各种方式接收子域名;该工具同时使用子域的递归枚举和开源搜索。

为了检测互连的网段和自治系统编号,Amass使用在操作过程中获得的IP地址。 找到的所有信息都用于构建网络图。

优点:


  • 信息收集技术包括:
    * DNS-字典中的子域枚举,蛮力子域,使用基于发现的子域的突变进行的“智能”枚举,反向DNS查询以及搜索可以提出区域传输请求(AXFR)的DNS服务器;

    *搜索开源-Ask,Baidu,Bing,CommonCrawl,DNSDB,DNSDumpster,DNSTable,Dogpile,Exalead,FindSubdomains,Google,IPv4Info,Netcraft,PTRArchive,Riddler,SiteDossier,ThreatCrowd,VirusTotal,Yahoo;

    *搜索TLS证书的数据库-Censys,CertDB,CertSpotter,Crtsh,Entrust;

    *使用搜索引擎API-BinaryEdge,BufferOver,CIRCL,HackerTarget,PassiveTotal,Robtex,SecurityTrails,Shodan,Twitter,Umbrella,URLScan;

    *搜索Internet的Web档案:ArchiveIt,ArchiveToday,Arquivo,Locachive,OpenUKArchive,UKGovArchive,Wayback;
  • 与Maltego整合;
  • 提供有关查找DNS子域的任务的最完整说明。

缺点:


  • 使用amass.netdomains可以更准确地进行操作-它将尝试访问已识别基础结构中的每个IP地址,并从反向DNS查询和TLS证书获取域名。 这是一种“响亮的”技术;它可以揭示您在所研究组织中的情报行动。
  • 高内存消耗,在不同的设置中最多可能消耗2 GB的RAM,这将不允许在便宜的VDS上的云中运行此工具。



Altdns


Altdns是用于构建字典以枚举DNS子域的Python工具。 它允许您使用突变和置换生成许多子域变体。 为此,我们使用在子域中经常出现的单词(例如:test,dev,staging),所有的变异和排列都应用于可以输入到Altdns的已知子域。 输出是可能存在的子域变体的列表,该列表以后可与DNS蛮力一起使用。

优点:


  • 适用于大型数据集。

水生的


aquatone-以前被称为查找子域的另一种工具,但作者本人却放弃了此功能,转而使用前述的Amass。 现在,Aquatone已在Go上进行了重写,并且更针对网站的初步探索。 为此,aquatone会遍历指定的域,并在不同的端口上查找它们上的网站,然后收集有关该站点的所有信息并截屏。 方便快速地在网站上进行初步情报处理,之后您可以选择攻击的优先级目标。

优点:


  • 在输出中,它将创建一组文件和文件夹,以便在进一步使用其他工具时方便使用:
    * HTML报告,其中包含收集的屏幕截图,并按相似性响应标题分组;

    *包含找到网站的所有URL的文件;

    *具有统计数据和页面数据的文件;

    *包含文件的文件夹,其中包含找到的目标的响应标头;

    *包含文件的文件夹,其中包含找到的目标的响应正文;

    *找到的网站的屏幕截图;
  • 支持使用Nmap和Masscan的XML报告;
  • 使用无头Chrome / Chromium渲染屏幕截图。

缺点:


  • 它可能会吸引入侵检测系统的注意,因此需要进行配置。

屏幕快照是针对旧版本的aquatone(v0.5.0)拍摄的,其中实现了DNS子域的搜索。 可以在发行页面上找到旧版本。

屏幕截图Aquatone v0.5.0

MassDNS


MassDNS是用于查找DNS子域的另一个工具。 它的主要区别在于,它可以直接向许多不同的DNS解析器进行DNS查询,并且速度相当快。

优点:


  • 快速-每秒能够解析超过35万个名称。

缺点:


  • MassDNS可能会给使用的DNS解析器带来很大的负担,从而可能导致这些服务器被禁止或对提供商的投诉。 此外,如果有DNS服务器并且对您要解析的域负责,则会给公司的DNS服务器造成很大的负担。
  • 解析器列表现在已经过时,但是,如果您选择了损坏的DNS解析器并添加了新的解析器,一切都会好起来的。



nsec3map


nsec3map是一个Python工具,用于获取受DNSSEC保护的域的完整列表。

优点:


  • 如果在区域中启用了DNSSEC支持,它将以最少的查询数快速检测DNS区域中的主机;
  • 它包括开膛手约翰的插件,可用于破解收到的NSEC3哈希。

缺点:


  • 许多DNS错误未得到正确处理。
  • 无法自动并行处理NSEC记录-您必须手动拆分名称空间;
  • 高内存消耗。

Acunetix


Acunetix是一个Web漏洞扫描程序,可自动检查Web应用程序的安全性。 测试应用程序的SQL注入,XSS,XXE,SSRF和许多其他Web漏洞。 但是,与其他具有许多Web漏洞的扫描程序一样,它不能代替pentester,因为它无法在逻辑中找到复杂的漏洞链或漏洞链。 但是它涵盖了很多不同的漏洞,包括各种CVE,这些都是Pester可能会忘记的漏洞,因此免除常规检查非常方便。

优点:


  • 误报率低
  • 结果可以导出为报告;
  • 对各种漏洞进行大量检查;
  • 并行扫描多个主机。

缺点:


  • 没有重复数据删除算法(Acunetix认为页面在功能上是相同的,因为它们具有不同的URL),但是开发人员正在研究它。
  • 它需要安装在单独的Web服务器上,这使得通过VPN连接测试客户端系统并使在本地客户端网络的隔离段中使用扫描仪的测试变得复杂;
  • 被调查的服务可能会“制造噪音”,例如,将太多的攻击向量发送到站点上的通信形式中,从而使业务流程大大复杂化;
  • 这是专有的,因此也是非免费的解决方案。



目录搜索


Dirsearch是用于蛮力目录和网站上的文件的Python工具。

优点:


  • 它可以将实际的“ 200 OK”页面与“ 200 OK”页面区分开,但是带有文本“找不到页面”;
  • 附带一个方便的字典,该字典在大小和搜索效率之间具有良好的平衡。 包含许多CMS和技术堆栈通用的标准路径;
  • 自己的字典格式,可让您在排序文件和目录时获得良好的效率和灵活性;
  • 方便的输出-纯文本,JSON;
  • 能够进行限制-请求之间的暂停,这对于任何弱服务都是至关重要的。

缺点:


  • 扩展名需要以字符串形式传输,如果您需要一次传递许多扩展名,这将很不方便;
  • 为了使用您的词典,需要对其稍作修改以使其符合Dirsearch词典的格式,以实现最大的效率。



wfuzz


wfuzz-用于Web应用程序的Python 模糊器。 可能是最著名的Web移相器之一。 原理很简单:wfuzz允许您阶段化HTTP请求中的任何位置,这使得阶段化GET / POST参数,HTTP标头(包括Cookies和其他身份验证标头)成为可能。 同时,对于简单的蛮力目录和文件,这很方便,这需要一个好的字典。 它还具有灵活的过滤器系统,您可以使用该系统通过各种参数过滤网站的响应,从而获得有效的结果。

优点:


  • 多功能-模块化结构,组装需要几分钟;
  • 方便的过滤和起毛机制;
  • 您可以阶段化任何HTTP方法以及HTTP请求中的任何位置。

缺点:


  • 正在开发中。



uf


ffuf-在wfuzz的“图像和相似性”中创建的Go网络模糊器,使您可以暴力破解文件,目录,URL路径,GET / POST参数的名称和值,HTTP标头,包括用于虚拟主机暴力破解的Host标头。 Wfuzz与之相比,Wfuzz具有更高的速度,并且支持一些新功能,例如,支持Dirsearch格式字典。

优点:


  • 过滤器类似于wfuzz过滤器,它们使您可以灵活配置bruteforce;
  • 允许模糊HTTP标头的值,POST请求数据和URL的各个部分,包括GET参数的名称和值;
  • 您可以指定任何HTTP方法。

缺点:


  • 正在开发中。



轰炸机


gobuster -Go上的侦察工具,具有两种操作模式。 第一个用于暴力破解网站上的文件和目录,第二个用于遍历DNS子域。 该工具最初不支持文件和目录的递归枚举,这当然可以节省时间,但另一方面,网站上每个新端点的暴力破解都需要单独运行。

优点:


  • 枚举DNS子域以及蛮力文件和目录的高速工作。

缺点:


  • 当前版本不支持HTTP标头的安装。
  • 默认情况下,仅某些HTTP状态代码被视为有效(200,204,301,302,307)。



Arjun


Arjun是一个用于在GET / POST参数以及JSON中对隐藏的HTTP参数进行暴力破解的工具。 内置字典中有25,980个单词,Ajrun在将近30秒内对其进行了检查。 诀窍是Ajrun不会单独检查每个参数,而是一次检查〜1000个参数,并查看答案是否已更改。 如果答案已更改,则将这1000个参数分为两部分,并检查其中哪些部分会影响答案。 因此,使用简单的二进制搜索,您可以找到影响答案的一个或多个隐藏参数,因此可以存在。

优点:


  • 二进制搜索,速度快;
  • 支持GET / POST参数,以及JSON形式的参数;

Burp Suite的插件param-miner也很擅长查找隐藏的HTTP参数,其工作原理与此类似。 我们将在即将发表的有关Burp及其插件的文章中告诉您更多信息。


链接查找器


LinkFinder是用于在JavaScript文件中查找链接的Python脚本。 在Web应用程序中查找隐藏或忘记的端点/ URL很有用。

优点:


  • 有一个基于LinkFinder的Chrome专用插件。

缺点:


  • 最终结论不便;
  • 不动态分析JavaScript;
  • 查找链接的逻辑很简单-如果以任何方式混淆JavaScript,或者最初缺少链接并动态生成链接,那么您将找不到任何内容。



Jsparser


JSParser是一个Python脚本,它使用TornadoJSBeautifier解析来自JavaScript文件的相对URL。 对于检测AJAX请求和编译与应用程序交互的API方法列表非常有用。 与LinkFinder有效配对。

优点:


  • 快速解析javascript文件。



sqlmap


sqlmap可能是用于分析Web应用程序的最著名的工具之一。 Sqlmap自动执行SQL注入的搜索和操作,与SQL的几种方言配合使用,其工具库中有大量不同的技术,从“额头”的引号到以基于时间的SQL注入的复杂矢量结束。 此外,它具有用于各种DBMS的许多其他利用技术,因此,它不仅可用作SQL注入的扫描程序,而且还可用作利用已发现的SQL注入的强大工具。

优点:


  • 大量不同的技术和载体;
  • 误报率低;
  • 微调的多种可能性,各种技术,目标数据库,篡改脚本以绕过WAF;
  • 转储输出数据的能力;
  • 有许多不同的操作选项,例如,对于某些数据库-自动文件上载/下载,获得执行命令的能力(RCE)等;
  • 支持使用攻击过程中获得的数据直接连接到数据库;
  • 您可以将带有Burp结果的文本文件提交到输入-无需手动编写所有命令行属性。

缺点:


  • 例如,由于缺少相关的文档,因此很难自定义编写一些支票。
  • 如果没有适当的设置,它将执行不完整的检查,这可能会产生误导。



NoSQLMap


NoSQLMap是用于自动搜索和操作NoSQL注入的Python工具。 不仅可以在NoSQL数据库中使用,而且在使用NoSQL审核Web应用程序时也可以直接使用。

优点:


  • 与sqlmap一样,它不仅可以发现潜在的漏洞,而且还可以检查其被MongoDB和CouchDB利用的可能性。

缺点:


  • 不支持Redis,Cassandra的NoSQL,正在朝这个方向进行开发。


oxml_xxe


oxml_xxe是一种工具,用于将XXE XML漏洞嵌入以某种形式使用XML格式的各种文件中。

优点:


  • 它支持许多常见格式,例如DOCX,ODT,SVG,XML。

缺点:


  • 尚未完全实现对PDF,JPEG,GIF的支持;
  • 仅创建一个文件。 要解决此问题,可以使用docem工具,该工具可以在不同位置创建大量有效负载文件。

当加载包含XML的文档时,上述实用程序在测试XXE方面做得很好。 但也不要忘记,在许多其他情况下都可以找到XML格式处理程序,例如,可以将XML用作数据格式而不是JSON。

因此,我们建议您注意以下存储库,该存储库包含大量不同的有效负载: PayloadsAllTheThings

tplmap


tplmap是一个Python工具,用于自动检测和利用服务器端模板注入漏洞;它具有类似于sqlmap的设置和标志。 它使用几种不同的技术和向量,包括盲注入,还具有执行代码和加载/卸载任意文件的技术。 此外,它还具有用于十二种不同模板引擎的技术和一些用于查找eval()的技术-类似的Python,Ruby,PHP,JavaScript代码注入。 如果操作成功,则打开一个交互式控制台。

优点:


  • 大量不同的技术和载体;
  • 支持多种渲染模板引擎;
  • 许多操作技术。

头巾


CeWL是一个Ruby词典生成器,旨在从指定的网站提取唯一单词,它遵循网站上的链接到指定的深度。 编译后的独特词词典以后可以用于在同一网站上的服务上使用蛮力密码或在同一网站上使用蛮力文件和目录,或者使用hashcat或Ripper来攻击收到的哈希。 在编译潜在密码的“目标”列表时很有用。

优点:


  • 易于使用。

缺点:


  • 您需要注意搜索的深度,以免捕获额外的域。

弱通


Weakpass是一项包含许多带有唯一密码的词典的服务。 对于与破解密码有关的各种任务,它非常有用,从目标服务上的简单在线暴力帐户到使用hashcatJohn The Ripper接收到哈希的脱机暴力都结束。 由大约80亿个密码组成,长度为4到25个字符。

优点:


  • 它既包含特定词典,也包含具有最常用密码的词典-您可以根据自己的需要选择特定词典;
  • 词典将更新并使用新密码进行更新;
  • 字典按性能排序。 您可以选择一个选项,以进行快速的在线暴力破解,也可以从大量具有最新漏洞的字典中彻底选择密码;
  • 有一个计算器,显示您设备上的密码蛮干时间。



在一个单独的小组中,我们想放置用于CMS检查的工具:WPScan,JoomScan和AEM黑客。

AEM_hacker


AEM黑客是用于识别Adobe Experience Manager(AEM)应用程序中的漏洞的工具。

优点:


  • 它可以从输入时提交给它的URL列表中识别AEM应用程序;
  • 它包含用于通过加载JSP Shell或运行SSRF来获得RCE的脚本。

Joomscan


JoomScan是一个Perl工具,用于在部署Joomla CMS时自动进行漏洞检测。

优点:


  • 能够发现配置缺陷和管理员设置问题;
  • 枚举Joomla的版本和相关漏洞,类似地针对单个组件;
  • 包含超过1000个针对Joomla组件的漏洞利用;
  • 以文本和HTML格式输出最终报告。



扫描


WPScan-用于在WordPress上爬网的工具,其WordPress引擎本身和某些插件均存在众多漏洞。

优点:


  • 不仅可以列出不安全的WordPress插件和主题,还可以列出用户和TimThumb文件;
  • 它可以对WordPress网站进行暴力攻击。

缺点:


  • 如果没有适当的设置,它将执行不完整的检查,这可能会产生误导。



通常,不同的人喜欢使用不同的工作工具:以自己的方式做的都是好事,一个人喜欢的东西可能不适合另一个人。 如果您认为我们当之无愧地忽略了一些不错的实用程序,请在评论中写下它!

Source: https://habr.com/ru/post/zh-CN452836/


All Articles