오늘의 회고오늘은 오늘 학습한 것
WireShark
Analyze Packets와이어 샤크를 구동하면 정신없는 패킷들을 볼 수 있습니다. 이 패킷 중에 내가 원하는 페이지의 패킷을 보고싶다면 먼저 원하는 페이지의 IP주소를 알아야 합니다. 만약 www.google.com 으로 요청을 보내고 싶다면 터미널에 아래와 같이 입력합니다. (MAC OS 기준)
이렇게 IP를 알아내었으니 위와 같이 캡쳐할 대상을 선택할 수 있습니다. Wi-Fi로 통신하고 있으니 제일 상단 Wi-Fi: en0을 선택합니다. 그러면 위와 같은 화면을 볼 수 있습니다...! 여기서 저는 알아낸 www.google.com 의 IP 172.217.26.132의 요청만 보고싶은 것이기 때문에 필터링을 해줘야 합니다. 상단 필터링 Form에 아래와 같이 입력합니다. (ip주소는 달라집니다 꼭 직접 nslookup을 통해 확인하고 진행하세요.) 그러면 아래 처럼 해당 ip주소와 관련있는 패킷만 보여지게 됩니다. Three Way Hand Shake아래는 3 Way Hand Shake 과정입니다. 위 패킷에서 Three Way Hand Shake 과정에 해당하는 패킷을 찾아보시기 바랍니다.
TCP 패킷 정보또한 패킷들을 클릭하면 패킷의 정보도 볼 수 있습니다.
ReferenceWireshark(와이어샤크) 설치 및 사용법 + 필터링 사용법 보안이 하고싶은 joseph패킷분석 와이어샤크를 이용해 IP패킷 분석하기joseph94 2020. 7. 31. 14:32 오늘은 와이어샤크를 이용해 IP패킷을 분석해 보도록 하겠습니다. 분석 전 먼저 헤더 구조를 알아야 하니 IP 헤더구조에 대해 설명하겠습니다. 버전 : 사용중인 IP패킷의 버전 (IPv4 또는 IPv6) 헤더길이 : IP 헤더의 길이 서비스 타입 : 라우터가 트래픽의 우선순위를 지정하는데 사용하는 플래그유형 총 길이 : IP패킷의 총길이(헤더+페이로드) 식별자 : 패킷의 순서를 식별하는데 사용되는 고유 번호 플래그 : 패킷이 단편화되었을때 단편화가 끝났는지, 더 남았는지 확인 가능한 필드 단편 오프셋 : 패킷이 단편화 되었으면 해당 필드 값을 이용해 올바른 순서로 재구성 하는 필드 생존시간 : IP 패킷의 생존시간을 지정하는 필드 (즉 얼마나 많은 라우터를 경우 할 수있는지 확인 하는 필드) 프로토콜 : 상위 프로토콜을 식별하기 위한 프로토콜 번호를 저장하는 필드 (프로토콜 별 고유 번호가 존재) 헤더 체크썸 : IP헤더가 손상됐는지 검사하는 필드 출발지 IP 주소 : 패킷을 보낸 host ip주소 목적지 IP 주소 : 패킷의 목적지 ip주소 데이터 : 실제 데이터가 담겨있는 필드 ---------------------------------------------------------------------------------------------------------------------------------- 위 사진에 나와있는 패킷들을 하나씩 클릭하여 분석해보도록 하겠습니다. 우선 첫번째 패킷입니다 버전은 v4인것을 확인 할 수있습니다. 헤더 길이는 20바이트입니다. 헤더 + 데이터의 길이는 1500바이트입니다. (※ 이더넷 MTU는 1500byte 입니다) 패킷의 고유 식별자는 16진수로 0x61d1이고 2진수로 25041 인것을 알 수 있습니다. flags에 More fragments가 1로 표기된 것이 보이며 이는 단편화가 진행중이라는 것을 나타냅니다 오프셋 값은 0으로 이는 해당 패킷은 단편화중에서 첫 번째를 나타냅니다. TTL 값은 128로 목적지 장치의 OS 는 windows라는 것을 알 수 있습니다 해당 패킷의 상위프로토콜은 ICMP (1) 인것을 알 수있습니다. ※ (1)은 고유 프로토콜 번호를 나타냄 출발지 IP와 목적지 IP는 각각 192.168.0.114 / 192.168.0.193 이며 마지막으로 데이터가 1480 byte 크기 임을 확인 가능합니다. ※ 데이터 크기가 1500이 아닌 이유는 IP헤더 크기 20byte를 뺀 나머지 값을 나타내서 1480byte입니다 이번엔 첫번째 패킷의 차이점 위주로 적어보도록 하겠습니다. Total Length (패킷 총길이) 는 위와 동일하게 1500byte입니다 Identification(식별자) 25041 을 통해 같은(?)패킷인 것을 확인 할수 있습니다 Fragment offset이 1480인 이유는 첫번째 패킷의 데이터가 1480byte였으므로 1480부터 시작임을 나타냅니다 마지막인 세 번째 패킷입니다 Total Length(패킷의 총길이) 는 140byte인 것을 확인할수 있습니다 Identification(식별자) 또한 같은 패킷입니다 Flags를 보면 More fragments 가 0입니다. 이는 더이상 단편화한 패킷이없다는 뜻 즉 마지막 패킷이라는 뜻입니다 offset값을 보면 2960으로 1480+1480해서 2960이라는 값이 나왔습니다 ICMP 프토토콜을 보면 type 8번 요청패킷입니다 마지막 데이터부가 3072byte인 이유는 첫번째패킷 ⓐ (총길이 1500byte- 헤더20 byte = 1480byte) ⓑ (총길이 1500byte- 헤더20 byte = 1480byte) ⓒ (총길이 140byte - 헤더 20byte = 120byte) = ⓐ+ⓑ+ⓒ - ICMP패킷(8byte) = 3072byt가 나왔습니다. ★☆피드백은 언제나 환영입니다☆★ |