레이블이 패킷분석기인 게시물을 표시합니다. 모든 게시물 표시
레이블이 패킷분석기인 게시물을 표시합니다. 모든 게시물 표시

2013년 9월 27일 금요일

마이크로소프트 Message Analyzer 공식 릴리즈

마이크로소프트사의 Message Analyzer 가 그동안 베타로 테스트 되다가 드디어 공식적으로 다운로드센터에 등록되었습니다. 이제는 로그인 필요없이 편하게 바로 다운로드 받아 사용하실 수가 있습니다. Message Analyzer 는 새로운 형태의 메시지 분석기로서 트래픽 뿐만 아니라 시스템 메시지 또한 분석 대상입니다. 로그파일이나 Trace 파일을 분석을 할 수 있다는 의미입니다.

과거 Network Monitor 는 네트워크 트래픽 분석기로서의 역할만을 담당하지만 Message Analyzer 는 트래픽외 통합적으로 이벤트도 분석할수 있다는 부분이 다릅니다. 베타때부터 써보긴 했지만 와이어샤크만큼 사용 방법이 직관적이지는 않은것 같습니다.

그래도 새로운 분석기가 하나 더 생겼다는 것은 좋은일입니다. Message Analyzer 만의 장점이 있을테니 말이죠. 다운로드는 다음의 경로에서 할 수 있습니다.

http://www.microsoft.com/en-us/download/details.aspx?id=40308

앞으로 Message Analyzer 에 대한 기능도 소개해 보도록 하겠습니다.



[참고]
1. MS사의 새로운 네트워크 분석기, Message Analyzer
2. 마이크로소프트 네트워크 모니터의 프로세스별 통신 상태

2012년 11월 9일 금요일

MS사의 새로운 네트워크 분석기, Message Analyzer

오늘은 마이크로소프트사의 새로운 네트워크 분석기 Message Analyzer 를 소개하고자 한다. 이미 블로그에서 MS 에서 만든 Network Monitor 3.x 를 소개한 적이 있다. 이 것의 연속선상으로 네트워크 트래픽이라는 것에만 초점을 두지 않고 메시지 분석이라는 영역으로 넓혀 만들어진 것이 Message Analyzer 이다.

2012년9월에 퍼블릭하게 베타로 공개되었는데, 이제서야 공유한다. 9월 베타로 공개되었을때 공유해야지 하고 생각만 하고 있다가 필자의 게으름으로 이제서야 이 글을 쓰고 있다.

주요한 기능으로는,
- 프로토콜 메시지에 대한 검증과 파싱 기능
- 다양한 시스템과 엔드포인트 레벨의 메시지 캡쳐
- 그리드 형태의 요약 출력
- 메시지의 그룹핑
- 다양한 타입 로그를 브라우징 할 수 있는 기능 (.cap, etl, .txt)
- 페이로드의 자동 리어셈블리
- 텍스트로그의 임포트를 통해 키/값 형태로 파싱
- "추적 시나리오" 형태 기능 제공

무엇보다 직접 사용해 보는것이 기능을 익히는데 가장 빠른 방법이다. 다운로드는 다음의 경로에서 가능하다.

https://connect.microsoft.com/site216

다운로드 받기 위해서는 connect 에 가입해야 한다. 왼쪽 메뉴에 보면 Download 를 선택하면 다운로드 받을 수 있는 파일 리스트들이 나타난다. Network Monitor 도 보인다. 하지만 이번에 우리가 설치할 파일은 Message Analyzer 이므로 해당 파일을 다운로드 받아 설치하면 된다. 참고로 "Message Analyzer Intro PPT" 도 받아 보면 이해하는데 더욱 도움이 될것 같다.

처음 설치하고 실행하면 다음과 같은 화면을 볼 수 있다. 몇 가지가 있는데 아래는 인터페이스를 선택하고 패킷캡쳐를 시작하도록 설정할 수 있다. 와이어샤크에서 패킷 캡쳐 전 인터페이스 선택하고 필터를 적용하는 화면하고 비슷한 역활이다.



다음은 패킷 캡쳐 메인화면이다. 상단의 메뉴는 아이콘이 크게 배치되어 있고 심플하다. 생각보다 메뉴는 많이 보이지 않는다. 중간쯤 패킷 하나를 세부적으로 보았고 거기서 스택을 선택하면 프로토콜 스택별로 나타난다. 그리고 이어지는 다른 패킷도 그룹핑되어 함께 보인다.
왼쪽 하단에는 각 필드의 길이와 타입, 비트 정보가 나열되어 있고 오른쪽 하단에는 HEX 값과 ASCII 값을 볼 수 있다. 다른 탭이 하단에 또 있는데 조합이 가능한 데이터는 직접 보여준다. 예를들어 사진 이미지 같은 정보는 바로 확인이 가능하다.

처음 사용시에는 다소 어렵게 느껴지기도 하였다. 와이어샤크에 익숙해져 있는 면이 있을수도 있겠지만, 정보형태가 개발자나 패킷을 좀더 세부적으로 분석하는 사용자들에게 어울릿듯한 느낌을 받았다.


눈에 띄는 기능으로는 좌측화면에서 오른쪽을 클릭하면 창을 하나 더 만들 수 있는데 아래 그림은 프로토콜 대쉬보드를 만든것이다. 프로토콜별 막대 그래프와 시간대별 사용량  그리고 원형 그래프 프로토콜 요약 정보도 보인다. 이거 하나는 깔끔해 보인다. 와이어샤크의 이쁘지 않은 그래프 정보에 비하면 이건 아주 깔끔해 보인다.


마지막으로 다른 창을 만들어 보았다. 시퀀스 하게 매치되는 뷰 형태로 보여주는 것으로, 앞서 설명한 기능중에 하나로 "추적 시나리오" 가 여기에 해당한다. 사전에 정의되어 있는 시나리오를 선택하여 동작시킨 것으로 연관된 정보가 나열된다.


지금은 주요 기능정도만 여러분들에게 설명을 드렸다. 아직 깊게 살펴보지 않아, 어떤 유용한 기능이 더 있는지는 살펴보아야 겠지만, 추적 시나리오 같은 기능은 유용하지 않을까 싶기도 한다.

사실 어떤 도구든 누가 사용하느냐에 따라 도구의 활용가치가 크게 달라진다. 나에겐 보잘것 없어 보이는 도구도 다른 누군가에는 아주 유용하기도 하다. 여러분이 사용하는 도구를 제대로 이해하고 활용하려면 살짝 드러나는 겉 기능만 이용할 것이 아니라 충분히 그 기능을 이해해야 하고 응용할 수 있어야 한다.

