web-traffic-generator:一款功能强大的HTTP和HTTPs流量混淆工具

news2024/11/20 14:41:37

关于web-traffic-generator

web-traffic-generator是一款功能强大的HTTP和HTTPs流量混淆工具,该工具基于纯Python开发,可以帮助广大研究人员在HTTP或HTTPs网络流量中提添加噪声,以此来实现流量混淆的目的。

本质上来说,web-traffic-generator是一个网络噪声生成工具,可以用于红队或蓝队的事件响应或网络防御任务中。web-traffic-generator已在Ubuntu 14.04 & 16.04平台上进行过测试,理论上该工具支持在任何安装了Python环境的操作系统上使用。

工具运行机制

首先,我们需要在脚本开头部分指定一些配置信息:

1、MAX_DEPTH = 10, MIN_DEPTH = 5:从每一个根URL(例如www.yahoo.com)开始,该工具会尝试访问MIN_DEPTH和MAX_DEPTH之间一个随机深度的节点地址;

每一个HTTP GET请求之间的时间间隔会根据下列变量进行随机选取:

1、MIN_WAIT = 5:请求间最少间隔5秒,这个时间太短的话可能会被目标Web服务器屏蔽;

2、MAX_WAIT = 10:请求间最多间隔10秒;

3、DEBUG = False:设置调试模式,设置为True则开启Verbose模式,工具会实时打印出详细的输出和调试信息;

4、ROOT_URLS = [url1,url2,url3]:根URL地址列表,工具会在其中随机选择;

5、blacklist = [".gif", "intent/tweet", "badlink", etc...]:针对每个链接需要检测的字符串黑名单,如果链接包含此列表中的任何字符串,则将丢弃该链接;

6、userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3).......':设置传递给Web服务器的用户代理(无头浏览器),我们可以将其设置为默认值,或根据需要进行修改;

工具环境

当前版本的web-traffic-generator同时兼容Python 2.7和Python 3.x环境。

工具依赖

该工具的运行只需要使用到requests库,安装命令如下:

sudo pip install requests

工具安装

广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/ReconInfoSec/web-traffic-generator.git

工具使用

首先,我们需要创建一个配置文件:

cp config.py.template config.py

然后直接运行web-traffic-generator即可:

python gen.py

调试信息

如果将config.py配置文件中的Debug变量设置为True的话,我们将查看到如下所示的Verbose输出信息:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Traffic generator started

Diving between 3 and 10 links deep into 489 different root URLs,

Waiting between 5 and 10 seconds between requests.

This script will run indefinitely. Ctrl+C to stop.

