首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Re2Pcap:由原始http请求响应创建pcap数据包

Re2Pcap:由原始http请求响应创建pcap数据包

作者头像
FB客服
发布2019-08-29 18:11:17
1.5K0
发布2019-08-29 18:11:17
举报
文章被收录于专栏:FreeBufFreeBufFreeBuf

Re2Pcap是英文单词Request2Pcap和Response2Pcap的缩写。Community版的用户可以使用Re2Pcap快速的创建PCAP文件,并根据Snort规则对其进行测试。

Re2Pcap允许你为raw HTTP request(如下)快速的创建PCAP文件。

POST /admin/tools/iplogging.cgi HTTP/1.1Host: 192.168.13.31:80User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0Accept: text/plain, */*; q=0.01Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateReferer: http://192.168.13.31:80/admin/tools/iplogging.htmlContent-Type: application/x-www-form-urlencoded; charset=UTF-8X-Requested-With: XMLHttpRequestContent-Length: 63Cookie: token=1e9c07e135a15e40b3290c320245ca9aConnection: closetcpdumpParams=tcpdump -z reboot -G 2 -i eth0&stateRequest=start

使用

git clone https://github.com/Cisco-Talos/Re2Pcap.gitcd Re2Pcap/docker build -t re2pcap .docker run --rm --cap-add NET_ADMIN -p 5000:5000 re2pcap

在Web浏览器中打开localhost:5000访问Re2Pcap,或使用Re2Pcap-cmd脚本与Re2Pcap容器(container)交互以在当前工作目录中获取PCAP文件。

必要条件

Docker

HTTP Raw Request / Response

Web 浏览器(为达到最佳效果,请使用基于Chromium的Web浏览器)

优势

易于安装。无需复杂的多VM设置

Re2Pcap运行在基于Alpine Linux的docker镜像上,体积小于90MB

Dockerfile

FROM alpine# Get required dependencies and setup for Re2PcapRUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositoriesRUN apk update && apk add python3 tcpdump tcpreplayRUN pip3 install --upgrade pipRUN pip3 install pexpect flask requests httpretty requests-toolbeltCOPY Re2Pcap/ /Re2PcapRUN cd Re2Pcap && chmod +x Re2Pcap.py

Walkthrough

下图显示的是,使用Re2Pcap为Sierra Wireless AirLink ES450 ACEManager iplogging.cgi命令注入漏洞创建pcap文件的视频演示。

Re2Pcap 开发(dev)分支(开发中)

目前,Re2Pcap dev分支具有以下附加功能

模拟raw HTTP request和对PCAP的响应 更好的输入验证

下图显示的是,使用Re2Pcap dev为Sierra Wireless AirLink ES450 ACEManager iplogging.cgi命令注入漏洞创建PCAP文件:

Re2Pcap Workflow

如上图所示,Re2Pcap是基于Alpine Linux的Python3应用程序,拥有基于Flask的Web界面。

Re2Pcap将输入数据解析为raw HTTP request或response,并在捕获数据包时实际执行client/server交互。在交互后,Re2Pcap会将捕获的数据包以PCAP文件格式呈现。

建议

请使用Linux作为主机操作系统,因为Re2Pcap已在Linux上经过了充分的测试。

如果为主机Host: somedomain:5000创建PCAP,请通过修改Re2Pcap.Py app.run调用将Flask应用程序更改为在其他端口上运行,否则PCAP将包含Flask应用程序响应

限制

如果raw HTTP request中没有Accept-Encoding标头,则Accept-Encoding: identity标头会被添加到reqeust中。

python请求存在已知的问题

那真是太可怕了。Accept-Encoding: identity始终有效,RFCs如是说。发送它应该是完全无害的。否则,删除它需要我们替换httplib

以下是来自Re2Pcap PCAP中的源地址(source)和目的地(desitnation)IP

源地址 IP: 10.10.10.1 目的地 IP: 172.17.0.2,请使用tcprewrite -D选项根据需要将desitnation IP修改为其他IP地址。你还可以使用tcpprep和tcprewrite将其他IP设置为端点。由于tcprewrite的结果不一致,我使用了另一种方法来设置不同的SRC/DST IP

将HTTP/1.1 302指定为响应将生成PCAP,并以最大可能重试次数访问Location:header中指定的资源。你也可以在测试中使用wireshark只导出第一个HTTP流,排除其他可能会影响你的流。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用
  • 必要条件
  • 优势
  • Dockerfile
  • Walkthrough
  • Re2Pcap 开发(dev)分支(开发中)
  • Re2Pcap Workflow
  • 建议
  • 限制
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档