앞으로 Message Analyzer 의 발전을 기대해 본다.

/Rigel

[참고]
1. 마이크로소프트 네트워크 모니터의 프로세스별 통신 상태

2012년 6월 27일 수요일

와이어샤크 1.8.0 버전 릴리즈


와이어샤크 1.8.0 이 6월21일에 공식 릴리즈 되었다. 미처 나온지 모르고 있다가 금일에야 릴리즈 소식을 공유한다.
1.7 개발 버전을 살짝 들여다 보았던게 올해 초 이었고, 안정버전이 1.6 버전이었다. 이번에 바로 1.8 Stable 버전으로 릴리즈 되었는데, 새로운 기능 및 업데이트 내용은 다음과 같다:

- 동시에 여러개의 인터페이스에서 캡쳐를 할 수 있다는 점이 이번 버전의 가장 큰 부분이다. (물론 개발 버전에서 지원되고 있음을 일전에 소개한 적이 있다)
- 패킷파일 저장방식이 기본적으로 pcap-ng 로 변경되었다. 조만간 pcap-ng 에 대해 소개하도록 하겠다.
- 패킷 커멘트를 달 수 있는 기능이 추가되었다. 이 기능은 패킷데이터를 분석하고 누군가와 공유하거나 또는 분석한 내용을 기록해 두기에 유용하다. 커멘트를 추가하면 해당 패킷에 커멘트가 달려있다고 표시된다. 물론, 눈에 띄기 쉽게 색깔로 표시해서 말이다. (아쉽게도 한글은 표시되지 않는다)
- IEEE 802.11, IPSec, ISAKMP 의 해독 키 관리가 더욱 쉬워졌다.
- "Save As" 기능이 좀더 세분화 되었는데, Save As 는 단순히 다른이름으로 저장할 수 있도록 하고, "Export Specified Packets" 를 통해 패킷 저장시 좀더 많은 제어를 할 수 있는 기능이 추가되었다. 예를들어, 패킷 몇번 부터 몇 번까지 저장한다든지 또는 선택된 패킷만 저장하는 기능이다. 기존에 존재하는 기능들이 저장방식에서 기능상 분리가 되었다고 보면 된다.
- Tshark 의 커맨드 라인 옵션의 변화. Undocumented 였던 -P 옵션이 -2 옵션으로 Two-pass 분석을 수행한다고 한다.
- GeoIP IPv6 데이터베이스 지원
- 이외 상당히 많은 프로토콜을 새롭게 지원하거나 업데이트 되었다.

세부적인 내용은 다음 릴리즈 노트를 통해 확인할 수 있다:
http://www.wireshark.org/docs/relnotes/wireshark-1.8.0.html

2012년 1월 12일 목요일

와이어샤크 1.6.5, 1.4.11 버전 릴리즈

와이어샤크가 버전업 되었다. 최신 버전은 1.6.5 이며, 몇 가지 취약점이 수정되었다.
그리고 알려진 버그들도 해결되었고, 몇 가지를 살펴보면 다음과 같다.

- Export HTTP Objects 에서 모두 저장하기 할때 와이어샤크가 종료되는 문제점
- 최근 파일이 없을 경우 Crash 되는 문제
- 여러 프로토콜 해석기에서 발생된 메모리 누수
- 라우팅 헤더가 존재할 경우 IPv4 UDP/TCP 체크섬이 올바르지 않은 문제점 등이 있다.

새로운 기능 또는 프로토콜은 없으며, 기존 프로토콜 지원이 일부 업데이트 되었다.
1.4.X 의 최신버전은 1.4.11 이며, 다운로드는 다음 주소에서 가능하다.

http://www.wireshark.org/download.html

2011년 11월 4일 금요일

와이어샤크 1.6.3, 1.4.10 버전 릴리즈


와이어샤크가 버전업 되었다. 1.6.3 버전과 1.4.10 두 버전이 릴리즈 되었으며, 이번 버전에는 보안 취약점 패치 및 알려진 버그들이 수정되었다.

CSN.1 을 처리하는 과정에서 초기화 되지 않은 변수에 의해 크래쉬가 발생될 수 있다. 또한 레드햇 보안 팀에서 발견한 Infiniband 의 널 포인터 참조, ERF 파일을 읽을때 존재하는 버퍼오버플로우 취약점등이 있다.
이외 다수의 버그가 픽스되었으며, 새로 추가된 기능 및 프로토콜은 없다.

기능상에는 큰 변화가 없으나, 알려진 버그 및 취약점으로부터 안전하기 위해서는
최신 버전을 사용할 것을 권장한다.

세부적인 릴리즈 내용은 다음 경로에서 확인할 수 있다.

http://www.wireshark.org/docs/relnotes/wireshark-1.6.3.html
http://www.wireshark.org/docs/relnotes/wireshark-1.4.10.html

파일은 다음 URL 에서 할 수 있다.

http://www.wireshark.org/download.html

2011년 9월 23일 금요일

네트워크 포렌직 NetworkMiner 1.1 업데이트


일전에 몇번 소개하였던 네트워크 포렌직 도구인 Network Miner 가 1.1 로 업데이트 되었다. 이번 버전에 추가된 기능은 파라미터 추출 기능이 추가되었으며, 여러 PCAP 파일을 NetworkMiner 화면으로 드래그 하여 집어 넣을 수 있다. 또한 SMB/CIFS 와 넷 바이오스 기능이 향상되었다. 이외 PPP 프레임 지원 기능이 추가되었고, PCAP 파일을 로드할때의 안정성이 높아졌다.


NetworkMiner 사용방법은 이전 블로그 글을 참고하면 된다.

네트워크 포렌직 분석 도구(NetworkMiner)를 이용한 패킷파일 데이터 분석하기

P.S 참고로, 9월 초에 와이어샤크도 업그레이드되어 현재 버전은 1.6.2 이다.

2011년 8월 9일 화요일

Ethereal 과 궁합이 맞는 오픈소스 패킷분석기 Packetzyer

오픈소스 패킷 분석 도구인 Packetyzer 를 소개한다. 사실 이 도구는 더 이상 업데이트가 되고 있지 않지만, 나름 깔끔한 인터페이스로 어느정도 사용하기에는 충분한것 같다. 내가 지금까지 많은 패킷 도구들을 소개해 오고 있지만, 아직도 소개할 패킷도구들이 너무나 많이 남아 있다. 자기한테 적당한 도구를 선택하는 것은 여러분들의 몫이므로, 이런것이 있다는 것만 알아두자.

