当前位置: 首页 > news >正文

如何在 Kali 上解决使用 evil-winrm 时 Ruby Reline 的 quoting_detection_proc 警告

在使用 Kali Linux 运行 Ruby 工具(例如 evil-winrm)时,你可能会遇到以下警告:

Warning: Remote path completions is disabled due to ruby limitation: undefined method 'quoting_detection_proc' for module Reline

在这里插入图片描述

这个警告会导致远程路径补全功能被禁用,影响使用体验。本文将解释问题的原因,并提供一个简单快速的解决方案——在 Kali Linux 上运行 gem install readline-ext,即可解决问题。

问题背景

从 Ruby 3.0 开始,Ruby 默认使用 Reline 库处理终端输入,取代了传统的 Readline 库。Reline 是纯 Ruby 实现,但缺少 Readline 的一些功能,例如 quoting_detection_proc 方法。

quoting_detection_proc 用于在 tab 补全时处理带引号的字符串(例如,补全包含空格的文件路径)。像 evil-winrm 这样的工具依赖这个方法来实现远程路径补全,但 Reline 不支持它,因此触发警告并禁用补全功能。

问题原因

  1. Reline 的局限性

    • Reline 尚未实现 Readline 的所有 API,尤其是 quoting_detection_proc,导致依赖该方法的工具无法正常工作。
  2. 工具的依赖

    • evil-winrm 在实现 tab 补全时会检查 quoting_detection_proc 的支持情况。如果不支持,就打印警告并禁用远程路径补全。
  3. Kali 的环境

    • 虽然 Kali 默认包含 Readline 库(如 libreadline8),但 Ruby 默认优先使用 Reline,需要手动切换到 Readline

解决方案

好消息是,Kali Linux 已经包含了必要的 Readline 库,只需安装 readline-ext gem 即可让 Ruby 使用原生的 Readline,从而恢复 quoting_detection_proc 支持。

步骤 1:安装 readline-ext Gem

  1. 打开终端,运行以下命令:

    gem install readline-ext
    
    • 这会安装 readline-ext gem,它会调用系统提供的 Readline 库,优先于 Reline
  2. 等待安装完成,通常只需几秒钟。

步骤 2:验证安装

确认 readline-ext 是否正确加载:

  1. 启动 Ruby 交互模式:

    irb
    
  2. 输入以下代码:

    require 'readline'
    puts Readline.respond_to?(:quoting_detection_proc)
    
    • 如果输出 true,说明 Readline 已成功启用,支持 quoting_detection_proc

步骤 3:测试工具

evil-winrm 为例,重新运行你的工具:

evil-winrm -i <目标IP> -u <用户名> -p <密码>
  • 警告应该消失。
  • 测试 tab 补全功能,例如输入 dir C:\Pro 后按 tab 键,确认是否能正确补全路径(如 C:\Program Files)。

如果问题仍未解决

在极少数情况下,如果你仍然看到警告,可能是以下原因:

  1. Ruby 环境问题

    • 确认当前 Ruby 版本:
      ruby -v
      
    • 如果使用 rbenvrvm,确保 readline-ext 安装在正确的 Ruby 环境中:
      gem list | grep readline-ext
      
  2. 缺失系统库

    • 虽然 Kali 通常包含 Readline 库,但可以确认是否安装:
      dpkg -l | grep libreadline
      
    • 如果未找到相关包,安装 libreadline-dev
      sudo apt-get update
      sudo apt-get install libreadline-dev
      
    • 然后重新运行 gem install readline-ext
  3. 工具特定问题

    • 检查工具(如 evil-winrm)的版本是否最新:
      gem update evil-winrm
      
    • 查看 GitHub 仓库是否有相关修复。

其他替代方案

如果你不想安装 readline-ext,可以考虑以下选项:

  1. 忽略警告

    • 如果远程路径补全不重要,可以直接忽略警告。它不会影响工具的核心功能(如连接或命令执行)。
  2. 修改工具代码

    • 编辑工具源代码,绕过对 quoting_detection_proc 的检查。这需要 Ruby 编程经验,且可能导致补全功能不完整。

