视频信息

Packet Capture, Analysis, and Injection with Go
by John Leon
at GopherCon 2016

https://www.youtube.com/watch?v=APDnbmTKjgM

代码:https://github.com/gophercon/2016-talks/tree/master/JohnLeon-PacketCapturingWithGo
博文:http://www.devdungeon.com/content/packet-capture-injection-and-analysis-gopacket

什么是抓包

抓包是分析网络上的流量。

有线网络和无线网络不同

有线网络会由交换机根据 MAC 地址决定是否将包转发给你,和你无关的包是不会转发给你,除非用的不是交换机而是古董的 Hub。而无线网络就很开放了,所有的包都无法控制发给谁,因此你是可以听到所有的包的。当然,需要设置为混淆模式,不然本地网络设备会过滤掉不是给自己的包。

抓包不会影响其它通讯,它只是被动监听,不是中间人的干扰。不过可以利用抓包来做一些事情。比如去年参加 DefCon 的时候,John 身边的几个俄罗斯的与会者,就写了个东西抓包监听。凡是听到 HTTP 请求,就抢先一步模拟 HTTP 响应,让访问者重定向到某个NSFW(色情网站)上去了。

如何应用

  • 应用开发:测试、验证加密
  • 对 API 进行逆向工程
  • 观察背景都是什么样的流量
  • 偷取登录信息
  • 网络管理
  • 查看网络上的恶意的流量(比如是不是有人在扫描你的端口)
  • 对犯罪现场进行调查
  • DefCon 的一个 Wall of Sheep

演讲者研究抓包的动机

  • Hacker by nature,就像 Richard Stallman 说的,你不做一遍这个东西,你就无法理解这个东西。
  • 总喜欢知道实物的内部是怎么工作的
  • 验证实际的认证机制是否真的加密了
  • 确保服务器上没有恶意流量
  • 理解开放 WiFi 的流量是否安全
  • 偷登录信息(当然,合法的偷,比如安全审计)

话题概况

  • 获得网络设备列表
  • 从网络设备抓包
  • 保存获得的包到一个文件
  • 从文件读取包
  • 分层分析包结构
  • 创建自定义的层
  • 使用 BPF 过滤
  • 注入包(发送包)
  • 观察流

常用工具

  • Wireshark/tshark:这可能是大家都用过的
  • tcpdump: 一些 Linux 下命令行操作的人应该用过
  • Driftnet: 只关心网络流量中的图片,会在屏幕上显示所有流量里的图片……

    [golang] 抓包注入分析的更多相关文章

    1. 开源网络抓包与分析框架学习-Packetbeat篇

      开源简介packbeat是一个开源的实时网络抓包与分析框架,内置了很多常见的协议捕获及解析,如HTTP.MySQL.Redis等.在实际使用中,通常和Elasticsearch以及kibana联合使用 ...

    2. 【转】详解使用tcpdump、wireshark对Android应用程序进行抓包并分析

      原文网址:http://blog.csdn.net/gebitan505/article/details/19044857 本文主要介绍如何使用tcpdump和wireshark对Android应用程 ...

    3. charles抓包并分析问题

      1.抓包并分析 某列表页 传入的参数: -------------------------------------------------------------------------------- ...

    4. golang gopacket网络抓包和分析

      gopacket 是golang语言使用的网络数据抓取和分析的工具包. 本文简单介绍如何使用gopacket进行网络抓包. 下载gopacket # go get git@github.com:goo ...

    5. tcpdump抓包具体分析

      Tcpdump抓包分析过程   一.TCP连接建立(三次握手) 过程 客户端A,服务器B,初始序号seq,确认号ack 初始状态:B处于监听状态,A处于打开状态 A -> B : seq = x ...

    6. 抓包及分析(wireshark&tcpdump)

      1.简介 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话,我直接用tcpdump了,因为我工 ...

    7. Tcpdump命令抓包详细分析

      1 起因 前段时间,一直在调线上的一个问题:线上应用接受POST请求,请求body中的参数获取不全,存在丢失的状况.这个问题是偶发性的,大概发生的几率为5%-10%左右,这个概率已经相当高了.在排查问 ...

    8. 使用Linux的tcpdump命令结合Windows的wireshark抓包和分析

      tcpdump简介 tcpdump是Linux系统下的一款抓包命令集,工作原理是基于网卡抓取流动在网卡上的数据包.在Linux系统中由于tcpdump命令的简单和强大,我们一般直接使用tcpdump命 ...

    9. 抓包——HTTP分析

        1.什么是HTTP请求(底层使用scoket TCP技术) HTTP是超文本传输协议.底层使用的scoket tcp长连接.基于请求和响应  同步请求. 2.重定向底层: 重定向原理:为什么会产生 ...

    随机推荐

    1. 并发编程之Disruptor并发框架

      一.什么是Disruptor Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易.这个系统是建立在JV ...

    2. C++ | 使用const std::map,map::[]时遇到的一个bug

      原函数简化后如下: void fun(const map<int,vector<int>> &mp, int index) { for (auto tmp : mp[i ...

    3. python day 11: 类的补充,元类,魔法方法,异常处理

      目录 python day 11 1. 类的补充 1.1 通过反射来查找类,创建对象,设置对象的属性与方法 1.2 类的魔法方法:getitem,setitem 1.3 元类__metaclass__ ...

    4. awvs 中文手册详细版(含10.5及12版本)

      目录: 0×00.什么是Acunetix Web Vulnarability Scanner ( What is AWVS?) 0×01.AWVS安装过程.主要文件介绍.界面简介.主要操作区域简介(I ...

    5. kubernetes 配置网络插件 flannel

      概述 在学习docker时知道docker有四种常用的网络模型 bridge:桥接式网络 joined:联盟式网络,共享使用另外一个容器的网络名称空间 opened:容器直接共享使用宿主机的网络名称空 ...

    6. Python学习日记(二十五) 接口类、抽象类、多态

      接口类 继承有两种用途:继承基类的方法,并且做出自己的改变或扩展(代码重用)和声明某个子类兼容于某基类,定义一个接口类interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子 ...

    7. 打造kubernetes 高可用集群(nginx+keepalived)

      一.添加master 部署高可用k8s架构 1.拷贝/opt/kubernetes目录到新的master上(注意如果新机上部署了etcd要排除掉) scp -r /opt/kubernetes/ ro ...

    8. [转] 雷电三和typec傻傻分不清

      原文:https://club.lenovo.com.cn/thread-4921715-1-1.html 因为形状完全一致,所以很多人都误以为Type-C=雷电3. 实际上,雷电3只是采用了Type ...

    9. Python中的列表推导式

      Python里面有个很棒的语法糖(syntactic sugar),它就是 list comprehension ,有人把它翻译成“列表推导式”,也有人翻译成“列表解析式”.名字听上去很难理解,但是看 ...

    10. 2. premiere 项目管理

      1.premiere 项目管理 可以对项目素材进行一个管理,方便我们对项目文件的编辑 1.序列选择,管理前更改好名称 2.管理保留原始素材,不要选择转码 3.通过浏览,选择存储路径 点击“计算”,显示 ...