레이블이 윈도우 7인 게시물을 표시합니다. 모든 게시물 표시
레이블이 윈도우 7인 게시물을 표시합니다. 모든 게시물 표시

2012년 4월 23일 월요일

윈도우7에서 UNIX 기반의 환경을 만들어보자.

윈도우에서 유닉스와 같은 환경을 이용하고자 할 경우 많이 쓰이는 것으로 Cygwin 이 있다. 하지만, 윈도우 7에서도 이와 같은 기능을 제공해 주는 것이 있다. 윈도우 기능을 살펴보다가 보았는데, 나름 편리한것 같아 공유해 본다. 제어판->프로그램 에 보면 "Windows 기능 사용/사용 안 함" 이 있다.


클릭해 보면 "UNIX 기반 응용 프로그램용 하위 시스템" 이라는 것이 보인다. 이것을 체크하고 확인을 누르면 윈도우 메뉴에 다음과 같이 생긴다.


그리고, Download Utilities for Subsystem for UNIX-based Applications 를 클릭한다. 아래 그림과 같이 화면이 나타나게 되고, 다운로드를 하면 된다.


해당 프로그램은 다음과 같은 컴포넌트로 구성되어 있다.

- Base Utilities
- SVR-5 Utilities
- Base SDK
- GNU SDK
- GNU Utilities
- UNIX Perl
- Visual Studio Debugger Add-in

다운로드 받은 프로그램을 실행하면 압축을 풀 위치를 지정하고, 다 풀리게 되면 셋업파일이 실행된다. 기본적으로는 다음의 경로에 설치되게 되고,

C:\Windows\SUA

설치할 컴포넌트를 설정할 수 있다. 기본으로 설정하거나 또는 사용자가 지정할 수 있다.
Base SDK 에는 헤더, 라이브러리, 유틸리티 들이 포함되어 있고, GNU Utilities 에는 vi,find,gzip,gunzip,diff,bc 와 같은 GNU 의 대표적인 유틸리티들이 포함되어 있다. 컴파일을 하고자 한다면 gcc,g++ 등이 포함되어 있는 GNU SDK 를 설치하여야 하고, Perl 을 선택하면 펄도 설치할 수 있다. 설치되는 총 용량은 대략 500MB 이내이다.

설치를 끝내고 해당 메뉴를 다시 보면, C Shell 과 Korn Shell 이 보인다. 둘 중 원하는 것을 선택하고 실행하면 여러분이 원하는 유닉스 콘솔 화면이 나타난다. 나의 경우 예전에는 C 쉘을 즐겨쓰다 Korn 쉘을 더 즐겨 썼는데 지금은 주요하게 쓰는 것이 Bash 쉘이다.

어찌되었든 기본적인 GNU 유틸리티 실행이 가능하니 유닉스 도구가 익숙한 분들에게는 유용한 기능이 아닐까 한다.



$ df -k
Filesystem           1k-blocks      Used Available Capacity Type  Mounted on
//HarddiskVolume1     58613120  55505604   3107516    95%   ntfs  /dev/fs/C
//HarddiskVolume4     61440560  60736444    704116    99%   ntfs  /dev/fs/D
//HarddiskVolume5     40957716  33589816   7367900    82%   ntfs  /dev/fs/E



$ gcc -v
Reading specs from /opt/gcc.3.3/lib/gcc-lib/i586-pc-interix3/3.3/specs
Configured with:  : (reconfigured)  : (reconfigured) /dev/fs/E/gnu2.intel/egcs.s
ource//configure --verbose --prefix=/opt/gcc.3.3 --disable-shared --with-stabs -
-enable-nls --with-local-prefix=/opt/gcc.3.3 --with-gnu-as --with-gnu-ld --enabl
e-targets=i586-pc-interix3 --enable-threads=posix
Thread model: posix
gcc version 3.3


패킷 데이터를 분석시에도 유용하게 사용될 수 있는 부분이 있을 것이다.

2010년 7월 15일 목요일

윈도우 비스타, 7 환경에서 많이 보이는 LLMNR 프로토콜 정체는?

이전 포스팅에서 살짝 언급된 LLMNR 프로토콜에 대해서 소개해 볼까 한다.

LLMNR(Link Local Multicast Name Resolution)은 DNS 패킷 포맷형태로 로컬 링크상에서 호스트들의 이름을 조회하는데 이용되는 프로토콜이다. 윈도우 비스트, 윈도우 7, 윈도우 서버 2008 에 기본으로 포함되어 있다.
그렇기 때문에 같은 서브넷 상에 이런 호스트가 존재하면 LLMNR 프로토콜이 많이 나타난다. 윈도우 7 출시 이후로는 로컬 네트워크 상에서 패킷 캡쳐시 LLMNR 형태가 많이 보이는데, 그 많큼 앞서 언급한 운영체제가 증가하고 있는 것으로도 간접적 추측이 가능하다.

LLMNR은 UDP 5355 포트를 사용하며 멀티캐스트 주소이다.