일단 현재 5.0 버전이며, 이더리얼 0.99.00 과 winpcap 3.1 이 포함되어 있다. 이더리얼의 기능을 이용해 구현된 것이라 볼 수 있다. 현재 와이어샤크로 불리기 이전 버전인 이더리얼 이므로 기능적으로는 와이어샤크에 비하면 못 할 수 잇겠으나 처음 패킷 분석을 접하는 윈도우 사용자에게는 쉬운 인터페이스와 윈도우적인 느낌으로 더 쉽게 다가설 수 있지 않나 싶다.
(참고로, 현재 이더리얼은 와이어샤크로 계속 개발되고 있으며, Ethereal 자체는 개발이 중지된 상태이다)

프로그램은 다음 경로에서 다운로드 받아 설치하면 된다. 윈도우 기반이라 따로 설치하는데 어려움은 없다.

http://www.gotomanage.com/open_source_tools/packetyzer_thankyou

실행하고, 캡쳐를 시작하면 다음과 같은 형태의 화면을 볼 수 있다:


처음 사용하는 사용자라도 몇번 클릭해 보면 어렵지 않게 사용할 수 있으며, 과거 이더리얼이 가지고 있던 기능들을 포함하고 있다. 출력 필터, 캡쳐 필터, 다양한 프로토콜 분석 기능등이 이에 해당한다. 이 프로그램이 또 다른 특징은 패킷 수정/보내기 기능이 있다. Session 메뉴에 Send Packet... 기능이 있는데, 각 헤더를 수정하여, 전송하는 기능을 가지고 있다.

윈도우 기반의 패킷분석기에 관심 있다면, Packetyzer 소스를 살펴보는 것도 도움이 될 것이다.


[참고]
1. Packetyer
http://www.gotomanage.com/open_source_tools/packetyzer
2. Packetyer 소스파일 받을 수 있는 곳
http://sourceforge.net/projects/packetyzer/

2011년 7월 12일 화요일

Tcpdump 의 출력내용을 내가 원하는 형태로 바꾸어 보자.

예전에 검색하다 Tcpdump 필터를 하나 발견한 것이 있다. AWK 로 제작한 간단한 스크립트로 Tcpdump 의 출력내용을 awk 로 파싱하여 좀더 보기 쉽게 출력한 것이다. 다음은 일반적으로 tcpdump 를 통해 출력한 내용의 일부분이다.

# tcpdump -i eth0 -s1550 -x


09:26:19.571231 IP 202.131.29.71.www > 192.168.15.11.60478: . 1:1461(1460) ack 658 win 6570
0x0000:  4500 05dc 89d8 4000 3406 ffc5 ca83 1d47
0x0010:  c0a8 0f0b 0050 ec3e b64f e2ba e85c e4e9
0x0020:  5010 19aa 1b94 0000 4854 5450 2f31 2e31
0x0030:  2032 3030 204f 4b0d 0a44 6174 653a 204d
0x0040:  6f6e 2c20 3131 204a 756c 2032 3031 3120
0x0050:  3133 3a32 363a 3137 2047 4d54 0d0a 5365
0x0060:  7276 6572 3a20 4170 6163 6865 0d0a 4c61


물론 -X 옵션과 같은 몇 가지를 조합하면 ASCII 값도 출력시키면서 조금은 더 보기 좋게 볼 수 있다. 여기서 소개하는 것을 이용하면 아래 화면과 같은 형태로 출력된다.


상단에 헤더정보가 요약되어 보이고 다음에 스트링 문자열을 보여준다. 사용방법은 아래 경로에서 스크립트를 다운로드 받고,

# tcpdump -i eth0 -l -s 65535 -x | fil

과 같이 사용하면 된다. 그냥 간단히 덤프하는 출력 내용을 fil 로 전달하는 것 뿐이다.

http://www.ishiboo.com/~danny/Projects/tcpdump.awkfilter/fil

요새는 워낙 좋은 도구들이 많이 나와있다보니 이런 필터가 큰 의미가 있을까 하는 분들도 있을 것이다. 나또한 이 필터의 직접 적인 출력 내용보다도 이런 방식으로 활용할 수 있다는 것을 여러분들에게 소개해 주고 싶은 것이다. Awk 로 만들어져 있지만, 이외에도 다양한 스크립트를 이용할 수 있다.  업무에 따라, 필요로 하는 정보가 조금씩 달라진다. 그럴때 나에게 맞는 도구를 간단히 만들어 응용해 보면, 더욱 효과적인 패킷 분석이 가능해 진다.  꼭, 어렵게 생각할 필요는 없다. 기존에 나와있는 도구를 잘 응용하면 여러분이 원하는 도구로 쉽게 만들어 버릴 수 있다는 사실을 잊지말자!

P.S 처음 받아서 실행해 보면, 출력이 제대로 되지 않아 살펴보았다. fil 필터를 열어보면 다음과 같은 시작부분에서 startip 를 0 에서 1로 변경하였다. 그냥 실행시 제대로 정보가 출력되지 않아, 프로토콜 번호를 찍어보니 엉뚱한 것이 찍히고 있었고, 코드를 확인결과 startip 만 살짝 바꾸면 위와 같이 출력이 된다.


BEGIN {
        BIGENDIAN = 0
        margin="   "
        startip=1
        FS = " "
}

2011년 6월 9일 목요일

와이어샤크 1.6.0 버전 공개 - 1.4.X 사용자 분들은 업데이트를 ~

와이어샤크 1.6.0 이 릴리즈 되었다. 그간 보았던 1.5.X 버전은 사라지고, 1.4.X 의 Stable 버전에서 1.6.X Stable 버전이 릴리즈 된 것이다. 이번 버전은 1.6.X 버전대의 첫 번째 릴리즈 이며, 앞으로 Stable 버전인 1.4 버전대를 대체하게 될 것이다.

일단 이번 버전에서는 그간 알려진 버그들이 픽스 되었고, 1.4 와 달리 다음과 같은 새로운 기능 추가 및 변화가 있다.

- 큰 파일(2기가 이상) 지원 기능이 향상
- text2pcap 과 같이 와이어샤크와 Tshark 에서 텍스트 덤프파일 Import
- SSL 세션 키 Export
- 패킷 리스트에서 컬럼 숨기기
- SMB 오브젝트 Export
- dftest, randpkt 맨 페이지 추가 (randpkt 는 패킷 인사이드에 소개되었던 적이 있다)
- 패킷 길이 표시가 기본 컬럼으로 설정
- 그래프 기본 저장 포맷이 PNG 방식으로 변경
- 이외 기타 등등

프로토콜도 새롭게 몇가지 추가 지원하고 있다.

