首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web服务器攻击方法:如果漏洞扫描器完成了所有工作,为什么还要手工测试呢?

Web服务器攻击方法:如果漏洞扫描器完成了所有工作,为什么还要手工测试呢?
EN

Security用户
提问于 2020-02-29 12:54:53
回答 5查看 7.2K关注 0票数 31

我在读一本来自著名证书的白帽黑客书。他们说,黑客攻击web服务器的方法是:

  • 信息收集(域名、DNS、IP等)
  • 脚印(例如:抓横幅)
  • 网站镜像
  • 漏洞扫描
  • 会话劫持
  • 密码破解

除了会话劫持和信息收集之外,我不明白为什么我不会仅仅推出和/或Nessus来查找所有的弱点。

如果您可以自动执行手动测试,这有什么意义呢?

例如,如果漏洞扫描器不知道如何查找易受攻击的cookie,如果我手动找到一种方法来执行会话劫持,我将无法为此对Nessus的Acunetix进行培训。即使我这么做了,我也不知道这会有多大好处。

请解释我为什么不让我的工具为我做黑客。

EN

回答 5

Security用户

发布于 2020-02-29 13:34:12

这里有几个假设:

  • 扫描器可以找到所有的漏洞
  • 如果扫描器找不到漏洞,那么就没有漏洞。
  • 所有手动任务都可以自动完成。
  • 攻击者只使用自动化工具,而不使用手动方法。
  • 手动方法不能转化为定制的自动化工具。
  • 发现漏洞与利用漏洞是一样的。

所有这些假设都不是普遍正确的。

自动扫描器有助于使发现漏洞的过程更有效,但它们远非完美,也远未完成。扫描器的设计也不是为了以一种有用的方式利用漏洞。

在实践中,您希望手动测试扫描仪的结果(假阳性),并执行手动测试,以查找自动化工具可能遗漏的内容。

攻击者将使用多种方法,然后经常创建或修改工具来利用该漏洞,使其具有可重复性和可靠性。但这并不意味着该工具将在其他情况下起作用。

自动化测试是基本的阈值。如果您的站点/程序没有通过自动化测试,那么您就犯了一个非常糟糕的错误,应该立即修复它(因为它很容易找到)。但是,我看到了一些情况,开发人员为了躲避自动扫描器,在SQL中添加了1=1检查,但是我能够使用2=2 (现代SQL扫描器帐户)来利用这个站点。我只从手工测试和个人经验中知道这一点。你不能在工具中编码经验和直觉。

编码是一项极其复杂的活动。这意味着错误也可能是复杂的。无法创建任何工具来查找或利用所有漏洞。

票数 61
EN

Security用户

发布于 2020-02-29 13:39:36

达斯特工具有几个限制,需要通过对应用程序的手动检查来解决:

  • 他们找不到业务逻辑缺陷,因为他们不理解应用程序的用例和误用案例。
  • 他们只找到已知的漏洞类型和模式。你的里程将根据扫描仪的成熟度而变化,但是即使是最好的扫描仪也不会发现所有的问题。
  • 复杂的模式通常存在微妙的安全问题,比如授权协议(如OAuth )的自定义实现。只有通过详细研究底层体系结构,才能发现这些缺陷,而自动化工具则会失败,因为这种类型的分析需要更高层次的推理。
  • 验证应用程序可利用性的有效负载通常必须为特定的应用程序构建。即使扫描器怀疑存在漏洞,也经常需要手动进行验证。

也就是说,安全扫描器是渗透测试器中用来识别低挂水果的一个方便的工具。大部分工作仍将是手工完成的。

此外,作为一个安全测试人员,如果可能的话,您应该始终进行白盒测试。这包括访问源代码,这也为您提供了使用SAST工具的可能性。这些工具有类似的局限性,但可能会发现不同类型的漏洞,从而增加额外的价值。但是,即使结合了DAST和SAST工具,如果没有手动测试,您也无法达到所需的测试深度,特别是对于具有较高保护配置的应用程序而言。

票数 17
EN

Security用户

发布于 2020-02-29 15:34:41

下面是一个最近的话题,涉及到同样的问题:为什么OpenVAS没有找到与没有找到与相比较的所有开放端口?。注意:每个工具是不同的,并可能产生不同的结果。更别提假阳性和不同的测试方法了。

简单地说,自动化工具进行有教养的猜测和解释结果。他们大多数时候都做得对。但是,您必须了解该工具是如何工作的,它做了什么(和不做),并能够优化它以获得最佳的结果。

一个简单的例子:默认情况下,nmap、Openvas等不扫描所有tcp/udp端口,而是扫描最流行的端口,即65535个端口中有几千个端口。如果您不知道并运行具有默认设置的工具,则很容易错过活动端口。例如,许多系统管理员选择在一些随机端口上运行SSH,而不是在标准22上运行。

自动化工具通常有很多选择,而不仅仅是一个按钮,所以你必须了解它们是做什么的,否则你就会在黑暗中射击。然后,你的审计不是深入的,也没有什么价值,因为你不知道你在做什么,你应该寻找什么。你所做的只是擦破表面,寻找最明显的缺陷。

换句话说,如果我们只需要下载和运行一个工具,我们为什么要雇佣专业的戊酯呢?因为一个能干的五人有经验,会走得更远,并能发现比一个脚本孩子会错过的弱点。

它很少“像运行工具那样简单”。

在互联网上公开的一台配置得当的机器应该内置某种防御机制:防火墙和/或IDS将阻止这种侦察工作。

当它们检测到端口扫描活动时,通常会通过阻塞您的IP地址来做出反应,或者它们会抑制通信量、有选择地丢弃一些数据包或选择返回有意误导的结果来挫败黑客。你最终得到的是不完整或完全虚假的结果。

请记住,像nmap、Acunetix等工具很嘈杂,通常很容易被IDS发现(并阻塞),因为它们生成的流量具有典型的签名和模式。因此,除非您正在测试一台未受保护或保护松散的机器(可能是在LAN上),否则您将不得不对它们进行相当多的调优,以获得有意义的结果。

因此,答案是两者兼而有之:您使用自动化工具,然后进行手动测试,特别是当该工具检测到某些东西时,比如打开的端口,但无法利用它,或者您想要再次检查。

票数 10
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/226600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档