본문 바로가기
유용한 팁들

해킹을 당할까봐 불안해 ? - 해킹에 대한 대처 ▒ 제 2 편 ▒

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

이번 글은 연작입니다.
아래와 같은 순서로 진행될 겁니다

이번 글은 2편입니다.

 해킹을 당할까봐 불안해 ? - 해킹에 대한 대처

참조 - ▒ 제 1 편 ▒ ▒ 제 5 편 ▒ 만 XP SP2에 최적화된 글들이고

          나머지는 다른 윈도우 버젼에도 적용 가능한 글들입니다.

▒ 제 1 편 ▒ Windows XP SP2의 기본 방화벽 설정

▒ 제 2 편 ▒ netstat와 task manager 그리고 fport

▒ 제 3 편 ▒ TCPView

▒ 제 4 편 ▒ 무료 방화벽 ZoneAlarm의 소개

▒ 제 5 편 ▒ 補充 - 윈도우즈 업데이트등등 ......

제가 어디다 포인트를 두었는지는 보이시죠 ? ^ ^

그럼 2편 시작합니다.


해킹에 대하여 염려를 하는 경우 대개
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)된 것은
인터넷 익스플로러로 웹에 연결한 상태임을 짐작케 하고 이런 경우는 대개 정상입니다.

127.0.0.1 은 loop back이라고 해서 그냥 쉽게 내 시스템 안에서 맴돈 것이라고 이해하면 편합니다.

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

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

그런데 위의 경우는 제가 여러 인터넷 창을 띄워 놓고,
그중 한 군데를 새로 고친 후 본 겁니다.

보면 알겠지만 도대체 무슨 소리인지 알 수 없는 분들이 많을 겁니다.
결국 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를 누르십시오.
                지정하지 않으면 현재 구성 정보를 한 번 표시합니다.
 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]        

그러면 위와 같이 자세히 라이브러리까지 보여 주어서 상당히 유용성이 클 거 같지만,
이 명령은 결과를 호출해 내는데

시간이 꽤 걸립니다.

그리고 위의 예에서
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가 표시됩니다.

그러면 Ctrl + Alt + Del 을 누르고 작업 관리자를 띄운 후 어떤 프로세스인지 확인이 가능합니다.

그러나 이때도 역시  Time_wait 상태( State )에 있는 프로세스는 그것이 무엇인지를 보여 주지 않고,
파일의 경로가 즉시 파악은 안 됩니다.


그런데 가만히 보면 위의 어느 경우든지 보게 되는 것은 정적인 상태입니다.
그래서 동적인 상태를 보려면 위의 명령을 되풀이 하든가 또는
위에 참고로 보여드린 netstat 옵션에서 알 수 있듯이 시간 옵션을 넣어야 합니다.

예를 들어

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

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

물론 이러한 특징은 잘 생각해 보면
netstat 자체에 존재한다는 것을 알 수 있을 겁니다.


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

다운로드 링크 : 링크가 더는 유효하지 않아 삭제했고 이 프로그램도 이제는 사용할 프로그램이 아닙니다 (2022년 11월 메모).

위 링크에서 다운로드 클릭 시 아래 링크로 이동하며 아래 링크 맨 아래 다운로드가 보입니다 .

링크가 더는 유효하지 않아 삭제했고 이 프로그램도 이제는 사용할 프로그램이 아닙니다 (2022년 11월 메모).

fport.zip
다운로드

위 압축 파일에서

fport.exe를 풀어낸 후,
명령 프롬프트상에서 fport.exe를 풀어놓은 폴더로 가서
실행하게 되면 PID와 프로세스명, 그리고 해당 프로세스의 경로를 보여 줍니다.

아래는 fport의 설명서입니다.
이 설명서는 인터넷침해사고대응지원센터에서 제공 중인 겁니다 .

20060320fport.pdf
다운로드

 
참고하실 사항.

저는 설명을 드리려고 자꾸만 인터넷 익스플로러를 실행시키고 연결된 상태를 보여 드리며 설명을 했습니다.

그런데 실제로 해킹 또는 악성코드로 인한 정보 유출이 염려되는 사람들은
사용자 명령으로는 아무 것도 실행하지 않은 상내에서 netstat 및 fport의 상태를 살피시기 바랍니다.

여기서 참조하실 말씀 한 마디만 더 드리면 예를 들어 방금전까지 인터넷하다 끄고 나서 금새 위 명령들 실행 시
뭔가가 (방금전까지 연결되었던 것들의 흔적)  쭈르르 뜹니다......
그런 경우라면 1분, 2분은 지난 후 위 명령들 실행하고 살펴보도록 하세요
 
오늘의 포스팅도 여러분에게 도움이 되면 좋겠고, 도움이 되리라고 봅니다.

그럼에도 제가 자꾸 무엇인가 불만족스러운 거처럼 글을 써 내려 왔습니다.
약점, 단점 하면서요. 왜일까요 ?


궁금하시면 제 3 편을 기대해 주세요
^ ^

반응형

댓글