Wireshark: Linux 및 Windows의 트래픽 분석. Wireshark의 지인, 이 프로그램의 정체는?! wireshark를 사용한 패킷 분석

네트워크 응용 프로그램 및 노드의 동작을 연구하고 네트워크의 문제를 식별하기 위해 네트워크 패킷 분석기를 사용하는 경우가 많습니다. 이러한 소프트웨어의 주요 기능은 첫째, 다양한 분석의 가능성이며, 둘째, 네트워크 트래픽의 무한한 스트림에서 관심 있는 정보를 찾아낼 수 있는 다기능 패킷 필터링입니다. 이 기사는 후자의 측면에 전념합니다.

소개

컴퓨터 네트워크를 연구하는 모든 방법 중에서 트래픽 분석은 아마도 가장 힘들고 시간이 많이 소요될 것입니다. 현대 네트워크의 집중적 흐름은 유용한 정보를 찾기가 쉽지 않은 많은 "원시" 자료를 생성합니다. 존재하는 동안 TCP / IP 스택은 수많은 응용 프로그램과 추가 기능을 획득했으며 그 수는 수백 수천 개에 이릅니다. 이들은 애플리케이션 및 서비스 프로토콜, 인증, 터널링, 네트워크 액세스를 위한 프로토콜입니다. 네트워크 상호 작용의 기본 사항을 아는 것 외에도 트래픽 연구원(즉, 귀하)은 이 모든 프로토콜 다양성에서 자유롭게 탐색할 수 있어야 하고 특정 소프트웨어 도구(스니퍼 또는 과학적으로 트래픽 분석기)를 사용할 수 있어야 합니다. 프로토콜).

스니퍼의 기능은 가로채기를 위해 네트워크 카드의 "무차별" 모드를 사용하는 기능뿐이 아닙니다. 이러한 소프트웨어는 수집 단계와 개별 전송 단위(프레임, 패킷, 세그먼트, 데이터그램, 메시지)를 연구하는 동안 트래픽을 효과적으로 필터링할 수 있어야 합니다. 또한 스니퍼가 "알고 있는" 프로토콜이 많을수록 좋습니다.

최신 프로토콜 분석기는 트래픽 통계 계산, 네트워크 상호 작용 그래프 그리기, 애플리케이션 프로토콜 데이터 추출, 작업 결과를 다양한 형식으로 내보내기 등 많은 작업을 수행할 수 있습니다. 따라서 네트워크 트래픽 분석을 위한 도구 선택은 별도의 주제입니다. 논의. 무엇을 선택해야 할지 모르거나 유료 소프트웨어에 돈을 쓰고 싶지 않다면 간단한 팁을 활용하세요. Wireshark를 설치하세요.

필터 알아보기

Wireshark는 두 가지 종류의 필터를 지원합니다.

  • 트래픽 가로채기(캡처 필터);
  • 디스플레이 필터.

첫 번째 하위 시스템은 네트워크 인터페이스 작업을 위한 저수준 API를 제공하는 Pcap 라이브러리에서 Wireshark에 의해 상속되었습니다. 가로채는 동안 트래픽을 즉시 샘플링하면 RAM과 하드 디스크 공간이 절약됩니다. 필터는 필요한 경우 논리 함수(and, or, not)와 결합된 프리미티브 그룹으로 구성된 표현식입니다. 이 표현식은 "캡처 옵션" 대화 상자의 "캡처 필터" 필드에 작성됩니다. 가장 많이 사용되는 필터는 재사용을 위해 프로필에 저장할 수 있습니다(그림 1).

쌀. 1. 차단 필터 프로필

캡처 필터 언어는 오픈 소스 세계에서 표준이며 많은 Pcap 기반 제품(예: tcpdump 유틸리티 또는 Snort 침입 감지/방지 시스템)에서 사용됩니다. 따라서 여기에서 구문을 설명하는 데 특별한 요점은 없습니다. 가장 친숙할 가능성이 높기 때문입니다. 자세한 내용은 설명서(예: Linux의 경우 pcap-filter(7) 매뉴얼 페이지)를 참조하십시오.

디스플레이 필터는 이미 차단된 트래픽과 함께 작동하며 Wireshark의 기본 기능입니다. Pcap과의 차이점 - 기록 형식(특히 점은 필드 구분 기호로 사용됨). 또한 비교 작업에 영어 표기법을 추가하고 부분 문자열을 지원합니다.

"필터" 버튼 다음에 메인 프로그램 창의 해당 필드(주의, 드롭다운 목록 힌트 작동)에 디스플레이 필터를 직접 입력할 수 있습니다(그런데 이 버튼은 자주 사용하는 표현에 대한 프로필을 숨깁니다). 그리고 근처에 있는 “Expression…” 버튼을 클릭하면 다기능 표현식 생성자가 열립니다(그림 2).


