视频信息

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. Linux中etc目录详解大全总汇详解

      /etc etc不是什么缩写,是and so on的意思 来源于 法语的 et cetera 翻译成中文就是 等等 的意思. 至于为什么在/etc下面存放配置文件, 按照原始的UNIX的说法(Linu ...

    2. Fortify漏洞之Portability Flaw: Locale Dependent Comparison

      继续对Fortify的漏洞进行总结,本篇主要针对 Portability Flaw: Locale Dependent Comparison 漏洞进行总结,如下: 1.Portability Flaw ...

    3. 【MySql】Explain笔记

      Explain -- 使用 Explain + SQL 分析执行计划: id:表示此表的执行优先级 id相同,表的执行顺序依次从上往下:                id不同,并且递增,id值越大执 ...

    4. Spring Boot 笔记 (2) - 使用 log4j2 记日志

      日志框架的选用 Spring 使用的默认日志框架是 logback, 默认情况下会采取默认的 autoconfiguration; 即便想对日志的一些配置进行修改也比较方便, 详细可以参考: Spri ...

    5. flask-sqlalchemy用法详解

      一. 安装 $ pip install flask-sqlalchemy 二. 配置 配置选项列表 : 选项 说明 SQLALCHEMY_DATABASE_URI 用于连接的数据库 URI .例如:s ...

    6. c# 比较字符串

    7. kubernetes 基本概念和资源对象汇总

      kubernetes 基本概念和知识点脑图 基本概念 kubernetes 中的绝大部分概念都抽象成kubernets管理的资源对象,主要有以下类别: Master : Master节点是kubern ...

    8. keekalived+nginx 高可用

      高可用环境准备 后端服务器主配置文件 [192.168.2.7-root@web01~]#cat /etc/nginx/nginx.conf user www; worker_processes 1; ...

    9. VBS 自动发消息给对方

      http://www.vbsedit.com/ Dim Name,Msg Name= "我家丫头" Msg = "333" set ws=wscript.cre ...

    10. 本地安装部署Jira

      https://blog.csdn.net/u013492736/article/details/83315650 1. 首先在官网下自行搭建服务器的版本,有适合于windows的,也有linux版本 ...