freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何使用GoReplay实时捕捉和分析HTTP流量
2022-07-08 21:07:50
所属地 广西


关于GoReplay

GoReplay是一款功能强大的开源网络监控工具,该工具可以帮助广大研究人员捕捉、监控和记录实时HTTP流量,并将其重放到测试环境中,以便使用真实数据来进行实现分析系统的数据连贯性。除此之外,该工具还能够提升代码部署、配置修改和基础架构的数据完整性。

值得一提的是,该工具所采用的先进技术将允许我们在不影响应用程序流量的情况下分析和记录应用程序流量,这也消除了将第三方组件存在于业务关键路径中所带来的风险。

GoReplay不是代理,而是在后台侦听网络接口上的流量,不需要更改生产基础结构,只需在机器上运行GoReplay守护进程即可。

工具运行机制

工具安装

广大研究人员可以直接访问该项目的【Releases页面】获取最新版本的GoReplay已编译源码。

除此之外,我们也可以自行动手针对macOS和Linux来编译GoReplay源码。

GoReplay基于Go语言开发,因此我们首先需要在本地设备上安装并配置好Go语言环境。

接下来,安装好GoReplay所需的libpcap库,这个库将作为各种内核包捕捉机制的接口。以然后安装gopacket,即针对libpcap的Go封装器。

接下来,运行下列命令即可:

# Fetch libpcap dependencies. Depending on your OS, instead of `apt` you will use `yum` or `rpm`, or `brew` on Mac.

sudo apt-get install flex bison -y

 

# Download latest stable release, compile and install it

wget http://www.tcpdump.org/release/libpcap-1.7.4.tar.gz && tar xzf libpcap-1.7.4.tar.gz

cd libpcap-1.7.4

./configure && make install

 

 

# Lets fetch Gor source code

mkdir $HOME/gocode

# See more information about GOPATH https://github.com/golang/go/wiki/GOPATH

export GOPATH=$HOME/gocode

# Fetch code from the Github

go get github.com/buger/gor

 

# Compile from source

cd $HOME/gocode/src/github.com/buger/gor

go build LDFLAGS = -ldflags "-extldflags \"-static\""

工具使用

如果你已经搭建好了测试环境,那么直接运行下列命令便可执行GoReplay操作:

sudo ./gor --input-raw :8000 --output-http http://staging.env

捕捉Web流量

下列命令将监听端口8000的所有网络活动,并将其记录到stdout:

sudo ./gor --input-raw :8000 --output-stdout

接下来, 在浏览器中打开http://localhost:8000并发送一些请求,你将会在GoReplay中看到输出的所有HTTP请求,此时我们可以运行下列命令追踪请求的响应信息:

--output-http-track-response

流量重放

此时,我们就可以将捕捉到的原始流量重返到测试环境中了。下列命令可以开启另一台不同端口的文件Web服务器:

gor file-server :8001

使用“--output-http”选项并提供第二台服务器的URL:

sudo ./gor --input-raw :8000 --output-http="http://localhost:8001"

存储文件请求(以便之后重放)

某些情况下,你可能不需要立即重放捕捉到的流量,因此我们可以将其存储到文件中以备后续使用。

首先,使用“--output-file”选项存储捕捉到的流量:

sudo ./gor --input-raw :8000 --output-file=requests.gor

接下来,使用下列命令重放捕捉到的流量:

./gor --input-file requests.gor --output-http="http://localhost:8001"

工具演示视频

视频地址https://www.you*tube.com/watch?v=CxuKZcMKaW4

许可证协议

本项目的开发与发布遵循LGPLv3开源许可证协议。

项目地址

GoReplay:【GitHub传送门

参考资料

https://goreplay.org/

http://github.com/buger/goreplay/wiki

https://github.com/the-tcpdump-group/libpcap

http://www.tcpdump.org/release/

# HTTP # 流量监听 # HTTPS检查 # 流量分析 # HTTP安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录