跟着红队笔记学习 tmux:渗透测试中的多终端利器

内容预览 ≧∀≦ゞ

  • 跟着红队笔记学习 tmux:渗透测试中的多终端利器
    • 进入 tmux 前的准备
    • tmux 概念简介
    • tmux 基础操作
      • 会话管理命令
      • 会话管理快捷键
      • 会话内和会话外命令的区别
    • tmux 窗口和面板管理
      • 新建和管理窗口
      • 分割窗口为面板
      • 切换面板
      • 面板放大与恢复
      • 调整面板大小
      • 关闭面板
    • 分屏后的历史查看与复制问题
    • 推荐 tmux 配置文件
    • 总结

跟着红队笔记学习 tmux:渗透测试中的多终端利器

在渗透测试过程中,我们常常需要同时监控多个终端,每个终端可能都在执行不同的任务:有的用来查看信息,有的用于连接服务器,有的负责监听端口,等等。tmux 是一个强大的终端复用工具,能够帮助我们高效地管理这些任务。它支持将多个会话和窗口整合在一个界面中,支持多种分屏布局,还能够保持会话独立。此外,tmux 自带于 Kali Linux 中,因此,其非常适合渗透测试环境。本文将带你系统学习 tmux 的核心概念与操作技巧。


进入 tmux 前的准备

在启动 tmux 会话之前,建议先进入目标工作目录。因为在 tmux 内新建的所有窗口和面板都会继承启动时的工作目录,这样可以减少手动切换路径的繁琐操作。

tmux 概念简介

tmux 的工作机制可以分为三大部分:会话(Session)、窗口(Window)和面板(Pane)。每个部分都有其独特功能和作用:

  • 会话(Session):一个独立的工作实例。每个会话可以包含多个窗口,且可以独立于其他会话运行。即使 SSH 连接断开,tmux 也能保持会话的完整状态,保障程序不会中断。重新连接时,只需恢复会话即可。
  • 窗口(Window):会话中的窗口类似于多标签页,允许在同一会话中分割出不同的任务区。每个窗口可以包含多个面板,并且可以随时切换。
  • 面板(Pane):窗口中的分屏区域,每个面板都可以执行不同的任务。你可以在一个窗口中分割出多个面板,以便在同一屏幕下查看和操作多个任务。

会话 > 窗口 > 面板

tmux 基础操作

tmux 中,管理会话是核心功能之一,掌握会话管理能极大提高操作效率。以下是 tmux 常用的会话管理命令和快捷键:

会话管理命令

  • 新建会话

    • 命令:tmux new -s <会话名> [-n 窗口名]
    • 说明:新建一个指定名称的会话,可选参数 -n 用于指定初始窗口的名称。
    • 使用场景:在终端外新建 tmux 会话,便于将不同任务组织在独立的会话中。
  • 恢复会话

    • 命令:tmux attach -t <会话名>tmux at -t <会话名>
    • 说明:恢复到已存在的会话,让你重新回到之前的工作环境。
    • 使用场景:当暂时离开会话后,通过该命令继续之前的工作,避免重新配置窗口和窗格。
  • 列出所有会话

    • 命令:tmux ls
    • 说明:查看当前所有的会话及其状态,显示会话名、窗口数等信息。
    • 使用场景:有多个会话时,列出所有会话帮助定位特定会话的名称和状态。
  • 删除会话

    • 命令:tmux kill-session -t <会话名>
    • 说明:关闭指定的会话,释放资源。
    • 使用场景:在会话任务完成后手动删除不再需要的会话。
  • 关闭所有会话

    • 命令:tmux kill-server
    • 说明:彻底关闭 tmux 服务及所有会话。
    • 使用场景:退出 tmux 前清理所有会话,非常适合不再需要保持任何会话时使用。

会话管理快捷键

tmux 会话内有大量的快捷键,所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl + b,按下后会进入命令模式。以下是一些常用的会话管理快捷键:

  • 分离当前会话Ctrl + b 后按 d或者输入 tmux detach
    • 将当前会话转为后台运行,允许你暂时离开而不终止会话,稍后可以通过恢复会话继续工作。
  • 重命名当前会话Ctrl + b 后按 $
    • 弹出重命名提示,允许你为当前会话指定一个更易于识别的名称。
  • 列出所有会话Ctrl + b 后按 s
    • 显示当前所有会话的列表,便于选择并切换到其他会话。

这些快捷键中第一个比较常用,其他的相对比较少用。