IPv4 - 224.0.0.252 이고 맥 주소는 01-00-5E-00-00-FC
IPv6 - FF02:0:0:0:0:0:1:3 (이 주소는 줄여서 -> FF02::1:3 표현이 가능하다)

아래 그림은 와이어샤크에서 패킷 캡쳐된 것으로 주소를 확인할 수 있다.

LLMNR 의 헤더 포맷은 아래와 같다. DNS 의 헤더 포맷과 크게 다르지는 않다.
QR 은 Query/Response 로 1비트 필드를 사용하며 설정되어 있을 경우 LLMNR 의 응답,설정되어 있지 않을 경우 LLMNR 쿼리이다. OPCODE 는 4비트로 쿼리 타입의 형태를 가리킨다.

                                      1  1  1  1  1  1
        0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                      ID                       |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |QR|   Opcode  | C|TC| T| Z| Z| Z| Z|   RCODE   |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                    QDCOUNT                    |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                    ANCOUNT                    |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                    NSCOUNT                    |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                    ARCOUNT                    |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

세부적인 사항은 RFC 4795 를 살펴보기 바란다. 아래 이미지는 IPv6 의 LLMNR 세부 정보로 목적지 포트가 5355 임을 알 수 있고, Questions 필드가 1로 Set 되어 있다.

그런데, 이제 LLMNR 은 알겠는데. 왜 이게 사용되어야 하는 것일까?
IPv4 호스트에서는 네트워크 상 주변에 있는 컴퓨터 이름을 Resolving 하기 위해서 NetBIOS 를 이용하여 네임쿼리를 요청하는 메시지를 브로드캐스팅한다. 이때 노드상에 요청한 쿼리에 해당하는 호스트가 있다면 네임쿼리를 응답하게 된다. 이런 형태가 일반적인 네트워크 상에서 많이 보는 형태이다. 그런데, NetBIOS 가 IPv4 환경에서만 동작한다. 그러므로 양 환경에서 모두 이용될 수 있는 LLMNR 프로토콜이 요구되었다. 얻을 수 있는 이점에 대해서는 다음 글을 참고해 보길 바란다.


실 환경에서는 LLMNR 로 인한 네트워크 트래픽 폭주를 경험했다는 사례를 들었다.(초당 2만개) IPv4,IPv6 로 함께 요청되다 보니 Request 되는게 NetBIOS 보다 많은 경우가 있다. 만약 악성코드에 감염되었는데, 이것이 Name Query 가 많은 형태라면 아무래도 영향을 미칠수도 있을 것이다. 어찌되었든 이것은 참고하시고, 만약 LLMNR 을 중지하기 위해서는 다음과 같은 방법을 이용하면 된다.

<윈도우7의 경우>
제어판->네트워크 및 인터넷 -> 네트워크 및 공유센터 -> 고급공유 설정 -> 홈 또는 회사 선택 후
네트워크 검색 끄기를 설정.


[참고]
1. RFC 4795
http://tools.ietf.org/html/rfc4795
2. The Cable Guy - Link-Local Multicast Name Resolution
http://technet.microsoft.com/en-us/library/bb878128.aspx

2010년 6월 22일 화요일

윈도우 7에서 텔넷(telnet) 기능 사용하기

무사히 컨퍼런스를 잘 마치고 돌아왔습니다. :-)  이제 다시 포스팅을 시작해야죠.
오늘은 어느 웹 사이트를 방문하다 분석이 필요해서 telnet 을 사용하려고 하는데, 시스템에 없어서
다른 분들도 이와 같은 상황에 많이 부딪히지 않을까 하여 패킷분석과는 조금 다른 얘기를 꺼냅니다.

회사에서의 작업은 윈도우 XP 를 사용하는데, 집 데스크탑은 윈도우 7을 쓰고 있지요. 그냥 거의 기본적으로만
사용을 하고 있습니다. 많은 작업을 안 하다 보니까요. 그런데 도스창을 열고 telnet 을 사용하려고 하니
왠걸 없다고 나오네요. 네트워크 분석 작업을 하다보면 telnet 같은 도구는 유용하게 많이 쓰이거든요.

찾다보니 윈도우7 에서는 아래와 같이 telnet 기능을 활성화 시킬 수 있습니다.
- 제어판 이동
- 프로그램 선택
- 프로그램 및 기능에서 윈도우 기능 사용/사용 안 함 선택
- 리스트에서 텔넷 클라이언트 선택후 확인

선택 화면은 아래와 같습니다. 윈도우7 정품 구매 사용자니 이 화면 정도는 올려도 되겠죠? :-)


윈도우 7 사용자분들은 참고하세요. 아 그리고 제가 웹 사이트를 분석하는 과정에서 설치했다고 했죠.
브라우저에서 악성 페이지라 나타나 직접 확인해 보는 과정에서 사용했답니다. 이 얘기는 조만간
다시 포스팅할께요. 이전에 소개한 압축된 웹 페이지와도 연관되는 내용입니다.

From Rigel