ARP 소켓 프로그래밍
ARP
- Layer 3계층(IP Address)주소를 사용해서 Layer 2계층(MAC Address)주소를 학습하는 프로토콜
기본 이론 참고 : http://security04.tistory.com/24
ARP 헤더
1) H/W Type (2바이트) : ethernet = 1
2) Protocol type (2바이트) : IPv4 (0x0800) IPv6(0x86DD)
3) H/W size (1바이트) : 하드웨어 주소의 크기 (ethernet size : 6)
4) Protocol size (1바이트) : 프로토콜 주소의 크기 (IPv4 protocol size : 4)
5) opcode (2바이트) : ARP type (request : 01, reply : 02)
6) sender mac address (6바이트) : 보내는 사람의 하드웨어 주소
7) sender ip address (4바이트) : 보내는 사람의 IP 주소
8) target mac address (6바이트) : 받는 사람의 하드웨어 주소
9) target ip address (4바이트) : 받는 사람의 IP 주소
10) 패딩
[ vi sniffer.py ]
[ vi mypacket.py ]
[ 결과창 ]
arp 명령어를 통해 arp테이블이 현재 어떻게 구성되어있는지 확인한 상태에서 sniffer를 열고, ping을 보내주게 된 뒤에 다시 arp로 확인하게 되면 ping을 보냈던 ip주소가 arp테이블에 추가된 것을 확인해 볼 수 있습니다.
처음에 내 mac주소에서 브로드캐스트로 패킷을 보낸뒤에 해당되는 패킷이 나에게 다시 보낸다는 것을 확인해 볼 수 있습니다.
'SECURITY > Network' 카테고리의 다른 글
IP 소켓프로그래밍 (0) | 2017.05.10 |
---|---|
ARP 공격 (0) | 2017.05.04 |
이더넷 소켓 프로그래밍 (0) | 2017.04.28 |
IP 로우 소켓 프로그래밍 (0) | 2017.04.27 |
리눅스 네트워크 설정 (1) | 2017.04.27 |