会话内和会话外命令的区别

  • 会话外命令:通过在终端中直接使用 tmux 命令(如 tmux new -s <会话名>)新建、恢复、删除会话。这类命令通常用于管理会话的创建和整体操作。

  • 会话内命令:在进入 tmux 会话后,通过前缀键 Ctrl + b 激活 tmux 的命令模式,举例来说,帮助命令的快捷键是Ctrl+b ?。它的用法是,在 tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。按下ESC键或q键,就可以退出帮助。会话内命令一般用于管理窗格、窗口切换等会话内操作。

在这里插入图片描述在掌握了上述基础操作后,大家可能会好奇,如何实现如图所示的终端布局效果呢?别急,接下来让我们进入 tmux 的进阶操作部分——窗口与面板管理。

tmux 窗口和面板管理

tmux 中,窗口和面板是实现多任务处理的核心。它们允许用户在同一会话中高效地分隔和管理不同的任务或项目。以下是窗口和面板管理的一些方法和技巧:

新建和管理窗口

tmux 允许在同一会话中创建多个窗口,这非常适合分隔不同的任务或项目。以下是一些常用的命令:

  • 新建窗口Ctrl + bc

    • 这个命令会在当前会话中创建一个新的窗口,便于开展新任务。
  • 重命名窗口Ctrl + b,

    • 此操作允许用户为当前窗口指定一个更易于识别的名称,适合用于标记任务或项目。
  • 切换窗口

    • 下一个窗口Ctrl + bn
    • 上一个窗口Ctrl + bp
    • 指定窗口Ctrl + b数字
    • 选择窗口列表Ctrl + bw
      • 显示所有窗口的列表,便于选择并切换到特定窗口。

分割窗口为面板

虽然 Kali Linux 自带的终端也支持分屏功能,但 tmux 的分屏功能更加灵活和强大。通过分割窗口,可以在同一屏幕中显示多个任务,支持以下分割方式:

  • 水平分割Ctrl + b 后按 "
  • 垂直分割Ctrl + b 后按 %

为了更方便地记忆,可以将分割命令重新绑定为更直观的快捷键:

bind | split-window -h  # 水平分割
bind - split-window -v  # 垂直分割

只需按 Ctrl + b 后再按 |-,即可快速在窗口内进行水平或垂直分割。

建议布局:可以先水平分割,再进行垂直分割,根据实际工作需要灵活调整面板布局,形成符合个人操作习惯的分屏风格。

切换面板

在多个面板间的切换操作简便而高效:

  • 方向键切换Ctrl + b,然后使用方向键选择目标面板
  • 快速切换Ctrl + bo
    • 在面板间循环切换,适合快速浏览各个面板。

使用 o 快捷键切换面板,可避免使用方向键,尤其适合希望保持手指在主键盘区域的用户。

面板放大与恢复

当某个面板需要更大空间进行操作时,可以将其放大为全屏,再切换回来:

  • 放大/恢复面板Ctrl + bz
    • 这个命令可以让当前面板填满整个窗口,便于专注于重要任务。

调整面板大小

在多面板布局下,调整面板的大小以满足不同的工作需求:

  • 常规调节Ctrl + bAlt + 方向键

  • 精细调节Ctrl + bCtrl + 方向键

关闭面板

对于不再需要的面板,可以快速关闭,以保持工作区的整洁:

  • 关闭面板:在目标面板中输入 exit 并回车,即可关闭当前面板。

  • 快速关闭当前面板Ctrl + bx

    • 此操作将弹出确认对话框,确认后即可关闭当前面板。

通过上述管理窗口和面板的技巧,tmux 用户能够高效地进行多任务处理,提升工作效率。

分屏后的历史查看与复制问题

在分屏状态下,有时需要查看屏幕上方的历史信息或复制内容。直接使用鼠标滚轮往上滚动可能不起作用,可以使用以下操作来复制内容:

  1. 鼠标复制:按住 Shift 键,用鼠标选中内容,然后右键或使用 Ctrl + Shift + c 复制。
  2. 全屏复制:如果面板较多,复制时可能会连同其他面板中的内容一起拷贝。此时,可以先将目标面板放大(Ctrl + b, z),再执行复制,最后按 Ctrl + b, z 恢复。

推荐 tmux 配置文件

使用 tmux 时,可以通过配置文件优化体验。以下是推荐的配置,保存为 ~/.tmux.conf 后,可以通过 :source-file ~/.tmux.conf 来使设置生效。

