首页 > 系统相关 >Shell升级:从非交互式到全交互式

Shell升级:从非交互式到全交互式

时间:2024-12-27 20:00:28浏览次数:7  
标签:TTY Shell rlwrap 支持 升级 终端 交互式

在渗透测试中,通过漏洞利用或反弹 Shell 获取的初始会话,往往是功能有限的非交互式 Shell。为了提高操作效率和稳定性,我们通常需要将其升级为半交互式或全交互式 Shell。

国内很多打靶教程和文章往往没有详细介绍如何升级为完整的交互式 Shell,相关资料也相对较少。

本教程将详细介绍这三种 Shell 的特点,并提供升级 Shell 的具体操作方法。


三种 Shell 的区别对比

非交互式 Shell

  • 功能受限:仅支持基础的命令执行。
  • 无实时反馈:无法与终端实时交互,命令必须完整输入后执行。
  • 无快捷键支持Tab 补全、Ctrl + C 等功能不可用。
  • TTY 缺失:不具备伪终端支持,某些工具(如 sudovimtop)无法运行。
  • 交互工具不可用:需要交互的程序(如 passwd)会运行失败或卡住。

半交互式 Shell

  • 部分交互能力:支持光标移动、Tab 补全等基本功能。
  • 较高的可靠性:命令执行更流畅,不容易因误操作终止会话。
  • 快捷键支持有限:如 Ctrl + Z 挂起有效,但 Ctrl + C 可能仍会导致会话中断。
  • TTY 支持增强:可运行部分 TTY 依赖的工具,但完整支持有限。

全交互式 Shell

  • 完全交互能力:类似于通过 SSH 连接的终端,支持所有快捷键操作(如 Ctrl + CTab)。
  • 光标控制功能:允许上下翻阅历史命令,左右移动光标修改命令。
  • 完整的 TTY 支持:可以运行所有依赖 TTY 的工具(如 vimsudotop)。
  • 颜色显示支持:能正确显示命令行颜色。
特性非交互式 Shell半交互式 Shell全交互式 Shell
交互能力部分支持完全支持
快捷键支持不支持支持 Ctrl + Z支持所有快捷键
Tab 补全不支持支持支持
TTY 支持部分支持完全支持
适用工具基本命令执行一些 TTY 依赖工具所有 TTY 依赖工具

FULL TTY

在阅读了许多国外关于升级 Shell 的文章后,我发现,最终获得的全交互式 Shell 的规范表述是 “Full TTY”,这也是本章节标题的来源。

1. 获取半交互式Shell

方法1:最可靠的方式

使用/usr/bin/script将Shell转化为半交互式:

script -qc /bin/bash /dev/null
  • 优点:简单可靠,不依赖外部环境。
  • 适用场景:靶机环境具备script命令。
方法2:利用Python

Python内置的pty模块可以生成伪终端:

python -c 'import pty; pty.spawn("/bin/bash")'
# python3 -c 'import pty; pty.spawn("/bin/bash")'
  • 优点:方便快捷,支持大多数系统。
  • 适用场景:靶机已安装Python或Python3。

2. 升级为全交互式Shell

Step 1:获取半交互式Shell

通过pythonscript命令获取半交互式Shell。

Step 2:将Shell挂到后台

使用快捷键将当前Shell会话挂起:

Ctrl + Z
Step 3:获取终端大小(Rows和Columns)

在攻击者主机上运行以下命令,记录终端的行数和列数:

stty -a | head -n1 | cut -d ';' -f 2-3 | cut -b2- | sed 's/; /\n/'
Step 4:恢复前台Shell

运行以下命令配置伪终端的模式并恢复会话:

stty raw -echo; fg
Step 5:设置终端大小

用之前记录的Rows和Columns替换下面命令中的ROWSCOLS

stty rows ROWS cols COLS
Step 6:增强终端体验

设置颜色支持:

export TERM=xterm-256color

重新加载Bash配置以生效:

exec /bin/bash
# 或者 source /etc/skel/.bashrc

番外:利用rlwrap增强 Shell 体验

最近看大神的文章时,偶然发现了rlwrap这一工具,简单来说,rlwrap 是一种终端增强工具,能为反弹 Shell 提供以下功能:

  1. 支持 命令行编辑
  2. 提供 Tab 补全历史命令功能
  3. 改善非交互式 Shell 的输入体验。

使用方法

在攻击者机器上运行以下命令启动监听:

rlwrap -cAr nc -lnvp 4444
  • 说明:通过 rlwrap 为 Netcat 提供输入增强功能。
  • 适用场景:攻击者主机安装了 rlwrap

rlwrap 的局限性

尽管 rlwrap 提升了非交互 Shell 的使用体验,但它并没有为 Shell 提供真正的伪终端(PTY),其增强仅在客户端生效,不改变服务器端的 Shell 本质。仍无法满足全交互 Shell 的完整特性(如伪终端支持)。

例如,其运行 sudovim 等依赖TTY 的工具可能会报错:no tty present and no askpass program specified


