C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[8028] Sober 웜 노가다 치료기...
박지훈.임프 [cbuilder] 1754 읽음    2003-10-31 02:58
오른쪽에 안철수 배너가 깜빡거리고 있죠? Sober 웜 경고인데요..
오늘 이넘에 걸렸습니다. 고생 깨나 했죠.

좀 시스템이 느리다 싶어서 작업관리자를 봤더니, spoolfj.exe라는 듣도 보도 못한 이상한 넘이 시퓨 타임을
잡아먹고 있더군요. 시스템 서비스들을 잘 관리하는 편이라, 모르는 파일 이름은 금방 알아봅니다.

해당 파일을 보니까 대략 64kB 정도의 크기에, Hex 뷰를 봐도 별다른 이상이 없어보이더군요.
그전에 말썽을 피우던 비슷한 웜, 바이러스들은 레지스트리를 조작하기 때문에 대부분 내부를 보면 레지스트리
주소가 있게 마련이었는데, 이넘은 약간 인코딩을 했는지 별다른 내용이 없더라구요.

혹시나 해서 오른쪽 배너를 봤더니 Sober라는 웜에 대해 경고가 껌뻑이고 있더군요.
http://home.ahnlab.com/smart2u/virus_detail_1231.html
증상이 거의 일치해서 이넘이라는 것을 알았습니다만, 정확히 일치하지는 않는 것으로 봐서는 약간 변종인 것
같습니다.

어쨌든... 당근 이넘을 삭제했습니다.
이상하게 작업관리자에서 강제종료가 안되어서(마치 시스템 서비스를 강제 종료하려 할 때 에러 메시지가 나오는
것처럼 말이죠), 빌더를 띄워서 Attach to Process로 디버그 모드로 들어간 후 강제 종료를 시켰습니다.
그런데 신기하게도 탐색기에서든 단축아이콘이든 클릭만 하면 계속 다시 이 spoolfj라는 넘이 실행되지 않겠습니까.

일단 안연구소 사이트의 액티브X로 바이러스 검색을 했더니 40개 정도의 복제된 파일이 있더군요.
그넘으로는 검색만 되고 치료는 '정품을 구입하셔요~' 하길래, 직접 해당 파일들을 지웠습니다.
들키지 않으려고 그랬는지, Winnt 디렉토리 밑의 제어판 실제 디렉토리에 주루룩 복제를 해놨더군요.
(제어판 같은 시스템 폴더의 실제 디렉토리에 복사해놓으면 탐색기에서는 안보이죠)

Winnt 디렉토리에 svchost.exe가 바이러스라고 해서 삭제를 했는데..
이넘은 원래 NT 시스템 서비스들을 실행하는 호스트 프로그램이라서 좀 이상하다 싶긴 했습니다만, 얼른
복구하고 작업을 계속할 생각에 별다른 관심을 기울이지 않고 넘어갔죠.

여기까지는 좋았습니다만... 웜 파일들을 몽땅 삭제하고 나니까 실행파일들이 실행이 안되더군요.
띠바.. 분명히 웜이 어딘가 레지스트리를 건드려서 그런 거다 싶었죠.
그래서 레지스트리를 보려구 regedit.exe를 실행했는데...

"시스템 관리자가 레지스트리를 편집하지 못하도록 했습니다."
라는 에러 메시지만 뜨고는 레지스트리 에디터가 실행이 안되는 겁니다.
아 띠바... 일이 복잡하게 됐습니다. 레지스트리 에디터를 띄우지 못하면 수동 복구가 안되지 않습니까.

그래서 한참을 고민하다가.. 문득 윈도우2000의 리모트 레지스트리 서비스가 기억이 나더군요.
다른 컴퓨터에서 네트웍으로 레지스트리에 원격 접속하여 편집할 수 있게 해주는 건데, 전 이넘을 쓸 일이
없기 때문에 수동으로 설정해서 실행되지 않게 했었습니다.
이넘을 다시 돌아가게 하려면 서비스 관리자에서 살려야 하는데.. 다행히 이건 실행이 되더군요.
(서비스 관리자는 자체가 실행파일이 아니고 외부 실행파일에 호스팅되는 dll이라서 실행되는 거였습니다)

그렇게 해서 리모트 레지스트리 서비스를 올리고... 제 노트북으로 접속해서 레지스트리를 뒤지기 시작했습니다.
아.. 별다른 단서가 안보여서 한참 헤맸습니다. 이전의 바이러스들의 경우 해당 바이러스 파일 이름으로
레지스트리를 검색하면 거의 90% 이상 단서가 잡혔는데, 이번에는 잘 안보이더군요.
그래서 프로그램 실행과 관련된 레지스트리 항목들을 하나씩 살펴보기 시작했습니다.

