NetworkHacking/Network(35)
-
IP Fragment( IP단편화 ) 프로그래밍
1> IP조각화 ( 단편화 )큰 IP패킷들은 MTU ( Maximun Transmission Unit )를 갖는 링크를 통해 전송되려면 적적할 크기의 여러개의 작은 패킷들로 쪼개져서 전송된다최종 목적지에 도달하면 쪼개진 패킷들은 다시 원래의 큰 패킷으로 재조립(Reassembly) 되어진다 2> IPv4 헤더 단편화 제어 필드[ IP Header ] * Identifier ( 2byte ) - 각 조각이 동일한 데이터 그램에 속하면 같은 번호를 가진다 * Flag & Fragment Offset ( 2byte ) - Flag : 분열의 특성을 나타내는 플래그 0 : 뒤 쪽에 조각이 없고 현재 조각이 마지막인 경우 0 1 : 뒤 쪽에 더 많은 조각이 존재한다면 1 - Fragment Offset 최초의 분..
2017.06.30 -
ICMP (Internet Control Message Protocol) 프로그래밍
ICMP- IP프로토콜은 호스트와의 관리 질의를 위한 메커니즘이 없다- 호스트는 간혹 라우터나 다른 호스트가 동작하고 있는지 알 필요가 있다- 그리고 네트워크 관리자는 다른 호스트나 라우터로부터 정보를 획득할 필요가 있다- ICMP 메시지는 오류보고 메시지와 질의 메시지로 나누어진다- 오류보고 메시지 : 라우터나 호스트가 IP패킷을 처리하는 도중에 탐지하는 문제를 보고- 질의 메시지 : 호스트나 네트워크 관리자가 라우터나 다른 호스트로부터 특정 정보를 획득하기 위해 사용 Type(1byte) Code(1byte) Checksum(2byte) Identifier(2byte) Sequence (2byte) Payload(data) [ 질의 메시지 구조] [ 실습 ]에코요청 메시지( type 8 ) 와 에코응..
2017.06.28 -
ARP Spoofing Attack ( MAC주소 이용 )
대표적인 Sniffing기법중의 하나이다ARP Spoofing은 근거리 통신망(LAN) 하에서 주소 결정 프로토콜(ARP) 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법 ( Man In The Middle )데이터 링크 상의 프로토콜인 ARP 프로토콜을 이용하기 때문에 근거리상의 통신에서만 사용할 수 있는 공격 [ 실습1 ] - A에게 ARP 패킷을 보낸다A가 B에게 보내는 데이터를 가로채보자 ( A -> hacker -> B )A ip : 192.168.6.41B ip : 192.168.6.200 [1] #vi arping.py : A의 캐시 테이블을 오염시키는 코드import socketimport timefrom header.eth import *from header...
2017.06.23 -
ARP ( Address Resolution Protocol ) 프로그래밍
1계층은 물리계층이며 2계층은 데이터 링크층이라고 한다DataLink층은 상위계층의 패킷을 전달받아 프레임형태로변환하여 물리계층에 전달한다이 때, 이더넷 헤더에는 상위계층의 프로토콜정보와 src,dst MAC Address정보가 담긴다 헤더 물리계층 MAC 프레임 운영체제에서 볼 수 있는 영역 Preamble SFD DST SRC TYPE DATA PADDING FCS 1 2 3 4 5 6 7 1>Preamble SFD : 볼 수 없는 영역, 물리(NIC)2 ~ 7 : 볼 수 있는 영역2>DST(Destination address) : 프레임을 수신할 MAC주소정보 - 이더넷헤더3>SRC(Source address) : 프레임을 송신한 호스트의 MAC주소정보 - 이더넷헤더4>TYPE : 상위 계층 프로토..
2017.06.22 -
계층별 헤더 프로그래밍
헤더의 종류는 세가지로 나뉘어집니다( Ethernet헤더, IP헤더, UDP(orTCP)헤더 )각각의 헤더 정보를 나누어 클래스로 만든다음 하나로 묶어주겠습니다 ( packet.py )즉, 하나의 packet클래스안에 이더넷,아이피,유디피헤더 클래스들을 포함시켜 한번에 헤더의 각각의 정보를 분류하고 얻을 수 있다 [1] eth.py, udp.py, ip.py 각각의 클래스 생성[2] packet.py에서 세개의 클래스들을 import한다[3] 스니퍼프로그램에서 packet클래스를 이용해 각 정보를 이용한 필터링[4] 원하는 정보만을 출력할 수 있다 [Server-A@ header]# vi eth.py // Eth클래스import struct class Eth: def __init__(self,raw=No..
2017.06.20 -
메서드를 활용한 계층별 헤더 분석
이전 글에서 헤더를 분석할 때 일일히 직접 16진수로 형변환 시켰습니다이는 너무 번거로운 과정이므로 메서드를 이용해서 헤더의 정보를 얻어오는 실습입니다 이전 sniffer프로그램으로 얻어온 데이터를 다시 사용하겠습니다 104 data : b"\xd0~5\xdaO\x1c\x00\x0c)\xf0bs\x08\x00E\x00\x00!\x00\x00@\x00@\x11\xb3\xe2\xc0\xa8\x02\xb3\xc0\xa8\x02\xe6 \xa4\x8e'\x10\x00\riyhello"105 data : b"\x00\x0c)\xf0bs\xd0~5\xdaO\x1c\x08\x00E\x00\x00!\x00\x00@\x00@\x11\xb3\xe2\xc0\xa8\x02\xe6\xc0\xa8\x02\xb3 '\x10\xa4..
2017.06.17