- NEW초롱이의 하루
- kisa
- 길은 가면, 뒤에 있다
- C언어 예술가
- Zer0 day - Zer0 day
- Information Security
- Secure-EDU
- 앙큼한유채's 일상 Story
- Library of Ezbeat (잠정 폐쇄)
- The Factory
- 안드
- 모후모후의 커뮤니티
- 공학도의 잡다한 시선
- 안드2
- IT속에 코코아
- IP주소검색(whois)
- IP주소검색(좌표포함)
- 소프트웨어 경력 관리
- 해저 케이블 지도
- MAC주소검색
- IANA
- 포트번호검색
- 자신의IP확인
- 웹페이퍼캡처
- 나의패스워드보안등급
- 웹 취약점 분석
- IT용어정리
- GitHub
- 라이브러리 모음
- 웹마당넷
- 시스템콜참고
- BCD 변환
- 보안뉴스
- 코딩도장(C, Python)
- 백준알고리즘
- 코딩테스트 연습
- 웹 사이트 테스트
- 스크립트꾸미기
- ctf대회목록
- 전자신문
- hash 크랙
- CVE
- 도메인등록
- N클라우드
- BugBountyList
- 칼리공식사이트
- CR4FTING BOX
- 아스키코드 변환
- 웹 사이트 통계 및 평가
- PDF변환
- AWS 및 클라우드 정보
- 가상화 및 서버관련
- 티오리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- docker
- GPIO
- GUI
- Shell script
- 리눅스
- 클라우드
- ACL
- synology
- 프로젝트
- 네트워크
- RaspberryPi
- centos docker
- 안드로이드
- 그라파나
- LEVIATHAN
- 자바
- Android
- Linux
- JSP
- nginx
- 라즈베리파이
- 메소드
- 쉘 스크립트
- 쉘 스크립트 기초
- Python
- API
- Java
- System
- 쉘 스크립트 if문
- Tkinter
- Today
- Total
IT창고
Network APR(Address Resolution Protocol) 본문
ARP(Address Resolution Protocol)는 네트워크를 하기전 상대의 MAC주소를 알아내서 통신을 할수있게하는 프로토콜입니다.
타입은 0x0806으로 리눅스에서는 ping을 보낸다고 할때 보내기전 ARP를 보내 mac cache table에 정보를 수집합니다.
윈도우의 경우에는 수시로 mac주소를 조회해서 arp를 수집합니다.
ARP의 헤더는 위와 같습니다. 크기는 고정크기를 가집니다.
00:0c:29:cc:aa:71 -> ff:ff:ff:ff:ff:ff
이더넷 헤더 : b'\xff\xff\xff\xff\xff\xff\x00\x0c)\xcc\xaaq\x08\x06'
- 도착지 mac주소 : \xff\xff\xff\xff\xff\xff
- 출발지 mac주소 : \x00\x0c)\xcc\xaaq
- 이더넷 타입 : \x08\x06' -> 0x0806은 ARP프로토콜
ARP 헤더 : b'\x00\x01\x08\x00\x06\x04\x00\x01\x00\x0c)\xcc\xaaq\xc0\xa8\x01\x08\x00\x00\x00\x00\x00\x00\xc0\xa8\x01\t\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x01' : hw type -> eth, token
b'\x08\x00' : protocol type: ipv4, ipv6, ....
b'\x06' : 하드웨어 주소의 길이
b'\x04' : 프로토콜 주소의 길이
b '\x00\x01' : opcode(request, reply)
b'\x00\x0c)\xcc\xaaq' b'\xc0\xa8\x01\x08'
sender mac address sender ip address
b'\00\x00\x00\x00\x00\x00' b'\xc0\xa8\x01\t'
target mac address target ip address
ARP헤더의 정보를 바탕으로 파이썬 클래스로 따로 만들어보았습니다.
==============================================
==============================================
위의 만든 클래스를 사용하여 쉽게 ARP헤더를 만들어보았습니다.
이렇게 만든 ARP프로토콜은 근거리 네트워크에서는 신호를 주면 무조건 응답을 해주게 되어있습니다.
위에서 만든 ARP로 다른 리눅스에게 ARP통신을 해보겠습니다.
확인을 해보면 지금 ARP통신을 보낸 PC는 192.168.1.9입니다. opcode를 확인하면 request응답을 확인해볼수있습니다. 192.168.1.2는 윈도우 PC로서 윈도우는 arp cache table를 수시로 수집을 합니다.
==============================================
==============================================
'보안 > Network' 카테고리의 다른 글
Network ICMP(Internet Contorl Message Protocol) (0) | 2018.03.27 |
---|---|
Network ARP Cache Poisoning (0) | 2018.03.23 |
Network 각 계층별 헤더 파이썬모듈 정리 (0) | 2018.03.20 |
Network Scanning Program (0) | 2018.03.19 |
Network TCP 클라이언트/서버 프로그램 (0) | 2018.03.16 |