본문 바로가기
반응형

프로그래밍/NETWORK HACKING32

[네트워크 보안] TCP 헤더 / 클래스 정의 TCP 헤더 / 클래스 정의에 대해서 정리한다. L4: UDP, TCP - 흐름제어, 오류제어, ... - 주소체계: 포트(port), well-known port * well-known port ssh: 22 telnet: 23 ftp: 21 dns: 53 http: 80 imap: 143 pop3: 110 mysql: 3306 ... - 기본 포트이긴하지만 서비스 설정에 따라서 달라질수 있다. - 리눅스는 /etc/services에서 well-known port 확인 가능하다. TCP( Transmission Control Protocol ): 전송 제어 프로토콜 - 신뢰기반 - UDP에 비하면 느리다. 1). 출발지 포트(2바이트)2). 도착지 포트(2바이트)3). 시퀀스 넘버(4바이트)4). Ac.. 2017. 7. 12.
[네트워크 보안] UDP를 이용한 DDOS - UDP Flooding UDP를 이용한 DDOS - UDP Flooding에 대해서 정리한다. udp scanning 1. 열린 포트: 응답이 없거나, 있거나 2. 닫힌 포트: icmp 에러 메시지 3. 응답이 없으면 포트가 정말 열려있지 않은가? - 방화벽에 의해서 차단 되었거나 - 네트워크 장애 * 네트워크는 여러가지 변수가 있기 때문에 응답이 없다고 100% 열려있는 포트라고 확신할 순 없다!! DDOS( Distribute Denial of Service ) * UDP Flooding - 출발지 IP Spoofing을 해서 닫힌 포트로 UDP 패킷을 계속 보내게 되면 서로간의 불필요한 트래픽이 쌓여 네트워크가 마비된다. - 목표 하나를 대상으로 하는 공격이 아닌 네트워크 대역폭을 대상으로 한다. ( 불필요한 트래픽을 발.. 2017. 7. 5.
[네트워크 보안] udp 체크섬 계산 / 포트 스캐닝 udp 체크섬 계산 / 포트 스캐닝에 대해서 정리한다. udp chksum( 체크섬 ) - udp 헤더만 가지고 체크섬을 계산하지 않는다. - ip 헤더의 일부 필드를 같이 포함해서 계산한다. - 체크섬을 계산하기 위한 pseudo header를 만들어서 계산 - icmp 헤더, ip 헤더의 경우 체크섬 계산 1. icmp 헤더를 만든다. -> 체크섬 계산 2. ip 헤더를 만든다. -> 체크섬 계산 3. eth 헤더를 만든다. - udp, tcp 헤더의 경우 체크섬 계산 1. data -> 문자열(ex. "hello") 2. udp 헤더를 만든다. -> 체크섬을 계산할 수 없다. ( ip 헤더의 일부를 포함해서 계산 ) 3. ip 헤더를 만든다. -> 체크섬을 계산 3.5 pseudo 헤더를 만든다. .. 2017. 7. 4.
[네트워크 보안] IP Fragment( 단편화 ) IP Fragment( 단편화 )에 대해서 정리한다. IP Fragmentation( 단편화 ) 3계층 - 최대전송사이즈(MTU) - Maximum Transfer Unit: 1500byte ( Default 값 ) - ip packet의 최소 사이즈: 8byte identification - 단편화된 아이피 패킷을 식별 flag - 000: 단편화(분할)되지 않은 경우 - 010: 단편화를 하지 않는 경우 - 001: 단편화가 된 경우( 이 뒤에 단편화된 패킷이 존재 ) fragment offset - 단편화 된 패킷의 원래 위치( 시작 위치 ) ! 도착지에서 재조립 하기 위해 필요한 정보 MTU: 1500 -> 실제 데이터의 크기: 1480 -> 전체 프레임의 크기: 1514 실제 데이터의 크기 = .. 2017. 7. 2.
[네트워크 보안] 2계층, 3계층 개념 및 프로토콜 종류 / ip헤더 체크섬 계산 / DNS서버에 에코 리퀘스트 전송 실습 2계층, 3계층 개념 및 프로토콜 종류 / ip헤더 체크섬 계산 / DNS서버에 에코 리퀘스트 전송 실습에 대해서 정리한다. 2계층의 대표적인 통신 프로토콜 * Ethernet * ARP 1. 2계층에서는 이더넷 헤더를 통해 통신 -> 2계층의 스위치(L2 S/W)가 이더넷 헤더를 참조해서 패킷을 교환해준다. 2. 호스트는 상대방의 맥 어드레스를 알아야만 통신이 가능 -> ARP 캐시 테이블을 참조하여 전송하려는 호스트를 확인 3. ARP 캐시 테이블을 오염시키는 방법으로 목적지를 속일 수 있었다. ( ARP Cache Poisoning ) - ARP Spoofing: sniffing, MITM attack - S/W jamming: 맥 테이블을 공격하는 방법( 맥 테이블을 꽉 채우면 스위치가 dummy.. 2017. 7. 2.
[네트워크 보안] ARP Cache Poisoning을 이용한 ARP Spoofing * 수동 아이피 설정 -/etc/sysconfig/network-scripts/ifcfg-eth0 BOOT=static IPADDR=192.168.6.x NETMASK GATEWAY DNS1 DNS2 네트워크 아이디: 192.168.6.0 넷마스크: 255.255.255.0 게이트웨이: 192.168.6.1 ARP Cache Poisoning - 타겟 호스트의 ARP 캐시 테이블을 오염 ARP Spoofing - 대표적인 sniffing 기법중에 하나 - MITM( Man In the Middle )Attack 양방향으로 통신 가로채기( ARP Spoofing(양방향) 실습 - 실습환경: linux ) - arping.py, arping2.py, sniffer.py, fragrouter툴을 이용해서 실습.. 2017. 6. 23.
[네트워크 보안] ARP 클래스 setter 추가 / arping.py ARP 클래스 setter 추가 / arping.py에 대해서 정리한다. 1. ARP Request 2. ARP Reply eth + arp header * 헤더의 구조는 동일 * ARP Class에 setter를 추가 ARP 요청이 왔을때 이게 진짜 sender가 보낸걸까? * ARP 헤더 내용(sender ip, sender_mac, ...)을 고쳐서 보내도 인증을 하지 않는 부분을 이용해 Cache Poisoning이 가능 * 최근에는 악성코드를 패딩에 실어서 보내는 방법도 사용한다고 한다. ( 보통 탐지 프로그램이 패딩을 잘라서 검사한다는 부분을 이용한 것 ) - ARP 클래스 setter 추가 / arping.py ( arp.py / sniffer.py에 추가된 내용은 분홍색으로 구분 ) * A.. 2017. 6. 22.
[네트워크 보안] ARP / 파이썬3 ARP 클래스 정의 및 packet.py, sniffer.py 수정 ARP / 파이썬3 ARP 클래스 정의 및 packet.py, sniffer.py 수정에 대해서 정리한다. 1계층: 물리계층 2계층: 데이터-링크 계층 PDU: frame, 이더넷 프레임 * 이더넷 헤더 DST + SRC + TYPE + DATA 7 ~ 2 계층: 볼 수 있는 영역, 운영체제 1 계층: 볼 수 없는 영역, 물리(NIC) ( Preamble, SFD, FCS, Padding ) * Preamble, SFD, FCS, Padding 같은 헤더들은 NIC 장치를 지날때 붙는데 수신 패킷에는 패딩이 붙고 송신 패킷에는 패딩이 붙지 않는걸 보면 알 수 있다. * 최소 프레임 크기 : 64바이트 (헤더 14 + 데이터 46 + FCS 4) ( 스니퍼를 이용해서 보면 FCS는 보이지 않고 데이터에 남.. 2017. 6. 22.