[윈도우 32비트]
http://wiresharkdownloads.riverbed.com/wireshark/win32/wireshark-win32-1.6.0.exe
[윈도우 64 비트]
http://wiresharkdownloads.riverbed.com/wireshark/win64/wireshark-win64-1.6.0.exe

릴리즈 된 세부 정보는 다음 문서를 참고한다.

http://www.wireshark.org/docs/relnotes/wireshark-1.6.0.html

현재 개발버전은 1.6.0rc2 버전이다.

앞으로 패킷인사이드에서도 와이어샤크 기능은 1.6.X 버전에 맞춰서 소개될 것이다. 지금 이 포스팅을 보고 있는 사용자라면, 지금 1.6.0 으로 업데이트 하여 안정된 새로운 버전의 기능을 느껴보기 바란다. : )

2011년 5월 24일 화요일

PCAP 파일에서 TCP 스트림 정보를 쉽게 다루기

패킷파일에서 스트림 정보를 좀더 쉽게 볼 수 있는 도구가 있다. 'streams' 라는 것으로 pcap 파일에서 TCP 스트림 정보를 브라우징 해서 볼 수 있도록 도와주는 것이다. 각 세션 정보를 Interactive 하게 볼 수 있으며, pipe 를 통해 스트림 정보를 외부로 호출할 수 도 있다.
일단, 다음의 경로에서 다운로드 받을 수 있다.

http://src.carnivore.it/streams/

파일을 받아 압축을 풀고 컴파일을 해야 하는데, 약간은 불편하게 되어 있다. configure 파일을 생성하고 해야 하는데, 에러가 발생하여 바로 src/ 안에서 직접 컴파일을 하였다.

컴파일을 하기 위해서는 Libpcap 이 당연히 설치되어 있어야 하고, Interactive 하게 커맨드 사용이 가능하여야 해서 readline 라이브러리도 필요하다. 이 2가지만 갖춰져 있으면 다음과 같이 컴파일을 하면 된다. (에러가 발생하는데, 소스파일에 VERSION 정보가 define 되어 있지 않아서 발생한다. 소스코드에 define 으로 VERSION 정보만 입력해 준다)

gcc cmd.c hash.c sig.c streams.c strm.c util.c -I/usr/include/readline -lpcap -lreadline

그러면 a.out 파일이 생성된다. -o 옵션을 이용해 바로 streams 로 바이너리를 생성해도 된다.
컴파일된 파일을 실행해 보면 아래 화면과 같이 볼 수 있다.


PCAP 파일을 테스트해 보기 위해 43개의 패킷이 들어있는 임의의 패킷파일을 선정하였다. 패킷 파일의 정보를 보면 아래와 같다. (와이어샤크에서 받을 수 있는 샘플 패킷 데이터를 이용하였는데, 덤프된 시간이 2004 년이다^^ )


File type:           Wireshark/tcpdump/... - libpcap
File encapsulation:  Ethernet
Number of packets:   43
File size:           25803 bytes
Data size:           25091 bytes
Capture duration:    30 seconds
Start time:          Thu May 13 19:17:07 2004
End time:            Thu May 13 19:17:37 2004
Data byte rate:      825.53 bytes/sec
Data bit rate:       6604.26 bits/sec
Average packet size: 583.51 bytes
Average packet rate: 1.41 packets/sec


일단 실행된 상태에서 패킷을 로드하기 위해 analyze 명령어를 사용한다. http.cap 을 로드하였더니 2개의 스트림을 볼 수 있다. list 명령어는 스트림된 화면을 출력한다. 전체 패킷이 42개 였는데, 스트림된 형태로 요약해 보면 아래와 같이 2개라는 것이다. 하나가 479 바이트 나머지는 18,364 바이트다.

streams>
streams> analyze ./http.cap
file processed, 2 streams (2 non-empty and complete).
streams> list
    0:       0.000000      30.063228  145.254.160.237:3372 > 65.208.228.223:80 (479 bytes)
    1:       0.911310      17.905747  65.208.228.223:80 > 145.254.160.237:3372 (18364 bytes)
streams>

패킷내용을 살펴보기 위해 ext 로 외부 기능을 호출해 본다. hd 를 호출하면 되는데 hd 가 무엇인가 해서 util.c 를 보았더니 HEX DUMP 형태로 출력해 주는 기능을 가진 것이다.


void hd(const u_char *data, size_t len) {
        register int i, j;

        if (!data || !len) return;

        for (i = 0; i < len; i += 0x10) {
                printf("0x%08x  ", i);

                for (j = 0; j < 0x10 && i+j<len; j++) {
                        if (j == 0x8) putchar(' ');
                        printf("%02x ", data[i+j]);
                }

                printf("%-*c|", (3 * (0x10 - j)) + (j > 0x8 ? 1 : 2), ' ');

                for (j = 0; j < 0x10 && i + j < len; j++)
                        putchar(isprint(data[i+j]) ? data[i+j] : '.');

                puts("|");
        }
        putchar('\n');

        return;
}


호출하면 pipe 로 그 정보를 넘기는데 0 번째 정보를 보고자 하면 pipe 0 을 한다.

streams> ext hd
streams> pipe 0
479 bytes written (479 in total)
00000000  47 45 54 20 2f 64 6f 77  6e 6c 6f 61 64 2e 68 74  |GET /download.ht|
00000010  6d 6c 20 48 54 54 50 2f  31 2e 31 0d 0a 48 6f 73  |ml HTTP/1.1..Hos|
00000020  74 3a 20 77 77 77 2e 65  74 68 65 72 65 61 6c 2e  |t: www.ethereal.|
00000030  63 6f 6d 0d 0a 55 73 65  72 2d 41 67 65 6e 74 3a  |com..User-Agent:|
00000040  20 4d 6f 7a 69 6c 6c 61  2f 35 2e 30 20 28 57 69  | Mozilla/5.0 (Wi|
00000050  6e 64 6f 77 73 3b 20 55  3b 20 57 69 6e 64 6f 77  |ndows; U; Window|
00000060  73 20 4e 54 20 35 2e 31  3b 20 65 6e 2d 55 53 3b  |s NT 5.1; en-US;|
00000070  20 72 76 3a 31 2e 36 29  20 47 65 63 6b 6f 2f 32  | rv:1.6) Gecko/2|
00000080  30 30 34 30 31 31 33 0d  0a 41 63 63 65 70 74 3a  |0040113..Accept:|
00000090  20 74 65 78 74 2f 78 6d  6c 2c 61 70 70 6c 69 63  | text/xml,applic|
000000a0  61 74 69 6f 6e 2f 78 6d  6c 2c 61 70 70 6c 69 63  |ation/xml,applic|
000000b0  61 74 69 6f 6e 2f 78 68  74 6d 6c 2b 78 6d 6c 2c  |ation/xhtml+xml,|

