본문 바로가기
Lecture/Computer

지금 이 순간 나는 해킹 당하고 있을까 ?

by 글벌레 2010. 4. 6.
반응형
이 글은 2022년 12월 14일 수요일에 최종 수정되었습니다.
글을 읽기에 앞서 먼저 드릴 말씀은 이런 글을 적을 수 있는 저도 
인터넷 연결 상태(netstat)로 윈도우의 문제를 살피려고 하는 경우는 거의 없다는 겁니다. 

개인 PC의 해킹은 악성코드에서 기인하는 겁니다. 
그러므로 윈도우가 수상하면 
netstat를 볼 게 아니라 백신에 의존하는 게 
평범한 보통 사용자들에게는 맞는 겁니다. 

내가 지금 사용 중인 백신으로 전체(정밀) 검사를 한 후에
아래 드리는 링크의 제 이전 글에서 설명한 거처럼 안전 모드에서 하우스콜로 한 번 더 검사하는 게
netstat를 보는 거보다 나은 대처법입니다.

https://devotionnoath.tistory.com/960
이 글은 과거, 일 년 전에 발행했던 두 개의 글을 하나로 합친 것이다.
그러나 단순히 합친 것이 아니고 그 내용을 보강/첨삭하여 합친 것이다.
글벌레 단언하건데 이 글을 정독하고 필요 시마다 참조한다면 더 이상 netstat를 쳐보고 고민하는
그런 일은 없을 것이다. 단언컨데 개인 사용자 수준에서 시스템과 외부의 연결 상태를 확인해 보는
방법론을 제시한 글들 중에서 이 글보다 더 자세하게 써진 글은 전 세계 다 뒤져 보아도 없을 것이다.

글은 상당히 길다. 그러나 잘만 소화해서 이용한다면 
아마도 내일부터 당신은 컴퓨터의 고수라 불릴지도 모르겠다. 

나 또한 전문가가 아닌 일반 유저이다.
그런데 이렇게 설명을 하고 있는데, 나보다 머리 좋을 당신이 설마 이 글을 이해 못하겠는가?

 

포털 질문 게시판들에서 요즘 들어 크게 늘어난 질문들이 
해킹 여부에 관한 질문을 하는데 그 자료로서
명령 프롬프트에서 netstat를 치고 뜬 결과를 제시하는 경우이다. 

이렇게 막연히 netstat를 보고 해킹당한다고 느끼는 사람들이
자신의 시스템의 외부 연결 상태를 있는 그대로 정확히 보는 법에 대하여
이 글에서 언급해 보고자 한다.

이 글은 다음과 같은 순서로 진행된다.

1. netstat를 적절하게 이용하는 방법
▷. 참조 - 침입 탐지 프로그램 - Fport
2. TCPView
3. 부언 ( 附言 )

 1. netstat를 적절하게 이용하는 방법

해킹에 대하여 염려를 하는 경우 대개 netstat를 한 번 이용해 보라는 말을 듣게 된다 .

그럼 어디 한 번 이용해 보기로 하자.

시작> 실행에서 cmd 라고 적고 엔터하면 명령 프롬프트 창이 뜬다.
거기서 netstat -an이라고 쳐 보자.

 C:\>netstat -an
Active Connections 
Proto  Local Address                       Foreign Address            State
  TCP    0.0.0.0:135                          0.0.0.0:0                        LISTENING
  TCP    0.0.0.0:445                          0.0.0.0:0                        LISTENING
  TCP    333.333.173.333:139               0.0.0.0:0                        LISTENING
  TCP    333.333.173.333:2927       233.231.33.49:80         
ESTABLISHED
  TCP    127.0.0.1:1026                    0.0.0.0:0                        LISTENING
  UDP    0.0.0.0:445                         *:*
  UDP    0.0.0.0:500                         *:*
  UDP    0.0.0.0:4500                       *:*
  UDP    333.333.173.333:123         *:*
  UDP    333.333.173.333:137         *:*
  UDP    333.333.173.333:138         *:*
  UDP    333.333.173.333:1900       *:*
  UDP    127.0.0.1:123                     *:*
  UDP    127.0.0.1:1031                   *:*
  UDP    127.0.0.1:1034                   *:*
  UDP    127.0.0.1:1900                   *:*
  UDP    127.0.0.1:2346                   *:*

 

