我经常被朋友们要求帮助解决小型
Linux问题,而且我经常需要登录远程系统.通常在创建帐户和登录时存在很多问题(有时候框在NAT设备后面,有时候没有安装SSHD等)所以我通常只是要求他们使用netcat创建一个连接shell( nc -e / bin / bash).如果他们没有netcat,我可以让他们获取一个静态编译的二进制文件的副本,下载和运行并不困难或耗时.
虽然这对我输入简单的命令足够好,但是我无法运行任何需要tty(例如vi)且不能使用任何作业控制功能的应用程序.我设法通过在连接后shell中使用一些参数运行in.telnetd来绕过这个问题,这将为我分配一个终端并将我放到shell中.不幸的是,在大多数系统上,默认情况下通常不安装in.telnetd.
在不需要任何非标准软件包的情况下,获得功能齐全的连接终端shell的最简单方法是什么?
(完成这项工作的小型C程序也没问题,我似乎无法找到关于如何分配/分配TTY的大量文档.这个解决方案不需要我浏览SSHD的源代码和TELNETD会很好:))
解决方法
需要注意的是,互联网上未加密的shell是一件坏事,这个
pentestmonkey post有一些技术可用于在现有的shell会话上获取TTY.最有可能在任何系统上工作的都使用Python:
python -c 'import pty; pty.spawn("/bin/sh")'
用您选择的替换shell.