먼저 제공한 “윈도우 시스템에 다양한 해킹 사례 분석” 글을 소개 후 웜이나 트로이에 걸려 있을 경우를 알아 볼 수 있기를 바라면서 글을 제공 한다.

작성자 : 이종량님
편집자 : 홍순성님

그 외 대처 하는 방법은 아래 제공한 문서 중에 시스템 취약성 부분이나 쉽게 권한을 획득 할 수 없도록 보안을 강화 시키는 수밖에 없다는 점 알아 두시길 바라며 그 점에 대해서 정보를 달라지는 말아 주기를 바란다. 이런 부분에 대해서 많은 곳에서 소개 했고 그런 부분은 관리자의 몫이 아닐까 생각하기 때문이다.

“윈도우 시스템에 다양한 해킹 사례 분석”(이라 먼저) 글은 가끔씩 문제의 사이트에서 발견 된 내용을 소개 차원에서 제공 했으며 많은 분들이 읽고 해결 방안에 대해서 궁금증을 제시 하셔서 하나씩 소개 하고자 글을 제공 한다.

이런 증세는 최근에 문제점 만은 아니다. 계속해서 이러한 문제로 인해서 재설치 작업을 했다고 판단 하면 된다. 물론 재 설치 후 관리 부실로 동일한 현상이 나타나는 것은 시간 문제이며 하나씩 문제의 근원을 해결 했으면 한다.

대부분의 해킹은 트로이나 별도의 해킹툴을 통해서 이뤄진다. 대체적으로 침투 순서는
  1. 시스템의 취약점 분석
  2. 권한 획득 및 침투
  3. 트로이 파일 전송 및 설치
  4. 트로이를 통한 정상적인 윈도우 권한 획득
  5. 시스템을 마음데로 설정


이런 과정을 거친다.

첫번째 과정은 시스템의 취약점에 대한 부분으로 윈도우 업데이트의 미비나 관리자 암호의 쉬운 유추를 통해서 이뤄진다. 이 부분에 대한 것은 꼭 언급하지 않아도 여러 보안 사이트나 백신 업체의 홈페이지를 통해 자료를 얻을 수 있다. 특히 이런 자료에 대해서 관심이 있다면 한국어로 된 사이트가 아니라 외국어(=영어)로 된 사이트를 돌아다닐 것을 권한다.
두번째와 세번째 부분은 첫번째 과정에서 발생되는 부과적인 방법으로 아주 짧은 시간에 일어난다. (기껏해야 몇 분 정도 밖에 안 된다) 따라서 이를 실시간으로 잡아낸다는 것은 거의 불가능하다.
네번째와 그 이후의 과정에 들어서야 실제로 서버에 문제가 있다는 것을 알게 되며, 이때부터는 상당히 긴장된 시간이 이어지게 된다.

일단 문제가 되면 작업 관리자를 띄우기 바란다. 최악의 경우 작업 관리자를 실행할 수 없다. 하지만 대부분의 경우 작업 관리자를 실행하는 단축키(Ctrl+Shift+ESC)나 보안 창(Ctrl+Alt+Del)을 통해 작업 관리자를 실행할 수 있다. 먼저 올렸던 해킹 사례 분석 글의 그림 중에서 다음을 자세히 보면 TCPService.exe라는 프로세스가 있다. 이 프로세스는 사용자가 실행한 것이 아니라 윈도우 시스템이 실행한 것이다.



그렇다면 여기에서 알아두어야 할 것이 있다. 어떻게 윈도우 시스템이 실행했을까? 라는 질문이다. 윈도우는 SYSTEM 계정으로 프로그램을 실행하기 위해서는 크게 다음 두 군데 중에 적어도 한군데에 위치를 하고 있어야 한다.

레지스터리 위치(Regedit 실행)
  • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun*
  • HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices


첫번째 위치는 시스템으로 동작해야 하는 프로그램뿐만 아니라 일반 시작 프로그램도 등록되어 있으므로 등록된 양이 많다. 두번째 위치는 서비스와 장치가 등록된 부분인데 실제 레지스트리 편집기로 접근을 하면 정말 머리가 아프다. 그래서 이에 쉽게 접근하는 방법은 관리도구-서비스를 이용하는 것이다. 위 두군데 중에 Services라는 곳은 regedit.exe로 삭제가 불가능하며 regedt32.exe에서 권한을 획득한 후 제거해야 한다.
아주 드물게는 위 두군데의 위치만으로 찾는 것이 불가능 할 수 있다. 따라서 다른 부분으로 도움을 받아야 한다. 시작 프로그램의 목록은 98/XP에 있는 msconfig.exe의 도움을 받아도 되나, 이보다 더 확실한 것은 보조프로그램-시스템 정보에 있는 부분이다.



위 그림을 보면 알겠지만 어떤 사용자가 어느 위치에서 어떤 프로그램을 실행하는지 나와있다.
이제 이 정보를 알고 있으나 어떤 것이 트로이인지 구분을 해야 한다. netstat –na 를 통해 보면 대부분의 트로이는 1024 이후의 포트를 사용하며 프로그램으로 외부의 접속을 기다리고 있는(LISTENING) 상태이다.




맨 밑에 43958 포트가 열려서 대기하고 있다는 것을 볼 수 있다. 그러면 43958 포트는 무슨 일을 하기에 대기하고 있는 것인지 판단을 해야 한다. 그냥 무작정 막을 수는 없는 일이다. 이를 판별하기 위해 명령줄에서 telnet 127.0.0.1 43958 이라고 쳐보면 뭔가 접속이 된다. 화면에 아무것도 안 나온다면 enter 몇 번 치면 어떤 특정한 에러 메시지가 나올 것이다. 이를 보고 이 프로그램이 어떤 것인지 판단해야 한다. 윈도우 XP/2003이라면 netstat –nao 를 통해 쉽게 PID가 판별 가능하고 이를 작업 관리자에서 죽이면 되지만, 윈도우 2000의 경우에는 이것이 되지 않으니 사용자가 알아서 판단해야 한다.

여기까지의 과정을 다 거치고 이해했다면 이제는 해당 프로그램을 제거하는 일만 남았다.

대부분 이런 트로이들이 접근한 폴더 리스트
  • winntsystem32
  • winntfonts
  • System Volume Information
  • RECYCLER

등의 특수한 폴더에 실행 파일을 두고 있다.

또는 안전을 위해 여러 부분에 분산시켜두기도 한다. 제거를 하면서 알아둬야 할 것은 이 부분에 있다고 해서 모두 다 해킹관련 파일이 아닐 수 있다는 것이다. 따라서 이를 제거하고자 한다면 삭제를 하는 것 보다는 이름 변경이나 권한을 제거하는 방법으로 해결하고 실제로 시스템에 문제가 없다면 이를 삭제하는 것이 옳은 일의 순서이다.

Posted by NTFAQ

트랙백 주소 :: http://ntfaq.co.kr/trackback/3152 관련글 쓰기

댓글을 달아 주세요