그러면 대충 위와 같이 나타날 것이다.

조금만 주석을 적어 본다면
녹색 형광펜이 내 ip, 파란 형광펜이 내 시스템이 연결될려는 원격지 ip 이다.
빨간색 형광펜은 열려 있는 포트를 뜻한다.
(http://)80으로 표시된다.
State는 상태를 뜻하는데 현재 위에서 보면 연결(ESTABLISHED)된 것은
80 이란 숫자로 볼 때
인터넷 익스플로러로 웹에 연결한 상태임을 짐작케 하고 이런 경우는 대개 정상이다.

127.0.0.1loop back이라고 해서 그냥 쉽게 내 시스템 안에서 맴도는 것이라고 생각하면 된다.

아래 참고로 상태에 대하여 간단히 언급해 놓는다.

syn_sent : 원격지로 접속을 위한 신호를 보냈음을 의미.
LISTENING : 접속을 위한 대기 상태.
ESTABLISHED : 접속된 상태.
TIME_WAIT : 접속을 완료 후 대기.

그런데 위의 표는 내가 여러 개의 인터넷 창들을 띄워 놓고,
그중 하나를 새로 고친 후 netstat를 치고 그 상태를 본 것이다.

보면 알겠지만 도데체 무슨 소리인지 이해하지 못하는 사람들이 대다수일 것이다.
결국 netstat -an이라고만 쳐서는 알 수 있는 것이 거의 없다.....
그럼에도 포털에 올라오는 질문들은 이 꼬라지를 올려놓고 해킹 여부를 묻는다.

거기다가 위의 경우는 80이므로 웹이라고 말했지만, 혹 다른 숫자라도 뜨면 난감할 것이다........

그럴 때는 어느 프로세스가 원격지로 접속을 했는지 알아야 한다.
그래서 결국 netstat -anb란 명령을 써야 한다.

참고 : netstat 명령줄 옵션을 보려면 아래 더보기를 클릭.

더보기
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p 프로토콜] [-r] [-s] [-v] [시간]

  -a            모든 연결 및 수신 대기 포트를 표시합니다.
  -b           각 연결 또는 수신 대기 포트를 만드는 데 관련된 실행 프로그램을
                표시합니다. 잘 알려진 실행 프로그램에서 여러 독립 구성 요소를
                호스팅하는 경우에는 연결 또는 수신 대기 포트를 만드는 데
                관련된 구성 요소의 시퀀스가 표시됩니다. 이런 경우에는
                실행 프로그램 이름이 아래쪽 대괄호 안에 표시되어 있고 위에는
                TCP/IP에 도달할 때까지 호출된 구성 요소가 표시되어 있습니다.
                이 옵션은 시간이 오래 걸릴 수 있으며 사용 권한이 없으면
                실패합니다.
  -e            이더넷 통계를 표시합니다. 이 옵션은 -s 옵션과 같이 사용될
                수 있습니다.
  -n            주소 및 포트 번호를 숫자 형식으로 표시합니다.
  -o            각 연결의 소유자 프로세스 ID를 표시합니다. ( PID )
  -p 프로토콜   지정한 프로토콜에 해당되는 연결을 표시합니다. 프로토콜은
                     TCP, UDP, TCPv6 또는 UDPv6 중 하나입니다. -s 옵션과 함께
                     사용하여 프로토콜별 통계를 표시할 경우 프로토콜은 IP, IPv6,
                     ICMP, ICMPv6, TCP, TCPv6, UDP 또는 UDPv6 중 하나입니다.
  -r            라우팅 테이블을 표시합니다.
  -s            프로토콜별로 통계를 표시합니다. 기본값으로 IP, IPv6, ICMP,
                ICMPv6, TCP, TCPv6, UDP 및 UDPv6에 관한 통계를 표시합니다.
                -p 옵션을 함께 사용하면 기본값의 일부 집합에 대한 통계만
                표시할 수 있습니다.
  -v            -b 옵션과 함께 사용하면 모든 실행 프로그램에 대한 연결
                또는 수신 대기 포트를 만드는 데 관련된 구성 요소의 시퀀스를
                표시합니다.
  시간        다음 화면으로 이동하기 전에 지정한 시간 동안 선택한 통계를
                다시 표시합니다. 통계 표시를