그러면 0번째의 정보를 볼 수 있는 GET 방식으로 다운로드 하는 헤더 정보를 볼 수 있다.
그리고 이런 정보를 파일로 저장하기 위해서는 outfile 로 저장할 파일 이름을 지정해 주고 , dump 로 저장할 스트림 번호를 지정하면 된다.

streams> outfile ./http.bin
streams> list
    0:       0.000000      30.063228  145.254.160.237:3372 > 65.208.228.223:80 (479 bytes)
    1:       0.911310      17.905747  65.208.228.223:80 > 145.254.160.237:3372 (18364 bytes)
streams> dump 1
18364 bytes written to ./http.bin

저장된 파일을 보면 18,364 바이트를 확인할 수 있으며, 해당 텍스트 내용이 기록되어 있다.


$ ls -l http.bin
-rw-r--r-- 1 rigel rigel 18364 2011-05-20 23:42 http.bin
$ head http.bin
HTTP/1.1 200 OK
Date: Thu, 13 May 2004 10:17:12 GMT
Server: Apache
Last-Modified: Tue, 20 Apr 2004 13:17:00 GMT
ETag: "9a01a-4696-7e354b00"
Accept-Ranges: bytes
Content-Length: 18070
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=ISO-8859-1


다시 streams 로 돌아와서 필터정보를 사용해 보자. match 라는 명령어를 이용하면 되고, 아래 예는 GET 으로 필터를 건 것이다.

streams> match GET
applying new match expression...
streams> list
    0:       0.000000      30.063228  145.254.160.237:3372 > 65.208.228.223:80 (479 bytes)
streams>

그리고 status 정보는 현재의 상태 정보를 보여준다.

streams> status

  trace file:           ./http.cap
  bpf expression:       tcp
  match expression:     GET
  stream filter:        off (list all streams)
  time display mode:    relative
  external program:     hd
  output file:          ./http.bin

사용방법은 간단하며, 스트림화된 정보를 다루는 경우 유용하게 사용될 수 있다. 패킷파일을 다루는 도구는 다양하며, 업무 및 기타 사용목적에 따라서 필요한 도구는 달라진다. 앞으로도 다양한 도구를 소개할 예정이며, 여러분들에게 필요한 도구를 선택해 사용하면 된다.

지금 당장 이런것이 필요없더라도, 이런것이 있구나 하는 정도 알아두고 필요할때 패킷인사이드에서 검색해서 사용해 보자.

2011년 4월 18일 월요일

와이어샤크 1.4.5, 1.5.1 버전 릴리즈

와이어샤크 1.4.X, 개발버전 1.5.X 그리고 1.2.X 버전까지 업그레이드가 되었다. 릴리즈 된지는 몇일 되었는데, 다른 일로 바쁘다 보니 지금에야 공유하게 되었다. 일단 보안 취약점이 보고되어 Fix 가 되었다. 이번 취약점은 DECT, NFS 그리고 X.509 의 프로토콜 파서에서 발생한 것으로 DECT 는 버퍼오버플로우가 가능하여 원격에서 공격코드 실행까지 가능하다. 보안취약점외 알려진 몇 가지 기능들이 수정되었다. 1.4.X 에서는 새로운 기능은 없으며, HTTP, LDAP, MySQL, NFS, sFlow, SSL, TCP 프로토콜이 업데이트 되었다.

1.5.X 는 1.4.X 보다 많은 기능이 업데이트 되었는데, TShark 에서 text2pcap 과 유사하게 텍스트 덤프파일을 Import 할 수 있으며, SMB 오브젝트 Export 등이 가능하다. 더불어, 프로토콜도 많이 업데이트 되었다.

윈도우 32 비트 버전은 다음 링크를 통해서 다운로드가 가능하다.

와이어샤크 1.4.5
와이어샤크 1.2.16
와이어샤크 1.5.1

항상 발전하는 와이어샤크 고마워요~

2011년 4월 14일 목요일

윈도우 패킷스니퍼 WinDump 에 컬러 Hightlighting 기능을 입혀보자

커맨드라인의 패킷덤프 프로그램으로는 tcpdump 를 많이 사용하는 편이다. 윈도우에는 이와 유사한 Windump 라는 것이 있다. tcpdump 와 같은 형태로 윈도우에서 실행가능한 커맨드라인의 패킷 스니퍼이다. 와이어샤크와 같은 GUI 에 익숙해져 있다면, 커맨드라인의 출력되는 화면은 보잘것 없어 보인다.

어느 블로그에 Windump 와 관련한 괜챦은 스크립트 소개를 보았다. 윈덤프의 출력에 컬러를 입혀 보여주는 것으로 그나마 컬러를 입혀서 보면 보기에는 더욱 좋을 것이다. 방법은 윈도우의 파워셀(PowerShell)을 이용하는 것으로 이것이 설치되어 있어야 한다. 윈도우 7 의 경우는 기본적으로 포함되어 있고 그렇지 않은 경우라면 사이트에서 다운받아 설치하면 된다.

일단 파워쉘 스크립트인 Sniff.ps1 을 다음의 경로에서 다운로드 받는다:

http://blogs.sans.org/windows-security/files/Sniff.zip

압축을 풀고 실행해 보자

.\Sniff.ps1

이걸 그냥 도스창에서 실행하면 실행되지가 않는다. 파워쉘로 실행되어야 하므로 도스창에서 powershell 이라고 치면 파워쉘로 들어간다. 나의 경우는 파워쉘을 관리자 권한으로 실행시켰다. 실행 정책 때문에 관리자 권한이 필요하기 때문이다.

일단 아래와 같이 실행해 보니 권한이 부족하다고 나온다.

PS C:\PlayGround\Sniff> .\Sniff.ps1
이 시스템에서 스크립트를 실행할 수 없으므로 C:\PlayGround\Sniff\Sniff.ps1 파일을 로드할 수 없습니다. 자세한 내용은 "get
-help about_signing"을 참조하십시오.
위치 줄:1 문자:12
+ .\Sniff.ps1 <<<<
    + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException

현재 실행 정책을 살펴보니 '제한적' 이다.

PS C:\PlayGround\Sniff> Get-ExecutionPolicy
Restricted

그래서 임시적으로 실행하기 위해 아래와 같이 제한을 풀었다.

PS C:\PlayGround\Sniff> Set-ExecutionPolicy unrestricted