왼쪽(필드 이름)에는 Wireshark에 알려진 프로토콜 메시지 필드의 알파벳 트리가 있습니다. 이 필드에 대해 논리 연산자(관계)를 지정하거나, 값을 입력(값)하거나, 범위를 지정(범위)하거나, 목록에서 값을 선택(사전 정의된 값)할 수 있습니다. 일반적으로 하나의 창에 완전한 온라인 백과사전이 있습니다.

다음은 디스플레이 필터에 사용되는 논리 연산자입니다.

  • 및 (&&) - "그리고";
  • 또는 (||) - "또는";
  • xor(^^) - 배타적 "OR";
  • (!) 아님 - 부정;
  • [...] - 부분 문자열 선택. # 네트워크 어댑터의 MAC 주소로 필터링하면 (eth.addr eq aa:bb:cc:22:33:44) icmp 또는 dns가 아닌 모든 로컬 트래픽이 제외됩니다.

부분 문자열의 선택에 관해서는 이것은 아주 논리적인 작업은 아니지만 매우 유용한 옵션입니다. 시퀀스의 특정 부분을 얻을 수 있습니다. 예를 들어, 다음은 표현식에서 소스 MAC 주소의 첫 번째(대괄호 안의 첫 번째 숫자가 오프셋) 3바이트(콜론 뒤의 숫자가 하위 시퀀스의 길이임) 필드를 사용하는 방법입니다.

Eth.src == 00:19:5b

콜론이 있는 선택에서 매개변수 중 하나를 생략할 수 있습니다. 오프셋을 건너뛰면 샘플 카운트는 0바이트부터 시작됩니다. 길이가 -이면 오프셋에서 필드 끝까지의 모든 바이트를 가져옵니다.

그건 그렇고, 하위 문자열 선택은 헤더 뒤의 바이트 시퀀스가 ​​알려진 경우 악성 코드를 탐지하는 데 사용하는 것이 편리합니다(예: UDP 패킷에서 "0x90, 0x90, 0x90, 0x04").

UDP == 90:90:90:04

논리식에 사용되는 비교 연산자:

  • eq (==) - 같음;
  • ne(!=) - 같지 않음;
  • gt (>) - 더;
  • ㄹ (<) - меньше;
  • ge(>=) - 크거나 같음;
  • 르 (<=) - меньше или равно.tcp.dstport ne 8080 && tcp.len gt 0 && data eq A0

사실, 이론은 시작하기에 충분합니다. 그런 다음 필요에 따라 상식과 괄호 없이 상식과 괄호를 사용하십시오. 또한 필터는 본질적으로 부울 표현식이라는 것을 잊지 마십시오. 참이면 패킷이 화면에 표시되고 거짓이면 표시되지 않습니다.

Netbios 포트 스캔을 감지하는 Pcap 필터

dst 포트 135 또는 dst 포트 445 또는 dst 포트 1433 및 tcp & (tcp-syn) != 0 및 tcp & (tcp-ack) = 0 및 src net 192.168.56.0/24

IP 하이재커를 찾고 있습니다.

로컬 네트워크 세그먼트에는 두 개 이상의 노드에 대해 (이러한 이유로) 일치하는 IP 주소가 있습니다. 충돌하는 시스템을 "잡는"(MAC 주소 결정) 방법은 잘 알려져 있습니다. 세 번째 컴퓨터에서 스니퍼를 실행하고 ARP 캐시를 지우고 원하는 IP의 MAC 확인 요청을 자극합니다(예: ping).

# arp -d 192.168.56.5 # ping -n -c 1 192.168.56.5

그런 다음 MAC에서 응답이 온 가로채는 트래픽을 살펴봅니다. Wireshark가 너무 많은 패킷을 포착했다면 생성자를 사용하여 디스플레이 필터를 생성합니다. 표현식의 첫 번째 부분에서는 ARP 응답을 선택하고 두 번째 부분에서는 소스 IP 주소가 원하는 메시지와 동일한 메시지를 선택합니다. 두 조건이 동시에 참이어야 하기 때문에 프리미티브를 && 연산자와 결합합니다.

(arp.opcode == 응답) && (arp.src.proto_ipv4 == 192.168.56.5)

그건 그렇고, 두 개의 Oracle VirtualBox 가상 머신과 "가상 호스트 어댑터" 유형의 네트워크 연결이 사용되었기 때문에 이 시나리오에서는 컴퓨터 네트워크가 영향을 받지 않았습니다.

네트워크 및 전송 계층 검사

지금까지 ICMP 프로토콜은 네트워크 스택을 진단하는 상당히 효과적인 수단으로 남아 있습니다. 이 프로토콜의 메시지에서 네트워크 문제에 대한 중요한 정보를 얻을 수 있습니다.

짐작할 수 있듯이 Wireshark에서 ICMP를 필터링하는 것은 매우 쉽습니다. 메인 프로그램 창의 필터 라인에 쓰기만 하면 됩니다: icmp. icmp 외에도 arp, ip, tcp, udp, snmp, smb, http, ftp, ssh 등과 같은 프로토콜 이름인 많은 다른 키워드가 작동합니다.

