본문 바로가기
프로그램 리뷰

TCPView - 해킹 여부 확인 ( 인터넷 연결 상태 확인하기 )

by 글벌레 2009. 5. 8.
반응형
 이 글은 새롭게 쓰여져서 업데이트되었습니다.
 이 글은 무시하고 아래 드리는 링크의 관련 글을 읽어 주시기 바랍니다.
 관련 글 보기 : : 2010/04/06 - [Lecture/Computer] - 지금 이 순간 나는 해킹 당하고 있을까 ?


오늘은 TCPView라는 프로그램을 소개하고자 합니다.

굉장히 전문적이거나 어려운 글이라고 느끼실 수 있는데,
그림과 더불어 쭉 읽다 보면 굉장히 쉬운 글입니다.

이 글을 통독하고 나면 다시는 나 해킹당하고 있어 그런 질문은 안 하게 될 겁니다.

이 프로그램은 내 시스템의 인터넷 연결 상태를 연결된 프로그램과 함께 보여 주므로
수상한 프로세스가 인터넷에 연결된 경우, 즉 다운로더 같은 프로세스 수준에서의 악성코드쯤은
손쉽게 볼 수 있는 프로그램입니다.

우리가 시스템의 인터넷 연결 상태가 수상한 때 만약 netstat 명령어를 쓴다면,
연결된 프로세스 확인을 위하여 상당히 복잡한 프로세스를 거쳐야 합니다.
이에 대하여는 아래 링크한 이전 제 포스트를 확인해 보시기 바랍니다.
2009/03/16 - [유용한 팁들] - 해킹을 당할까봐 불안해 ? - 해킹에 대한 대처 ▒ 제 2 편 ▒

그러나 위에 언급한 거처럼 TCPView를 사용한다면 인터넷에 연결되어진 프로세스가
한방에 파악이 되니, 이 프로그램은 악성코드 감염의 파악을 위하여도 필수불가결한 프로그램들 중 하나입니다.

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

1 . Process Explorer

2 . Autoruns

3 . TCPView

위 셋 중 오늘 포스팅하는 것이 TCPView입니다.
1번과 2번은 5월 , 6월중에 포스팅해 보도록 하겠습니다 ^ ^

 

우선 아래 링크에서 프로그램의 안내 및 다운로드가 가능합니다.

https://learn.microsoft.com/ko-kr/sysinternals/downloads/tcpview

우선 위 링크에 있는 내용을 아래 박스에 거의 그대로 번역을 해 놓으니 참고하기 바랍니다.

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

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 사용하기 
TCPView를 실행하면 TCPView는 도메인 명칭에 연결된 모든 IP address를 표시하여
모든 유효한 TCP 와 UDP의 종말점을 열거한다 .
메뉴의 버튼을 이용하거나 메뉴줄의 명령을 이용해 보여지는 명칭을 바꾸어 줄 수 있다 .
Windows XP의 시스템에서는 TCPView는 종말점에 연결된 프로세스명을 보여준다 . 

기본 설정으로 TCPView는 매초 변화 사항을 보여주지만 , 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.exe를 실행합니다.

물론 Tcpview.exe만 딱 압축 풀어놓아도 상관은 없습니다.



실행하면 제일 처음 아래와 같은 창이 뜨는데 Agree를 누르시면 됩니다.

 

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

 

이제 실행된 메인 창의 화면은 다음과 같습니다.


위 그림을 보면

볼 수 있는 정보가

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

참고로 말씀드리면 위 그림에서 빨간 박스를 친 시스템 요소들이 항상 떠 있는 것은 정상입니다.

예를 들어 그중에 svchost.exe를 더블 클릭해 본다면 아래처럼 파일 정보가 뜹니다.
(더블 클릭으로 파일 정보를 보는 것은 system이라고 표시된 것들 빼고 모두 가능합니다.)

 

위 그림의 빨간 박스에처럼 시스템 파일이 정상 경로로 표시되고 있다면,
(해당 프로세스에 악성 파일이 라이브러리로써 인젝션될 수도 있다는 가능성은 일단 별론으로 하기로 하고요.
왜냐하면 이 부분은  TCPView나 방화벽에서 따질 수는 없는 문제이고 프로세스 익스플로러와
Autoruns로 따져 봐야 하는 문제이기 때문입니다.) 

잔혀 염려하실 필요가 없다고 보면 됩니다.

또 위 그림에서 녹색 박스 친 것 같은 것이 보이는 것도 정상으로 간주해도 됩니다.

그러나 그럼에도 글을 읽으시는 분들중에는 프로세스명이 표시된 것은 그렇다고 치고
그럼 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를 띄웠습니다.

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

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

참고 : 위 그림에서 프로세스명 뒤에 써진 숫자는 PID입니다.(PID는 신경 꺼도 됩니다.)

         로컬 주소(ip) 또는 원격지 주소 뒤에 써진 숫자는 포트 번호입니다. 
         위 그림에서 원격지 주소 뒤가 http로 표시된 것은
         메뉴에서 A에 빨간 X쳐지게 클릭해 놓으면 포트 80으로 표시됩니다.


whois를 택하면 위와 같이 해당 원격 주소(종말점)에 대한 정보 창이 뜹니다.

그런데 이 것은 적절치 않은 정보라며 안 뜨는 경우가 꽤 많습니다.
뜨지 않을 때는 재빨리 ip를 메모해

https://후이즈검색.한국/와 같은 사이트에서 확인해 보면 종말점 정보가 확인이 가능합니다.

아마 이 정도 설명을 드렸으면 여러분들께서 TCPView를 잘 이해하고 사용하리라 봅니다.

다만 한 가지 참고로 말씀드리면
예를 들어 내가 다음에 접속하려고 인터넷 익스플로러(iexplorer.exe)를 실행시켰습니다.

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

이런 상황은 정상입니다.


왜 이런 현상이 나타는가도 궁금하신가요?

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


어떤 페이지를 여는 중이라고 하다가 완료가 표시되고
또 다른 페이지를 여는 것을 표시하다가 완료가 반복되고서야
하나의 웹사이트가 완전히 다 표시되는 것을 볼 수 있을 겁니다......

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

마치기 전에

아래 참고로 상태(State)에 대하여 간단히 언급해 놓습니다.

syn_sent : 원격지로 접속을 위한 신호를 보냈음을 의미합니다.
LISTENING : 접속을 위한 대기 상태입니다.
ESTABLISHED : 접속된 상태입니다.

LAST_ACK : 연결은 종료되고 승인을 기다리고 있는 상태입니다.

반응형

댓글