실행 규칙 변경
실행 정책은 신뢰하지 않는 스크립트로부터 사용자를 보호해 줍니다. 실행 정책을 변경하면 about_Execution_Policies 도움말
항목에 설명된 보안 위험에 노출될 수 있습니다. 실행 정책을 변경하시겠습니까?
[Y] 예(Y)  [N] 아니요(N)  [S] 일시 중단(S)  [?] 도움말 (기본값은 "Y"임): y

실행정책을 변경한 다음에는 Sniff.ps1 을 정상적으로 실행할 수 있게 된다.
사용할 네트워크 어뎁터를 묻는 명령을 실행할 경우는 아래와 같이 실행하면, 네트워크 카드를 선택한 후 패킷 덤프를 할 수 있다.

PS C:\PlayGround\Sniff> .\Sniff.ps1 -ask

1.\Device\NPF_{8B751B[삭제]-95BF-F2FB6F703EE6} (3Com EtherLink PCI)
2.\Device\NPF_{E849DA[삭제]-BD12-157CFC55BD8B} (NVIDIA nForce MCP Networking Adapter
3.\Device\NPF_{DE78577C-[삭제]9B-E46B98062A8F} (Sun)

Which adapter number? :

* 참고로, Windump.exe 가 설치되어 있어야 한다. Windump 는 윈도우 패스에 잡혀 있으면 실행하는데 전혀 문제 없다. Windump 는 아래 참고 URL 에서 구할 수 있다.

다음 이미지는 아래와 같은 명령을 통해 실행한 화면으로 tcp 트래픽 중 80 번 포트를 덤프하도록 지정한 것이다.

PS C:\PlayGround\Sniff> .\Sniff.ps1 "tcp and port 80" -ask



[참고]
1. 윈덤프 컬러 사용 관련 블로그 글
http://blogs.sans.org/windows-security/2009/10/22/windump-color-highlighting/
2. 윈덤프 다운로드
http://www.winpcap.org/windump/
3. 마이크로소프트 윈도우 파워쉘
http://technet.microsoft.com/en-us/powershell

2011년 3월 28일 월요일

오래간만에 실행해본 와이어샤크 리눅스 버전

리눅스 환경에서는 와이어샤크 GUI 버전을 크게 사용할 일이 없었다. 거의 모든 작업이 터미널 기반으로 이뤄지다 보니, tshark 만 주로 이용하였을 뿐이었다. 그러다 최근 실행해 본 GUI 화면이다. 1.4 버전은 아니고 1.2 버전이다. 컴파일을 새로 하려니 필요한 것들도 많고 하다 보니, 맘 편히 그냥 패키지로 설치하여서 버전이 조금 낮다.

눈에 들어오는건, 윈도우 환경보다 더 직관적으로 잘 보이는것 같다. 별 차이는 없는데, 그냥 느낌이 그렇다 :-)


P.S IP 주소는 tcpdpriv 로 랜덤한 IP 로 변경된 것이다. tcpdpriv 가 궁금하다면 패킷인사이드에서 검색해 보면 된다.

2011년 3월 2일 수요일

와이어샤크 1.4.4 , 1.2.15 버전 릴리즈

와이어샤크 최신버전인 1.4.4 와 1.2.15 가 릴리즈 되었다.

1.4.4 와 1.2.15 에서 몇가지 보고된 취약점이 Fix 되었다.  조작된 pcap-ng 파일을 읽는
과정에서 발생되는 문제점과 pcap-ng 의 큰 패킷 길이등에 의한 취약점이다.
이외 몇 가지 메모리 관련 버그 및 기타 사항등이 업데이트 되었으며,
세부적인 내용은 다음 릴리즈 노트를 참고하면 된다.

[와이어샤크 1.4.4 릴리즈 노트]
http://www.wireshark.org/docs/relnotes/wireshark-1.4.4.html
[와이어샤크 1.2.15 릴리즈 노트]
http://www.wireshark.org/docs/relnotes/wireshark-1.2.15.html

다운로드는 아래 경로에서 할 수 있다.

http://www.wireshark.org/download.html

2010년 10월 20일 수요일

강력한 패킷 조작 프로그램 Scapy 를 소개한다 - 첫번째

Scapy

지금까지 패킷분석과 관련한 많은 도구들을 언급하였는데, 이 도구를 미처 소개하지 못했다.
강력한 기능과 프로그램적인 면에서도 뛰어난 도구인데말이다. 필자가 오늘 소개하고자 하는 도구는
Scapy 라는 것이다. Scapy 는 인터렉티브하게 패킷을 조작할 수 있는 강력한 기능을 제공하며,
수 많은 프로토콜의 디코딩 기능과 수정된 패킷을 전송할 수 있는 기능등을 포함하고 있다.

이 도구의 큰 장점은 다양한 기능을 수행할 수 있는 것인데, 우리가 흔히 스캐닝을 하거나, 패킷덤프를
하거나, 원격 시스템의 Alive 유무를 점검 또는 공격 패킷등을 만들고자 할때 사용하는 도구들이
다 달라진다. 예를 들면, hping, nmap, arpsoof, tcpdump, tshark, p0f 등의 여러 도구의 기능들 말이다
하지만 Scapy 는 이 도구 하나로 가능하다. 너무 강력한 도구인양 소개한 것일까?

사용용도에 따라 달라지겠지만 무척이나 편리한 기능을 갖고 있는 것은 사실이다. 다만 사용하는데 있어서는
일반적인 도구에 비해서는 사용방법이 처음에는 힘들 수도 있다. Scapy 는 파이썬을 기반으로
작성되어 있는데, 사용형태가 파이썬에서 코드를 사용하는 것과 같이 사용할 수 있으므로
파이썬에 익숙해져 있는 사용자라면 더 없이 편할 것이다. 또한, Scapy 모듈을 이용하여,
파이썬에서 패킷을 핸들링 하는 프로그램을 작성한다면 간단하게 그 기능을 이용할 수 있어
개발자 관점에서도 유용하다.

뛰어나다는 설명보다도 일단 직접 경험해 보는 것이 빠르다.  바로 설치해 보고 각 기능을
사용해 보면 앞서 얘기한 것들이 이해가 될 것이다.

1. 설치

Scapy 2.x 이상의 버전에서는 파이썬 2.5 이상이 필요하다. 그리고 libpcap, libdnet 이 필요하다.
보통 많은 경우에는 이런것들이 이미 설치되어 있으므로 사용하는데 큰 문제는 없을 것이다.

다음의 경로에서 파일을 다운로드 받을 수 있다:


$ unzip scapy-latest.zip
$ cd scapy-2.*
$ sudo python setup.py install

하는 것으로 쉽게 설치가 된다. 파이썬에 익숙한 사용자라면 어렵지 않을 것이다. 또는,
각 시스템에서 제공하는 패키지가 있다면 그것을 이용해도 좋다.

