书接上篇。上次讲了利用arp欺骗的原理,在内网嗅探明码发送的用户名和密码,这一次再来说说有ssl加密的嗅探。
利用ettercap,加上sslstrip的辅助,同样可以嗅探经过ssl加密的部分https数据。关于https和ssl的详细原理,可以查找相关文献。先介绍一下这次的测试环境,一个是win8 x64的机器,利用电脑自带的无线网卡接入AP,地址是192.168.1.30(我的笔记本电脑),扮演我们需要嗅探的对象;扮演攻击者的是vmware里安装的kali linux,利用USB外接的网卡联网,IP地址192.168.1.106,和被攻击者(其实是虚拟机的宿主)在同一个网段;网关是家中的AP(好惨!天天被测试!),地址192.168.1.1。上一篇被攻击者用的是安卓手机,这一次用的是笔记本电脑,为了演示方便,其实原理一样,只要手机上某个程序是通过https协议接入的,都适用。
利用sslstrip和ettercap嗅探的步骤很简单,就4步,可参考这一篇文章:http://xiao106347.blog.163.com/blog/static/21599207820131121112420259/
下面是demo time:
step 1: 设置iptables规则(关于iptables的语法和作用,鸟哥的书里介绍的很详细噢!)
iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT –to-port 10000
要查看设置结果用下列命令:
iptables -t nat -L –line-numbers
要删除的话,将-A改为-D就可以了,或是用刚才–line-numbers显示出的编号进行删除。
step 2:用sslstrip监听刚才设置的端口10000。由于sslstrip运行时经常报错,但不影响运行效果,为了界面更加清爽,我习惯将错误输出隐藏(2>/dev/null),命令行如下:
sslstrip -l 10000 2>/dev/null
sslstrip -h可以显示一些参数,其中较常用的是-f,在浏览器标题栏上显示一个小锁的图标;-k,代表kill session,强行切断用户当前连接,让他们重新连接网站,便于嗅探数据。
step 3:设置ettercap进行嗅探,命令和上次一样:
ettercap -T -q -i wlan0 -M arp:remote /192.168.1.30/ /192.168.1.1/
(由于ettercap会自动设定ip转发,所以许多网页上说的 echo "1">/proc/sys/net/ipv4/ip_forward 这个命令没有必要。)
嗅探环境设置完成了。下面,在宿主机器登陆一些常用的由https加密的网站,测试sslstrip的嗅探效果。首先是百度,结果证明,在百度首页上登录的用户名和密码可以被监测到,而且正常登录:
接下来是我经常买东东的电商amazon.cn,没有幸免:
接着测试了QQ Mail,Gmail,Sina,tmall,alipay等一些网站,部分嗅探出敏感信息,部分网站浏览有问题,看来针对sslstrip的劫持方法进行了规避。其实sslstrip是在2009年DefCon上提出的方法,经过快5年了,应对方法早就成熟,嗅探效果已经大不如从前。
还测试了一下京东,登录时如果不选择安全控件,那么用户名和密码都是明文。选择安全登录后,密码被加密了,强烈建议在可以安全登录时务必这样做。