使用Python升级交互式反向Shell执行fg恢复后按回车显示^M无法操作怎么办?
问题原因
- 单独执行
stty raw -echo后,本地终端会关闭回车符自动转换映射,普通回车(\r)无法被识别为命令结束符,只会输出^M字符 - 切回反弹shell后未执行终端重置操作,导致目标和本地终端的参数不匹配
正确操作流程
- 拿到初始反弹shell后,首先执行:
python3 -c 'import pty; pty.spawn("/bin/bash")' - 按下
Ctrl+Z将nc监听进程挂入后台 - 本地终端直接执行整行命令,不要拆分执行:
stty raw -echo; fg - 切回反弹shell后,用
Ctrl+J代替普通回车,输入reset后按Ctrl+J执行重置 - 依次配置终端环境变量即可获得全功能交互式shell:
export TERM=xterm export SHELL=/bin/bash # 本地终端执行stty size可获得当前终端的行数和列数,替换下方参数 stty rows 24 columns 80
异常状态恢复
如果已经处于按回车输出^M的异常状态,直接按Ctrl+J,输入reset后再次按Ctrl+J执行,即可恢复正常输入输出。
内容的提问来源于stack exchange,提问作者laurie
相关产品推荐
相关产品推荐