注意事项

  • 保持更新:定期检查 Reline 和工具的更新。未来 Reline 可能支持 quoting_detection_proc,彻底解决此问题。
  • Docker 环境:如果在 Kali 的 Docker 容器中运行,可能需要确保容器内有 Readline 库或直接安装 libreadline-dev
  • 社区支持:如果问题持续,可以在工具(如 evil-winrm)或 Reline 的 GitHub 仓库提交 issue。

总结

在 Kali Linux 上,只需运行 gem install readline-ext,你就可以轻松解决 Relinequoting_detection_proc 警告,恢复远程路径补全功能。这个方法简单高效,适用于大多数 Kali 用户。

希望这篇博文能帮你快速解决这个小麻烦!如果有其他问题,欢迎随时交流。

相关文章:

如何在 Kali 上解决使用 evil-winrm 时 Ruby Reline 的 quoting_detection_proc 警告

在使用 Kali Linux 运行 Ruby 工具&#xff08;例如 evil-winrm&#xff09;时&#xff0c;你可能会遇到以下警告&#xff1a; Warning: Remote path completions is disabled due to ruby limitation: undefined method quoting_detection_proc for module Reline这个警告会导…...

从零开始搭建PyTorch环境(支持CUDA)

从零开始搭建PyTorch环境&#xff08;支持CUDA&#xff09; 本文将详细介绍如何在Windows系统上为RTX 3050显卡配置支持CUDA的PyTorch环境。 环境准备 本教程基于以下环境&#xff1a; 显卡&#xff1a;NVIDIA RTX 3050操作系统&#xff1a;WindowsPython版本&#xff1a;3.1…...

【扩散模型连载 · 第 2 期】逆向扩散建模与神经网络的角色

上期回顾 我们在第 1 期中介绍了 正向扩散过程&#xff08;Forward Process&#xff09;&#xff0c;并用 CIFAR-10 图像演示了加噪过程&#xff1a; 正向过程是固定的&#xff0c;无需训练&#xff0c;但我们感兴趣的是&#xff1a;如何从纯噪声一步步“还原”出真实图像&…...

Mysql约束

约束其实就是创建表的时候给表的某些列加上限制条件。 主键约束和自增长约束比较重要 一、Mysql约束-主键约束 简介 指定的主键不能重复也不可以出现空值 1.添加单列主键 语法1&#xff1a;create table 表名&#xff08;字段名 数据类型 primary key&#xff09;; 点开…...

力扣热题100—滑动窗口(c++)

3.无重复字符的最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长 子串 的长度。 unordered_set<char> charSet; // 用于保存当前窗口的字符int left 0; // 窗口左指针int maxLength 0; // 最长子串的长度for (int right 0; right < s.siz…...

Linux网络编程第一课:深入浅出TCP/IP协议簇与网络寻址系统

知识点1【网络发展简史】 **网络节点&#xff1a;**路由器和交换机组成 交换机的作用&#xff1a;拓展网络接口 路由&#xff1a;网络通信路径 1、分组交换 分组的目的&#xff1a; 数据量大&#xff0c;不能一次型传输&#xff0c;只能分批次传输&#xff0c;这里的每一批…...

论文阅读笔记:Generative Modeling by Estimating Gradients of the Data Distribution

1、参考来源 论文《Generative Modeling by Estimating Gradients of the Data Distribution》 来源&#xff1a;NeurIPS 2019 论文链接&#xff1a;https://arxiv.org/abs/1907.05600 参考链接&#xff1a; 【AI知识分享】真正搞懂扩散模型Score Matching一定要理解的三大核心…...

C++零基础实践教程 函数 数组、字符串与 Vector

模块四&#xff1a;函数 (代码复用与模块化) 随着程序变得越来越复杂&#xff0c;把所有代码都堆在 main 函数里会变得难以管理和阅读。函数 (Function) 允许你将代码分解成逻辑上独立、可重用的块。这就像把一个大任务分解成几个小任务&#xff0c;每个小任务交给一个专门的“…...

照片处理工具:基于HTML与JavaScript实现详解

