我们结束了 netcat 会话
vi over netcat session
是否可以在 netcat 上使用 vi?
服务器:
mkfifo tun; sh tun | netcat -l 4444 > tun
客户:
netcat SERVER_IP 4444
会给我远程 shell,但是发送特殊热键是个问题,例如我不能按 ESC 进入“正常模式" in vi.
或者最好的选择是 sed ?
此命令作为脚本运行来自 nc 的输入,它会失败,原因与此脚本无法编辑文件的原因相同:
#!/bin/sh
vi file
42G
dd
:wq
具有讽刺意味的是,您可以改为使用 script
来避免 运行 将其作为脚本,而是让终端会话与之交互:
server$ mkfifo tun; script -q < tun | netcat -l 4444 > tun
(有些netcats需要在上面的端口前加上-p
)
此外,您应该禁用本地回显和线路缓冲,以便按键立即通过连接而不是在按下 enter 时:
client$ stty -icanon -echo; nc localhost 4444
您现在应该可以编辑 vi
中的文件。
这显然只是一个简洁的概念证明。想要通过网络提供强大 shell 访问权限的非根用户应该使用 sshd
.
是否可以在 netcat 上使用 vi?
服务器:
mkfifo tun; sh tun | netcat -l 4444 > tun
客户:
netcat SERVER_IP 4444
会给我远程 shell,但是发送特殊热键是个问题,例如我不能按 ESC 进入“正常模式" in vi.
或者最好的选择是 sed ?
此命令作为脚本运行来自 nc 的输入,它会失败,原因与此脚本无法编辑文件的原因相同:
#!/bin/sh
vi file
42G
dd
:wq
具有讽刺意味的是,您可以改为使用 script
来避免 运行 将其作为脚本,而是让终端会话与之交互:
server$ mkfifo tun; script -q < tun | netcat -l 4444 > tun
(有些netcats需要在上面的端口前加上-p
)
此外,您应该禁用本地回显和线路缓冲,以便按键立即通过连接而不是在按下 enter 时:
client$ stty -icanon -echo; nc localhost 4444
您现在应该可以编辑 vi
中的文件。
这显然只是一个简洁的概念证明。想要通过网络提供强大 shell 访问权限的非根用户应该使用 sshd
.