시스템에 로그온하면 자동 실행되는 Windows\Run 키, 로그온 관련 정보가 있는 WindowsNT\Winlogon 키,
.exe 파일 키 등등... 근데 단서가 안나오두만요. 아 환장할 노릇이었습니다.

거의 두시간 가까이 뒤지다가 문득 가물거리며 떠오른 기억...
실행파일에 대해 .exe 키 외에 exefile 키가 추가로 있다는 거였습니다.
이넘을 뒤져보니까.. 헉.. open 명령에 대해 다음과 같이 되어있더군요.
c:\WINNT\svchost.exe "%1" %*

여기서 "%1" %* 부분은 정상적인 것입니다. 그런데 앞에 왜 시스템 서비스를 실행해주는 호스트인 svchost.exe가
붙어있을까. 띠바.. 그래서 감염되지 않은 노트북에서 svchost.exe 파일을 검색해봤습니다.
이 파일이 system32 디렉토리와 system32\dllcache에는 있는데, Winnt 디렉토리에는 없는 거 아니겠습니까.

헉... Winnt 디렉토리에 있었던 svchost.exe 파일이 바이러스였던 겁니다.
원래 정상적인 svchost.exe는 system32 디렉토리에 있는 건데, c:\Winnt\svchost.exe 라고 위치까지 지정해서
실행시키는 바람에 바이러스인 가짜 svchost.exe가 실행되었던 거죠.
근데 먼저 제가 이 파일을 삭제해버렸으니 당연히 모든 실행파일이 실행이 안되었던 겁니다.

즉시 앞의 씰데없는 부분을 삭제하고 "%1" %* 이렇게 수정했습니다.
아 이제야 잘 동작하는군요. 흑흑흑...


사족을 달자면...
물론, 이 웜 바이러스는 복잡한 레지스트리의 구조와 탐색기의 실행 과정의 헛점을 이용한 겁니다.
그런데, 윈도우2000의 아주! 사소한 버그 하나 때문에 그렇게 찾기가 어려웠던 거죠.

지정한 위치의 가짜 svchost.exe를 삭제했으니, 진짜 svchost.exe가 system32 디렉토리에 있다고 하더라도
svchost.exe가 없다고 에러 메시지가 떠야 되죠. 실제로 똑같은 명령행을 cmd나 윈도우의 실행 메뉴에서
실행하면 c:\winnt\svchost.exe가 없다고 에러가 뜹니다.

그런데 레지스트리의 exefile 항목에서 지정되어 실행되는 경우에는 svchost.exe가 없다고 에러가 뜨는
것이 아니라, 엉뚱하게도 인자로 넘어간 원래 실행파일이 없다고 에러가 뜹니다.
정상적으로 svchost.exe가 없다고 에러가 떴다면 훨씬 쉽게 잡아낼 수 있었죠.

띠바.. 넘 사소한 윈도우 버그로 몇시간 동안 생쇼를 했더니 허무하기 짝이 없네요.
궁시렁.......

혹 다른 분이 이 sober나 비슷한 웜에 걸리시면... 다음의 키를 먼저 확인하세요.
HKEY_CLASSES_ROOT\exefile\shell\open\command

여기에 기본값이 다음과 같이 되어 있으면,
C:\WINNT\svchost.exe "%1" %*
다음과 같이 수정하시면 됩니다.
"%1" %*

일단 이것만 하면 바이러스는 더이상 실행되지 않구요.
다음으로 안연구소의 액티브X로 바이러스 파일들을 검색해서 몽땅 지워주면 됩니다.

기럼...
박지훈.임프 [cbuilder]   2003-10-31 03:30 X
방금 regedit.exe와 regedt32.exe가 실행되지 않는 문제도 해결했습니다.
먼저 레지스트리에서 다음 키를 찾아가서...
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System
DisableRegistryTools라는 DWORD값이 있습니다.
이 값이 1로 되어있으면 레지스트리 에디터가 실행이 안됩니다. 0으로 수정하면 되죠.
조해진 [mastercho]   2003-10-31 04:44 X
AI 말고 , 수동? 터보백신은 공자인데 그걸 써보셨으면 좋았을듯 싶어요
박지훈.임프 [cbuilder]   2003-10-31 05:23 X
허걱!!!
박지훈.임프 [cbuilder]   2003-10-31 05:24 X
역시 공돌이 체질인가 봅니다...
뭔가 안되면 팔뚝을 걷어붙여야... 쩝~~
조대현.daf [gloomynebula]   2003-10-31 09:37 X
일하다보면 MS윈도우,프로그램 버그때문에 반나절 까먹는건 기본이죠. 바이러스도 그렇고...자체적으로 백신을 넣든가ㅋ^^

+ -

관련 글 리스트
8028 Sober 웜 노가다 치료기... 박지훈.임프 1754 2003/10/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.