我在读一本来自著名证书的白帽黑客书。他们说,黑客攻击web服务器的方法是:
除了会话劫持和信息收集之外,我不明白为什么我不会仅仅推出和/或Nessus来查找所有的弱点。
如果您可以自动执行手动测试,这有什么意义呢?
例如,如果漏洞扫描器不知道如何查找易受攻击的cookie,如果我手动找到一种方法来执行会话劫持,我将无法为此对Nessus的Acunetix进行培训。即使我这么做了,我也不知道这会有多大好处。
请解释我为什么不让我的工具为我做黑客。
发布于 2020-02-29 13:34:12
这里有几个假设:
所有这些假设都不是普遍正确的。
自动扫描器有助于使发现漏洞的过程更有效,但它们远非完美,也远未完成。扫描器的设计也不是为了以一种有用的方式利用漏洞。
在实践中,您希望手动测试扫描仪的结果(假阳性),并执行手动测试,以查找自动化工具可能遗漏的内容。
攻击者将使用多种方法,然后经常创建或修改工具来利用该漏洞,使其具有可重复性和可靠性。但这并不意味着该工具将在其他情况下起作用。
自动化测试是基本的阈值。如果您的站点/程序没有通过自动化测试,那么您就犯了一个非常糟糕的错误,应该立即修复它(因为它很容易找到)。但是,我看到了一些情况,开发人员为了躲避自动扫描器,在SQL中添加了1=1检查,但是我能够使用2=2 (现代SQL扫描器帐户)来利用这个站点。我只从手工测试和个人经验中知道这一点。你不能在工具中编码经验和直觉。
编码是一项极其复杂的活动。这意味着错误也可能是复杂的。无法创建任何工具来查找或利用所有漏洞。
发布于 2020-02-29 13:39:36
达斯特工具有几个限制,需要通过对应用程序的手动检查来解决:
也就是说,安全扫描器是渗透测试器中用来识别低挂水果的一个方便的工具。大部分工作仍将是手工完成的。
此外,作为一个安全测试人员,如果可能的话,您应该始终进行白盒测试。这包括访问源代码,这也为您提供了使用SAST工具的可能性。这些工具有类似的局限性,但可能会发现不同类型的漏洞,从而增加额外的价值。但是,即使结合了DAST和SAST工具,如果没有手动测试,您也无法达到所需的测试深度,特别是对于具有较高保护配置的应用程序而言。
发布于 2020-02-29 15:34:41
下面是一个最近的话题,涉及到同样的问题:为什么OpenVAS没有找到与没有找到与相比较的所有开放端口?。注意:每个工具是不同的,并可能产生不同的结果。更别提假阳性和不同的测试方法了。
简单地说,自动化工具进行有教养的猜测和解释结果。他们大多数时候都做得对。但是,您必须了解该工具是如何工作的,它做了什么(和不做),并能够优化它以获得最佳的结果。
一个简单的例子:默认情况下,nmap、Openvas等不扫描所有tcp/udp端口,而是扫描最流行的端口,即65535个端口中有几千个端口。如果您不知道并运行具有默认设置的工具,则很容易错过活动端口。例如,许多系统管理员选择在一些随机端口上运行SSH,而不是在标准22上运行。
自动化工具通常有很多选择,而不仅仅是一个按钮,所以你必须了解它们是做什么的,否则你就会在黑暗中射击。然后,你的审计不是深入的,也没有什么价值,因为你不知道你在做什么,你应该寻找什么。你所做的只是擦破表面,寻找最明显的缺陷。
换句话说,如果我们只需要下载和运行一个工具,我们为什么要雇佣专业的戊酯呢?因为一个能干的五人有经验,会走得更远,并能发现比一个脚本孩子会错过的弱点。
它很少“像运行工具那样简单”。
在互联网上公开的一台配置得当的机器应该内置某种防御机制:防火墙和/或IDS将阻止这种侦察工作。
当它们检测到端口扫描活动时,通常会通过阻塞您的IP地址来做出反应,或者它们会抑制通信量、有选择地丢弃一些数据包或选择返回有意误导的结果来挫败黑客。你最终得到的是不完整或完全虚假的结果。
请记住,像nmap、Acunetix等工具很嘈杂,通常很容易被IDS发现(并阻塞),因为它们生成的流量具有典型的签名和模式。因此,除非您正在测试一台未受保护或保护松散的机器(可能是在LAN上),否则您将不得不对它们进行相当多的调优,以获得有意义的结果。
因此,答案是两者兼而有之:您使用自动化工具,然后进行手动测试,特别是当该工具检测到某些东西时,比如打开的端口,但无法利用它,或者您想要再次检查。
https://security.stackexchange.com/questions/226600
复制相似问题