tmux | 加固shell
https://github.com/tmux/tmux/wiki
tmux 是我非常喜欢的一个软件,无论是Linux还是Mac,都是必装的!
原本我只是把它当作是一个分屏工具,如下:
这样可以同时实现三个屏幕一起工作,工作效率多少有点提升
直到看了Micro8大佬写的教程,我才发现,原来tmux 还可以实现后台不间断运行程序,我跟你说这个功能老牛了!
案例来了,假如我想在VPS上做一个时间跨度较长的扫描,可能需要几个小时,甚至几天,这样我们不可能说一直ssh登录VPS之后进行扫描,因为可能因为各种各样的原因断网,导致我们扫描失败,那么怎么解决呢?
我之前是使用 nohup cmd &:
nohup nmap -sT -sV www.baidu.com -p- -Pn -T4 -v 3 &
这种方式的弊端很明显,那就是无法看到扫描进度,无法确定扫描了多少,只能确定是否完成了,这太操蛋了,这种方式我竟然用了很多年,通过输出重定向把输出重定向到文件中,查看文件中的内容,判断大概到什么程度了。
一声巨响,tmux 闪亮登场,tmux可以生成一个window,在这个window中我们可以进行执行一些命令,之后直接将这个window放在后台进行,即使断网退出VPS也不会影响执行,关键的是,下次我们登录后可以直接进入这个window,之后直接查看执行到什么程度了,并且可以任意输入、停止等,就相当于回到了当时的shell中,太牛了!
安装 tmux
- Ubuntu : sudo apt install tmux
- mac : brew install tmux
创建一个名为test的window
- tmux new -s test
我在这里执行了 ping 134.175.55.63 这个命令,一直ping
将 window 放置在后台
- ctrl+b d (先按 ctrl+b,之后再按 d)
查看当前后台都有哪些window
- tmux ls
进入后台的window test
- tmux a -t test
可以看到,我们的ping操作还在进行,我们可以实现完全控制。
说了这么多,跟加固shell有什么关系呢?
很明显,对吧,我们在等待反弹shell或者已经获得反弹shell,在持续控制过程中,可以使用tmux来避免因为我们与vps之间网络故障导致丢失shell
至此,加固shell章节结束。
- Websocket HandShake Sec-WebSocket-Accept 生成策略
- 关于JVM CPU资源占用过高的问题排查
- ActiveMQ简单介绍以及安装
- Java Process destroy方法kill进程,返回码测试
- 百度人脸识别API Java调用
- Java Socket Timeout总结
- 求一个数组中子数组的最大和算法(Java实现)
- JDBC批量提交SQL的几点问题解答
- 工具推荐: 汽车CAN总线分析框架CANToolz
- Windows下jps, jconsole无法查看本地java进程问题解决
- DateFormat 线程不安全
- zip文件操作导致JVM crash
- 如何搭建你自己的“深度学习”机器?
- MySQL INSERT INTO...ON DUPLICATE KEY UPDATE的使用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 面试官:你精通多少种语言的Hello World?
- Flutter 裁剪类组件 最全总结
- Flutter Form表单控件超全总结
- 你知道吗,Flutter内置了10多种Button控件
- Flutter 日期时间DatePicker控件及国际化
- 强大的Flutter App升级功能
- 你知道吗,Flutter内置了10多种show
- 还记得第一个看到的Flutter组件吗?
- 150多个Flutter组件详细介绍送给你
- Flutter 学习路线图
- Flutter 强大的MediaQuery控件
- 基于web的图书管理系统设计与实现
- 《Flutter 动画系列一》25种动画组件超全总结
- 网工小白升级打怪篇(三)ssh实现远程管理
- 贪吃蛇的使命 | 零基础入门贪吃蛇游戏(附源码、演示地址)