중단하려면 CTRL+C를 누르십시오.
                지정하지 않으면 현재 구성 정보를 한 번 표시합니다.

 

netstat -anb 는

 C:\>netstat -anb
Active Connections 
Proto          Local Address                      Foreign Address         State                   PID
  TCP           333.333.173.333:3796           333.233.33.33:80       ESTABLISHED     2256
  [iexplore.exe]
  TCP           333.333.173.333:3797           333.233.33.33:80       ESTABLISHED     2256

  UDP          333.333.173.333:123                *:*                                                       916
  c:\windows\system32\WS2_32.dll
    ntdll.dll
  -- unknown component(s) --
  [svchost.exe]        

 

위와 같이 라이브러리들(dll 파일들)까지 자세하게 보여 주어서 상당히 유용성이 클 거 같지만,
이 명령은 결과를 호출해 내는데 시간이 꽤 걸리게 된다.

그리고 위의 예에서
iexplore.exe 같은 경우에는 원격지 80 포트를 향해 접속하므로
웹에 접속한 정상 iexplore.exe란 게 구별이 되지만

어떤 경우들에는 이상한 포트들이 열려 접속을 하고 접속 프로세스 명도 낯설 때는,
그 프로세스의 경로 조차 이걸로는 파악이 즉각 안 되어 난감할 것이다.

위 표에서 밑에 쪽으로 보면  ntdll.dll 과 같이 라이브러리들까지 보여
더 세밀한 관찰이 가능하다고 여길지 모르지만,
이렇게까지 보여 주는 이유는 svchost.exe주요 프로세스이기 때문이며
,
현재의 svchost.exe가 정상 svchost.exe란 이야기로만 해석될 뿐이다.

그래서 보통 사용자들에게는 크게 효용성이 없는데 반하여 시간은 오래 걸린다.

더욱 중요한 것은 Time_wait 상태( State )에 있는 프로세스는
그것이 무엇인지를 보여주지 않는다는 단점이 존재한다.

시간이 오래 걸린다는 점에서 이 명령 대용으로 netstat -ano를 사용하기도 한다.

 C:\>netstat -ano
Active Connections 
Proto    Local Address                 Foreign Address             State                  
PID
  TCP    333.333.173.333:3955      333.233.23.333:80        ESTABLISHED    
2256
  TCP    333.333.173.333:3949      333.333.253.33:80        TIME_WAIT           0

 

그렇게 되면 위와 같이 PID가 표시된다.

PID를 알면 Ctrl + Alt + Del 을 눌러 작업 관리자를 띄운 후
해당 PID를 점유한 것이 어떤 프로세스인지 확인이 가능하다.

 


그러나 이때도 역시  Time_wait 상태에 있는 프로세스는
그것이 무엇인지를 보여 주지 않고, 프로세스(=파일)의 경로 또한 즉시 파악은 안된다는 단점이 존재한다.

그런데 가만히 보면 위의 어느 경우이든지 netstat 창에서 보게 되는 것은 정적인 상태이다.

그래서 동적인 상태를 보려면 위의 명령을 되풀이 하든가
또는
위에 참고로 적어 놓은 더보기/접기의 netstat 옵션에서 알 수 있듯이 시간 옵션을 넣어야 한다.

예를 들어

netstat -an 5 라고 명령을 치게 되면 5초마다
명령 프롬프트 창에서 netstat -an 를 친 결과가 출력되지만,
직접 해 보면 알 수 있겠지만 이게 뭐 나중에 전부 복사해 메모장에서 본다면 몰라도
그냥 보기는 참 불가능하다.

즉, 쉽게 말해 시간 옵션을 넣을 경우 로그 분석은 가능하나 실시간으로 무엇인가
파악해 대응하기는 참 어렵단 말이 된다.

물론 이러한 특징적인 단점들은 netstat 명령어 자체에 존재하는 것이다.

 
 ▷. 참조 - 침입 탐지 프로그램 - Fport