总结

本文介绍了不同类型 Shell 的特点,以及如何在渗透测试中将初始的非交互式 Shell 逐步升级为全交互式 Shell。通过对国内外资料的对比,发现许多教程并未详细涉及完整交互式 Shell 的升级过程,而本教程正是为了弥补这一空白。感谢你读到这里,希望这篇文章对你有所帮助!

标签:TTY,Shell,rlwrap,支持,升级,终端,交互式
From: https://blog.csdn.net/2301_79518550/article/details/144730328

相关文章

  • 极狐可联动万能代扣V1.0台词升级版(不同步)成品说明书
    (特典代扣外壳改版本)一:代扣各触点功能解释(以特典代扣改为例):各触点编号(下同)插卡识别————————————(1号脚)组合/分离————————————(2号脚)触发变身/必杀————————(3号脚)功能键——————————————(4号脚)台词键—————————————......
  • 智能问答模型升级,通义灵码新增图片多模态问答模式等新能力,项目秒上手
    通义灵码智能问答模型升级Qwen2.5Coder、输入交互升级并丰富上下文支持,全新支持多模态图片问答模式等。1.智能问答模型升级到最新Qwen2.5Coder智能问答升级到最新Qwen2.5Coder模型,编程性能和效率均实现大幅提升,其旗舰代码模型在十余项基准评测中均取得开源最佳成绩,成为......
  • 智能问答模型升级,通义灵码新增图片多模态问答模式等新能力,项目秒上手
    通义灵码智能问答模型升级Qwen2.5Coder、输入交互升级并丰富上下文支持,全新支持多模态图片问答模式等。1.智能问答模型升级到最新Qwen2.5Coder智能问答升级到最新Qwen2.5Coder模型,编程性能和效率均实现大幅提升,其旗舰代码模型在十余项基准评测中均取得开源最佳成绩,成为......
  • 国标GB28181视频平台EasyCVR安防知识:监控系统升级后,如何进行系统测试和验证?
    在当今这个信息化快速发展的时代,监控系统的升级不仅是技术进步的需要,也是适应日益增长的业务需求和安全挑战的必要措施。升级后的监控系统需要经过严格的测试和验证,以确保其能够满足新的性能标准和业务要求。以下是对监控系统升级后进行测试和验证的详细步骤,以确保系统的可靠性和......
  • 通过 PowerShell,你可以实现强大的安全监控和自动化响应。结合进程、模块、驱动程序、
    在PowerShell中,通过收集进程、模块和驱动程序信息,可以获取有关系统状态、潜在安全问题、恶意活动的指示等数据。这类信息对于安全防护、漏洞分析和系统审计非常重要。下面,我将详细说明如何通过PowerShell来收集这些数据,并加以分析。1. 收集进程信息进程是操作系统中运行的......
  • 通过在 组策略管理控制台 中配置 AppLocker,可以非常有效地限制 PowerShell 脚本的执行
    在组策略管理控制台(GroupPolicyManagementConsole,GPMC)中配置AppLocker,可以有效地限制和控制哪些应用程序(包括PowerShell脚本)可以在计算机上执行。这是一种通过白名单策略确保只有已批准的应用程序能够运行的强大安全措施。配置AppLocker的步骤:1. 打开组策略管理控制......
  • 谷云科技数据集成社区焕新登场:功能、资源、会员权益全面升级
    ​12月26日,谷云科技ETLCloud技术社区迎来全新升级。升级后社区的内容更加丰富,满足社区用户更多需要。功能更细致,查找更方便 社区问答 | 博客文章 | 文档中心作为社区内容贡献的核心板块,我们对社区问答、博客文章、文档中心进行了保留,并优化了分类和展示方式,......
  • PowerShell 提供了多种强大且灵活的方式来进行外发数据传输。无论是通过 HTTP 请求、F
    在WindowsPowerShell中,"数据传输外发"(或类似的表述,可能是“外发数据传输”)并没有明确的、标准的技术术语。不过,这可能指的是数据的外发传输(outbounddatatransfer),即从本地计算机传送到外部服务器或其他系统的过程。在PowerShell中,数据传输通常通过不同的网络通信协议来进行......
  • 敏捷销售的基础:协同工具如何助力车企升级
    今年来,国家在汽车产业领域频频出台利好政策,从新能源汽车补贴延续到以旧换新购车补贴,这一系列措施为汽车企业创造了全新的市场机遇。然而,面对复杂的销售网络、多样的营销活动和庞大的数据管理需求,车企如何迅速响应政策、提升协作效率,成为当前的核心挑战。政策推动下的车企挑战与协......
  • 一次医院RIS系统的升级
    2020-03-11目录数据库升级...1数据结构升级...1系统配置...2WEB服务器准备...3启动ASP.NETStateService服务...3检查IIS.4发布站点...4添加应用程序池...4发布网站...5处理打印模板...6web.config的配置...6处理图片文件目录...6修改Web.config......