ICMP 트래픽이 많은 경우 예를 들어 반향 요청(유형 0) 및 반향 응답(유형 8)을 제외하고 디스플레이가 자세히 표시될 수 있습니다.

Icmp 및 ((icmp.type ne 0) 및 (icmp.type ne 8))

무화과에. 그림 4는 테스트 Linux 라우터에서 생성된 작은 ICMP 메시지 샘플의 예를 보여줍니다. "Port Unreachable" 메시지는 일반적으로 기본값입니다. 또한 UDP 데이터그램이 사용되지 않는 포트에서 수신될 때 네트워킹 스택에 의해 생성됩니다. 데비안 기반 가상 라우터가 "호스트에 연결할 수 없음" 및 "관리적으로 필터링된 통신"이라는 메시지를 표시하기 시작하려면 이 문제를 해결해야 했습니다. Cisco는 일반적으로 기본적으로 관리 필터링에 대해 알려줍니다. "Time-to-Live 초과됨" 메시지는 네트워크 일부에 루프가 있음을 나타냅니다(이러한 패킷은 경로를 추적할 때도 나타날 수 있음).

그건 그렇고, 방화벽에 대해. "도구" 메뉴의 "방화벽 ACL 규칙" 항목을 사용하여 Wireshark에서 직접 널리 사용되는 방화벽에 대한 규칙을 만들 수 있습니다. 먼저 목록에서 해당 정보가 사용될 패키지를 선택해야 합니다. 표준 및 확장 Cisco ACL, IP 필터, IPFirewall(ipfw), Netfilter(iptables), 패킷 필터(pf) 및 Windows 방화벽(netsh) 제품에 대한 UNIX 유사 규칙을 사용할 수 있습니다.

이제 IP 패킷 헤더 필드(발신자 주소(ip.src) 및 수신자 주소(ip.dst))를 기반으로 하는 네트워크 수준에서 필터링의 기본 사항에 대해 간략히 설명합니다.

(ip.src == 192.168.56.6) || (ip.dst == 192.168.56.6)

따라서 이 IP 주소가 수신하거나 보낸 모든 패킷을 볼 수 있습니다. CIDR 마스크 표기법을 사용하여 전체 서브넷을 필터링할 수 있습니다. 예를 들어 스팸을 보내는 감염된 호스트를 식별해 보겠습니다(여기서 192.168.56.251은 SMTP 서버의 IP 주소입니다).

ip.src == 192.168.56.0/24 및 tcp.dstport == 25 및 !(ip.dst == 192.168.56.251)

그건 그렇고, MAC 주소로 선택하려면 eth.src, eth.dst 및 eth.addr 프리미티브를 사용해야 합니다. 때때로 네트워크 계층 문제는 이론이 제시하는 것보다 이더넷 계층과 더 밀접하게 관련되어 있습니다. 특히 라우팅을 설정할 때 완고한 노드가 패킷을 보내는 라우터의 MAC 주소를 확인하는 것이 매우 유용합니다. 그러나 이러한 간단한 작업의 경우 UNIX 계열 시스템의 거의 표준인 tcpdump 유틸리티로 충분합니다.

Wireshark는 포트 필터링에도 문제가 없습니다. TCP의 경우 키워드 tcp.srcport, tcp.dstport 및 tcp.port가 있고 UDP의 경우 udp.srcport, udp.dstport 및 udp.port가 있습니다. 사실, 내장 필터 언어인 Wireshark에는 UDP 포트와 TCP 포트를 모두 나타내는 Pcap의 포트 프리미티브 아날로그가 없었습니다. 그러나 다음과 같은 부울 표현식으로 이것을 수정하는 것은 쉽습니다.

tcp.port == 53 || udp.port == 53

HTTP 트래픽으로 즉흥적

애플리케이션 프로토콜, 특히 HTTP는 스니핑의 맥락에서 "영원한" 주제입니다. 공정하게 말하면 웹 트래픽을 연구하기 위해 많은 전문 소프트웨어 도구가 만들어졌습니다. 그러나 유연한 필터링 시스템을 갖춘 Wireshark와 같은 범용 도구는 이 분야에서 전혀 불필요한 것이 아닙니다.

먼저 가장 먼저 떠오르는 사이트로 이동하여 웹 트래픽을 수집해 보겠습니다. 이제 HTTP의 전송 역할을 하는 TCP 프로토콜의 메시지에서 좋아하는 인터넷 리소스에 대한 언급을 살펴보겠습니다.

TCP에는 "사이트"가 포함되어 있습니다.

포함 연산자는 지정된 필드에 하위 문자열이 있는지 확인합니다. Perl 호환 정규식을 사용할 수 있는 일치 연산자도 있습니다.