# apt-get install scapy

* 참고로 윈도우 기반에서 사용하고자 한다면, 다음의 문서를 참고하여 실행해 보길 바란다.
http://www.secdev.org/projects/scapy/doc/installation.html#platform-specific-instructions

2. 간단한 사용 예

실행하게 되면 다음과 같은 화면을 볼 수 있다.

# scapy
WARNING: No route found for IPv6 destination :: (no default route?)
Welcome to Scapy (2.1.0)
>>>

(설치되어 있는 모듈 및 환경에 따라, 경고 메시지가 뜰 수 있는데 무시하고 사용 가능하다.단, 해당 모듈 기능을 사용하지 않는 한)

몇 가지 간단한 기능을 살펴보자!

>>> ls()
ARP        : ARP
BOOTP      : BOOTP
CookedLinux : cooked linux
DHCP       : DHCP options
DNS        : DNS
DNSQR      : DNS Question Record
DNSRR      : DNS Resource Record
....
현재 지원하는 레이어 형태를 볼 수 있다. 쉽게 보면 프로토콜 이다.

다음은 존재하는 PCAP 파일을 오픈하는 것이다. 오픈할 파일을 " 없이 사용하는 경우는 다른 형태로 이해한다.
오픈 후에는 파싱되어 메모리 상에 다 들어가 있으므로 바로 바로 필요한 내용을 꺼내 사용할 수 있다.

>>> a=rdpcap(test.pcap)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
NameError: name 'test' is not defined
>>> a=rdpcap("test.pcap")
>>> a
<test.pcap: TCP:2040 UDP:0 ICMP:0 Other:0>
>>>

파일 전송도 할 수 있는데, 원하는 형태로 마음대로 수정하여 전송이 가능하다. 각 프로토콜 레이어 별로 정보를 기록하고 헤더를 붙일 수 있다. 아래의 경우는 IP 헤더에서 목적지를 1.2.3.4 로 설정하고, ICMP 헤더를 붙인 것이다.

>>> send(IP(dst="1.2.3.4")/ICMP())
.
Sent 1 packets.

전송하기 전 tcpdump 로 확인한 내용을 보면, 목적지 1.2.3.4 로 ICMP 패킷이 전송된걸 확인할 수 있다.

# tcpdump -v icmp
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
09:07:36.479199 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto ICMP (1), length 28) packet > 1.2.3.4: ICMP echo request, id 0, seq 0, length 8

이 정도에서 간단한 맛보기를 언급하고 다음 이어지는 두번째 편에서 좀더 세부적으로 Scapy 기능을 알아보도록 하겠다. 계속 이것저것 소개할 것이 많은데, 정리하고 쓰자니 시간이 꽤 걸리는 거 같다. 이래서 정리는 인내가 필요해지는 것 같다 :-)

2010년 10월 12일 화요일

와이어샤크 1.4.1, 1.2.12 버전 릴리즈

와이어샤크의 최신버전이 릴리즈 되었다. 이번에 릴리즈 된 버전은
1.4.1 과 1.2.12 버전이다.

ASN.1 BER 해석기의 취약점이 해결되었고, 유저 인터페이스 관련한 몇 가지
버그들이 해결되었다. 1.4.1 버전에서는 다음 프로토콜 지원 기능이 업데이트 되었다.

ASN.1 BER, ASN.1 PER, EIGRP, GSM A RR, GSM Management, GSM MAP, GTP, GTPv2, ICMPv6, Interlink, IPv4, IPv6, IPX, LDAP, LLC, MySQL, NAS EPS, NTLMSSP, PN-IO, PPP, RPC, SDP, SLL, SSL, TCP

이외 업데이트 된 세부적인 내용은 다음 경로를 참고하면 된다.

http://www.wireshark.org/docs/relnotes/wireshark-1.4.1.html

또한, 와이어샤크 1.0 버전에 대해서는 더 이상 지원이 이뤄지지 않는다. 공식적인
지원이 끝난만큼, 1.0 사용자들은 1.4 버전으로 업그레이드 할 것을 권고한다.

2010년 10월 5일 화요일

오래 간만에 접속해본 tcpdump 사이트 바뀌었네..

오래간만에 tcpdump 사이트를 방문하였더니 홈페이지가 새롭게 리뉴얼 되었다. 근 몇년간 한번도
바뀐적 없이 운영된 것으로 기억하는데, 새로운 화면이 머랄까 신선하게 다가온다. ;-)
패킷 분석을 하는 분들에겐 tcpdump 와 libpcap 을 빼 놓을 수 없을 것이다.

앞으로도 꾸준히 발전하는 모습을 기대하며....
I love libpcap :-)

2010년 9월 1일 수요일

와이어샤크 1.4.0 정식 버전 공개

6월초 와이어샤크 1.4.0rc1 버전이 공개된 후, 드디어 1.4.0 정식버전이 공개되었다.
정식버전과 함께 1.4.0rc2 버전도 공개되었으니, 이제 1.2.X 를 뒤로 하고,
1.4.0 의 새로운 기능들을 느껴보기 바랍니다.

몇가지 변경된 기능에 대해서는 저번 1.4.0rc1 에서 소개한적이 있고요,


다운로드는 다음의 경로에서 가능합니다.

세부적인 릴리즈 노트는 다음을 참고하세요.

[주요변화]
  • 와이어샤크의 메인 화면에서 컬럼을 쉽게 이동할 수 있거나, 오른쪽 클릭을 통해 조정이 가능
  • 파이썬 스크립트 지원
  • 많은 부분에서 메모리 누수 버그 Fix (그래서 그런가, 처리가 조금 자연스러운듯)
  • 와이어샤크 1.4 버전에서는 윈도우 2000을 지원하지 않음. 그러므로 윈도우 2000 에서는 1.2 나 1.0 버전을 이용해야 함
  • Manually Resolve Address 기능
  • 유용하게 이용할 수 있는 부분인데, IP 를 특정 이름으로 변경시켜 놓을 수 있다. 예를들어, 172.16.1.254 라는 것을 쓰고 있다면 이 기능을 통해 Internal Router 이런식으로 바꿀 수 있다.
  • 'Ignore Packet' 기능, 필요없는 패킷에서 오른쪽 클릭을 통해 무시해 버릴 수 있다.
  • 시간 표시가 이제는 시:분:초 형태로 출력된다.
  • 유닉스와 리눅스 환경의 와이어샤크에서 캡쳐 버퍼 사이즈를 설정할 수 있다.
  • 와이어샤크에서 바로 JPEG 파일을 오픈할 수 있음
    JPEG 파일을 와이어샤크로 던져보면 알 수 있다.
  • 새로운 프로토콜 지원
  • 이외 기타 등등

