티스토리 뷰



리눅스 의 Setuid 때 배운 백도어를 좀 더 찾기 어렵게 즉 관리자의 눈에 띄지 않게 숨기는 방법입니다.

 

물론 기존 불필요한 Setuid 랑 바꿔치기 할 수도 있지만 저희는 연습이니깐 ㅎㅎ

 

그냥 새로 한번 만들어 보겠습니다.

 

우선 find / -user root -perm +4000 으로 root 권한을 가지는 setuid 목록들을 확인해봅시다



여기 있는 파일들과 섞여도 잘 모를 이름으로 그럴듯하게 만들 면 되겠죠?

 

파일명은 /usr/bin/chbsh 로 하겠습니다.

 

근데 관리자를 좀더 속이려면 백도어 파일을 실행시켰을때 일반 프로그램처럼 출력을 하되

 

특정키를 입력시키면 백도어가 실행되는 그런 파일이면 감쪽같겠죠??

 

저는  겉으로는 /usr/bin/chsh 파일을 실행시켰을 때 내용을 출력시키는 그런 백도어를 만들겟습니다



자 이제 코드를 작성해봅시다~

 

cd /usr/bin


vi backdoor.c


로 /usr/bin 디렉토리에 들어가서 backdoor.c 라는 c언어기반 소스파일을 생성합니다.


 

backdoor.c 파일에다 위그림과 같이 입력을 합니다.

 

다들 아시겠지만 혹시나 해서 말씀드리겠습니다.

 

printf 구문으로 chsh 파일과 똑같이 출력하고 사용자가 "backdoor" 을 입력했을때 백도어를 실행 그외의 것을 입력했을땐 종료 입니다.

 

소스 내용은 개인 취향대로 좀더 세밀하게 작성할 수도 있고 마음대로 입력하세요 ~

 

자 이제 저장하고 나와서 컴파일 해봅시다.

 

gcc -o chbsh backdoor.c

 

그리고 setuid 설정을 해줘야 겟죠?

 

chmod 4755 chbsh


 

백도어 생성 완료!!!

 

그럼 잘 작동되는지 실행 해봐야겠죠?

 

일반 사용자로 접속해서 생성한 백도어파일이 잇는 /usr/bin 으로 이동합니다

 

그리고 실행

 

 

자 chsh 파일과 같이 똑같이 출력이 되네요~ㅋㅋ

 

아무키나 입력하게 되면

 

이렇게 그냥 종료되서 빠져 나오는 군요

 

그럼 다시 실행해서 백도어 실행단어인 "backdoor"을 입력해볼까요?

 


워메 ㅋㅋ root 쉘을 획득햇네요

 

자 여기서 끝이 아니죠??

 

흔적을 말끔하게 지워야겠죠???

 

exit 을 두번 입력해서 다시 원래의 루트 쉘로 돌아옵시다

 

rm -rf backdoor.c

 

touch -r chsh chbsh

 

자 우선 백도어 소스파일을 지우고

 

chbsh 파일 생성시간이 현시간부로 되어있으니까 chsh 와 시간동기화를 시켜줍니다

 

cat > /var/log/messages

 

history -c

 

로그와 히스토리를 지우면 끝!!

 


Mission Complete!!!

 

그럼 ㅌㅌㅌ 하면 하면되네요 ㅋㅋ

 

이상 백도어 파일 숨기기 였습니다.~

댓글