리눅스 바이러스에 감염됐습니다. -_-!! 아헹헹...
증상(임의로 작성)
root 12232 0.0 0.0 2744 780 pts/2 R 11:28 0:00 ps -aux
root 12231 0.0 0.0 2744 780 pts/2 R 11:28 0:00 ls -al
root 12222 0.0 0.0 2744 780 pts/2 R 11:28 0:00 hostname
이런식으로 프로세스가 계속 살아 있는겁니다. 실행하고 죽어야 할넘들이..
첨에 proc 파일 시스템에 이상이 있나 해서.. 그냥 넘겼었는데....... 설마 바이러스 일줄이야..
다른 시스템하고 비교해보니... 이거 파일 사이즈가 완전 틀리네요.. 같은 rpm 버전인데...
커널 루트킷이라 판단하고.. 모든 시스템콜 주소를 찍어서 System.map 파일과 비교 했더니..
이상무......
파일 분석 결과.. 특정 자주 쓰는 명령어(ls, echo, tar, cat 등등등) 파일들을 윈도우 바이러스처럼 악성코드가 달라 붙네요... 도스 공격하는 형태와 백도어...
rm -rf /bin/mkdir
ls -al /bin/mkdir
ls: /bin/mkdir: 그런 파일이나 디렉터리가 없음.
touch /bin/mkdir
ls -al mkdir
-rwxr-xr-x 1 root root 20111 10:29 2003 /bin/mkdir
어이 없는 현상... 즉 ls가 감염되어 있었던 것입니다.
ls를 실행하면 특정 파일들을 다 감염시키는거지요..
얼마나 많은 파일들이 변조 됐나 확인 하기 위해.. rpm으로 체크섬 검사.. (즉 파일 변조 유무 검사를 시행했습니다.)
rpm -Vqa 명령사용.
여기서 잠깐 V옵션에 대해서 알아보죠..
출력 결과 형태..
SM5DLUGT c <file>
옵션 설명..
S is the file size.
M is the file's mode.
5 is the MD5 checksum of the file.
D is the file's major and minor numbers.
L is the file's symbolic link contents.
U is owner of the file.
G is the file's group.
T is the modification time of the file.
c appears only if the file is a configuration file. This is handy for quickly identifying config files, as they are very likely to change, and therefore, very unlikely to verify successfully.
<file> is the file that failed verification. The complete path is listed to make it easy to find.
즉... 여기서 파일 사이즈(S) 가 붙어서 나오면..(실행 화일에..) 문제가 있다는 말이죠... (즉 변조가 됐다는 말이겠죠.. 원래 사이즈보다 크거나 작다면...)
상당수가 나왔습니다. -_-;
일단 변조된 파일들의 rpm 패키지를 찾고.. (rpm -qf 파일명)
rpm 패키지들을 한꺼번에 다운 받은후...
rpm -ivh *.rpm --force 강제로 설치...
현재까지는 아무 이상 없습니다..
--------------------------------------------------------------------
샘플로 바이러스 하나 놔두고 분석 좀 제대로 해볼껄 ㅠ.ㅠ 다 지워져서 아쉽네요..
more..
VI 에디터에서 문자열 치환하는 방법
1. 무식하게 하나 하나 찾아서 치환을 한다.
/찾는단어
:cw
바꿀단어
2. :s 사용
:s/찾는단어/바꿀단어/g
현재 커서가 위치하고 있는 줄의 모든 "찾는단어"가 "바꿀단어"로 치환된다.
:s/찾는단어/바꿀단어
현재 커서가 위치하고 있는 줄의 1번째 "찾는단어"만 "바꿀단어"로 치환된다.
:%s/찾는단어/바꿀단어
문서 전체의 "찾는단어"가 바꿀단어"로 치환된다.