앞의 chapter에서 계속 언급하기를 netstat로는 프로세스의 경로를 즉시 파악하기 어렵다고 했다.
이런 단점을 보완할 수 있는 것이 바로 Fport란 침입탐지 프로그램이다.

다운로드 링크 : 
링크가 더는 유효하지 않아 삭제 (2022년 12월 메모).

위 링크에서 다운로드를 클릭 시 아래 링크로 이동하면
아래 링크의 맨 아래로 보이는 다운로드를 클릭하여 Fport를 다운로드 할 수 있다.

링크가 더는 유효하지 않아 삭제 (2022년 12월 메모).

fport.zip
다운로드

 
위 압축 파일에서 fport.exe를 풀어낸 후,
명령 프롬프트 상에서 fport.exe를 풀어 놓은 폴더로 가서
실행하게 되면 외부와 연결된 프로세스의 
PID와 프로세스 명, 그리고 해당 프로세스의 경로를 볼 수 있다.

아래는 fport의 설명서이다 .

이 설명서는 인터넷침해사고대응지원센터
에서 제공 중인 것이다.

20060320fport.pdf
다운로드

 

참고.

글벌레는 설명을 하려고 인터넷 익스플로러를 실행시키고 연결된 상태를 보여 주면서 설명을 했다.

그런데 실제로 해킹 또는 악성코드로 인한 정보 유출이 염려되는 경우라면
사용자가 아무 것도 실행하지 않은 상태에서 netstatfport를 실행 후 그 상태를 살펴야 한다.

여기서 한마디만 더 한다면
예를 들어 방금 전까지 인터넷을 사용하다 끄고 나서 금방 위 명령들 실행 시
뭔가가(방금 전까지 연결되었던 것들의 흔적들이) 쭈르르 뜨게 된다......
그런 경우라면 1분, 2분은 지난 후 위 명령들 실행하고 살펴보아야 할 것이다.

 2 . TCPView

 

위에서 언급했지만,
시스템의 외부 연결 상태가 수상한 때 만약 netstat 명령어를 쓴다면,
우리는 연결된 프로세스가 어디 존재하는지 확인하려면 상당히 복잡한 과정를 거쳐야 한다.

그러나 TCPView를 사용한다면 외부와 연결되어진 프로세스가
한방에 파악이 되니,
TCPView는 악성코드 감염의 파악을 위하여도 필수불가결한 프로그램들 중에 하나이기도 하다.

 참고
악성코드 감염을 백신을 통하지 않고 사용자 스스로 파악하기 위한 도구들 중 삼총사라 할 만한 것들은
아래와 같다.

1 .
 2009/10/17 - [프로그램 리뷰] - ProcessExplorer

2 . Autoruns
    글벌레의 Autoruns 관련 글 : : https://devotionnoath.tistory.com/1090

3 . TCPView <클릭하면 새 창(탭)이 열리면서 TCPView 홈페이지로 이동된다.

 

위 표에서 3번을 클릭하면 TCPView 홈페이지로 방문 및 TCPView 다운로드가 가능하다.

우선 TCPView 홈페이지에 있는 내용을 아래 박스에 거의 그대로 번역을 해 놓는다.

TCPView 소개 

TCPView는 사용자의 로컬 주소와 원격 주소들 그리고 TCP 연결 상태를 포함하여
사용자 시스템의 모든 TCP와 UDP의 종말점들을 상세하게 나열하는 윈도우용 프로그램이다.
Windows Server 2008, Vista, NT, 2000 과 XP에서는 TCPView는 종말점에 연결된
프로세스의 명칭들도 보고해 준다. 
(註 윈도우 10과 윈도우 11에서도 사용 가능함.)

TCPView는 보다 많은 정보를 주고 보다 편리한 Netstat의 하위 구성 요소로서
윈도우에서 구동되는 프로그램이다.

TCPView 다운로드는 (TCPView와 같은) 기능을 가진 command-line 버젼의 Tcpvcon을 포함하고 있다.
TCPView는 Windows Server 2008/Vista/NT/2000/XP 그리고 Windows 98/Me에서 작동한다.
Windows 95 Winsock 2 업데이트를 마이크로소프트로부터 다운받아 설치한다면
Windows 95에서도 TCPView를 사용할 수 있다.