2010년 8월 6일 금요일

HTML 형태의 패킷 분석 보고서는 어떤가요?

지금까지 소개한 패킷분석 프로그램은 대부분 텍스트 형태였다. 만약 HTML 형태로 나오면 어떨까?
분석대상에 따라서 달라지겠지만, 때로는 간단하게 텍스트 형태가 편할 수도 있고, 데이터 내용이 많으면
좀더 쉽게 정리되어 볼 수 있는 HTML 형태가 편할수도 있을 것이다. 이것은 분석가의 판단에 따라서
상황에 맞는 것을 선택하면 된다.

일단, 지금 소개하고자 하는 것은 'pcapline' 이라는 것으로 패킷을 분석해 HTML 형태로 만들어주며
세션별로도 구분해준다. pcapline 은 파이썬으로 작성되어 있으며, 다음 경로에서 받을 수 있다.


실행은 분석할 PCAP 파일을 지정해 주는 것으로 끝난다.

# ./pcapline.py test.pcap
[*] Pcapline v0.9
[*] Processing pcap
[*] Generating report

분석이 완료되고 리포트가 생성되면 해당 폴더(실행한 파일이름의 output )에 아래와 같이 서브디렉토리가 존재하고 index.html 이 있다.

# ls -l
total 120
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0001
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0002
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0003
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0004
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0005
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0006
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0007
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0008
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0009
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0010
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0011
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0012
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0013
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0014
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0015
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0016
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0017
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0018
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0019
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0020
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0021
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0022
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0023
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0024
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0025
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0026
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0027
drwxr-xr-x 2 rigel rigel 4096 2010-07-28 23:37 0028
-rw-r--r-- 1 rigel rigel 8010 2010-07-28 23:37 index.html

index.html 을 브라우저에서 읽어들이면 아래와 같은 분석 보고서를 볼 수 있다. 호스트별로 구분되어 있고, 전송된 데이타량 그리고 해당 패킷이 어떤것인지 나타난다. 여기서 이제 각 Flow 를 선택하게 되면 세부적인 정보를 더 볼 수 있게 된다. (참고로, 여기서 사용된 것은 랜덤하게 IP 를 변경한 것이다)


세부 정보를 선택했더니, 더 자세한 내용들이 나타난다. 스트링 데이터도 볼 수 있고, HEX 값도 볼 수 있다.
각 요약 정보는 굳이 설명하지 않더라도 어떤 내용인지 쉽게 이해가 될 것이다.
HTML 형태의 보고서로 만들어 주므로 웹 브라우저 등이 있어야 하는 불편함은 있지만, 어떤 면에서는 더욱 쉽게 내용을 확인할 수 있는 방법을 제공해 준다. 파이썬이 설치되어 있다면 한번 사용해 보는 것도 괜챦다.

혹시 프로그램이 제대로 실행되지 않는다면, 설치된 파이썬 버전은 어떻게 되는지 확인해 보자. 파이썬 2.5 버전을 사용하는 경우에는 실행시 오류가 발생된다. 최신 버전인 2.7 을 사용하면 문제 없을 것이다. (2.6 도 OK)

2010년 8월 4일 수요일

리눅스 환경의 간단한 와이어샤크 컴파일은...

바로 전 포스팅에서 tshark 를 약간 수정하여 사용하는 부분에 대해서 설명하였다.


여기에 추가로 컴파일 과정에 대해서 간단히 덧붙이고자 한다. 컴파일은 *NIX 환경에서 한 것이고, 컴파일 전에
필요한 패키지들이 있다. 나의 경우는 기본으로 설치된 리눅스 환경에서, 필요한 패키지는 다음과 같은 것들이 있었다.

bison
flex
pkg-config
libglib

APT 패키지 설치가 가능한 환경이라면,
# apt-get install bison 과 같이 쉽게 설치가 가능하므로, ./configure 를 하는 과정에서 무엇이 없다고 하면
# apt-cache search pkg_name 으로 해서 찾아보면 쉽게 설치가 가능하다. X-Windows 가 설치되어 있지 않아
굳이 GUI 기반의 와이어샤크는 필요없었기에 --enable-wireshark=no 옵션으로 컴파일을 제외했고, GTK 도
사용안 하므로 --disable-gtktest 옵션을 주었다.

그럼 다음과 같이 컴파일을 위한 환경 준비를 위해 configure 를 실행해 주면 된다.

$ ./configure --enable-wireshark=no --disable-gtktest
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
.
. (삭제)
The Wireshark package has been configured with the following options.
                    Build wireshark : no
                       Build tshark : yes
                     Build capinfos : yes
                      Build editcap : yes
                      Build dumpcap : yes
                     Build mergecap : yes
                    Build text2pcap : yes
                      Build idl2wrs : yes
                      Build randpkt : yes
                       Build dftest : yes
                     Build rawshark : yes

             Install dumpcap setuid : no
                        Use plugins : yes
                    Use lua library : no
                   Build rtp_player : no
                        Use threads : no
             Build profile binaries : no
                   Use pcap library : yes
                   Use zlib library : yes
                   Use pcre library : no
               Use kerberos library : no
                 Use c-ares library : no
               Use GNU ADNS library : no
                Use SMI MIB library : no
             Use GNU crypto library : no
             Use SSL crypto library : no
           Use IPv6 name resolution : yes
                 Use gnutls library : no
     Use POSIX capabilities library : no
                  Use GeoIP library : no
$ make
$ make install


위 결과를 보는 것과 같이 와이어샤크는 컴파일하지 않는다고 "no" 가 나왔고 기타, 다른 라이브러리나
컴파일 되는 패키지 정보가 나온다. 즉, 본인이 사용하고자 하는 기능에 따라 해당 라이브러리도 있어야 되므로
configure 시 적절히 추가해 주어야 한다. 예를 들어, GeoIP 를 사용하겠다고 하면 --with-geoip=[경로] 옵션이
필요하게 된다. 사용가능한 옵션은

$ ./configure --help

로 확인할 수 있다. 와이어샤크는 오픈소스인 만큼 소스를 자유롭게 사용가능하므로 원하는 형태로
자유롭게 기능을 추가하거나 제거할 수 있다. 바로 이것이 오픈소스의 매력이며,
여러분들만의 와이어샤크를 만들어 볼 수 있는 기회를 줄것이다.

이전 포스팅에서 사용한 컴파일에 대해서 간략하게 소개한 것이므로, 좀더 깊게 컴파일 과정을 소개할 기회가
되는 대로 준비하겠다.