티스토리 뷰



>> 이너뎃(Ethernet) 헤더 + 아이피(IP) 헤더 사용 

Ethernet 헤더 : 같은 네트워크 상에서 Mac 주소를 이용한 통신 

IP 헤더 : 다른 네트워크 상에 있는 호스트와 ip주소를 사용하여 통신 





1. ip packet 을 통해서 전달할 데이터

 데이터 : ICMP ( ping )

 

ICMP 메세지는 오류보고 메세지와 질의 메세지로 나뉨 

오류보고 메세지 : 라우터나 호스트가 IP 패킷을 처리하는 도중에 탐지하는 문제를 보고 

질의 메세지 : 호스트나 네트워크 관리자가 라우터나 다른 호스트로부터 특정 정보를 획득하기 위해 사용 


2. ICMP 헤더

 - 매우 단순한 구조
 - 원래는 네트워크 상에 에러를 제어할 목적으로 나왔으나 현재는 잘 사용되지 않는다
 - Internet Contorl Message Protocol

     --> ping은 icmp이지만 icmp는 ping이 아니다

 icmp == ping


     type(1)+code(1)+checksum(2)
     =4byte
 
1) 공통헤더
 
 -type (1byte)
 -code(1byte)
 -chksum(2byte)


2) 타입별 헤더


 - identifier(2byte)
 - sequencenumber(2byte)
 - payload(가변길이)


Type(1byte) 

 Code(1byte)

 checksum (2byte)

id(2byte) 

 sequncenumber(2byte)

payloade(가변길이) 


 

* 데이터를 보내면 에코 리플레이가 도착하면 정상동작
   도착하지 않으면 정상동작 x


[ #vi ip.py ]

( 클래스정의 , set 함수 정의 )




확인 ) 


#python3 -i ip.py 


>>> ip=Ip()
>>> ip.get_header()
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> ip.set_ver(4)
>>> ip.set_len(20)
>>> ip.set_total_len(20+30)
>>> ip.set_id(1234)
>>> ip.set_ttl(64)
>>> ip.set_type(1)
>>> ip.set_flag(0)
>>> ip.set_offset(0)
>>> ip.set_src('192.168.219.106')
>>> ip.set_dst('192.168.219.180')
>>> ip.get_header()
b'E\x00\x002\x04\xd2\x00\x00@\x01\x00\x00\xc0\xa8\xdbj\xc0\xa8\xdb\xb4'
>>> len(ip.get_header())
20   # 총 바이트의 길이가 20인것을 확인 할 수 있다 



[#vi ping.py]



[#vi sniffer2.py]




<실행 결과>


1))

#python3 sniffer2.py

--> 192.168.219.106 에서 siniffer.py 파일을 실행시킨다

 

#python3 ping.py 

--> 192.168.219.106 에서 ping.py 파일을 실행 시킨다 






2)) 

ping으로 보냈을 떄 

#python3 sniffer2.py

#ping 192.168.219.180  





<<실습>>


▶ DNS (168.126.63.1) 서버에서 응답 받아오기 


호스트 -> 라우터 -> 다른 네트워크 상의 호스트 

: 패킷이 라우터를 통해 외부로 빠져나온후 응답 



--> DNS의 맥 어드레스의 서버를 알수 없으므로 라우터의 맥 어드레스를 받아온다 

>> cmd 에서 arp -a 사용 

>> 게이트 웨이의 맥어드래스를 찾음 ( 192.168.219.1 )


[ #vi ping.py ]  



[ # vi sniffer2.py ]




< 실행 결과 >


#python3 sniffer2.py 

--> 실행 시켜 놓는다 


#python3 ping2.py 파일 실행 



'Network Security > Network' 카테고리의 다른 글

checksum 계산  (0) 2017.12.31
IP 단편화 ( Fragment )  (0) 2017.12.28
ARP Spoofing 공격  (0) 2017.12.23
ARP (Address Resolution Protocol) 프로그래밍  (0) 2017.12.21
Layer2 >>Ethernet Header 통신  (0) 2017.12.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
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
글 보관함