Randomly selecting one of 489 URLs

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Recursively browsing [https://arstechnica.com] ~~~ [depth = 7]

  Requesting page...

  Page size: 77.6KB

  Data meter: 77.6KB

  Good requests: 1

  Bad reqeusts: 0

  Scraping page for links

  Found 171 valid links

  Pausing for 7 seconds...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Recursively browsing [https://arstechnica.com/author/jon-brodkin/] ~~~ [depth = 6]

  Requesting page...

  Page size: 75.7KB

  Data meter: 153.3KB

  Good requests: 2

  Bad reqeusts: 0

  Scraping page for links

  Found 168 valid links

  Pausing for 9 seconds...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Recursively browsing [https://arstechnica.com/information-technology/2020/01/directv-races-to-decommission-broken-boeing-satellite-before-it-explodes/] ~~~ [depth = 5]

  Requesting page...

  Page size: 43.8KB

  Data meter: 197.1KB

  Good requests: 3

  Bad reqeusts: 0

  Scraping page for links

  Found 32 valid links

  Pausing for 8 seconds...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Recursively browsing [https://www.facebook.com/sharer.php?u=https%3A%2F%2Farstechnica.com%2F%3Fpost_type%3Dpost%26p%3D1647915] ~~~ [depth = 4]

  Requesting page...

  Page size: 64.2KB

  Data meter: 261.2KB

  Good requests: 4

  Bad reqeusts: 0

  Scraping page for links

  Found 0 valid links

  Stopping and blacklisting: no links

上述输出中的最后一个URL抛出了一个错误信息,因为我们将其添加到了config.blacklist黑名单数组中。

工具运行截图

工具使用演示

演示视频:【点我观看】

许可证协议

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

项目地址

web-traffic-generator:【GitHub传送门】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1629010.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么堆排序的时间复杂度是O(N*logN)?

目录 前言: 堆排序(以排升序为例) 步骤(用大根堆,倒这排,排升序): 1.先把要排列的数组建立成大根堆 2.堆顶元素(82)和最后一个元素交换(2&…

Docker之常见FAQ记录清单

一、前言 本文记录Docker使用过程中遇见的问题,供后续回顾参考。 关联资源:网络Docker博客、官方FAQ、文档、Docker 从入门到实践、中文社区、riptutorial 二、问题及处理记录 2.1、docker容器内没有vi,nano等编辑器 1)如果宿主机本地有&a…

ESP8266刷入WI-PWN制作wifi杀手的过程、准备材料、报错解决、烧录固件等

文章目录 ESP8266---介绍1. 技术规格:2. 软件支持:3. 特性:4. 应用领域: ESP8266---材料准备1.硬件设备1.1(micro-usb)梯形安卓数据线(必须要可以传数据)1.2(ESP8266&…

docker启动的mysql8中文乱码问题和无法输入中文

问题描述: 1.中文显示乱码 2.无法输入中文 中文乱码临时方案: show variables like ‘character%’; SET NAMES utf8mb4; SET CHARACTER SET utf8mb4; 中文乱码永久方案: vim /etc/my.cnf[client] default-character-setutf8mb4[mysql]…

笔试强训未见过题(个人向)

1.游游的水果大礼包 题目 解析 我们设卖出价值为c,卖出x个一号礼包,y个二号礼包。则caxby,那么就可以一一枚举,x的最大值为min(a/2,b),则y就为min(a-2*min,…

《Kafka 3.x.x 入门到精通》

Kafka 3.x.x 入门到精通 Kafka是一个由Scala和Java语言开发的,经典高吞吐量的分布式消息发布和订阅系统,也是大数据技术领域中用作数据交换的核心组件之一。以高吞吐,低延迟,高伸缩,高可靠性,高并发&#x…

AIGC学习步骤

目录 AIGC学习步骤 步骤一:理解基本概念 步骤二:学习资源 步骤三:深入研究 步骤四:联系专家 步骤五:实践应用 步骤六:持续学习 AIGC学习步骤 我们先来说说什么是AIGC? 生成式人工智能—…

数组和指针经典笔试题讲解

目录 创作不易,如对您有帮助,还望一键三连,谢谢!!! 1.sizeof和strlen的对比 1.1sizeof 1.2strlen 1.3sizeof和strlen对比 2.数组笔试题讲解 数组名的理解 2.1一维数组 2.2字符数组 题目一&#x…

快速进入Windows中的特殊文件夹

目录 一. 进入方式二. startup ⇒ 开机自启三. fonts ⇒ 电脑字体四. sendto ⇒ 发送到五. programs ⇒ 开始菜单应用六. appsfolder ⇒ 电脑中安装的所有应用七. appdata ⇒ 应用程序的数据八. desktop ⇒ 桌面文件夹九. ConnectionsFolder ⇒ 网络连接 一. 进入方式 ⏹文件管…

将数组中最大的数放在最后一位,最小的数放在第一位

#include <stdio.h> int main() {void input(int number[]);void output(int number[]);void swapmaxmin(int number[]);int number[10];input(number);//swapmaxmin(number);output(number);return 0; }//往一个数组里输入 void input(int number[]) {int i;for(i0;i<…

微信小程序的开发

1.了解项目的基本组成结构 pages 用来存放所有小程序的页面 utils 用来存放工具性质的模块(例如:格式化时间的自定义模块) app.js 小程序项目的入口文件 app.json 小程序项目的全局配置文件 app.wxss 小程序项目的全局样式文件 project.config.json 项目的配置文件 sitem…

直播任我行,智享AI自动直播手机塑造直播新风潮,引领行业“风口”

直播任我行&#xff01;智享AI自动直播手机塑造直播新风潮&#xff0c;引领行业“风口”&#xff01; 直播作为一种受欢迎的互联网传播方式&#xff0c;如今在帮助商家推广产品并获得更多收益方面发挥着重要作用。 在直播电商领域&#xff0c;主播是连接品牌和用户之间的关键纽…

K8S 哲学 - deployment -- kubectl【create 、 rollout 、edit、scale、set】

kubectl create kubectl rollout kubectl edit kubectl set kubectl scale 1、创建与配置文件解析 2、deploy 滚动更新 &#xff1a;template 里面的内容改变触发滚动更新 编辑该 deploy 的 配置文件 &#xff0c;加入一个 label 不会触发滚动更新 改变 nginx镜…

Python 面向对象——6.封装

本章学习链接如下&#xff1a; Python 面向对象——1.基本概念 Python 面向对象——2.类与对象实例属性补充解释&#xff0c;self的作用等 Python 面向对象——3.实例方法&#xff0c;类方法与静态方法 Python 面向对象——4.继承 Python 面向对象——5.多态 1. 封装的基…

cJSON的使用

文章目录 一、CJSON初识二、CJSON解析器基础三、CJSON解析数据JSON解析基础CJSON解析数组数据CJSON解析嵌套数据 五、创建JSON数据 一、CJSON初识 JSON (JavaScript Object Notation)是一种轻量级的数据交换格式&#xff0c;常用于在网络之间传输数据。它是一种文本格式&#…

OpenCV C++实现区域面积筛选以及统计区域个数

目录 1、背景介绍 2、代码实现 2.1 获取原图 2.1.1 区域图像imread 2.1.2 具体实现 2.2 获取图像大小 2.3 阈值分割 2.3.1 阈值分割threshold 2.3.2 具体实现 2.4 区域面积筛选 2.4.1 获取轮廓findContours 2.4.2 获取轮廓面积contourArea 2.4.3 填充区域fil…

JEECG/SpringBoot集成flowable流程框架

IDEA安装Flowable BPMN visualizer插件 pom.xml中引入flowable相关依赖 <dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter</artifactId><version>6.7.2</version></dependency><depe…

kotlin 编写一个简单的天气预报app (七)使用material design

一、优化思路 对之前的天气预报的app进行了优化&#xff0c;原先的天气预报程序逻辑是这样的。 使用text和button组合了一个输入城市&#xff0c;并请求openweathermap对应数据&#xff0c;并显示的功能。 但是搜索城市的时候&#xff0c;可能会有错误&#xff0c;比如大小写…

SpringBoot项目启动,传参有哪些方式?

SpringBoot项目启动&#xff0c;传参有哪些方式&#xff1f; 1.Spring级别的参数 直接在启动 Spring Boot 应用的命令行中使用 -- 后跟参数名和值的方式来传递参数。 记住&#xff1a;一般是对于Spring Boot应用特有的配置参数&#xff0c;确保它们遵循Spring Boot的配置属性命…

Mediasoup-demo 本地启动步骤(超详细)

Mediasoup-demo 本地启动步骤&#xff08;超详细&#xff09; 一.本人环境 系统&#xff1a;macos13.6.3 node: v16.20.2 npm:8.19.4 python: 3.9.6 二.下载代码 git 下载代码&#xff1a; git clone gitgithub.com:versatica/mediasoup-demo.git 三.代码介绍 下载下来…