TCPView 사용하기

T
CPView를 실행하면 TCPView는 도메인 명칭에 연결된 모든 IP address를 표시하여
모든 유효한 TCP 와 UDP의 종말점들을 열거한다.
메뉴의 버튼을 이용하거나 메뉴 줄의 명령을 이용해 보여지는 명칭을 바꾸어 줄 수 있다.
Windows XP의 시스템에서는 TCPView는 종말점에 연결된 프로세스명을 보여준다.
기본 설정으로 TCPView는 매(every)(second)마다 변화 사항을 보여주지만,
Options|Refresh Rate 메뉴를 이용해 변화 사항을 업데이트해주는 주기를 바꿀 수 있다.
한 상태에서 다른 상태로 변화되는 종말점은 노란색으로 표시되고 ;
없어질 프로세스는 빨간색으로 표시되고, 새로 생성되는 프로세스는 초록색으로 보여진다. 
연결되어진 TCP/IP 접속(state가 ESTABLISHED로 표시된 것)을 File|Close Connections 메뉴를 택하여
끝낼 수 있고, 또는 TCPView의 창에서 접속 표시되어 있는 것을 마우스로 선택한 후
마우스 오른쪽 버튼을 눌러서 뜨는 창에서 Close Connections을 선택하여 연결을 끊을 수 있다.
TCPView가 보여준 결과를 File|Save 메뉴를 이용해 윈도우에 파일로서 저장할 수 있다.

Tcpvcon 사용법 

Tcpvcon 사용법은 Windows에 내장된 netstat와 비슷하다 : 
사용법 : tcpvcon [-a] [-c] [-n] [process name 또는 PID]

(시작> (모든)프로그램 > 보조프로그램 > 명령 프롬프트 창에서)
(또는 시작>실행>cmd라고 치고 엔터한 후 뜨는 창에서)  
-a
모든 종말점 보기(기본 설정은 연결되어 있는(ESTABLISHED) 종말점만 보기 ).
 
-c
CSV로서 프린트 하기. 
-n
주소를 명칭으로 표시 않기.

위의 TCPView 홈페이지 링크에서 TCPView.zip를 다운로드한 후
하나의 폴더에 압축을 해제 후 Tcpview.exe를 실행한다.
압축 해제 시 Tcpview.exe만 압축 풀어 놓아도 실행되는 데는 지장이 없다.

첫 실행을 하면 아래와 같은 창이 뜨는데 Agree를 누르면 된다.

 


첫 실행 시 경우에 따라서 글자의 가독성이 상당히 떨어질 수 있는데
이 경우는
Options>Font...에서 글자 크기와 글꼴을 잘 지정해 주면 된다.


실행된 메인 창의 화면이다.


위 그림을 보면 TCPView로 볼 수 있는 정보가

프로세스 | 프로토콜 | 로컬 주소 | 원격지 주소 | 연결 상태란 것을 알 수 있다.

참고로 언급하면 위 그림에서 빨간 박스 친 시스템 요소들이 항상 떠 있는 것은 정상이다.

예를 들어 그중에 svchost.exe를 더블 클릭해 본다면 아래처럼 파일 정보가 뜬다.
(더블 클릭으로 파일 정보를 보는 것은 system과 [System Process]라고 표시된 것들 빼고 모두 가능하다.
system[System Process]라고 표시된 것에서는 관심을 끄자.)

 

위 그림의 빨간 박스 친 부분처럼 시스템 파일이 정상 경로로 표시되고 있다면,
(해당 프로세스에 악성 툴이 라이브러리로써 인젝션될 수도 있다는 가능성은 일단 별론으로 하기로 한다.
왜냐하면 이 부분은  TCPView나 방화벽에서 따질 수는 없는 문제이고 프로세스 익스플로러와
Autoruns로 따져봐야 하는 문제이기 때문이다. - 아래 부언(附言) Chapter에서 논할 것이다.) 
일단은 전혀 염려할 필요가 없다고 보면 된다.

