【实战】用 Python 实现中间人攻击

来源:Python 技术「ID: pythonall」

中间人攻击,顾名思义,就是客户端和服务端的通信被第三者拦截了,这样通信双方的通信内容就会被窃听。你可能会认为,没关系啊,窃听就窃听呗,反正又没什么重要的信息,那如果我告诉你,攻击者不但可以窃听你们的通信内容,甚至可以修改你们的通信内容,你还会这么认为么。

想象一下,当你和你的女朋友正聊的火热时,你们的聊天记录就好像被挂在了公屏上一样,攻击者一览无余,甚至当你给你的女票发送了一句「我爱你」之后,攻击者篡改了你发送的内容,修改为「我恨你」。想象一下后果严重不严重。

与信息被窃听带来的危害相比,攻击者篡改通信内容所带来的危害则更甚。今天派森酱就带你来玩一玩中间人攻击。

工具安装

熟话说工欲善其事,必先利其器。好的工具可以让我们事半功倍,今天的主角就是 mitmproxy,这是一款出色的代理工具,使用起来也非常简单方便,使用 pip 安装即可。

pip3 install mitmproxy

安装好之后,我们就可以使用 mitmproxy、mitmdump 和 mitmweb 这三个命令来愉快的玩耍了。

其中 mitmproxy 是以命令行的方式来交互的,不太好用,所以很少用,暂时忽略即可;mitmdump 是 mitmproxy 的命令行接口,关键的是,该命令可以使用 Python 对请求做数据处理,比如数据的解析,过滤,存储等;而 mitmweb 则是 web 交互模式。

mitmweb

直接在命令行是输入 mitmweb 按回车即可。

此时,我们可以看到 mitmweb 在 8080 监听,而 8081 则是 web 交互界面的端口,打开地址 http://127.0.0.1:8081/ 即可看到。

设置好电脑的代理服务器地址和端口,代理地址是本地,端口就是 8080,然后用浏览器访问必应首页 https://cn.bing.com/,mitmweb 监控页面就会收到一系列请求了,针对每个具体的请求,还可以看到详细的请求和返回数据,

mitmdump

相比于 mitmweb,mitmdump 的功能更强大,我们可以使用 Python 脚本来处理相应的请求。

先建一个 script.py 的脚本。

def request(flow):
    print('request url is %s' % flow.request.url)

接着执行 mitmdump -s script.py 命令,可看到 mitmproxy 仍然是在 8080 端口开启监听。

然后我们开始访问必应首页,可以看到控制台输出如下。

细心的你可能发现了,第二张图的命令比第一张图多了一个 -q 的参数,这是为了防止 mitmproxy 的日志输出对结果造成干扰。我们的脚本程序已经跑通了,接下来就是如何对数据做处理了。

今天我们来做点好玩的,不管用户访问什么网站,我们都将其指向必应首页。

def request(flow):
    flow.request.url = 'http://cn.bing.com'

一行代码搞定,启动 mitmproxy 来看下效果,我们试着访问下百度搜索。

(0)

相关推荐

  • 10种常见网站安全攻击手段及防御方法

    在某种程度上,互联网上的每个网站都容易遭受安全攻击.从人为失误到网络罪犯团伙发起的复杂攻击均在威胁范围之内. 网络攻击者最主要的动机是求财.无论你运营的是电子商务项目还是简单的小型商业网站,潜在攻击的 ...

  • 开发多年,你怎么连登陆接口都写这么烂 ...

    作者:哒哒哒哒打代码 链接:https://juejin.cn/post/6859214952704999438 前言 大家学写程序时,第一行代码都是hello world.但是当你开始学习WEB后台 ...

  • 以【某程旅行】为例,讲述小程序爬虫技术

    大家好,我是辰哥~~~ 前提:在学习本文采集小程序数据之前,相信大家都掌握了抓取数据包的技能,比如使用Mitmproxy进行抓取数据包.如果看到这里的你还没有掌握的话,可以参与辰哥之前的写的一篇关于m ...

  • 牛逼!黑客这样干翻了TCP/IP!

    来自公众号: 暖蓝笔记 这一篇主要和大家一起学习回顾关于 TCP/IP的常见攻击,至少有一个基本的认识 前言 1 IP欺骗 IP是什么 IP是什么 在网络中,所有的设备都会分配一个地址.这个地址就仿佛 ...

  • CTF 密码学应用中间人攻击

    中间人攻击(Man-in-the-MiddleAttack,简称"MITM攻击")是一种"间接"的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计 ...

  • 实战:Express 模拟 CSRF 攻击

    CSRF攻击 是前端领域常见的安全问题,概念方面不再赘述,可以参考维基百科.对于这些概念,包括名词定义.攻击方式.解决方案等估计大家都看过不少,但留下印象总是很模糊,要动手操作一番才能加深印象并能真正 ...

  • 实战!Python 30 行代码画各种 3D 图形

    来源:Python 技术「ID: pythonall」 在之前的文章有讲解过 Matplotlib 的用法,可能有的小伙伴们已经略有忘记,如果有不熟悉的读者朋友们请回顾Matplotlib学习进阶 , ...

  • 实战!Python 偷偷告诉你小姐姐的听歌喜好

    来源:Python 技术「ID: pythonall」 作为网易云村的深度用户,网易云音乐应该是我除了微信外打开时间最长的 App 了.并不是应为网易云上面的歌曲多,而是因为那些走心的评论.边听歌边刷 ...

  • GUI实战|Python做一个文档图片提取软件

    作者丨GUI工作组 来源丨经授权转自 早起Python(ID:Zaoqi_Python) 本文将进一步讲解如何用Python提取PDF与Word中图片,并结合之前讲解过的GUI框架PysimpleGU ...

  • 推荐系统实战系列(Python)

    推荐系统实战系列(Python) 推荐系统实战系列课程旨在帮助同学们快速掌握推荐系统领域常用算法及其建模应用实例. 全程基于Python及其开源工具实战演示各大推荐引擎构建方法,基于真实数据集进行建模 ...

  • 【Python实战】爬取5K分辨率超清唯美壁纸

    简介 壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物.然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁 ...

  • 20个python数据分析实战项目(附源码)

    20个python数据分析实战项目(附源码)

  • 目标检测实战:4种YOLO目标检测的C++和Python两种版本实现

    作者丨nihate 审稿丨邓富城 编辑丨极市平台 极市导读 本文作者使用C++编写一套基于OpenCV的YOLO目标检测,包含了经典的YOLOv3,YOLOv4,Yolo-Fastest和YOLObi ...