# 将前缀键修改为 Control-Z,以避免与 VIM 冲突,且按键距离近
set -g prefix C-z# 窗口编号从 1 开始计数
set -g base-index 1# 窗格编号从 1 开始计数
set -g pane-base-index 1# 在使用 PREFIX-Q 显示窗格编号时,驻留时长为 10000 ms
set -g display-panes-time 10000# 开启鼠标支持,允许通过鼠标进行面板切换和调整
set -g mouse on# 窗口关闭后,自动重新编号
set -g renumber-windows on# 禁止活动进程修改窗口名称,以便于手动管理
setw -g allow-rename off# 禁止自动命名新窗口,确保窗口名称的稳定性
setw -g automatic-rename off# 进入复制模式时使用 vi 键位,适合习惯使用 vi 的用户
setw -g mode-keys vi

总结

tmux 是一款强大的终端复用工具,适合需要多任务处理的渗透测试人员。掌握 tmux 的基础操作和分屏技巧,不仅能提高渗透测试的工作效率,还能优化工作流程。如果你还没有尝试过 tmux,不妨跟随本文一起动手实操一次,感受一下它的强大功能。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】24. 聚类-层次式 Hierarchical Clustering

1. 优势和缺点 优点&#xff1a; 无需提前指定集群的数量 通过对树状图进行不同层次的切割&#xff0c;可以得到所需数量的簇。树状图提供了一个有用的可视化-集群过程的可解释的描述树状图可能揭示一个有意义的分类 缺点&#xff1a; 计算复杂度较大, 限制了其在大规模数据…

移植 AWTK 到 纯血鸿蒙 (HarmonyOS NEXT) 系统 (2) - 移植 nanovg

AWTK 使用 nanovg 作为显示的后端&#xff0c;能否将 nanovg 成功移植到 HarmonyOS 上是一个关键问题&#xff0c;所以我们先尝试移植 nanovg&#xff0c;不过实际情况比预想的要简单&#xff0c;整个过程没有遇到任何意外的问题。 1. 将 AWTK 的代码取到 entry/src/main/cpp …

函数调用方法背后的原理

编译器实现函数调用时所遵循的一系列规则称为函数的“调用约定&#xff08;Calling Convention&#xff09;”&#xff0c;x86-64平台上的编译器随着操作系统的不同而有不同的约定。Windows上采用的是Wx64/Vector的标准,而类unix上采用systemV AMD64 ABI的调用标准。统一的调用…

Pinpoint(APM)进阶--插件开发

接上文 pinpoint支持编写插件来扩展监控的覆盖范围 这里重申下pinpoint一个trace的基本构成&#xff08;最小单元为span&#xff09; 插件结构 pinpoint插件由type-provider.yml 和实现组成 type-provider.yml 定义给插件使用的ServiceTypes和AnnotationKeys&#xff0c;并…

qt QPalette详解

1、概述 QPalette是Qt框架中用于管理颜色组和角色的一种机制。它允许开发者为应用程序中的不同组件&#xff08;如窗口、按钮、文本框等&#xff09;定义一套统一的颜色方案。QPalette通过定义颜色角色&#xff08;如背景色、前景色、选择色等&#xff09;和颜色组&#xff08…

什么是FUSE用户态文件系统

零. 文件系统 1. 为什么要有文件系统 文件系统是操作系统中管理文件和目录的一种机制。它提供了组织、存储、检索和更新文件的方法&#xff0c;主要如下&#xff1a; 数据组织&#xff1a;文件系统将数据组织成文件和目录&#xff0c;使用户能够更方便地管理和查找文件。每个…

<HarmonyOS第一课>应用/元服务上架的课后习题

善者&#xff0c;吾善之&#xff1b; 不善者&#xff0c;吾亦善之&#xff0c;德善。 信者&#xff0c;吾信之&#xff1b; 不信者&#xff0c;吾亦信之&#xff0c;德信。 圣人在天下&#xff0c;歙歙焉为天下浑其心&#xff0c;百姓皆注其耳目&#xff0c;圣人皆孩之。 通过&…

从源码到成品应用:互联网医院系统与在线问诊APP的开发全解析

今天将全面解析互联网医院系统和在线问诊APP的开发过程&#xff0c;从源码到成品应用&#xff0c;帮助您理解其中的关键技术和实施策略。 一、系统架构设计 互联网医院系统和在线问诊APP的开发首先需要一个合理的系统架构。通常&#xff0c;系统架构分为前端和后端两个部分。…

2024年【危险化学品生产单位安全生产管理人员】考试内容及危险化学品生产单位安全生产管理人员作业考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 危险化学品生产单位安全生产管理人员考试内容是安全生产模拟考试一点通生成的&#xff0c;危险化学品生产单位安全生产管理人员证模拟考试题库是根据危险化学品生产单位安全生产管理人员最新版教材汇编出危险化学品生…

