주요 문제점
- 명령어 실행 제약
su,ssh등 일부 명령어는 TTY 환경이 필요하다- TTY가 아니면 실행 자체가 불가하거나, 비밀번호 입력 등 인터랙티브 입력이 제대로 동작하지 않는다.
- 입력 / 출력 기능 제한
- 탭 자동완성, 방향키(위/아래/좌/우) 사용, 명령어 히스토리 탐색 등이 동작하지 않는다.
nano,vim같은 텍스트 에디터가 정상적으로 실행되지 않거나, 화면 갱신이 깨지는 문제가 발생한다.
- job 제어 불가
ctrl+Z,bg,fg등 job control 기능을 사용할 수 없다. 백그라운드 작업 전환이나 중단이 불가하다.
- 신호 처리 미흡
ctrl+C(프로세스 종료),ctrl+D(EOF) 등 터미널 신호가 제대로 전달되지 않는다.- 실수로 세션이 끊기거나, 종료가 불가능한 상황이 생길 수 있다.
- 표준 에러(STDERR) 출력 미지원
- 에러 메시지가 출력되지 않아, 문제 상황을 파악하기 어렵다.
- 터미널 사이즈/환경 변수 미지원
- 터미널 크기 조정(
stty cols,rows등)이나 환경 변수(TERM=xterm) 설정이 어렵다. - 일부 프로그램이 화면에 맞게 동작하지 않습니다.
- 터미널 크기 조정(
리버스쉘 획득 후에 fully interactive TTY shell 업그레이드하는 것이 권장
방법
- 리버스쉘 연결
python3 -c 'import pty; pty.spawn("/bin/bash")’
목적 : 현재의 단순 셸을 가상 터미널(PTY)로 업그레이드ctrl+z
목적 : 현재 리버스쉘 세션을 백그라운드로 잠시 중지echo $TERM
목적 : 현재 터미널의 타입(예:xterm-256color)을 확인stty raw -echo; fg
목적 : 로컬 터미널의 입력 모드를 변경하고, 중지시킨 리버스쉘을 포그라운드로 복귀reset→ 4번에서 확인한 터미널 타입 입력 (ex.xterm-256color)
목적 : 셸 환경을 완전히 초기화하여, 실제 터미널과 거의 동일한 환경
'Study > Web Hacking' 카테고리의 다른 글
| [Web] Command Injection과 대응법 (0) | 2025.10.13 |
|---|---|
| [Web] 파일 취약점 (0) | 2025.10.12 |
| [Web] 쿠키? 세션? 토큰? (0) | 2025.10.09 |
| [Web] XSS vs CSRF vs SSRF (0) | 2025.10.06 |
| [Web] Same Origin Policy (0) | 2025.09.29 |