在当今数字时代,处理照片已成为日常需求。 本文将详细介绍一个基于HTML和JavaScript的照片处理工具的实现原理,这个工具可以调整图片尺寸、格式,并精确控制输出文件大小。 实现如下,不需要任何编辑器,txt文本、浏览器就行!! 工具功能概述 这个照片处理工具提供以下核心…...

MyBatis-OGNL表达式

介绍 OGNL&#xff08;Object-Graph Navigation Language&#xff09;是一种强大的表达式语言&#xff0c;用于获取和设置Java对象图中的属性。在MyBatis中&#xff0c;OGNL常用于动态SQL构建&#xff0c;如条件判断、循环等。以下是关于OGNL表达式的整合信息&#xff0c;包括…...

Web Worker在uniapp鸿蒙APP中的深度应用

文章目录 一、Web Worker核心概念解析1.1 什么是Web Worker&#xff1f;1.2 为什么在鸿蒙APP中使用Web Worker&#xff1f;1.3 性能对比实测 二、uniapp中的Web Worker完整实现2.1 基础配置步骤2.1.1 项目结构准备2.1.2 鸿蒙平台特殊配置 2.2 Worker脚本编写规范2.3 主线程通信…...

无人机故障冗余设计技术要点与难点!

一、技术要点 1. 冗余架构设计 硬件冗余&#xff1a;关键部件&#xff08;飞控、电机、电池、通信模块&#xff09;采用双余度或三余度设计&#xff0c;例如&#xff1a; 双飞控系统&#xff1a;主飞控失效时&#xff0c;备用飞控无缝接管。 电机动力冗余&#xff1a;六轴无…...

MySQL数据库表查询

测试表company.employee5 mysql> create database company; #创建一个库&#xff1b; 创建一个测试表: mysql> CREATE TABLE company.employee5(id int primary key auto_increment not null,name varchar(30) not null,sex enum(male,female) default male not null,hi…...

ADB的安装及抓取日志(2)

三、ADB抓取日志 在使用ADB抓取日志前&#xff0c;首先要保证电脑已经安装并配置ADB&#xff0c;在上一节已经验证完成。连接设备&#xff1a;可通过USB或者WI-FI&#xff0c;将安卓设备与电脑连接&#xff0c;并启用USB调试模式&#xff0c;此处我选择的是通过电脑与安卓设备…...

【C++】 —— 笔试刷题day_17

一、小乐乐改数字 题目解析 这道题&#xff0c;它们给定一个数&#xff0c;我们要对它进行修改&#xff1b;如果某一位是奇数&#xff0c;就把它变成1,&#xff1b;如果是偶数&#xff0c;就把它变成0&#xff1b; 让我们输出最后得到的数。 算法思路 这道题&#xff0c;总体…...

traceId传递

1、应用内传递通过ThreadLocal,InheritableThreadLocal传递 2、跨进程的应用间传递&#xff0c;这种会涉及到远程rpc通信&#xff0c;mq通信&#xff0c;数据库通信等。 feign:拦截器中改变请求头 feign.RequestInterceptor, 这个机制能够实现修改请求对象的目的&#xff0c…...

自然科技部分详解

光的反射 凸面镜与凹面镜 凸透镜和凹透镜 空气开关原理 短路是指电路中突然的电流过大&#xff0c;这会让线圈的磁性增大&#xff0c;来克服内设的弹簧导致断开 过载会让电流增大&#xff0c;两金属片受热膨胀触发断开 核电荷数是指原子核所带的电荷数。 在原子中&#xf…...

蓝桥杯 9. 九宫幻方

九宫幻方 原题目链接 题目描述 小明最近在教邻居家的小朋友小学奥数&#xff0c;而最近正好讲述到了三阶幻方这个部分。 三阶幻方是指将 1 ~ 9 不重复地填入一个 33 的矩阵中&#xff0c;使得每一行、每一列和每一条对角线的和都是相同的。 三阶幻方又被称作九宫格&#x…...

算法——希尔排序

