代码: 全选
[root@server ~]# socat TCP-LISTEN:5566 EXEC:/bin/bash,stderr,pty,ctty
代码: 全选
[root@client ~]# stty raw -echo && nc server 5566
bash: no job control in this shell
[root@client ~]# sleep 10m
^C^C^C^C
这个反弹shell可以使用↑↓键查看历史命令,但是无法使用Ctrl+C杀掉进程。我用strace跟踪socat,可以看到socat已经收到了<Ctrl+C>按键:
[root@server ~]# strace -e trace=read,write -p $(pidof socat)
strace: Process 25253 attached
read(6, "\3", 8192) = 1
write(5, "\3", 1) = 1
read(5, "^C", 8192) = 2
write(6, "^C", 2) = 2
请教在此反弹shell中,为啥Ctrl+C无法杀掉前台进程,有解决办法没?