《Web安全渗透测试(SSL)》由会员分享,可在线阅读,更多相关《Web安全渗透测试(SSL)(14页珍藏版)》请在金锄头文库上搜索。
1、企业级Web安全渗透测试之SSL篇一、简介目前,许多重要的Web服务都使用了 SSL和TLS协议对通信进行保护。我们知道,http 协议是使用明文进行传输的,但是像网络银行之类的web应用如果使用http协议的话,那 么所有的机密信息都会暴露在网络连接中,这就像银行用一个透明的信封给我们邮寄信用卡 帐号和密码一样,在从银行到达用户之间任何接触过这封信的人,都能看到我们的帐号和密 码。为了提高其安全性,经常需要通过SSL或者TLS隧道传输这些明文,这样就产生了 https 通信流量。例如网络银行之类的应用,在服务器和客户端之间传输密码,信用卡号码等重要 信息时,都是通过https协议进行加密传送
2、的。SSL和TLS是两种安全协议,它们通过加密技术为传输的信息提供安全信道、机密性 和身份验证等安全功能。我们知道由于对高级密码技术的出口限制,会造成遗留系统使用的 是弱加密技术。如果系统采用了弱密码,或者说密码强度过低的话,攻击者可以在有效的时 间内破解密钥,而攻击者一旦得到了密钥,就像小偷得到了我们家的钥匙一样,所有的锁都 会形同虚设。但是,新Web服务器就不会使用弱加密系统了吗?答案是否定的,因为许多 新Web服务器也经常被配置成处理虚密码选项。为了实现这些安全特性,协议必须确保使 用的密码算法有足够的强度,并且密码算法得到了正确的实现。即使服务器安装使用了高级 的加密模块,但是如果配置
3、不当的话,也有可能为安全特性要求较高的通信信道的设置了较 弱的加密技术。下面,我们将详细介绍如何对这两种协议的配置进行安全审计。二、测试SSL/TLS的密码规范我们知道,http协议是使用明文进行传输的,为了提高其安全性,经常需要通过SSL 或者TLS隧道传输这些明文,这样就产生了https通信流量。除对传输的数据进行加密处理 之外,https (安全超文本传输协议,HTTPS)还能利用数字证书为服务器或客户端提供身份 标识。过去,美国政府对加密系统的出口有许多限制,如密钥长度最大为40位,因为密钥长 度越短,它就越容易破解。后来,密码出口条例已经放宽了许多,但是,检查服务器的SSL 配置仍然
4、十分重要,因为它有可能配置使用了弱加密技术。基于SSL的服务不应该提供选 择弱密码的机会。注意,我们这里所说的弱密码,指的是加密强度不够、容易破解的加密系统。不同的加 密算法具有不同的密码强度,但是在算法一定的情况下,密钥的长度越长,加密强度越高。技术上,选择加密技术的过程如下所示:在建立SSL连接的初期,客户端向服务器发 送一个Client Hello消息,以告知服务器它支持哪些加密技术等。一般情况下,客户端通常是一个Web浏览器,所以浏览器是目前最常见的SSL客户端;然而,任何支持SSL的应用 程序都可以作为SSL客户端使用。比如,有时候SSL客户端是些SSL代理(如stunnel), 它
5、们使得那些不支持SSL的工具也能与SSL服务通信。同理,SSL服务器端通常为Web服 务器,但是其他应用程序也可以充当SSL服务器端。加密套件规定了具体的密码协议(DES、 RC4、AES)、密钥长度(诸如40、56或者128位)和用于完整性检验的散列算法(SHA、 MD5)。收到Client Hello消息后,服务器以此确定该会话所使用的加密套件。当然,通过 配置可以规定服务器能够接受哪些密码套件,这样的话,我们就能够控制是否跟仅支持40 位加密的客户端通话。三、黑盒测试为了检测可能支持的弱密码,必须找出与SSL/TLS服务相关的端口。通常情况下,要 检查端口 443,因为它是标准的http
6、s端口;不过运行在443端口上的却未必是https服务, 因为通过配置,https服务可以运行在非标准的端口上,同时,Web应用程序也许使用了其 它利用SSL/TLS封装的服务。一般而言,为了找出这些端口,必须找出使用了哪些服务。利用扫描程序nmap时,加上扫描选项-sV,就能用来识别SSL服务。实际上,安全漏 洞扫描器除了可以显示使用的服务之外,还能用来检查弱密码,比如,Nessus就能检查任 意端口上的SSL服务,并报告弱密码。如果攻击者在您修复弱密码之前发现了它们的话,那么您的处境可就不妙了利用当 前强大的桌面计算力,例如借助GPU的并行运算,他们能够在有效的时间内破解出密钥, 然后就能
7、解密出https信道中加密过的机密信息,如口令,用户名,如果您在使用网络银行, 还能获得他们的帐号和口令,等等。所以,我们一定要在攻击者下手之前发现并修复存在的 弱密码配置。例1.通过nmap识别SSL服务roottest# nmap -F -sV localhostStarting nmap 3.75( http:/www.insecure.crg/nmap/ ) at2009-07-28 13:31 CESTInteresting ports on lccalhcst.lccaldcmain (127.0.0.1):(The 1205 ports scanned but not shown
8、 below are in state:closed)PORTSTATE SERVICEVERSION443/tcpopensslOpenSSL901/tcpopenhttpSamba SWATadministration server8080/tcp open httpApache httpd 2.0.54(Unix) mod_ssl/2.0.54 OpenSSL/0.9.7g PHP/4.3.11)8081/tcp open httpApacheTomcat/Coyote JSPengine 1.0Nmap run completed - 1 IP address (1 host up)
9、scanned in27.881 secondsroottest#例2.利用Nessus识别弱密码。F面内容摘自Nessus扫描程序生成的报告,它发现了一个允许弱密码的服务器证书(黑体字部分)。https (443/tcp)DescriptionHere is the SSLv2 server certificate:Certificate:Data:Version: 3 (0x2)Serial Number: 1(0x1)Signature Algorithm: md5WithRSAEncryptionIssuer, c=*, st=*, l=*, o=*, ou=*, CN=*Validi
10、tyNot Before: Oct 17 07:12:16 2007 GMT Not After :Oct 16 07:12:16 2008 GMTSubject, c=*, st=*, l=*, o=*, CN=*Subject Public Key Info:Public Key Algorithm: rsaEncryptionRSA Public Key: (1024 bit)Modulus (1024 bit):00:98:4f:24:16:cb:0f:74:e8:9c:55:ce:62:14:4e:6b:84:c5:81:43:59:c1:2e:ac:ba:af:92:51:f3:0
11、b:ad:e1:4b:22:ba:5a:9a:1e:0f:0b:fb:3d:5d:e6:fc:ef:b8:8c:dc:78:28:97:8b:f0:1f:17:9f:69:3f:0e:72:51:24:1b:9c:3d:85:52:1d:df:da:5a:b8:2e:d2:09:00:76:24:43:bc:08:67:6b:dd:6b:e9:d2:f5:67:e1:90:2a:b4:3b:b4:3c:b3:71:4e:88:08:74:b9:a8:2d:c4:8c:65:93:08:e6:2f:fd:e0:fa:dc:6d:d7:a2:3d:0a:75:26:cf:dc:47:74:29Ex
12、ponent: 65537 (0x10001)X509v3 extensions:X509v3 Basic Constraints:CA:FALSENetscape Comment:OpenSSL Generated CertificatePage 10Network Vulnerability Assessment Report 25.07.2009F9:63:A812:19:02:76:CE/CN=*X509v3 Subject Key Identifier:10:00:38:4C:45:F0:7C:E4:C6:A7:A4:E2:C9:F0:E4:2B:A8 X509v3 Authorit
13、y Key Identifier: keyid:CE:E5:F9:41:7B:D9:0E:5E:5D:DF:5E:B9:F3:E6:4ADirName/C=*/ST=*/L=*/O=*/OU=* serial:00Signature Algorithm: md5WithRSAEncryption7b:14:bd:c7:3c:0c:01:8d:69:91:95:46:5c:e6:1e:25:9b:aa:8b:f5:0d:de:e3:2e:82:1e:68:be:97:3b:39:4a:83:ae:fd:15:2e:50:c8:a7:16:6e:c9:4e:76:cc:fd:69:ae:4f:12
14、:b8:e7:01: b6:58:7e:39:d1:fa:8d:49:bd:ff:6b:a8:dd:ae:83:ed:bc:b2:40:e3:a5:e0:fd:ae:3f:57:4d:ec:f3:21:34:b1:84:97:06:6f: f4:7d:f4:1c:84:cc:bb:1c:1c:e7:7a:7d:2d:e9:49:60:93:12:0d:9f:05:8c:8e:f9:cf:e8:9f:fc:15:c0:6e:e2:fe:e5:07:81:82:fcHere is the list of available SSLv2 ciphers:RC4-MD5EXP-RC4-MD5RC2-C
15、BC-MD5EXP-RC2-CBC-MD5 DES-CBC-MD5DES-CBC3-MD5RC4-64-MD5The SSLv2 server offers 5 strong ciphers, butalso 0 medium strength and 2 weak export class ciphers.The weak/medium ciphers may be chosen by an export-gradeor badly configured client software.They only offer a limited protection against a brute force attackSolution: disable those ciphers and upgrade your client software if necessary.See http:/support microsoft com/default aspx?scid=kben-us216482orhttp:/httpd.apache.org/docs 2.0/mod/