企业出海网络:SD-WAN与专线混合组网方案

随着越来越多的国内企业进入海外市场&#xff0c;包括出海电商、游戏、社交网络和区块链等领域&#xff0c;它们通常需要使用海外服务器。同时&#xff0c;这些企业在国内也会拥有自己的机房、IDC或依赖其他云服务提供商的机房。在这种情况下&#xff0c;如何实现国内外之间的高…

vue 果蔬识别系统百度AI识别vue+springboot java开发、elementui+ echarts+ vant开发

编号&#xff1a;R03-果蔬识别系统 简介&#xff1a;vuespringboot百度AI实现的果蔬识别系统 版本&#xff1a;2025版 视频介绍&#xff1a; vuespringboot百度AI实现的果蔬识别系统前后端java开发&#xff0c;百度识别&#xff0c;带H5移动端&#xff0c;mysql数据库可视化 1 …

深度了解flink Flink 本地运行Standalone模式

环境准备 IDEA 必须git 必须maven 必须jdk 1.8 必须scala 2.12.7 源码下载 如果能访问github&#xff0c;下载github的源码(flink的代码托管网站) git clone https://github.com/apache/flink.git 如果不能访问github&#xff0c;可以通过码云下载(国内的代码托管平台) g…

【C语言】宏封装的实用总结

在C语言的广阔天地中&#xff0c;宏&#xff08;Macro&#xff09;犹如一门神秘的内功&#xff0c;掌握它&#xff0c;你将能够以不变应万变&#xff0c;以简洁驾驭复杂。今天&#xff0c;我们将深入探讨C语言宏封装的高级技巧&#xff0c;并通过一系列案例&#xff0c;让你领略…

Latex中Reference的卷号加粗的问题

找到模板中的.bst文件&#xff0c;查找volume&#xff0c;修改如下 添加bold&#xff0c;卷号会加粗&#xff0c;去掉则正常

parted 磁盘分区

目录 磁盘格式磁盘分区文件系统挂载使用扩展 - parted、fdisk、gdisk 区别 磁盘格式 parted /dev/vdcmklabel gpt # 设置磁盘格式为GPT p # 打印磁盘信息此时磁盘格式设置完成&#xff01; 磁盘分区 开始分区&#xff1a; mkpart data_mysql # 分区名&…

基于Transformer的路径规划 - 第五篇 GPT生成策略_解码方法优化

上一篇&#xff1a;基于Transformer的路径规划 - 第四篇 GPT模型优化 在上一篇中&#xff0c;我尝试优化GPT路径生成模型&#xff0c;但没有成功。在随机生成的测试集上&#xff0c;路径规划成功率只有99%左右。而使用传统的路径规划算法&#xff0c;例如A*&#xff0c;路径规划…

【ROS的TF系统】

系列文章目录 TF系统简介 前面的章节实现了SLAM节点的建图功能&#xff1a; 激光雷达节点—> /scan话题 —>hector_mapping节点—> 地图数据话题/map 本期来实现SLAM节点的定位功能&#xff1a; TF&#xff08;TransForm&#xff09;主要描述的是两个坐标系的空间关…

Java中的线程安全问题(如果想知道Java中有关线程安全问题的基本知识,那么只看这一篇就足够了!)

前言&#xff1a;多线程编程已经广泛开始使用&#xff0c;其可以充分利用系统资源来提升效率&#xff0c;但是线程安全问题也随之出现&#xff0c;它直接影响了程序的正确性和稳定性&#xff0c;需要对其进行深入的理解与解决。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解…

奥数与C++小学四年级(第十八题 小球重量)

参考程序代码&#xff1a; #include <iostream> #include <vector>int main() {// 小球的重量std::vector<int> weights {1, 2, 3, 4, 5};// 用来存储可能的结果int a, b, c, d, e, x;// 穷举所有可能的 a, b, c, d, e 的组合for (int i 0; i < weight…

ESP32/ESP8266开发板单向一对多ESP-NOW无线通信

ESP32/ESP8266开发板单向一对多ESP-NOW无线通信 简介读取ESP32/ESP8266接收方Receiver的MAC地址ESP32/ESP8266发送方Sender程序ESP32/ESP8266接收方Receiver程序ESP-NOW通信验证总结 简介 本实验通过ESP-NOW无线通信协议实现多个ESP32/ESP 8266开发板向ESP32开发板发送数据。例…