使用kali mitmproxy进行HTTP 中间人攻击实验
在Linux下使用mitmproxy的透明代理模式,拦截同一局域网下一台目标主机的HTTP响应页面,并重定向网页。
2 实验环境
攻击主机:Kali Linux、mitmproxy
靶机:Windows 7 、IE浏览器
3 实验工具
mitmproxy:是专用于中间人攻击的代理工具,可以拦截HTTP和HTTPS请求和响应,并动态修改它们,它支持两种模式,正向代理,与透明代理,OSX和Linux上的透明代理模式
4 实验步骤
4.1 环境准备
在NAT模式下配置两台虚拟机IP位于统一网段,可以ping通
kali
win7
ping
4.2 安装工具
kali已安装
4.3 输入拦截条件
4.4 设置IE浏览器的代理服务器
打开win7 的IE的Internet选项,将代理服务器地址设置为我们的kali地址
4.5 拦截数据包
IE地址栏输入网址
kali已拦截
单击URL,可以看到三个标签,其中Request标签被标注为intercepted,表示被拦截
4.6 拦截Response包
按a放行该包,Response包被拦了下来
IIS 302 0 0日志代码解释:搜索引擎返回302错误表示被请求的资源暂时转移(Moved temporatily),然后会给出一个转移后的URL,而浏览器在处理服务器返回的302错误时,原则上会重新建立一个TCP连接,然后再取重定向后的URL的页面;但是如果页面存在于缓存中,则不重新获取。
服务器要求重定向到谷歌
4.7 修改location
按e
回车进入
按e进入,按i插入,将google换成163,esc退出,:wq保存
查看Location
4.8 完成中间人攻击
按a放包
回去看我们win7
攻击成功
5 实验中的问题
5.1 课本提示返回301而我们返回302
301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取——这是它们的共同点。
他们的不同在于301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了);302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。
5.2 课本命令有问题
参考课本先按e再按h的方法无法改Location,这里还是花了些时间去试探其他方法的
按e进入编辑模式之后可以进入response header的页面进行修改
6 实验收获