[golang] 抓包注入分析
视频信息
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 的流量是否安全
- 偷登录信息(当然,合法的偷,比如安全审计)
- Facebook 很长一段时间都不用 SSL
- OKCupid 也一样
- https://httpshaming.tumblr.com
话题概况
- 获得网络设备列表
- 从网络设备抓包
- 保存获得的包到一个文件
- 从文件读取包
- 分层分析包结构
- 创建自定义的层
- 使用 BPF 过滤
- 注入包(发送包)
- 观察流
常用工具
- Wireshark/tshark:这可能是大家都用过的
- tcpdump: 一些 Linux 下命令行操作的人应该用过
- Driftnet: 只关心网络流量中的图片,会在屏幕上显示所有流量里的图片……
[golang] 抓包注入分析的更多相关文章
- 开源网络抓包与分析框架学习-Packetbeat篇
开源简介packbeat是一个开源的实时网络抓包与分析框架,内置了很多常见的协议捕获及解析,如HTTP.MySQL.Redis等.在实际使用中,通常和Elasticsearch以及kibana联合使用 ...
- 【转】详解使用tcpdump、wireshark对Android应用程序进行抓包并分析
原文网址:http://blog.csdn.net/gebitan505/article/details/19044857 本文主要介绍如何使用tcpdump和wireshark对Android应用程 ...
- charles抓包并分析问题
1.抓包并分析 某列表页 传入的参数: -------------------------------------------------------------------------------- ...
- golang gopacket网络抓包和分析
gopacket 是golang语言使用的网络数据抓取和分析的工具包. 本文简单介绍如何使用gopacket进行网络抓包. 下载gopacket # go get git@github.com:goo ...
- tcpdump抓包具体分析
Tcpdump抓包分析过程 一.TCP连接建立(三次握手) 过程 客户端A,服务器B,初始序号seq,确认号ack 初始状态:B处于监听状态,A处于打开状态 A -> B : seq = x ...
- 抓包及分析(wireshark&tcpdump)
1.简介 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话,我直接用tcpdump了,因为我工 ...
- Tcpdump命令抓包详细分析
1 起因 前段时间,一直在调线上的一个问题:线上应用接受POST请求,请求body中的参数获取不全,存在丢失的状况.这个问题是偶发性的,大概发生的几率为5%-10%左右,这个概率已经相当高了.在排查问 ...
- 使用Linux的tcpdump命令结合Windows的wireshark抓包和分析
tcpdump简介 tcpdump是Linux系统下的一款抓包命令集,工作原理是基于网卡抓取流动在网卡上的数据包.在Linux系统中由于tcpdump命令的简单和强大,我们一般直接使用tcpdump命 ...
- 抓包——HTTP分析
1.什么是HTTP请求(底层使用scoket TCP技术) HTTP是超文本传输协议.底层使用的scoket tcp长连接.基于请求和响应 同步请求. 2.重定向底层: 重定向原理:为什么会产生 ...
随机推荐
- 论文笔记:GREEDY FUNCTION APPROXIMATION: A GRADIENT BOOSTING MACHINE
Boost是集成学习方法中的代表思想之一,核心的思想是不断的迭代.boost通常采用改变训练数据的概率分布,针对不同的训练数据分布调用弱学习算法学习一组弱分类器.在多次迭代的过程中,当前次迭代所用的训 ...
- Java身份证处理工具
身份证处理工具 /** * <html> * <body> * <P> Copyright 1994 JsonInternational</p> * & ...
- 用PHP写PHP7扩展,超级简单对吧!
[图片打不开,请用代理] 介绍: PHP扩展是编译库,它允许在您的PHP代码中使用特定的功能(主要是使用C编写的php扩展). 例如,您需要使用PHP使用SQLite3,您可以实现自己的方法和功能来连 ...
- Matlab单例模式
classdef SingletonClass < handle methods(Access = private) function obj = SingletonClass() disp(' ...
- SIM7600CE http post
SIM7600CE是一款SMT封装的模块,支持 LTE-TDD/LTE-FDD/HSPA+/TD-SCDMA/EVDO和GSM/GPRS/EDGE等频段,支持LTE CAT4(下行速度为150Mbps ...
- expect脚本远程登录、远程执行命令和脚本传参简单用法
expect介绍: 最近想写一个自动化安装脚本,涉及到远程登录.分发文件包.远程执行命令等,其中少不了来回输入登录密码,交互式输入命令等,这样就大大降低了效率,那么有什么方法能解决呢?不妨试试expe ...
- C#中hashtable如何嵌套遍历
嵌套hashtable的遍历取值怎么做 hastable中嵌套了hashtable,想用递归的方式把所有hashtable中的key和value取出来 foreach (DictionaryEntry ...
- MyBatis之Oracle、Mysql批量插入
Mybatis中Dao层 public interface UsersMapper { public void insertEntitys(List<UserEntity> users); ...
- OpenStack是什么,OpenStack详解
1. OpenStack是什么 OpenStack官方的解释很官方,而且从不同角度,也有不同的理解,OpenStack可以理解为一个云操作系统 OpenStack旗下包含了一组由社区维护的开源项目,他 ...
- 剑指Offer(三十五):数组中的逆序对
剑指Offer(三十五):数组中的逆序对 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/bai ...
- 开源网络抓包与分析框架学习-Packetbeat篇