nc screen cutting troubleshooting

nc로 접속해서 커널 ctf를 풀다가 cpuinfo 정보를 보고있었는데 지금 보면 flags가 잘려서 나온다. 이건 정말 큰 문제가 된다. 예를 들어 뒤에 있는 mitigation이 없는 줄 알고 익스를 짜다가 헛발짓을 할 수 있기 때문이다.
따라서 nc로 말고 가장 많이 사용하는 socat으로 해볼려고 한다. 일단 socat으로 할려면 접속할때 socat으로 여는 터미널과 screen을 여는 터미널 , 즉 2개의 터미널이 필요하다.
터미널1
C
socat -d -d PTY,raw,echo=0,link=/tmp/qemu-tty TCP:host8.dreamhack.games:16478raw로 일단적인 sh에서 문제가 되는 방향키, tab같은 문제를 해결할 수 있고 echo=0 으로 문자열이 복사가 되면서 출력이 되는 문제를 해결할 수 있다.
터미널2
C
screen /tmp/qemu-tty 115200115200 는 전송 지연시간이다.
근데 이렇게 하고 이제 쳐보면 가끔
C
Boot took 4.59 seconds
~ $
~ $ ls
sh: ㅣls: not found
~ $ 이런식으로 개행이 바로 아래열로만 된다.
이건 CR (\r, Carriage Return)이 커널단에서 없게 출력이 되어서 그렇다.
일반적으로 \n이 오면 개행이 되는데 이건 다음줄에 맨처음으로 가는게 아니라 말 그대로 행만 아래로 간다. 따라서 인간이 읽기에는 풀편하다. 따라서 \n \r 으로 CR 을 사용해서 열의 처음부터 시작하게 하는데 이게 없는 느낌 .
C
stty opost onlcr따라서 다음과 같은 명령어를 입력해서 CR 을 붙여서 처리하게 하면 된다.