目录 一、希尔排序定义 二、希尔排序原理 三、希尔排序特点 四、两种解法 五、代码实现 一、希尔排序定义 希尔排序是一种基于插入排序的排序算法&#xff0c;也被称为缩小增量排序。它通过将待排序的数组分割成若干个子序列&#xff0c;对子序列进行排序&#xff0c;然后…...

亚马逊热销变维权?5步搭建跨境产品的安全防火墙

“产品热卖&#xff0c;引来维权”——这已经悄然成为越来越多跨境卖家的“热销烦恼”。曾经拼品拼量&#xff0c;如今却要步步谨慎。商标侵权、专利投诉、图片盗用……这些问题一旦发生&#xff0c;轻则下架、账号被限&#xff0c;重则冻结资金甚至封店。 别让“热销”变“受…...

20250416-Python 中常见的填充 `pad` 方法

Python 中常见的填充 pad 方法 在 Python 中&#xff0c;pad 方法通常与字符串或数组操作相关&#xff0c;用于在数据的前后填充特定的值&#xff0c;以达到指定的长度或格式。以下是几种常见的与 pad 相关的用法&#xff1a; 1. 字符串的 pad 操作 虽然 Python 的字符串没有…...

JavaEE-0416

今天修复了一个查询数据时数据显示哈希码&#xff1a; 搜索检阅后得到显示该格式的原因&#xff1a; 重写 POJO 类的 toString 方法 在 Java 编程中&#xff0c;默认情况下&#xff0c;对象的 toString() 方法会返回类似于 com.cz.pojo.Score2a266d09 的字符串。这是由于默认…...

团体程序设计天梯赛L2-008 最长对称子串

对给定的字符串&#xff0c;本题要求你输出最长对称子串的长度。例如&#xff0c;给定Is PAT&TAP symmetric?&#xff0c;最长对称子串为s PAT&TAP s&#xff0c;于是你应该输出11。 输入格式&#xff1a; 输入在一行中给出长度不超过1000的非空字符串。 输出格式&…...

命令模式 (Command Pattern)

命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。该模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。 一、基础 1.1 意图 将请求封…...

Elasticsearch 8.18 中提供了原生连接 (Native Joins)

作者&#xff1a;来自 Elastic Costin Leau 探索 LOOKUP JOIN&#xff0c;这是一条在 Elasticsearch 8.18 的技术预览中提供的新 ES|QL 命令。 很高兴宣布 LOOKUP JOIN —— 这是一条在 Elasticsearch 8.18 的技术预览中提供的新 ES|QL 命令&#xff0c;旨在执行左 joins 以进行…...

在线终端(一个基于 Spring Boot 的在线终端模拟器,实现了类 Linux 命令行操作功能)

Online Terminal 一个基于 Spring Boot 的在线终端模拟器,实现了类 Linux 命令行操作功能。 功能特点 模拟 Linux 文件系统操作支持基础的文件和目录管理命令提供文件内容查看和编辑功能支持文件压缩和解压缩操作 快速开始 环境要求 JDK 8Maven 3.6 运行项目 克隆项目到…...

vue+electron ipc+sql相关开发(三)

在 Electron 中使用 IPC(Inter-Process Communication)与 SQLite 数据库进行通信是一个常见的模式,特别是在需要将数据库操作从渲染进程(Vue.js)移到主进程(Electron)的情况下。这样可以更好地管理数据库连接和提高安全性。下一篇介绍结合axios写成通用接口形式,虽然没…...

C++静态变量多线程中的未定义行为

静态变量&#xff0c;是 C 程序员最早接触的语言特性之一。它有状态、生命周期长、初始化一次&#xff0c;用起来真是香。 但只要程序一旦进入多线程的世界&#xff0c;很多你原以为“稳定可靠”的写法&#xff0c;可能就突然开始“不对劲”了。静态变量首当其冲。 今天我们就…...

黑马商城项目(二) Docker

一、Docker快速入门 安装Docker - 飞书云文档 二、命令解读 常见命令&#xff1a; 数据卷&#xff1a; 案例1 数据卷挂载&#xff1a; 案例2 本地目录挂载&#xff1a; 挂载到指定目录能够保存数据&#xff08;即使Mysql容器被删除&#xff09; docker run -d \--name mysql …...

