(→ARP와 이경문 멘토님) |
|||
(사용자 2명의 중간 판 8개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
+ | ARP Request!!! ARP Reply!!! | ||
+ | |||
+ | [[파일 : Arp-eg.gif]] | ||
+ | |||
<div>__TOC__</div> | <div>__TOC__</div> | ||
==개요== | ==개요== | ||
− | Address Resolution Protocol의 줄임말로 주소를 결정짓는 프로토콜이다. IP 주소를 맥 주소로 연결짓는 역할을 하게 되며 이를 활용해 개발된 네트워크 해킹 공격의 예로 ARP | + | Address Resolution Protocol의 줄임말로 주소를 결정짓는 프로토콜이다. IP 주소를 맥 주소로 연결짓는 역할을 하게 되며 이를 활용해 개발된 네트워크 해킹 공격의 예로 [[ARP Spoofing]]이 있다. |
+ | |||
+ | == ARP 헤더 정보 == | ||
+ | [[파일 : Arp-header.gif]] | ||
+ | |||
+ | ARP 헤더는 총 28바이트의 길이를 가지게 된다. | ||
+ | === Hardware Type === | ||
+ | 2 바이트 만큼의 길이를 가지며 네트워크의 유형을 의미한다. 일반적인 Ethernet 환경이라면 00 01 이 들어가 있을 것이다. | ||
+ | === Protocol Type === | ||
+ | 2 바이트 만큼의 길이를 가지며 프로토콜의 종류를 의미한다. IPv4의 경우 08 00 이 들어가 있을 것이다. | ||
+ | === Hardware Size === | ||
+ | 1 바이트 만큼의 길이를 가지며 맥 주소의 길이를 나타낸다. Ethernet 환경이라면 06 이 들어가 있을 것이다. | ||
+ | === Protocol Size === | ||
+ | 1 바이트 만큼의 길이를 가지며 Protocol의 길이를 나타낸다. IPv4 환경이라면 04 가 들어가 있을 것이다. | ||
+ | === <b>Opcode</b> === | ||
+ | <del>이경문 멘토님이 팔을 뻗는가, 그렇지 않는가를 결정짓는 부분</del><br> | ||
+ | 2 바이트만큼의 크기를 가지며 Request일 경우 00 01, Reply의 경우 00 02 가 들어가게 된다. | ||
+ | |||
+ | === Sender Mac Address === | ||
+ | 6 바이트 만큼의 크기로, 송신자의 맥 주소를 나타낸다. | ||
+ | === Sender IP Address === | ||
+ | 4 바이트 만큼의 크기로, 송신자의 IP 주소를 나타낸다. | ||
+ | === Target Mac Address === | ||
+ | 6 바이트 만큼의 크기로, 목적지의 맥 주소를 나타낸다. | ||
+ | === Target IP Address === | ||
+ | 4 바이트 만큼의 크기로, 목적지의 IP 주소를 나타낸다. | ||
+ | |||
+ | == PCAP에서 활용하기 위한 구조체 예시 == | ||
+ | #pragma pack(push, 1) | ||
+ | struct sniff_arp { | ||
+ | u_short arp_htype; /*hardware type*/ | ||
+ | u_short arp_p; /*protocol*/ | ||
+ | u_char arp_hsize; /*hardware size*/ | ||
+ | u_char arp_psize; /*protocol size*/ | ||
+ | u_short arp_opcode; /*opcode*/ | ||
+ | u_char arp_smhost[6]; /*sender mac address*/ | ||
+ | struct in_addr arp_sip; /*sender ip address*/ | ||
+ | u_char arp_dmhost[6]; /*target mac address*/ | ||
+ | struct in_addr arp_dip; /*target ip address*/ | ||
+ | }; | ||
+ | #pragma pack(pop) | ||
== ARP와 [[이경문]] 멘토님== | == ARP와 [[이경문]] 멘토님== | ||
− | 2017년 7월 27일에 ARP를 널리 퍼트리셨다. 이에 영향을 받은 학생들은 팔을 벌릴 때마다 ARP Request!!! 라고 외치는 경향이 있다고 하니 주의하도록 하자. | + | 2017년 7월 27일에 <s>ARP교주님</s>께서 ARP를 널리 퍼트리셨다. 이에 영향을 받은 학생들은 팔을 벌릴 때마다 ARP Request!!! 라고 외치는 경향이 있다고 하니 주의하도록 하자. |
↖ ○ ↗ | ↖ ○ ↗ |
2017년 8월 10일 (목) 19:35 기준 최신판
ARP Request!!! ARP Reply!!!
개요
Address Resolution Protocol의 줄임말로 주소를 결정짓는 프로토콜이다. IP 주소를 맥 주소로 연결짓는 역할을 하게 되며 이를 활용해 개발된 네트워크 해킹 공격의 예로 ARP Spoofing이 있다.
ARP 헤더 정보
ARP 헤더는 총 28바이트의 길이를 가지게 된다.
Hardware Type
2 바이트 만큼의 길이를 가지며 네트워크의 유형을 의미한다. 일반적인 Ethernet 환경이라면 00 01 이 들어가 있을 것이다.
Protocol Type
2 바이트 만큼의 길이를 가지며 프로토콜의 종류를 의미한다. IPv4의 경우 08 00 이 들어가 있을 것이다.
Hardware Size
1 바이트 만큼의 길이를 가지며 맥 주소의 길이를 나타낸다. Ethernet 환경이라면 06 이 들어가 있을 것이다.
Protocol Size
1 바이트 만큼의 길이를 가지며 Protocol의 길이를 나타낸다. IPv4 환경이라면 04 가 들어가 있을 것이다.
Opcode
이경문 멘토님이 팔을 뻗는가, 그렇지 않는가를 결정짓는 부분
2 바이트만큼의 크기를 가지며 Request일 경우 00 01, Reply의 경우 00 02 가 들어가게 된다.
Sender Mac Address
6 바이트 만큼의 크기로, 송신자의 맥 주소를 나타낸다.
Sender IP Address
4 바이트 만큼의 크기로, 송신자의 IP 주소를 나타낸다.
Target Mac Address
6 바이트 만큼의 크기로, 목적지의 맥 주소를 나타낸다.
Target IP Address
4 바이트 만큼의 크기로, 목적지의 IP 주소를 나타낸다.
PCAP에서 활용하기 위한 구조체 예시
#pragma pack(push, 1) struct sniff_arp { u_short arp_htype; /*hardware type*/ u_short arp_p; /*protocol*/ u_char arp_hsize; /*hardware size*/ u_char arp_psize; /*protocol size*/ u_short arp_opcode; /*opcode*/ u_char arp_smhost[6]; /*sender mac address*/ struct in_addr arp_sip; /*sender ip address*/ u_char arp_dmhost[6]; /*target mac address*/ struct in_addr arp_dip; /*target ip address*/ }; #pragma pack(pop)
ARP와 이경문 멘토님
2017년 7월 27일에 ARP교주님께서 ARP를 널리 퍼트리셨다. 이에 영향을 받은 학생들은 팔을 벌릴 때마다 ARP Request!!! 라고 외치는 경향이 있다고 하니 주의하도록 하자.
↖ ○ ↗ ││ ━━ ↙ ↘
ARP.. Request!!
↗ ↖ | O | || ━━ ||
ARP.. Reply!!