如何扫描网站的漏洞?
扫描网站漏洞是要用专业的扫描工具,下面就是介绍几种工具
1 Nikto
这是一个开源的Web服务器扫描程序,它可以对Web服务器的多种项目进行全面的测试。其扫描项目和插件经常更新并且可以自动更新。Nikto可以在尽可能短的周期内测试你的Web服务器,这在其日志文件中相当明显。不过,如果你想试验一下,它也可以支持 LibWhisker的反IDS方法。不过,并非每一次检查都可以找出一个安全问题,虽然多数情况下是这样的。有一些项目是仅提供信息类型的检查,这种检查可以查找一些并不存在安全漏洞的项目,不过Web管理员或安全工程师们并不知道。
2 Paros proxy
这是一个对Web应用程序的漏洞进行评估的代理程序,即一个基于Java的web代理程序,可以评估Web应用程序的漏洞。它支持动态地编辑/查看 HTTP/HTTPS,从而改变cookies和表单字段等项目。它包括一个Web通信记录程序,Web圈套程序,hash 计算器,还有一个可以测试常见的Web应用程序攻击的扫描器。
3 WebScarab:
它可以分析使用HTTP和HTTPS协议进行通信的应用程序,WebScarab可以用最简单地形式记录它观察的会话,并允许操作人员以各种方式观查会话。如果你需要观察一个基于HTTP(S)应用程序的运行状态,那么WebScarabi就可以满足你这种需要。不管是帮助开发人员调试其它方面的难题,还是允许安全专业人员识别漏洞,它都是一款不错的工具。
4 WebInspect:
这是一款强大的Web应用程序扫描程序。SPI Dynamics的这款应用程序安全评估工具有助于确认Web应用中已知的和未知的漏洞。它还可以检查一个Web服务器是否正确配置,并会尝试一些常见的 Web攻击,如参数注入、跨站脚本、目录遍历攻击等等。
5 Whisker/libwhisker :
Libwhisker是一个Perla模块,适合于HTTP测试。它可以针对许多已知的安全漏洞,测试HTTP服务器,特别是检测危险CGI的存在。 Whisker是一个使用libwhisker的扫描程序。
6 Burpsuite:
这是一个可以用于攻击Web应用程序的集成平台。Burp套件允许一个攻击者将人工的和自动的技术结合起来,以列举、分析、攻击Web应用程序,或利用这些程序的漏洞。各种各样的burp工具协同工作,共享信息,并允许将一种工具发现的漏洞形成另外一种工具的基础。
7 Wikto:
可以说这是一个Web服务器评估工具,它可以检查Web服务器中的漏洞,并提供与Nikto一样的很多功能,但增加了许多有趣的功能部分,如后端 miner和紧密的Google集成。它为MSNET环境编写,但用户需要注册才能下载其二进制文件和源代码。
8 Acunetix Web Vulnerability Scanner :
这是一款商业级的Web漏洞扫描程序,它可以检查Web应用程序中的漏洞,如SQL注入、跨站脚本攻击、身份验证页上的弱口令长度等。它拥有一个操作方便的图形用户界面,并且能够创建专业级的Web站点安全审核报告。
9 Watchfire AppScan:
这也是一款商业类的Web漏洞扫描程序。AppScan在应用程序的整个开发周期都提供安全测试,从而测试简化了部件测试和开发早期的安全保证。它可以扫描许多常见的漏洞,如跨站脚本攻击、HTTP响应拆分漏洞、参数篡改、隐式字段处理、后门/调试选项、缓冲区溢出等等。
10 N-Stealth:
N-Stealth是一款商业级的Web服务器安全扫描程序。它比一些免费的Web扫描程序,如Whisker/libwhisker、 Nikto等的升级频率更高。还要注意,实际上所有通用的VA工具,如Nessus, ISS Internet Scanner, Retina, SAINT, Sara等都包含Web 扫描部件。N-Stealth主要为Windows平台提供扫描,但并不提供源代码。
一、Dos攻击(Denial of Service attack)
是一种针对服务器的能够让服务器呈现静止状态的攻击方式。有时候也加服务停止攻击或拒绝服务攻击。其原理就是发送大量的合法请求到服务器,服务器无法分辨这些请求是正常请求还是攻击请求,所以都会照单全收。海量的请求会造成服务器停止工作或拒绝服务的状态。这就是Dos攻击。
二、跨站点请求伪造(CSRF,Cross-Site Request Forgeries)
是指攻击者通过已经设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态的更新。属于被动攻击。更简单的理解就是攻击者盗用了你的名义,以你的名义发送了请求。
一个CSRF最简单的例子就是用户A登录了网站A在虚拟账户里转账了1000块钱,用户A在本地生成了网站A的cookie,用户A在没有关闭网站A的情况下有访问了恶意网站B,恶意网站B包含请求A网站的代码,利用了本地的cookie经过身份验证的身份又向网站A发送了一次请求,这时你就会发现你在网站A的账户又少了1000块。这就是基本的CSRF攻击方式。
三、SOL注入攻击
是指通过对web连接的数据库发送恶意的SQL语句而产生的攻击,从而产生安全隐患和对网站的威胁,可以造成逃过验证或者私密信息泄露等危害。
SQL注入的原理是通过在对SQL语句调用方式上的疏漏,恶意注入SQL语句。
Apache 服务器
预安装在Kali Linux
可以用以下命令开启:
service apache2 start
MySQL
预安装在Kali Linux
可以用以下命令开启:
service mysql start
使用PHP-MySQL创建一个有漏洞的web应用
我使用PHP开发了一个有漏洞的web应用并且把它放在上面提到的 Apache-MySQL里面。
上述设置完成后,我用了一些Kali Linux中的自动工具(ZAP、w3af)扫描这个有漏洞的应用的URL。
现在让我们来看看分析日志中的不同情况。
0x02 Apache服务中的日志记录
Debian系统上Apache服务器日志的默认位置为:/var/log/apache2/accesslog
日志记录只是在服务器上存储日志。我还需要分析日志以得出正确结果。在接下来的一节里,我们将看到我们如何分析Apache服务器的访问日志以找出web站点上是否有攻击尝试。
分析日志
手动检查
在日志量较小的情况下,或者如果我们查找一个指定关键词,可以使用像grep表达式这样的工具观察日志。
在下图中,我们在URL中试图搜寻所有关键词为“union”的请求。
从上图中,我们可以看到URL中的“union select 1,2,3,4,5”请求。很明显,ip地址为 19216856105的某人尝试了SQL注入。 类似地,当我们有自己的关键词时可以搜索特殊的关键词。
在下图中,我们正在搜索试图读取“/etc/passwd”的请求,很明显是本地文件包含尝试。
如上面的截图所示,我们有许多本地文件包含的尝试,且这些请求发送自ip地址 127001。
很多时候,能轻易通过日志看出是否是自动化扫描器产生的。
举例来说, IBM appscan在许多攻击payload中使用“appscan”这个词。所以,在日志中查看这样的请求,我们基本就可以判断有人在使用appscan扫描网站。
Microsoft Excel也是一个打开日志文件和分析日志的不错的工具。我们可以通过指定“空格”为分隔符以用excel打开日志文件。
当我们手头没有日志分析工具时,这个也挺好用的。
除了这些关键词,在分析期间要了解HTTP状态代码的基础知识。以下是关于HTTP状态代码的高级信息的表格。
0x03 Web shells
webshell是网站/服务器的另一个问题。webshell可以已web server权限控制服务器。
在一些情况下,我们可以使用webshell来访问所有放在相同服务器上的其他站点。
以下截图显示了Microsoft Excel 中开启相同的accesslog文件。
我们清楚地看到有一个叫“b374kphp”的文件被访问了。“b374k”是一个流行的webshell,因此这个文件是很可疑的。
查看相应代码“200”,本行表明有人上传了一个webshell并访问了它。
在许多情况下,攻击者重命名webshell的名字以避免怀疑。我们必须变得聪明点,看看被访问的文件是否是常规文件或者是否他们看起来不太一样。我们可以更进一步,如果任何文件看起来可疑的话,还可以查看文件类型和时间戳。
One single quote for the win
SQL注入是web应用中最常见的漏洞之一。大多数学习web应用安全的人是从学习SQL注入开始的。
识别一个传统的SQL注入很容易,给URL参数添加一个单引号看看是否报错。
任何我们传递给服务器的东西都会被记录,并且可以朔源。
以下截图显示了日志当中记录了有对参数user传入单引号测试是否有SQL注入的行为。
%27是单引号的URL编码。
出于管理目的,我们还可以运行查询监视来查看数据库中的哪个请求被执行了。
如果我们观察以上,传递一个单引号给参数“user”的SQL语句被执行了。
0x04 使用自动化工具分析
当存在大量日志时。手动检查就会变得困难。在这种情景下,除了一些手动检查之外我们可以使用自动化工具。
虽然有许多高效的商业工具,但是我要向你们介绍一款被称为“Scalp”的免费工具。
据他们的官方链接所说,Scalp是用于Apache服务器,旨在查找安全问题的日志分析器。主要理念是浏览大量日志文件并通过从HTTP/GET中提取可能的攻击。
Scalp可以从以下链接下载:
https://codegooglecom/p/apache-scalp/
Scalp是python脚本,所以要求我们的机器中安装python。
以下显示该工具的帮助。
如我们在上图所见,我们需要使用标志-l来提供要分析的日志文件。
同时,我们需要提供使用标志-f提供一个过滤文件让Scalp在accesslog文件中识别可能的攻击。
我们可以使用PHPIDS项目中的过滤器来检测任何恶意的尝试。
该文件名为“default_filterxml ”,可以从以下链接中下载:
https://githubcom/PHPIDS/PHPIDS/blob/master/lib/IDS/default_filterxml
以下代码块是取自上面链接的一部分。
1
2
3
4
5
6
7
8
9
10
11
<filter>
<id>12</id>
<rule><![CDATA[(:etc\/\Wpasswd)]]></rule>
<description>Detects etc/passwd inclusion attempts</description>
<tags>
<tag>dt</tag>
<tag>id</tag>
<tag>lfi</tag>
</tags>
<impact>5</impact>
</filter>
它是使用XML标签定义的规则集来检测不同的攻击测试。以上代码片段是检测文件包含攻击尝试的一个示例。
下载此文件之后,把它放入Scalp的同一文件夹下。
运行以下命令来使用Scalp分析日志。
1
python scalp-04py –l /var/log/apache2/accesslog –f filterxml –o output –html
“output”是报告保存的目录。如果不存在的话,由Scalp自动创建。-html是用来生成HTML格式的报告。 如我们在上图看到的那样,Scalp结果表明它分析了4001行,超过4024并发现了296个攻击模式。
运行上述命令后在输出目录内生成报告。我们可以在浏览器内打开它并查看结果。 下面截图显示的输出显示了目录遍历攻击尝试的一小部分。
MySQL中的日志记录
本节论述了数据库中的攻击分析和监视它们的方法。
第一步是查看设置了什么变量。我们可以使用“show variables;”完成,如下所示。
接下来显示了上述命令的输出。
如我们在上图中看到的,日志记录已开启。该值默认为OFF。
这里另一个重要的记录是 “log_output”,这是说我们正在把结果写入到文件中。另外,我们也可以用表。
我们可以看见“log_slow_queries”为ON。默认值为OFF。
所有这些选项都有详细解释且可以在下面提供的MySQL文档链接里直接阅读:
MySQL的查询监控
请求日志记录从客户端处收到并执行的语句。默认记录是不开启的,因为比较损耗性能。
我们可以从MySQL终端中开启它们或者可以编辑MySQL配置文件,如下图所示。
我正在使用VIM编辑器打开位于/etc/mysql目录内的“mycnf”文件。
如果我们向下滚动,可以看见日志正被写入一个称为“mysqllog”的文件内。
我们还能看到记录“log_slow_queries” ,是记录SQL语句执行花了很长时间的日志。
现在一切就绪。如果有人用恶意查询数据库,我们可以在这些日志中观察到。如下所示:
上图显示了查询命中了名为“webservice”的数据库并试图使用SQL注入绕过认证。
浏览器攻击
基于浏览器的网络攻击与第二种常见类型相关联。他们试图通过网络浏览器破坏机器,这是人们使用互联网的最常见方式之一。浏览器攻击通常始于合法但易受攻击的网站。攻击者攻击该站点并使用恶意软件感染该站点。当新访问者(通过Web浏览器)到达时,受感染的站点会尝试通过利用其浏览器中的漏洞将恶意软件强制进入其系统。
暴力破解
暴力破解攻击类似于打倒网络的前门。攻击者试图通过反复试验来发现系统或服务的密码,而不是试图欺骗用户下载恶意软件。这些网络攻击可能非常耗时,因此攻击者通常使用软件自动执行键入数百个密码的任务。
暴力破解攻击是遵循密码最佳实践的重要原因之一,尤其是在关键资源(如网络路由器和服务器)上。
长而复杂的密码比愚蠢的密码(例如“123456”,“qwerty”和“password”)更难以通过蛮力破解。请放心:这些是攻击者尝试的第一把钥匙。
拒绝服务(DDoS)攻击
拒绝服务攻击(也称为分布式拒绝服务攻击(DDoS))在网络安全攻击列表中排名第三,并且每年都在不断增强。
DDoS攻击试图淹没资源 例如网站,游戏服务器或DNS服务器 - 充斥着大量流量。通常,目标是减慢或崩溃系统。
但DDoS攻击的频率和复杂性正在增加。
蠕虫病毒
恶意软件通常需要用户交互才能开始感染。例如,此人可能必须下载恶意电子邮件附件,访问受感染的网站或将受感染的USB插入计算机。蠕虫攻击自行传播。它们是自我传播的恶意软件,不需要用户交互。通常,它们利用系统漏洞传播到本地网络之外。
WannaCry勒索软件在几天内感染了超过300,000台计算机,使用蠕虫技术攻击网络和计算机。
WannaCry针对一个广泛的Windows漏洞迅速破坏了一台机器。一旦机器被感染,恶意软件就会扫描连接的LAN和WAN,以查找并感染其他易受攻击的主机。
恶意软件攻击
当然,恶意软件是恶意软件创建用于伤害、劫持或监视感染系统的应用程序。目前尚不清楚为什么“蠕虫病毒攻击”不包含在此类别中 - 因为它们通常与恶意软件相关联。
无论如何,恶意软件很普遍并且众所周知。它传播的三种常见方式包括:
网络钓鱼电子邮件 攻击者创建邮件以诱使受害者陷入虚假的安全感,欺骗他们下载最终成为恶意软件的附件。
恶意网站 攻击者可以设置包含漏洞利用工具包的网站,这些漏洞利用工具包旨在查找网站访问者系统中的漏洞并使用它们将恶意软件强制到其系统中。这些网站还可用于将恶意软件伪装成合法下载。
恶意广告 聪明的攻击者已经发现了使用广告网络分发商品的方法。点击后,恶意广告可以将用户重定向到恶意软件托管网站。某些恶意广告攻击甚至不需要用户交互来感染系统。
网络攻击
面向公众的服务,例如Web应用程序和数据库 也是网络安全攻击的目标。
最常见的网络应用攻击:
跨站点脚本(XSS) 攻击者破坏易受攻击的网站或Web应用程序并注入恶意代码。当页面加载时,代码在用户的浏览器上执行恶意脚本。SQL注入(SQLi)攻击者不是将标准数据提交到文本框或其他数据输入字段,而是输入SQL语句来诱骗应用程序显示或操纵其数据。
Path Traversal 攻击者制定HTTP请求以绕过访问控制并导航到系统中的其他目录和文件。例如,路径遍历攻击可以授予攻击者访问站点Web服务器的核心文件的权限,而不是限于单个网站的内容。
扫描攻击扫描不是彻底的网络攻击,而是攻击前的侦察。攻击者使用广泛使用的扫描工具来探测面向公众的系统,以便更好地了解现有的服务,系统和安全性。
端口扫描器 用于确定系统开放端口的简单工具。存在几种类型,其中一些旨在防止被扫描目标的检测。
漏洞扫描程序 收集有关目标的信息,并将其与已知的安全漏洞进行比较。结果是系统上已知漏洞及其严重性的列表。
其他攻击
我们只能推测绑定到“其他”的网络攻击类型。也就是说,这里有一些常见的嫌疑人:
物理攻击 尝试以老式的方式摧毁或窃取网络架构或系统。被盗的笔记本电脑是一个常见的例子。
内部人员攻击 并非所有网络攻击都是由局外人执行的。愤怒的员工,犯罪的第三方承包商和笨拙的工作人员只是少数潜在的参与者。他们可以窃取和滥用访问凭据,滥用客户数据或意外泄露敏感信息。
高级持续性威胁 最先进的网络攻击由黑客精英团队执行,他们根据目标环境调整和定制技术。他们的目标通常是通过隐藏和“持久”来长时间窃取数据。
展开剩余内容
0条评论