Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >WHIDInjector 系统整体分析

WHIDInjector 系统整体分析

作者头像
用户4682003
发布于 2025-06-16 00:30:29
发布于 2025-06-16 00:30:29
4600
代码可运行
举报
运行总次数:0
代码可运行

系统功能概述

WHIDInjector 是一个基于 WiFi 的 HID(Human Interface Device)攻击工具,主要用于渗透测试和安全研究。系统由多个模块组成,包括主程序、设备交互引擎和帮助信息模块。以下是系统的主要功能:

  1. 设备连接与验证:通过 WhidEngine 类检查设备是否可达,并验证设备是否为 ESPloitV2。
  2. 固件更新:支持从 GitHub 下载最新的固件并更新设备。
  3. Payload 发送:支持将用户输入的 payload 发送到设备的 /runlivepayload 页面。
  4. 键盘映射转换:支持将用户输入转换为设备支持的键盘映射格式,兼容不同语言的键盘布局。
  5. 命令行交互:提供交互式命令行界面,支持用户输入命令并执行相应的操作。
  6. 帮助信息:通过 WhidInfo 类提供详细的帮助信息,包括事件、payload、命令和键盘修饰符的说明。

系统架构

  1. 核心模块
    • WhidEngine:负责与设备交互,包括设备连接检查、固件更新和 payload 发送。
    • WhidInfo:负责提供项目的文档和帮助信息。
    • 主程序:负责解析命令行参数、加载 payload 和处理用户输入。
  2. 依赖库
    • requests:用于发送 HTTP 请求。
    • argparse:用于解析命令行参数。
    • re:用于正则表达式匹配。
    • pathlib:用于处理文件路径。
    • urllib.parse:用于 URL 编码。

主要技术点

  1. HTTP 请求:通过 requests 库与设备的 Web 界面进行交互,包括 GET 和 POST 请求。
  2. 命令行参数解析:通过 argparse 库实现灵活的命令行参数解析,支持默认值和用户自定义值。
  3. 正则表达式:使用正则表达式从 GitHub 页面中提取最新的固件下载链接。
  4. 文件下载与保存:通过 requests 库下载固件文件并保存到本地。
  5. 键盘映射转换:支持将用户输入转换为设备支持的键盘映射格式,兼容不同语言的键盘布局。
  6. 交互式命令行界面:提供用户友好的命令行界面,支持多种命令和操作。

核心代码片段

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python
# 检查设备是否可达
if not "ESPloit" in requests.get(panel, timeout=1).text:
    print("\033[91mError 404, are you connected on the right AP?")
    self.update_firmware()

# 下载最新固件
update = "https://github.com/exploitagency/ESPloitV2/releases"
update = requests.get(update).text
regex = re.compile("exploit.*\.bin")
last = "https://github.com/" + regex.findall(update)[0]

# 发送 payload
payloads = { "livepayload":user_converted, "livepayloadpresent":1}
encoded  = urlencode( payloads, quote_via=quote_plus)
requests.post(panel, data=encoded)

# 键盘映射转换
user_converted = user_input.translate(str.maketrans(fr_mapping, en_mapping))

# 解析命令行参数
parser = argparse.ArgumentParser()
parser.add_argument('-v',      action='store_true', dest='verbose',help='Verbosity of the output')
parser.add_argument('--force', action='store_true', dest='force',  help='Force the output in french')
parser.add_argument('--host',      nargs='?', default='127.0.0.1',            help='Host reverse-shell' )
parser.add_argument('--port',      nargs='?', default='4242',                 help='Port reverse-shell' )
parser.add_argument('--user',      nargs='?', default='admin',                help='Panel username')
parser.add_argument('--pass',      nargs='?', default='hacktheplanet',        help='Panel password')
parser.add_argument('--panel',     nargs='?', default='http://192.168.1.1',   help='Panel url')
parser.add_argument('--wifi_ssid', nargs='?', default='Exploit',              help='Wifi ssid')
parser.add_argument('--wifi_pass', nargs='?', default='DotAgency',            help='Wifi password')
parser.add_argument('--payload',   nargs='?', default='payloads/default.txt', help='Payload template')
results = parser.parse_args()

应用场景

  1. 渗透测试:用于测试 WiFi 设备和 HID 设备的安全性,验证设备是否容易受到 payload 注入攻击。
  2. 远程控制:通过反向 shell 或绑定 shell 实现对目标设备的远程控制。
  3. 自动化攻击:支持加载自定义 payload,实现自动化攻击流程。
  4. 固件更新:支持从 GitHub 下载最新固件,确保设备始终运行最新版本。

总结

WHIDInjector 是一个功能完善的 HID 攻击工具,支持设备连接检查、固件更新、payload 发送、键盘映射转换和命令行交互等功能,适用于渗透测试和安全研究场景。系统的模块化设计和丰富的功能使其成为安全研究人员和渗透测试人员的强大工具。

github链接地址:https://github.com/swisskyrepo/WHID_Toolkit.git

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

本文分享自 网络安全技术点滴分享 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验