또 바로 앞에서도 언급했지만
위 그림에서 녹색 박스 친 [System Process]도 정상으로 간주한다.


 참조 - 20101219일에 [System Process]:0에 대한 글이 업데이트 되었습니다 .
          [System Process]:0에 대한 보다 확장된 정보를 원하시면 아래 관련 글을 보시기 바랍니다 .
 관련 글 - 2010/12/19 - [Lecture/Computer] - TCPView - 아직 못다한 이야기

 

그러나 그럼에도 글을 읽는 사람들 중에는 프로세스명이 표시된 것은 그렇다고 쳐도
그럼 System이라고 표시된 것은 무엇이냐고 묻는 사람들이 있을 수도 있다.

그런 사람들은 도대체 system이라고 써진 것이 무엇인지 몹시 궁금할 것이다.  
그래서 아래 시스템의 정상 Port들을 몇 개 열거해 보았다.
아래 포트나 아래 이름으로 표시되는 것은 정상 system 연결로 간주하면 된다.
(system으로 표시된 것은 별로 신경 안써도 된다는 소리이다 .) 

TCP135 :  DCE endpoint resolution
TCP139 : NETBIOS Session Service
TCP445 : Microsoft-ds
TCP1836 , 1900 : MSN 메신저
UDP123 : Network Time Protocol
UDP137 : NETBIOS Name Service
UDP137 : NETBIOS Datagram Service
UDP445 : microsoft-ds
UDP1900 : MSN 메신저

이름으로 표시했을 때 microsoft-** , NETBIOS-**표시되는 system은 정상적인 것들이다.

 

그런데 바로 위의 박스에서 보니 빨간 글씨로 이름으로 표시했을 때란 표현이 나와서
메뉴 박스부터 살펴보기로 한다.

 



 

왼쪽부터 순서대로 보면
우선 디스크 모양은 현재 접속 상태를 텍스트로 저장하는 스위치이다.
A는 선택하면 > 로컬 주소 및 원격지 주소를 숫자(ip)로 표시한다. 
      선택 해제하면 >내 시스템의 이름 및 원격 서버 명칭으로 표시한다.
못을 눕힌 것으로 보이는 것은 선택하면> 현재 연결된 상태(established)인 것만 보여 준다.
                                         선택 해제하면 > 외부로 열린 모든 프로그램을 보여 준다.
마지막 것은 익숙한 아이콘일 것이다 ! 새로고침.

참고적으로 언급한다면 순간적으로 의심이 들어 빠르게 관찰할 때는
연결된 상태만 켜고 보는 것이 좋다.

이 글 작성 시 잡은 글벌레의 시스템 스크린 샷에는 이상한 프로세스가 뜨질 않았다.
그래서 당시에는 사용하였던 사이트어드바이저를 악성코드라고 "가정"하고 한 번 예제를 보기로 한다.




 

느낌이 이상해서 TCPView를 실행하자 위와 같이 수상한 파일이 인터넷에 연결되어 있다.
(사실 위 그림에 보이는 프로세스는 사이트 어드바이저가 업데이트를 확인하는 프로세스이다.
그런데 악성코드로 가정하기로 했다! )

그래서 해당 줄을 마우스로 선택하고 마우스 마우스 오른쪽 버튼을 눌러서
위 그림에서 빨간 박스 친 context menu를 띄웠다.

context menu를 보면 해당 메뉴에서 프로세스 정보를 볼 수도 있고, 프로세스를 끝낼 수도 있고
또는 연결을 끊을 수도 있다.

만약 해당 연결의 원격 주소에 대한 정보를 원한다면 위 그림에서 마우스 커서가 가리고 있는,
whois를 택해서 해당 종말점 정보를 볼 수도 있다.

참고 : 위 그림에서 프로세스 명 뒤에 써진 숫자는 PID이다 (PID는 신경 안써도 된다).

         로컬 주소(ip) 또는 원격지 주소 뒤에 써진 숫자는 포트 번호이다. 
         (로컬 주소는 블라인드 처리함...)
         위 그림에서 원격지 주소의 뒤가 http로 표시된 것은
         메뉴에서 A에 빨간 X쳐지게 클릭해 놓으면(선택해제) 포트 80으로 표시된다 .

 



앞서도 언급했지만 whois를 선택하면 위와 같이 해당 원격 주소(종말점)에 대한 정보 창이 뜬다.

