Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
web-traffic-generator — 一个快速且简陋的 HTTP/S “有机”流量生成器。 | Kitploit
工具/GitHubGitHub/reconinfosec/web-traffic-generator
防御工具通用工具网络安全学习与教育实验室与实践
GitHubreconinfosec/web-traffic-generator

web-traffic-generator

一个快速且简陋的 HTTP/S “有机”流量生成器。

查看仓库
5121846年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

web-traffic-generator

一个简单粗暴的 HTTP/S “自然”流量生成器。

关于

只是一个简单(写得不太好)的 Python 脚本,它会从预定义的 ROOT_URLS 开始,随机“点击”页面上的链接,漫无目的地“浏览”互联网,直到达到预定义的 MAX_DEPTH。

我创建这个工具是作为噪声生成器,用于事件响应/网络防御模拟。唯一的问题是,我的模拟环境使用了多台 IDS/IPS/NGFW 设备,它们不会放行并记录针对预置流量的简单 TCP 重放。我需要流量尽可能自然,基本上模拟真实用户浏览网页。

已在 Ubuntu 14.04 和 16.04 minimal 上测试,但应该可以在任何安装了 Python 的系统上运行。

asciicast

工作原理

简单得不能再简单了……

首先,在脚本顶部指定一些设置……

  • MAX_DEPTH = 10、MIN_DEPTH = 5 从每个根 URL(例如:www.yahoo.com)开始,我们的生成器会点击浏览到一个深度, 该深度在 MIN_DEPTH 和 MAX_DEPTH 之间随机选择。

每次 HTTP GET 请求之间的间隔会在以下两个变量之间随机选择……

  • MIN_WAIT = 5 请求之间至少等待 5 秒……注意不要请求太快,因为那往往会惹恼 Web 服务器。

  • MAX_WAIT = 10 我想你明白我的意思。

  • DEBUG = False 一个“穷人版”日志器。设置为 True 可在控制台进行详细实时打印,用于调试或开发。我稍后(也许)会加入正规的日志功能。

  • ROOT_URLS = [url1,url2,url3] 浏览时起始的根 URL 列表。随机选择。

  • blacklist = [".gif", "intent/tweet", "badlink", etc...] 一个字符串黑名单,我们会用它来检查每个链接。如果链接包含此列表中的任何字符串,则丢弃该链接。这对于避免一些对流量生成器不友好的内容很有用,比如“Tweet this!”链接或指向图片文件的链接。

  • userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3).......' 你猜对了,这是我们的无头浏览器交给 Web 服务器的 user-agent。你大概可以保持默认设置,但也可以随意更改。我强烈建议使用一个常见/有效的 user-agent,否则你很可能会很快被限速。

依赖项

你唯一需要且可能没有的东西就是 requests。用以下命令安装:

root@kitploit:~
sudo pip install requests

使用方法

首先创建你的配置文件:

root@kitploit:~
cp config.py.template config.py

运行生成器:

root@kitploit:~
python gen.py

故障排除与调试

要了解底层正在发生什么的更多细节,请将 config.py 中的 Debug 变量从 False 改为 True。这将提供以下输出……

root@kitploit:~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 很好地展示了某个 URL 抛出错误时的情况。我们只需将其添加到内存中的 config.blacklist 数组里,然后继续浏览。这样可以防止已知的不良 URL 重新回到队列中。

下载工具