[关闭]
@ensis 2015-05-18T13:44:17.000000Z 字数 1694 阅读 2196

SSL中间人框架——风声的基本介绍


攻击拓扑结构


中间人攻击框架配置

1. 将目标流量转发至本地监听端口8888:

在OS X中,可在/etc/pf.conf文件中rdr-anchor "com.apple/*"下加入语句

rdr on bridge100 inet proto tcp from 192.168.2.0/24 to any port https -> 127.0.0.1 port 8888

其中bridge100为目标流量经过的接口,192.168.2.0/24为目标流量的源ip范围,可根据测试环境进行相应更改。

在Linux中,通过iptables语句即可配置:

iptables -t nat -F PREROUTING
iptables -t nat -A PREROUTING -p tcp -s 192.168.2.0/24 --dport 443 -j REDIRECT --to-port 8888

2. 安装必要软件及相关配置

此中间人攻击框架是用Python实现的,并且用到了scapy进行初级的包格式解析,因此需要安装:

python2.7, scapy2.3.1

并将ssl_tls.py文件放置在scapy/layers/文件夹下,对于OS X,其路径为

/Library/Python/2.7/site-packages/scapy/layers/

对于Linux,其路径为:

/usr/lib/python2.7/dist-packages/scapy/layers/

并对scapy目录下的config.py文件进行修改,将373行load_layers列表中加入元素ssl_tls,也就是改为

load_layers = ["sebek", "skinny", "smb", "snmp", ... , "tftp", "x509", "bluetooth", "dhcp6", "llmnr", "sctp", "vrrp", "ssl_tls", ]

3. 启动中间人攻击程序

根据需求修改wind.py中import的内容。比如要使用消息欺骗功能,则在wind.py中指示的相应位置加入from messageFraud import *语句。功能和对应程序名称见下表:

功能 程序名称 加入语句
被动查看 passive from passive import *
消息欺骗 messageFraud from messageFraud import *
Freak攻击 freak from freak import *
EarlyCCS攻击 earlyccs from earlyccs import *

运行python wind.py启动程序。


中间人攻击框架介绍

框架的基本结构如下:

程序名称 主要功能
wind.py 框架的主程序,负责监听端口,处理收到的连接,每个连接有相应的handler,在handle函数中进行数据的收发,并调用相应的函数进行处理。
ssl_tls_crypto.py 维护一个完整的TLS连接,每一个TLSSessionCtx实例都是一个TLS连接,其中保存了连接的所有信息。
prf.py TLS中计算master secret、session key的基本方法。
header.py socket接收数据时的特殊处理,以及OS X和Linux下获取连接源目的地址的方法。
freak.py SSL freak攻击的实现。
passive.py 被动攻击,提取通信协议基本参数。
messageFraud.py 消息欺骗,篡改握手消息,使另一方因消息错误主动断掉连接。
earlyCCS.py EarlyCCS攻击,在交换密钥前发送change cipher spec消息,测试服务器是否接受并进行不加密通信。
forward.py 不对流量做处理,包含扩展程序应该实现的方法和设定的参数。
keys.list 已分解的512bit公钥,用于freak攻击。

说明:
前4个文件构成了框架的基础,功能扩展是通过新添加的文件实现的(如freak.py,earlyccs.py等)。要新添加一个功能,只需新建一个.py文件,实现forward.py内的函数即可,如果要对包的字段进行读写,也就是需要解析包格式,那么还需包含from scapy.all import *语句。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注