效率提升之道
红队几条原则
- 能用命令行都用命令行,少用图形化界面,大多数图形化工具是闭源且收费的,且流量特征可能会明显
- 能不用大框架不用大框架(如Metasploit),一个工具只做一件事且是透明的,除非是完全掌握其真正原理才用
- 能不用中文就不用中文,特征特别明显,国内很多工具的开发理念都是浅显的
- 能不做个性配置就不做个性配置,避免特征,可以少做些配置提升效率不要过度
- 一个工具记住几个最常用的操作就行,没必要全都会用
- 命令尽量敲,保证长时间不用能记起来命令
终端复用
tmux
tmux
打开tmux new-session -s <name>
新建一个会话并命名tmux set mouse on
设定鼠标滚动支持Ctrl_b
进入 tmux 命令模式,输入以下指令进行操作:"
(Shift_'
) 窗口上下切分%
(Shift_5
) 窗口左右切分⬆⬇⬅➡(方向键)
将光标切到其他窗格Alt_⬆⬇⬅➡(方向键)
上下左右调整窗格大小z
当前窗格最大化和最小化c
创建新窗口数字
切换到对应的窗口&
(Shift_7
) 关闭当前窗口,会提示是否关闭y
关闭,!
(Shift_1
) 将当前窗格拆分成独立的一个窗口x
关闭当前窗格?
查看快捷键
Ctrl_d
直接关闭窗格且无提示- 复制文本
- 启用了鼠标支持,可以使用鼠标来选择和复制文本
- 按住
Shift
键(在某些终端模拟器中可能是不同的键,如Alt
或Ctrl
),然后使用鼠标左键拖动选择文本 - 在选中文本后,通常你可以使用鼠标右键点击或者使用终端模拟器的复制快捷键来复制文本
- 粘贴可以通过鼠标中键点击或者终端模拟器的粘贴快捷键来完成
- 按住
- 启用了鼠标支持,可以使用鼠标来选择和复制文本
C-b C-b 发送前缀键
C-b C-o 在窗格之间轮换
C-b C-z 暂停当前客户端
C-b Space 选择下一个布局
C-b ! 将窗格分离到新窗口
C-b " 垂直分割窗口
C-b # 列出所有粘贴缓冲区
C-b $ 重命名当前会话
C-b % 水平分割窗口
C-b & 关闭当前窗口
C-b ' 提示选择窗口索引
C-b ( 切换到上一个客户端
C-b ) 切换到下一个客户端
C-b , 重命名当前窗口
C-b - 删除最近的粘贴缓冲区
C-b . 移动当前窗口
C-b / 描述按键绑定
C-b 0-9 选择窗口 0-9
C-b : 提示输入命令
C-b ; 移动到上一个活动窗格
C-b = 从列表中选择粘贴缓冲区
C-b ? 列出按键绑定
C-b C 自定义选项
C-b D 从列表中选择并分离客户端
C-b E 均匀分布窗格
C-b L 切换到最后一个客户端
C-b M 清除标记的窗格
C-b [ 进入复制模式
C-b ] 粘贴最近的粘贴缓冲区
C-b c 创建新窗口
C-b d 分离当前客户端
C-b f 搜索窗格
C-b i 显示窗口信息
C-b l 选择之前的当前窗口
C-b m 切换标记的窗格
C-b n 选择下一个窗口
C-b o 选择下一个窗格
C-b p 选择上一个窗口
C-b q 显示窗格编号
C-b r 重新绘制当前客户端
C-b s 从列表中选择会话
C-b t 显示时钟
C-b w 从列表中选择窗口
C-b x 关闭活动窗格
C-b z 放大活动窗格
C-b { 与上方窗格交换活动窗格
C-b } 与下方窗格交换活动窗格
C-b ~ 显示消息
C-b DC 重置,使窗口的可见部分跟随光标
C-b PPage 进入复制模式并向上滚动
C-b Up 选择活动窗格上方的窗格
C-b Down 选择活动窗格下方的窗格
C-b Left 选择活动窗格左侧的窗格
C-b Right 选择活动窗格右侧的窗格
C-b M-1 设置均匀水平布局
C-b M-2 设置均匀垂直布局
C-b M-3 设置主水平布局
C-b M-4 设置主垂直布局
C-b M-5 选择平铺布局
C-b M-n 选择下一个带警报的窗口
C-b M-o 反向轮换窗格
C-b M-p 选择上一个带警报的窗口
C-b M-Up 向上调整窗格大小 5
C-b M-Down 向下调整窗格大小 5
C-b M-Left 向左调整窗格大小 5
C-b M-Right 向右调整窗格大小 5
C-b C-Up 向上调整窗格大小
C-b C-Down 向下调整窗格大小
C-b C-Left 向左调整窗格大小
C-b C-Right 向右调整窗格大小
C-b S-Up 向上移动窗口的可见部分
C-b S-Down 向下移动窗口的可见部分
C-b S-Left 向左移动窗口的可见部分
C-b S-Right 向右移动窗口的可见部分
screen
screen
创建新会话并进入screen -S <name>
创建一个命名会话并进入Ctrl_a
进入命令模式,输入以下指令进行操作:d
退出当前会话k
关闭当前会话x
锁定当前会话?
查看快捷键
screen -ls
列出已创建的会话screen -r pid
,screen -r name
使用 pid 或 name 重新进入会话Ctrl_d
,exit
可结束会话
screen在创建后还可以不在当前会话中通过名称或编号直接传递指令运行,这个通常用于编写脚本使用:
#!/bin/bash
# 会话名
screen_name="screen_name"
screen -dmS $screen_name
# 要运行的命令
cmd="top";
# 向指定的会话传输内容(注意最后的回车使命令生效)
screen -x -S $screen_name -p 0 -X stuff "$cmd\n"
# 可以使用下面方式关闭会话
screen -x -S $screen_name -p 0 -X quit
其它常用选项:
-d
将指定的会话从终端分离 置为Detached-R
重新进入会话 若没有该会话则新建会话-wipe
列出已创建的会话 并清除状态为dead的会话
kali终端快捷键
Ctrl_+
(Ctrl_Shift_=
) 字体放大Ctrl_-
字体缩小Ctrl_a
光标到命令开头Ctrl_e
光标到命令结尾Alt_b
或Ctrl_⬅左方向
光标向左移动一个词Alt_f
或Ctrl_➡右方向
光标向右移动一个词Ctrl_w
删除光标前一个词Alt_d
删除光标后一个词Ctrl_d
删除光标后一个字符Ctrl_u
删除光标前的所有字符Ctrl_k
删除光标后的所有字符Ctrl_d
退出当前Shell