玩转Docker | 使用Docker部署Memos笔记工具

玩转Docker | 使用Docker部署Memos笔记工具 前言一、Memos介绍Memos简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署Memos服务下载镜像创建容器创建容器检查容器状态检查服务端口安全设置四、访问Memos服务访问Memos首页注册账号五、基本使用…...

c#从ftp服务器下载文件读取csv

从 FTP 服务器下载文件的功能&#xff0c;并且支持根据文件名称的前缀或直接文件名进行查找和下载。以下是对代码的一些建议和修改&#xff0c;以确保它能够满足您的需求&#xff0c;尤其是如果您希望仅下载特定类型的文件&#xff08;例如 .csv 文件&#xff09; using Syste…...

电脑知识 | TCP通俗易懂详解 <三>tcp首部中ACK、SYN、FIN等信息填写案例_握手时

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f91d;&#x1f3fb;握手时的快递单 1.&#x1f46b;第一次握手&#xff08;发送方&#xff09; 2.&#x1f46b;第二次握手&#xff08;收件方&#xff09; 3.&#x1f46b;第三次握手&#xff08;发件方&#xff09;…...

go学习记录(第二天)

Java里面的类对象可以对应go里面的结构体吗 表格对比 Java 类 (Class)​​​​Go 结构体 (Struct)​​封装数据和行为&#xff08;字段方法&#xff09;主要封装数据&#xff08;字段&#xff09;&#xff0c;方法通过​​接收者​​关联支持继承&#xff08;extends&#xf…...

Docker 中启动 Nginx 容器

文章目录 1. 快速运行 Nginx 容器从 Docker Hub 拉取官方镜像并运行&#xff1a;验证访问&#xff1a; 2. 挂载自定义配置和静态文件步骤&#xff1a; 3. 常用操作命令4. 生产环境建议使用 Docker Compose关键优化&#xff1a; 5. 调试技巧6. 常见问题解决 1. 快速运行 Nginx 容…...

windows 11 安装 redis

在 Windows 11 上安装 Redis 可以采用几种不同的方法&#xff0c;这里介绍几种常见的方法&#xff1a; 方法 1&#xff1a;使用 Microsoft Store Windows 11 提供了 Microsoft Store&#xff0c;你可以直接从那里安装 Redis。 打开 Microsoft Store。 在搜索框中输入 “Redi…...

5. k8s 之 pod原理与使用

Kubernetes Pod 原理详解 1. Pod 的部署方式 Pod 是 Kubernetes 的最小调度单元&#xff0c;其部署方式分为 声明式&#xff08;YAML&#xff09; 和 命令式&#xff08;kubectl&#xff09; 两种&#xff1a; (1) 声明式部署&#xff08;推荐&#xff09; 通过 YAML 文件定…...

人形机器人动作策略 ∼ 人类动作策略

25年3月来自UCSD、CMU、西雅图 UW、MIT 和 Apple 公司的论文“Humanoid Policy ∼ Human Policy”。 利用多样化数据训练人形机器人的操作策略&#xff0c;可以增强其在跨任务和平台的鲁棒性和泛化能力。然而&#xff0c;仅从机器人演示中学习需要耗费大量的人力&#xff0c;需…...

MySQL事务详解:从5.7到8.0的变化

MySQL事务详解&#xff1a;从5.7到8.0的变化 引言 在关系型数据库管理系统&#xff08;RDBMS&#xff09;中&#xff0c;事务是一个核心概念&#xff0c;它确保了数据的一致性和可靠性。MySQL作为最流行的开源RDBMS之一&#xff0c;其事务处理机制在不同的版本中经历了重要的…...

conda常用命令简解

以下是conda常用命令的汇总: 创建一个新环境&#xff1a; conda create -n your_env_name pythonX.X 激活某个环境&#xff1a; activate your_env_name 安装包&#xff1a; conda install [package] 查看安装了哪些包&#xff1a; conda list 查看当前有哪些虚拟环境&…...

