企业级Web安全渗透测试之SSL篇
上一篇 / 下一篇 2011-11-07 22:37:59 / 个人分类:其它
文章来源
- 文章来源:【转载】
如果Web服务中的SSL和TLS协议出现安全问题,后果会如何?很明显,这样的话攻击者就可以拥有你所有的安全信息,包括我们的用户名、密码、信用卡、银行信息……所有的一切。本文将向读者详细介绍如何针对Web服务中的SSL和TLS协议进行安全渗透测试。我们首先对这两种协议进行了概述,然后详细介绍了针对加密信道安全性的黑盒测试和白盒测试。最后列出了一些常用的安全测试工具。
1u&f+W;|uo051Testing软件测试网G K#V;|WR
A
一、简介51Testing软件测试网a$aH,n \dn
51Testing软件测试网Mp$M/|6Ex%?4L
目前,许多重要的Web服务都使用了SSL和TLS协议对通信进行保护。我们知道,http协议是使用明文进行传输的,但是像网络银行之类的web 应用如果使用http协议的话,那么所有的机密信息都会暴露在网络连接中,这就像银行用一个透明的信封给我们邮寄信用卡帐号和密码一样,在从银行到达用户之间任何接触过这封信的人,都能看到我们的帐号和密码。为了提高其安全性,经常需要通过SSL或者TLS隧道传输这些明文,这样就产生了https通信流量。例如网络银行之类的应用,在服务器和客户端之间传输密码,信用卡号码等重要信息时,都是通过https协议进行加密传送的。51Testing软件测试网!Mn9s7X7OMe2M y
51Testing软件测试网Y.i)|T1JS%_9ug
SSL和TLS是两种安全协议,它们通过加密技术为传输的信息提供安全信道、机密性和身份验证等安全功能。我们知道由于对高级密码技术的出口限制,会造成遗留系统使用的是弱加密技术。如果系统采用了弱密码,或者说密码强度过低的话,攻击者可以在有效的时间内破解密钥,而攻击者一旦得到了密钥,就像小偷得到了我们家的钥匙一样,所有的锁都会形同虚设。但是,新Web服务器就不会使用弱加密系统了吗?答案是否定的,因为许多新Web服务器也经常被配置成处理虚密码选项。为了实现这些安全特性,协议必须确保使用的密码算法有足够的强度,并且密码算法得到了正确的实现。即使服务器安装使用了高级的加密模块,但是如果配置不当的话,也有可能为安全特性要求较高的通信信道的设置了较弱的加密技术。下面,我们将详细介绍如何对这两种协议的配置进行安全审计。
6_)_+iy ^
H051Testing软件测试网bLsXq8~r!Uf[
二、测试SSL/TLS的密码规范51Testing软件测试网A}q,vNx&a$vj
51Testing软件测试网Mz fAwwb
我们知道,http协议是使用明文进行传输的,为了提高其安全性,经常需要通过SSL或者TLS隧道传输这些明文,这样就产生了https通信流量。除对传输的数据进行加密处理之外,https(安全超文本传输协议,HTTPS)还能利用数字证书为服务器或客户端提供身份标识。51Testing软件测试网6sa"zXbY1y1A
51Testing软件测试网"~.he~"i
过去,美国政府对加密系统的出口有许多限制,如密钥长度最大为40位,因为密钥长度越短,它就越容易破解。后来,密码出口条例已经放宽了许多,但是,检查服务器的SSL配置仍然十分重要,因为它有可能配置使用了弱加密技术。基于SSL的服务不应该提供选择弱密码的机会。51Testing软件测试网3^/q)sQ-W'VF:wV
51Testing软件测试网;\@ _ Y+`+p8\
注意,我们这里所说的弱密码,指的是加密强度不够、容易破解的加密系统。不同的加密算法具有不同的密码强度,但是在算法一定的情况下,密钥的长度越长,加密强度越高。
d3vI9{1p"e9Xu*f051Testing软件测试网g*I7vK#D;^$y3HK
技术上,选择加密技术的过程如下所示:在建立SSL连接的初期,客户端向服务器发送一个Client Hello消息,以告知服务器它支持哪些加密技术等。一般情况下,客户端通常是一个Web浏览器,所以浏览器是目前最常见的SSL客户端;然而,任何支持 SSL的应用程序都可以作为SSL客户端使用。比如,有时候SSL客户端是些SSL代理(如stunnel),它们使得那些不支持SSL的工具也能与 SSL服务通信。同理,SSL服务器端通常为Web服务器,但是其他应用程序也可以充当SSL服务器端。加密套件规定了具体的密码协议(DES、RC4、AES)、密钥长度(诸如40、56或者128位)和用于完整性检验的散列算法(SHA、MD5)。收到 Client Hello消息后,服务器以此确定该会话所使用的加密套件。当然,通过配置可以规定服务器能够接受哪些密码套件,这样的话,我们就能够控制是否跟仅支持 40位加密的客户端通话。 51Testing软件测试网%J-TIf
x(F _0i
3W&nt5Q4G2t(a;W0三、黑盒测试
@#\u*dkna0
I'U7zhuV@wz0为了检测可能支持的弱密码,必须找出与SSL/TLS服务相关的端口。通常情况下,要检查端口443,因为它是标准的https端口;不过运行在 443端口上的却未必是https服务,因为通过配置,https服务可以运行在非标准的端口上,同时,Web应用程序也许使用了其它利用SSL/TLS 封装的服务。一般而言,为了找出这些端口,必须找出使用了哪些服务。51Testing软件测试网 nn9`
R RY9I6UJ
bH.w3D3mEky0利用扫描程序nmap时,加上扫描选项–sV,就能用来识别SSL服务。实际上,安全漏洞扫描器除了可以显示使用的服务之外,还能用来检查弱密码,比如,Nessus就能检查任意端口上的SSL服务,并报告弱密码。51Testing软件测试网7G[p,L-hu'_B
如果攻击者在您修复弱密码之前发现了它们的话,那么您的处境可就不妙了——利用当前强大的桌面计算力,例如借助GPU的并行运算,他们能够在有效的时间内破解出密钥,然后就能解密出https信道中加密过的机密信息,如口令,用户名,如果您在使用网络银行,还能获得他们的帐号和口令,等等。所以,我们一定要在攻击者下手之前发现并修复存在的弱密码配置。51Testing软件测试网5DzQ
u7F
;B.D
_%`/RJf~
Ge0例1. 通过nmap识别SSL服务51Testing软件测试网U1i3gCI2P J
2TX)an x#H0[root@test]# nmap -F -sV localhost
'YH l^5q9{r0
9?jNw"p b0Starting nmap 3.75 ( http://www.insecure.org/nmap/ ) at 2009-07-28 13:31 CEST51Testing软件测试网`:nt/TnP|s!aB0N
51Testing软件测试网(amxlnjfM#b)E!d
Interesting ports on localhost.localdomain (127.0.0.1):
/Lnz;oY6c051Testing软件测试网%g3}.V1smDzJ
(The 1205 ports scanned but not shown below are in state: closed)
3m0J/fl,u4}#?051Testing软件测试网7qBD~
Z
F%d
PORT STATE SERVICE VERSION51Testing软件测试网,z'p5e;o,qbmc'D
x"ek;Fx8G%?y3X)U0443/tcp open ssl OpenSSL51Testing软件测试网%V/v` H(gL,S"d
.^
n%FA8XK#m0901/tcp open http Samba SWAT administration server
vp6s6t4Ke`0
'mw;I$m:i.Q,T._p `08080/tcp open http Apache httpd 2.0.54 ((Unix) mod_ssl/2.0.54 OpenSSL/0.9.7g PHP/4.3.11)
cs7vJr*T*g051Testing软件测试网2Iv"Wml4at
8081/tcp open http Apache Tomcat/Coyote JSP engine 1.0
EP,lJHY,J051Testing软件测试网2l6I*~:}}e{]I5IS?~
Nmap run completed -- 1 IP address (1 host up) scanned in 27.881 seconds
`sBpg'p2SR051Testing软件测试网GUgk)y
w
[root@test]# 51Testing软件测试网}_.Dd%ZH ^f%A!}
51Testing软件测试网-q?f \M#]Edx
例2. 利用Nessus识别弱密码。51Testing软件测试网^,t jy%o#`8g
]e
51Testing软件测试网7rgm@'Ms1y+I
下面内容摘自Nessus扫描程序生成的报告,它发现了一个允许弱密码的服务器证书(黑体字部分)。
Lg#uA%q,M5X1J$q4ti'c0
WD1at
dz1m s0https (443/tcp)
h] mp#m
VE0
vP"]^,oh8yt}0Description 51Testing软件测试网"o*t Zt"b7v%]{
!YP!@9D?tD0Here is the SSLv2 server certificate: 51Testing软件测试网E!B6bn8D4O
51Testing软件测试网fM.y"t/s6pH
Certificate: 51Testing软件测试网SHq*QU.O{I
51Testing软件测试网6PM&D4y)j*t`!}
Data:
T)T3x-M3_ ^
T051Testing软件测试网5l:[.[n"RU;Rt
Version: 3 (0x2)
i X&f8J)g T;QH v0
c$D
ixm;zn QS3a0Serial Number: 1 (0x1)
J"L{fF/^051Testing软件测试网A$HL2`1xZ0qj
Signature Algorithm: md5WithRSAEncryption 51Testing软件测试网Asiy/R
Fl*B5D(]0Issuer: C=**, ST=******, L=******, O=******, U=******, CN=****** 51Testing软件测试网!mI3Ml Xt.VpTc e6e
51Testing软件测试网2QS6tGeD5S#u
Validity
.{/ZeN"T&\y_)VO051Testing软件测试网sz9uC}!I$v
Not Before: Oct 17 07:12:16 2007 GMT Not After : 51Testing软件测试网h"Jr/M*s%Yx:{L
V]u\"A'|:^0Oct 16 07:12:16 2008 GMT
L(^%hF{
x-W0
T0UD!A2B0Subject: C=**, ST=******, L=******, O=******, CN=******
c#IP0p\u)s+\G051Testing软件测试网)rA&Gz5M+z@+X
Subject Public Key Info: 51Testing软件测试网]G3I,\4Lw
`u,`tl)H0Public Key Algorithm: rsaEncryption 51Testing软件测试网)G&W9{]4S'Q
/_-W2k6ijtvbE2{-Vm0RSA Public Key: (1024 bit)
w9RO9K+n051Testing软件测试网d(IBv6J$pi
\
Modulus (1024 bit): 51Testing软件测试网
|8u gdQN'y:M)b$[5p
51Testing软件测试网c;dA5e4[8m B/~6L/r
00:98:4f:24:16:cb:0f:74:e8:9c:55:ce:62:14:4e:
L9Qu oT/L0
Fw.?#Nr,K*x
W)Xx06b:84:c5:81:43:59:c1:2e:ac:ba:af:92:51:f3:0b:
wd8_)f']k~6P051Testing软件测试网h,e0]Lta-g.gj
ad:e1:4b:22:ba:5a:9a:1e:0f:0b:fb:3d:5d:e6:fc:
6W a[%T V/^:V6V0
4E]\1Tli,F/S0ef:b8:8c:dc:78:28:97:8b:f0:1f:17:9f:69:3f:0e: 51Testing软件测试网+I
@^'r8X$_7{
51Testing软件测试网D cry\
72:51:24:1b:9c:3d:85:52:1d:df:da:5a:b8:2e:d2: 51Testing软件测试网KKR Xg(cQn0v4A
"i7h_UHyAA009:00:76:24:43:bc:08:67:6b:dd:6b:e9:d2:f5:67: 51Testing软件测试网Qe als6[Y
51Testing软件测试网.`|lD+E \&H|)[r9?
e1:90:2a:b4:3b:b4:3c:b3:71:4e:88:08:74:b9:a8:
;N i1R3Vpz
T0
H$o3`np\02d:c4:8c:65:93:08:e6:2f:fd:e0:fa:dc:6d:d7:a2:
nW5c?nV!h051Testing软件测试网f&|,y(Kb4k R
3d:0a:75:26:cf:dc:47:74:29
4]Yg%`D'J1HM0
#I9j.kRp({ ^/F0Exponent: 65537 (0x10001) 51Testing软件测试网eNDA.sUbJfd&Pd
`AI\3`b`5f0X509v3 extensions:
JU(tr+}5t.g
I051Testing软件测试网9^&]9`/Ynb
X509v3 Basic Constraints:
J6Z%Q?o/X051Testing软件测试网u-mHks&q
w!}Jgs
CA:FALSE
n
nk&G3lA(i8V0
W.\_r!d T0Netscape Comment:
@3g zMdY.APA1}0
tUF6r$i6M0OpenSSL Generated Certificate
D!q$Ed8R8_2A,Lc3L3\0
d}.` `a%uV0Page 10
N Z;v
z$KG0
a7O["{;s U0Network Vulnerability Assessment Report 25.07.2009 51Testing软件测试网%mER
C,sN0A
2ST&v-k}0X509v3 Subject Key Identifier: 51Testing软件测试网RLY
|C6I*Zn
51Testing软件测试网5w7bj9\g*y0B
10:00:38:4C:45:F0:7C:E4:C6:A7:A4:E2:C9:F0:E4:2B:A8:F9:63:A8
]%v}a1U0
b\y:gU-QL$c&v0X509v3 Authority Key Identifier:
r)T%{8?['dJs*x051Testing软件测试网
v'l nmE
keyid:CE:E5:F9:41:7B:D9:0E:5E:5D:DF:5E:B9:F3:E6:4A:12:19:02:76:CE
x(yJDn0
xA(rZuk0DirName:/C=**/ST=******/L=******/O=******/OU=******/CN=******
6{
m!n#v v'\i051Testing软件测试网qK8@4D`Z"N'X
serial:00
nH
C4a,H$vj Y)tgA051Testing软件测试网0F4B^$DK
G/^~Y
Signature Algorithm: md5WithRSAEncryption