그런데 이것은 적절치 않은 정보라며 안 뜨는 경우가 꽤 많다.
뜨지 않을 때는 재빨리 ip를 메모해 (또는 스크린 샷!)

https://후이즈검색.한국/

와 같은 사이트에서 확인해 보면 종말점 정보가 확인이 가능하다.
아마 이 정도 설명했으면 여러분들께서 TCPView를 잘 이해하고 사용하리라 생각한다.

다만 한 가지 더 참고로 언급한다면
예를 들어 내가 다음(Daum)에 접속하려고 인터넷 익스플로러(iexplorer.exe)를 실행했는데

다만 다음에 접속하려 했을 뿐인데 여러분은 아래 그림처럼
수도 없이 많은 iexplorer.exe가 생성(초록색) 소멸(빨간색)되는 것을 보게 될 것이다.

그런데 이건 정상이다.

 

왜 이런 현상이 나타나는가 궁금한 사람들도 있을 것 같아 아래 설명을 해놓는다.

웹에 접속 시에 인터넷 익스플로의 메뉴줄에서 보기> 상태 표시줄을 활성화하고 보면
어떤 사이트에 접속 시 인터넷 익스플로러의 하단 상태 표시줄을 보면

어떤 페이지를 여는 중이라고 하다가 "완료"가 표시되고
또 다른 페이지를 여는 것을 표시하다가 완료가 반복되고서야
하나의 웹 사이트가 완전히 다 표시되는 것을 볼 수 있을 것이다......
(이것은 사이트에 표시되는 광고 등을 띄우기 위한 것일 수도 있고 ......
어쨌든 같은 페이지에 표시는 되지만 다른 서버들로부터 불러오는 사항들을 띄우기 위한 과정이다.) 

그래서 TCPView에 그렇게 생성/소멸이 반복되며 표시되는 것이다.....

아래 참고로 위에 언급했던 상태(State)에 대하여 다시 한 번 간단하게 언급해 놓는다.

syn_sent : 원격지로 접속을 위한 신호를 보냈음을 의미.
LISTENING : 접속을 위한 대기 상태.
ESTABLISHED : 접속된 상태.
LAST_ACK : 연결은 종료되고 승인을 기다리고 있는 상태.

 

 3 . 부언 ( 附言 )

 

본문 중의 ▷. 참조 - 침입 탐지 프로그램 - Fport 채프터는
해당 프로그램을 활용하라고 올린 것은 아니다.

관련된 모든 사항들을 이 글에서 빠짐없이 설명하기 위하여 쓰여진 거고,
또 누군가 댓글로 Fport도 있는데 하면서 딴지 걸 경우를 방지하기 위하여 쓰여진 부분이다!
 
얼마 전 방송에도 등장하면서 화제가 되었던 

다른 시스템의 화면을 훔친다는 돋보기 바이러스 같은 경우는 
글벌레 직접 접해보지 못했지만, 그 기능상 프로세스로 존재할 것이다.
이렇게 프로세스로 존재하면서 외부로 접속하는 악성코드는
이 글에서 제시한 방법들로 잡을 수가 있을 것이다.

그러나 네이트온 악성코드들에서 흔한 후킹 툴들처럼 
프로세스들에 인젝션되는 경우에는

 ( 관련 글 : : 2010/03/28 - [Malwares 분석] - image.rar - 네이트온 악성코드 
                위 글에서 프로세스 익스플로러를 활용한 예도 보는 것이 가능하다.)

이 글에서 설명한 방법들로 찾기 무지 어렵다.

그런 경우에는 프로세스 익스플로러같은 프로그램의 조력이 필요하다.
관련 글 : : 2009/10/17 - [프로그램 리뷰] - ProcessExplorer

 
사람들이 해킹이라고 하면 누군가가 지속적으로 내 시스템을 감시하면서 지켜보는 것이라고여기는 경우가 많다.
그러나 현재 시점에서 해킹이란 99.9%가 악성코드 감염으로 인한 정보 유출이다.

 

 이 글과 관련되어 추가적으로 업데이트 된 글 -
2010/06/20 - [Lecture/Computer] - 인터넷 익스플로러는 TCP 80 포트로만 접속하나요 ?
반응형

댓글