chattr = change attribute
<사용 방법>
chattr +-= [ASacdisu] filename 또는 directory
+ : 지정한 옵션을 추가한다는 의미
- : 지정한 옵션을 삭제한다는 의미
= : 지정된 옵션을 초기화하여 설정한다는 의미
A : 파일에 대한 atime 즉 접근시간(Access time) 속성을 변경할 수 있다.
a : append(추가)만이 가능하다.
i : 가장 많이 사용되는 것으로 immutable의 으미로 파일의 추가, 변경, 삭제 등이 불가능하다.
이 명령어는 ext2나 ext3 파일 시스템에만 제대로 작동한다.
# chattr +i test
# lsattr test
----i-------- test
# rm test
rm : remove write-protected 일반 빈 파일 'test'?y
rm : cannot remove 'test' : 명령이 허용되지 않음
# chattr -i test
#lsattr test
------------ test
# rm test
rm : remove write-protected 일반 빈 파일 'test'?y
#
삭제됨을 확인 할 수 있다.
변조된 시스템 파일을 찾아 원본 파일로 대체하기 위해 아래와 같이 실행하였다.
여기에서 현재 디렉토리에 있는 ifconfig는 원본 파일이고 /sbin/ifconfig는 공격자에 의해 변조된 파일이다.
# mv ifconfig /sbin/ifconfig
mv : overwrite ‘sbin/ifconfig’, overriding mode 0755? y
mv : cannot move ‘ifconfig’ to ‘/sbin/ifconfig’: Operation not permitted
원본 파일로 대체하려고 하였으나 에러가 나면서 파일을 변경할 수 없는 것을 학인하였다.
# lsattr /sbin/ifconfig
suSiadAc------ /sbin/ifconfig
lsattr을 실행하니 해당 파일에 여러 속성이 설정되어 있는 것을 알 수 있다.
# chattr –suSiadAc /sbin/ifconfig
chattr 실행시 –를 이용하여 이 모드를 모두 해제하였다.
# mv ifconfig /sbin/ifconfig
mv: overwrite ‘/sbin/ifconfig’? y
이후 다시 mv를 시도하니 정상적으로 파일이 변경되었다.
이렇듯 백도어 파일을 찾아도 삭제하지 못하도록 이 속성을 설정해 두는 경우가 자주 있으니
혹 해킹을 당했다면 lsattr /bin/* 등으로 디렉토리 내 속성이 변경된 파일이 있는지 확인하기 바란다.