"Filter Expressions" 창은 물론 좋은 도우미이지만 때로는 원하는 필드를 찾기 위해 긴 목록을 스크롤하는 것은 매우 지루합니다. 디스플레이 필터를 생성/수정하는 더 쉬운 방법이 있습니다. 패키지를 볼 때 컨텍스트 메뉴를 사용하는 것입니다. 이렇게 하려면 관심 있는 필드를 마우스 오른쪽 버튼으로 클릭하고 "필터로 적용" 항목 또는 "필터 준비" 항목의 하위 항목 중 하나를 선택하기만 하면 됩니다. 첫 번째 경우에는 변경 사항이 즉시 적용되고 두 번째 경우에는 표현식을 수정할 수 있습니다. "선택됨"은 필드 값이 "선택되지 않음"이라는 새 필터가 됨을 의미합니다. 동일하지만 부정만 포함됩니다. "..."로 시작하는 항목은 논리 연산자를 고려하여 기존 표현식에 필드 값을 추가합니다.

다양한 Wireshark GUI 도구와 HTTP 프로토콜에 대한 지식을 결합하여 기본 프로그램 창의 트래픽 표시를 필요한 수준으로 쉽게 미세 조정할 수 있습니다.

예를 들어, 페이지를 생성할 때 브라우저가 웹 서버에서 요청한 이미지를 확인하려면 서버로 전송된 URI의 내용을 분석하는 필터가 적합해야 합니다.

