这是一台老server,python 2.7.5,Twisted 17.9.0,有个端口上的SSL服务,弱扫提示需要修复一个漏洞,名为:SSL Medium Strength Cipher Suites Supported (SWEET32)
我不熟悉python或twisted,从描述看是要禁用3DES等弱算法,弱扫系统扫描到的output信息如下:
Medium Strength Ciphers (> 64-bit and < 112-bit key, or 3DES)
Name Code KEX Auth Encryption MAC
---------------------- ---------- --- ---- --------------------- ---
KRB5-DES-CBC3-MD5 0x00, 0x23 KRB5 KRB5 3DES-CBC(168) MD5
KRB5-DES-CBC3-SHA 0x00, 0x1F KRB5 KRB5 3DES-CBC(168) SHA1
DES-CBC3-SHA 0x00, 0x0A RSA RSA 3DES-CBC(168) SHA1
所以我就查了下资料,初步认为twisted支持的SSL加密算法也是基于python默认的,所以看了 /usr/lib64/python2.7/ssl.py,这个文件内容中加密算法相关的部分copy如下,也临时贴在这里:
https://bpa.st/IZSQ_DEFAULT_CIPHERS = (
'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:'
'DH+HIGH:RSA+AESGCM:RSA+AES:RSA+HIGH:ECDH+RC4:DH+RC4:RSA+RC4:!aNULL:!eNULL:'
'!MD5:!3DES'
)
_RESTRICTED_SERVER_CIPHERS = (
'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:'
'DH+HIGH:RSA+AESGCM:RSA+AES:RSA+HIGH:!aNULL:!eNULL:!MD5:!DSS:!RC4:!3DES'
)
从上面内容看,python 2.7的SSL默认是禁用了3DES的,那为何弱扫会提示支持3DES?是twisted里面有特别的有关加密算法的设置么?
我确认那个端口上的SSL/TLS服务就是基于twisted的,相关代码如下,下面的 XXXport 就是弱扫漏洞对应的端口。
from twisted.internet import ssl
sslContext = ssl.DefaultOpenSSLContextFactory(self.privatekey, self.certificate)
reactor.listenSSL(
self.XXXport,
self.XXX_factory,
contextFactory = sslContext,
interface=self.XXX_host
)
--
FROM 60.250.88.*