数据科学与机器学习:前沿技术研究

数据科学与机器学习:前沿技术研究 摘要 本文探讨了数据科学与机器学习领域的三个前沿方向:自适应机器学习模型、联邦学习隐私与保护以及多模态数据处理。通过理论分析、算法设计和实验验证,展示了这些技术在解决实际问题中的潜力和挑战。自适应机器学习模型能够根据数据变化…...

个人博客测试报告

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…...

Sentinel源码—3.ProcessorSlot的执行过程一

大纲 1.NodeSelectorSlot构建资源调用树 2.LogSlot和StatisticSlot采集资源的数据 3.Sentinel监听器模式的规则对象与规则管理 4.AuthoritySlot控制黑白名单权限 5.SystemSlot根据系统保护规则进行流控 1.NodeSelectorSlot构建资源调用树 (1)Entry的处理链的执行入口 (2…...

datagrip连接mysql问题5.7.26

1.Case sensitivity: plainmixed, delimitedexac Remote host terminated the handshake. 区分大小写&#xff1a;plain混合&#xff0c;分隔exac 远程主机终止了握手。 原因:usessl 参数用于指定是否使用 SSL&#xff08;Secure Sockets Layer&#xff09;加密来保护数据传…...

【电路笔记】-变压器构造

变压器构造 文章目录 变压器构造1、概述2、变压器铁芯的构造3、变压器叠片4、变压器绕组排列5、变压器点定位6、变压器铁芯损耗6.1 磁滞损耗6.2 涡流损耗6.3 铜损耗一个简单的双绕组变压器构造包括每个绕组分别缠绕在一个独立的软铁肢或磁芯上,这提供了必要的磁路。 1、概述 …...

阿里云集群开启debug

1、安装 kubectl Macos brew install kubectl Windows&#xff1a; https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-windows/ 下载后&#xff0c;放到任意目录 2、配置连接信息 mac 将以下内容复制到计算机 $HOME/.kube/config 文件下: windows 不同集…...

继承-C++

继承在我们日常中经常指我们的人伦关系中的父子关系&#xff0c;孩子继承父母的基因、习惯之类的&#xff0c;孩子也会有自己的个性等。然而在我们C计算机语言中的类也存在继承&#xff0c;我们将作为“父亲”的类称为父类&#xff0c;将作为“孩子”的类称为子类&#xff0c;父…...

Java并发-AQS框架原理解析与实现类详解

什么是AQS&#xff1f; AQS&#xff08;AbstractQueuedSynchronizer&#xff09;是Java并发包&#xff08;JUC&#xff09;的核心基础框架&#xff0c;它为构建锁和同步器提供了高效、灵活的底层支持。本文将从设计原理、核心机制及典型实现类三个维度展开&#xff0c;帮助读者…...

【FFmpeg从入门到精通】第一章-FFmpeg简介

1 FFmpeg的定义 FFmpeg既是一款音视频编解码工具&#xff0c;同时也是一组音视频编解码开发套件&#xff0c;作为编解码开发套件&#xff0c;它为开发者提供了丰富的音视频处理的调用接口。 FFmpeg提供了多种媒体格式的封装和解封装&#xff0c;包括多种音视频编码、多种协议…...

Mac屏幕共享怎么使用?

Mac电脑要实现远程桌面连接到的工功能&#xff0c;可以使用其自带的屏幕共享功能。Mac屏幕共享能从一台Mac电脑远程控制另一台Mac电脑&#xff0c;并且无需下载第三方远程控制软件。下面&#xff0c;将为您介绍Mac远程桌面连接在哪&#xff0c;以及使用方法。 步骤 1. Mac的远…...

探索亮数据Web Unlocker API:让谷歌学术网页科研数据 “触手可及”

本文目录 一、引言二、Web Unlocker API 功能亮点三、Web Unlocker API 实战1.配置网页解锁器2.定位相关数据3.编写代码 四、Web Scraper API技术亮点 五、SERP API技术亮点 六、总结 一、引言 网页数据宛如一座蕴藏着无限价值的宝库&#xff0c;无论是企业洞察市场动态、制定…...