(http.host eq "www..request.uri에 ".jpg#26759185"가 포함됨) 또는 (http.request.uri에 ".png#26759185"가 포함됨))

동일하지만 일치 사용:

(http.host eq "www..request.uri는 ".jpg|.png#26759185"와 일치함)

물론, 다른 수준의 프로토콜의 메시지 필드는 하나의 표현식에서 안전하게 혼합될 수 있습니다. 예를 들어, 이 서버가 클라이언트에게 보낸 이미지를 찾기 위해 IP 패킷의 소스 주소와 HTTP 응답의 "Content-Type" 필드를 사용합니다.

(ip.src eq 178.248.232.27) 및 (http.content_type에 "이미지"가 포함됨)

그리고 "Referer" HTTP 요청 필드를 사용하여 즐겨찾는 사이트의 페이지를 생성할 때 브라우저가 콘텐츠를 가져오는 다른 서버를 찾을 수 있습니다.

(http.referer eq "http://www..dst eq 178.248.232.27))

몇 가지 더 유용한 필터를 살펴보겠습니다. GET 메서드에 의해 만들어진 HTTP 요청에서 트래픽을 샘플링하려면 다음 표현식을 사용할 수 있습니다.

Http.request.method == GET

디스플레이 필터가 모든 영광과 단순함으로 나타나는 것은 응용 프로그램 수준입니다. 비교를 위해: 예를 들어 Pcap을 사용하여 이 문제를 해결하려면 다음 3층 구조를 적용해야 합니다.

포트 80 및 tcp[((tcp & 0xf0) >> 2):4] = 0x47455420

특정 시간 간격(예: 점심 시간)에 호스트 192.168.56.8의 사용자가 어떤 www에 연결했는지 알아내기 위해 frame.time 프리미티브를 사용합니다.

tcp.dstport == 80 && frame.time >= "2013년 9월 9일 13:00:00" && frame.time< "Yan 9, 2013 14:00:00" && ip.src == 192.168.56.8

음, "로그인" 및 "사용자"라는 단어와 함께 암호 "알림"이 포함된 URI 요청을 표시합니다.

Http.request.uri는 "login.*=user"와 일치합니다(http에는 "password"가 포함됨) || (팝에는 "PASS"가 포함됨)

SSL 콘텐츠 가로채기

네트워크 트래픽 탐색기의 진정한 골칫거리는 암호화입니다. 그러나 인증서가 있는 소중한 파일이 있는 경우(그런데 눈으로 보는 것처럼 처리해야 함) 이 리소스의 사용자가 SSL 세션에 숨기고 있는 것을 쉽게 찾을 수 있습니다. 이렇게 하려면 SSL 프로토콜 설정에서 서버 매개변수와 인증서 파일을 지정해야 합니다("편집" 메뉴의 "기본 설정" 항목, 왼쪽의 프로토콜 목록에서 SSL 선택). PKCS12 및 PEM 형식이 지원됩니다. 후자의 경우 다음 명령을 사용하여 파일에서 암호를 제거해야 합니다.

openssl pkcs12 -export -in server.pem -out aa.pfx openssl pkcs12 -in aa.pfx -out serverNoPass.pem --nodes

정보

네트워크 트래픽에서 모니터링 및 디버깅을 위한 트래픽 추출은 패킷 필터에 의해 수행됩니다. 패킷 필터는 운영 체제 커널의 일부이며 네트워크 카드 드라이버에서 네트워크 패킷을 수신합니다.

UNIX 계열 OS용 패킷 필터의 예로는 BPF(Berkeley Packet Filter) 및 LSF(Linux 소켓 필터)가 있습니다. BPF에서 필터링은 대소문자를 구분하는 기본 기계어를 기반으로 구현되며, 그 인터프리터는 BPF입니다.


원격 호스트의 트래픽 분석

Windows 사용자는 Wireshark를 실행하는 컴퓨터의 인터페이스로 작업할 수 있을 뿐만 아니라 원격 시스템의 트래픽도 캡처할 수 있습니다. WinPcap 라이브러리 배포에는 이를 위한 특별한 서비스(원격 패킷 캡처 프로토콜)가 있습니다. 먼저 서비스 관리 스냅인(services.msc)에서 활성화해야 합니다. 이제 원격 컴퓨터에서 Wireshark를 실행하면 원격 트래픽 차단 서비스가 실행 중인 호스트에 연결할 수 있으며(기본적으로 포트 2002 사용) RPCAP 데이터가 강물처럼 흐를 것입니다.

또한 원격 트래픽 분석을 위해 "외부에서" 홈 * nix 라우터에 연결하는 옵션도 제공합니다.

$ SSH [이메일 보호됨]"tshark -f "포트 !22" -i 모든 -w -" | wireshark -k -i - $ ssh [이메일 보호됨] tcpdump -U -s0 -w - "포트 22가 아님" | 와이어샤크 -k -i -

필수 도구

Wireshark는 산업 및 교육 분야의 사실상 표준인 네트워크 트래픽의 인터셉트 및 대화식 분석을 위한 잘 알려진 도구입니다. GNU GPLv2 라이선스에 따라 배포됩니다. Wireshark는 가장 잘 알려진 프로토콜과 함께 작동하며 GTK+ 기반 그래픽 사용자 인터페이스, 강력한 트래픽 필터 시스템, 디코더 및 이벤트 핸들러를 생성하기 위한 내장 Lua 프로그래밍 언어 인터프리터를 갖추고 있습니다.

페이로드 추출

특정 서클에서는 파일, 이미지, 비디오 및 오디오 콘텐츠 등 트래픽에서 최종 정보 개체를 "제거"할 수 있는 특수 도구가 널리 알려져 있습니다. 강력한 분석 하위 시스템 덕분에 Wireshark는 이 기능 이상을 다루므로 해당 분석 창에서 "페이로드 저장 ..." 버튼을 찾으십시오.

결론

네트워크 응용 프로그램의 보안에 대한 지하 컴퓨터의 일반적인 매력을 배경으로, 하위 수준의 기념비적인 문제는 점차 배경으로 희미해지고 있습니다. 네트워크 및 전송 계층이 위아래로 연구되고 탐색되었다는 것은 분명합니다. 그러나 문제는 SQL 주입, 사이트 간 스크립팅 및 포함에 대해 자란 전문가들이 빙산의 일각 아래에 숨겨진 거대한 계층을 인식하지 못하고 종종 겉보기에 기본적인 문제에 굴복한다는 것입니다.

디버거 및 디스어셈블러와 같은 스니퍼는 시스템의 세부 사항을 매우 자세하게 보여줍니다. Wireshark를 설치하고 약간의 독창성을 발휘하면 네트워크 상호 작용을 있는 그대로 볼 수 있습니다. 그리고 당신을 도울 필터!

다른 네트워크를 해킹하는 방법을 배우기 전에 네트워크를 제어하고 네트워크 트래픽이 무엇이며 필터링하는 방법을 이해할 수 있어야 합니다. Wireshark는 이것보다 더 강력한 것이 아직 발명되지 않았기 때문에 이에 이상적이며 추측할 수 있듯이 이에 대해 이야기할 것입니다. Wireshark는 실시간으로 네트워크 패킷을 분석하고 캡처하기 위한 완벽한 무기입니다. 그러나 가장 중요한 것은 매우 읽기 쉬운 형식으로 표시된다는 것입니다.

Wireshark에는 네트워크 트래픽을 자세히 살펴보고 개별 패킷을 검사할 수 있는 많은 필터, 색상 코딩 및 기타 여러 기능이 있습니다.

당신의 상상력을 켜십시오!

나는 예를 든다:

다른 사람의 네트워크에 연결되어 있고 그들이 무엇을 사용하는지, 무엇을, 어떻게 네트워크를 통과하는지 알아야 한다고 가정해 보겠습니다. Wireshark는 완벽한 솔루션입니다. 패키지를 연구하면 필요한 모든 데이터를 쉽게 찾을 수 있습니다. 그러나 이것은 단지 예일 뿐이며, 모두가 필요에 따라 자유롭게 사용할 수 있습니다!

응용 프로그램 >>인터넷 >>Wireshark

보시다시피, 그는 좋은 메뉴를 가지고 있고 모든 것이 명확해 보입니다. 그러나 실제로는 매우 복잡한 속성입니다. 먼저 기본 기능을 살펴보겠습니다.

연결된 네트워크를 선택하고 시작을 누릅니다. 보시다시피 패킷 캡처가 시작되었고 네트워크의 모든 트래픽 표시가 시작되었습니다.

트래픽 캡처를 중지하려면 " 실행 중인 라이브 캡처 중지

이미 눈치채셨겠지만 교통 색상이 다르며 그 의미가 매우 흥미롭습니다. Wireshark는 다양한 유형의 트래픽을 인식하는 데 도움이 되도록 다양한 색상을 사용합니다.

섹션에서 필터링에 필요한 트래픽을 입력할 수 있습니다 " 필터:" 그리고 Wireshark 자체가 힌트를 제공하거나 "를 클릭하여 선택할 수 있습니다. 표현 "

클릭하여 자체 필터를 만들 수도 있습니다. 분석 >>디스플레이 필터

필요한 패키지가 보이면 내용물을 볼 수 있습니다.




또한 패키지의 전체 내용과 패키지에 대한 모든 데이터도 볼 수 있습니다.

이미 이해했듯이 이것은 트래픽을 보는 데 매우 강력한 기능입니다. 네트워크 문제 해결 및 네트워크 개발을 위해 많은 전문가들이 매우 널리 사용합니다.

이것은 시작에 불과하며 이 속성을 완전히 설명하고 분석할 때 계속 지켜봐 주시기 바랍니다.

다른 네트워크를 해킹하는 방법을 배우기 전에 네트워크를 제어하고 네트워크 트래픽이 무엇이며 필터링하는 방법을 이해할 수 있어야 합니다. Wireshark는 이것보다 더 강력한 것이 아직 발명되지 않았기 때문에 이에 이상적이며 추측할 수 있듯이 이에 대해 이야기할 것입니다. Wireshark는 실시간으로 네트워크 패킷을 분석하고 캡처하기 위한 완벽한 무기입니다. 그러나 가장 중요한 것은 매우 읽기 쉬운 형식으로 표시된다는 것입니다.

Wireshark에는 네트워크 트래픽을 자세히 살펴보고 개별 패킷을 검사할 수 있는 많은 필터, 색상 코딩 및 기타 여러 기능이 있습니다.

당신의 상상력을 켜십시오!

나는 예를 든다:

다른 사람의 네트워크에 연결되어 있고 그들이 무엇을 사용하는지, 무엇을, 어떻게 네트워크를 통과하는지 알아야 한다고 가정해 보겠습니다. Wireshark는 완벽한 솔루션입니다. 패키지를 연구하면 필요한 모든 데이터를 쉽게 찾을 수 있습니다. 그러나 이것은 단지 예일 뿐이며, 모두가 필요에 따라 자유롭게 사용할 수 있습니다!

응용 프로그램 >>인터넷 >>Wireshark

보시다시피, 그는 좋은 메뉴를 가지고 있고 모든 것이 명확해 보입니다. 그러나 실제로는 매우 복잡한 속성입니다. 먼저 기본 기능을 살펴보겠습니다.

연결된 네트워크를 선택하고 시작을 누릅니다. 보시다시피 패킷 캡처가 시작되었고 네트워크의 모든 트래픽 표시가 시작되었습니다.

트래픽 캡처를 중지하려면 " 실행 중인 라이브 캡처 중지

이미 눈치채셨겠지만 교통 색상이 다르며 그 의미가 매우 흥미롭습니다. Wireshark는 다양한 유형의 트래픽을 인식하는 데 도움이 되도록 다양한 색상을 사용합니다.

섹션에서 필터링에 필요한 트래픽을 입력할 수 있습니다 " 필터:" 그리고 Wireshark 자체가 힌트를 제공하거나 "를 클릭하여 선택할 수 있습니다. 표현 "

클릭하여 자체 필터를 만들 수도 있습니다. 분석 >>디스플레이 필터

필요한 패키지가 보이면 내용물을 볼 수 있습니다.




또한 패키지의 전체 내용과 패키지에 대한 모든 데이터도 볼 수 있습니다.

이미 이해했듯이 이것은 트래픽을 보는 데 매우 강력한 기능입니다. 네트워크 문제 해결 및 네트워크 개발을 위해 많은 전문가들이 매우 널리 사용합니다.

이것은 시작에 불과하며 이 속성을 완전히 설명하고 분석할 때 계속 지켜봐 주시기 바랍니다.

Wireshark는 컴퓨터의 네트워크 인터페이스를 통과하는 트래픽을 분석하는 데 사용할 수 있는 강력한 네트워크 분석기입니다. 이것은 네트워크 문제를 감지 및 해결하고 웹 응용 프로그램, 네트워크 프로그램 또는 웹 사이트를 디버깅하는 데 유용할 수 있습니다. Wireshark를 사용하면 모든 수준에서 패킷의 내용을 완전히 볼 수 있으므로 네트워크가 낮은 수준에서 어떻게 작동하는지 더 잘 이해할 수 있습니다.

모든 패킷은 실시간으로 캡처되어 읽기 쉬운 형식으로 제공됩니다. 이 프로그램은 매우 강력한 필터링 시스템, 색상 강조 표시 및 필요한 패키지를 찾는 데 도움이 되는 기타 기능을 지원합니다. 이 튜토리얼에서는 Wireshark를 사용하여 트래픽을 분석하는 방법을 살펴보겠습니다. 최근에 개발자들은 Wireshark 2.0 프로그램의 두 번째 분기 작업으로 옮겼습니다. 이 분기에는 특히 인터페이스에 대해 많은 변경 사항과 개선 사항이 있습니다. 이것이 우리가 이 기사에서 사용할 것입니다.

Wireshark의 주요 기능

트래픽 분석 방법을 고려하기 전에 프로그램이 지원하는 기능, 사용할 수 있는 프로토콜 및 수행할 작업을 보다 자세히 고려해야 합니다. 프로그램의 주요 기능은 다음과 같습니다.

  • 유선 또는 기타 유형의 네트워크 인터페이스에서 실시간 패킷을 캡처하고 파일에서 읽을 수 있습니다.
  • 지원되는 캡처 인터페이스는 이더넷, IEEE 802.11, PPP 및 로컬 가상 인터페이스입니다.
  • 패킷은 필터를 사용하여 다양한 매개변수로 필터링할 수 있습니다.
  • 알려진 모든 프로토콜은 TCP, HTTP, FTP, DNS, ICMP 등과 같은 다양한 색상으로 목록에서 강조 표시됩니다.
  • VoIP 통화 트래픽 캡처 지원
  • HTTPS 트래픽 암호 해독은 인증서로 지원됩니다.
  • 키 및 핸드셰이크가 있는 경우 무선 네트워크의 WEP, WPA 트래픽 암호 해독
  • 네트워크 부하 통계 표시
  • 모든 네트워크 계층에 대한 패킷 내용을 봅니다.
  • 패키지를 보내고 받는 시간을 표시합니다.

이 프로그램에는 다른 많은 기능이 있지만 이것이 여러분이 관심을 가질 만한 주요 기능이었습니다.

Wireshark를 사용하는 방법

이미 프로그램이 설치되어 있다고 가정하지만 그렇지 않은 경우 공식 저장소에서 설치할 수 있습니다. 이렇게 하려면 Ubuntu에서 다음 명령을 입력합니다.

$ sudo apt 설치 wireshark

설치 후 배포판의 메인 메뉴에서 프로그램을 찾을 수 있습니다. 수퍼유저 권한으로 Wireshark를 실행해야 합니다. 그렇지 않으면 프로그램이 네트워크 패킷을 분석할 수 없기 때문입니다. 이것은 주 메뉴에서 또는 KDE용 명령을 사용하여 터미널을 통해 수행할 수 있습니다.

$ kdesu 와이어샤크

그리고 Gnome/Unity의 경우:

$ gksu 와이어샤크

프로그램의 기본 창은 세 부분으로 나뉘며 첫 번째 열에는 분석에 사용할 수 있는 네트워크 인터페이스 목록이 있고 두 번째 열에는 파일 열기 옵션이 있고 세 번째 열에는 도움말이 포함되어 있습니다.

네트워크 트래픽 분석

분석을 시작하려면 네트워크 인터페이스(예: eth0)를 선택하고 버튼을 클릭하십시오. 시작.

그런 다음 인터페이스를 통과하는 패킷 스트림과 함께 다음 창이 열립니다. 이 창은 또한 여러 부분으로 나뉩니다.

  • 상단 부분- 다양한 버튼이 있는 메뉴 및 패널입니다.
  • 패키지 목록- 분석할 네트워크 패킷 스트림이 추가로 표시됩니다.
  • 패키지 내용물- 선택한 패키지의 내용 바로 아래에 있으며 운송 수준에 따라 범주로 나뉩니다.
  • 실제 성능- 맨 아래에는 패키지의 내용물이 HEX 형태뿐만 아니라 실제 형태로 표시됩니다.

패키지를 클릭하여 내용을 분석할 수 있습니다.

여기에서 사이트의 IP 주소를 얻기 위한 DNS 요청 패킷이 표시됩니다. 요청 자체에서 도메인이 전송되고 응답 패킷에서 질문과 답변을 받습니다.

보다 편리한 보기를 위해 항목을 두 번 클릭하여 새 창에서 패키지를 열 수 있습니다.

Wireshark 필터

특히 활성 스트림에서 올바른 패키지를 찾기 위해 수동으로 패키지를 정렬하는 것은 매우 불편합니다. 따라서 이러한 작업에는 필터를 사용하는 것이 좋습니다. 메뉴 아래에 필터를 입력하기 위한 특별한 줄이 있습니다. 표현식을 눌러 필터 빌더를 열 수 있지만 많은 필터 빌더가 있으므로 가장 기본적인 것만 다룰 것입니다.

  • ip.dst- 대상 IP 주소
  • IP.src- 발신자의 IP 주소;
  • ip.addr- 발신자 또는 수신자의 IP
  • ip.proto- 규약;
  • tcp.dstport- 목적지 항구;
  • tcp.srcport- 발신인의 항구;
  • ip.ttl- ttl로 필터링하고 네트워크 거리를 결정합니다.
  • http.request_uri- 요청한 사이트 주소.

다음 연산자를 사용하여 필터의 필드와 값 사이의 관계를 지정할 수 있습니다.

  • == - 같음;
  • != - 같지 않음;
  • < - 더 적은;
  • > - 더;
  • <= - 작거나 같음
  • >= - 더 많거나 같거나;
  • 성냥- 정규식;
  • 포함- 포함합니다.

여러 표현식을 결합하려면 다음을 사용할 수 있습니다.

  • && - 두 표현식 모두 패키지에 대해 true여야 합니다.
  • || - 표현 중 하나는 참일 수 있습니다.

이제 여러 필터의 예를 자세히 살펴보고 관계의 모든 징후를 고려해 보겠습니다.

먼저 194.67.215.125(losst.ru)로 전송된 모든 패킷을 필터링해 보겠습니다. 필터 필드에 문자열을 입력하고 적용하다. 편의를 위해 버튼을 사용하여 wireshark 필터를 저장할 수 있습니다. 구하다:

ip.dst == 194.67.215.125

그리고 전송된 패킷뿐만 아니라 이 노드의 응답으로 수신하기 위해 두 가지 조건을 결합할 수 있습니다.

ip.dst == 194.67.215.125 || ip.src == 194.67.215.125

전송된 대용량 파일을 선택할 수도 있습니다.

http.content_length > 5000

Content-Type을 필터링하여 업로드된 모든 이미지를 선택하고 wireshark 트래픽, 이미지라는 단어가 포함된 패킷을 분석할 수 있습니다.

http.content_type에 이미지가 포함되어 있습니다.

필터를 지우려면 버튼을 클릭하세요. 분명한. 필터링에 필요한 모든 정보를 항상 알고 있는 것은 아니지만 네트워크를 연구하고 싶을 뿐입니다. 패키지 필드를 열로 추가하고 각 패키지의 일반 창에서 해당 내용을 볼 수 있습니다.

예를 들어 패키지의 ttl(수명)을 열로 표시하고 싶습니다. 이렇게 하려면 패키지 정보를 열고 IP 섹션에서 이 필드를 찾으십시오. 그런 다음 상황에 맞는 메뉴를 호출하고 옵션을 선택하십시오. 열로 적용:

원하는 필드를 기반으로 필터를 만들 수도 있습니다. 필요한 필드를 선택하고 컨텍스트 메뉴를 호출한 다음 필터로 적용또는 필터로 준비, 다음 선택 선택된선택한 값만 표시하거나 선택되지 않은제거하려면:

지정된 필드와 해당 값이 적용되거나 두 번째 경우 필터 필드에서 대체됩니다.

이러한 방식으로 패키지 또는 열의 필드를 필터에 추가할 수 있습니다. 컨텍스트 메뉴에도 이 옵션이 있습니다. 더 간단한 조건을 사용하여 프로토콜을 필터링할 수도 있습니다. 예를 들어 HTTP 및 DNS 프로토콜에 대한 Wireshark 트래픽을 분석해 보겠습니다.

이 프로그램의 또 다른 흥미로운 기능은 Wireshark를 사용하여 사용자의 컴퓨터와 서버 간의 특정 세션을 추적하는 것입니다. 이렇게 하려면 패키지의 상황에 맞는 메뉴를 열고 TCP 스트림 따르기.

그런 다음 서버와 클라이언트 간에 전송된 모든 데이터를 찾을 수 있는 창이 열립니다.

Wireshark 문제 진단

Wireshark 2를 사용하여 네트워크 문제를 감지하는 방법이 궁금할 것입니다. 이렇게하려면 창의 왼쪽 하단 모서리에 둥근 버튼이 있습니다. 클릭하면 창이 열립니다. 전문가 도구. 여기에서 Wireshark는 모든 오류 및 네트워크 오류 메시지를 수집합니다.

창은 오류, 경고, 알림, 채팅과 같은 탭으로 나뉩니다. 이 프로그램은 네트워크의 많은 문제를 필터링하고 찾을 수 있으며 여기에서 매우 빠르게 볼 수 있습니다. Wireshark 필터도 여기에서 지원됩니다.

Wireshark 트래픽 분석

연결이 암호화되지 않은 경우 사용자가 정확히 무엇을 다운로드했으며 어떤 파일을 시청했는지 매우 쉽게 이해할 수 있습니다. 이 프로그램은 콘텐츠 추출을 매우 잘 수행합니다.

이렇게 하려면 먼저 패널의 빨간색 사각형을 사용하여 트래픽 캡처를 중지해야 합니다. 그런 다음 메뉴를 엽니 다. 파일 -> 개체 내보내기 -> HTTP:

이것은 많은 기능을 가진 매우 강력한 유틸리티입니다. 모든 기능을 하나의 기사에 담을 수는 없지만 여기에 제공된 기본 정보는 필요한 모든 것을 스스로 배우기에 충분할 것입니다.

공유하다