바인드 쉘과는 다르게 리버스 쉘은 프롬프트가 없다.
만약 사용자로부터 입력을 받아야하는 명령을 수행할 경우 리버스 쉘이 종료된다.
python의 pty 모듈을 통해 pseudo terminal을 생성한다.
pseudo terminal을 통해 프롬프트를 제공받으며, 쉘을 좀 더 효율적으로 사용한다.
import pty
pty.spawn("/bin/bash")
<예시>
1. 창1에서 nc -nlvp 1234로 1234 포트 리스닝
2. 창2에서 python 18650.py로 리버스 쉘 따기(hackthebox beep 문제 참조. searchsploit -m 19650)
3. 창1에서 id, ls같은 명령어 입력하면 보기 어렵게 나오는 것을 알 수 있음
4. 이때 창1에서 python -c 'import pty;pty.spawn("/bin/bash")' 입력하면 보기 좋게 bash가 뜨는 것을 볼 수 있음
'운영체제' 카테고리의 다른 글
ubuntu20.04 wine 설치 (0) | 2022.01.15 |
---|---|
ubuntu 15.04 apt-get update error 해결 (0) | 2021.11.24 |
ubuntu18.04에서 kvm image 만들기 (0) | 2021.08.01 |
ASLR 확인하기 (0) | 2021.07.30 |
OverlayFS 개념 (0) | 2021.07.24 |
댓글