본문 바로가기

Network Hacking

15일차] UDP 공격 기법, TCP Header

1. 포트 스캔

포트스캔은 UDP패킷을 이용해서 서버의 열린 포트를 파악하는 것이다. 예를들어, 서버에 847번의 포트가 열려있다고 가정하자. 그럼 다음 예문처럼  UDP패킷에 846번의 포트로 전달했을 경우 서버에서는 ICMP를 통해 에러메시지를 전달해 준다. 정상적은 847번의 포트로 패킷을 전달하면 아무 응답이 오지 않는다. 이 점을 이용해서 포트의 번호를 0 ~ 65535번까지이기 때문에 에러메시지를 통해서 열린 포트를 유추 할 수 있다. 하지만 응답이 안오는 이유가 여러 상황으로 있기 때문에 완벽하게 확인하는 것은 불가능하다. 하지만 이것을 통해 해킹의 중요 요소인 정보 수집이 가능하다.

 

1). raw_udp

 

 

 

2). sniffer을 통해 error massege를 확인

 

 

 

3). 잘못된 포트번호로 패킷을 전송하자 다음과 같이 에러 메시지를 돌려주는 것을 확인 하였다.

 

 


2. DDOS 공격(Distributed Dos)

서비스 거부 공격 또는 도스는 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격이다. 위의 그림처럼 ATTACKER가 감염된 좀비피시를 통해 분산적으로 타겟에 서비스 거부 공격을 하는 것이다. 하지만 이 공격은 좀비피시하나만 잡아 역추적해보면 쉽게 Attacker를 감지 할 수 있다.

 

이 다음 나온 것이 DRDoS 공격이다. 여기서 R은 Reflect의 약자로서 반사체를 뜻한다. TCP/IP 기반의 네트워크 패킷 헤더에는 기본적으로 송신자 IP와 수신자 IP가 입력되는데 여기서 중요한 것은 수신자의 입장에서는 실제로 패킷을 보낸 송신자가 정말로 헤더에 쓰여있는 송신자가 맞는지 1회 수신만으로는 확인할 방법이 없다. DNS서버라던가 WEB서버 등이 반사체 역활을 하도록 이용해서 출발지 IP Spoofing을 통해 이러한 서버에 요청을 해서 그 응답이 Spoofing한 Ip(Victim)에 오게 하는 것이다. 이는 Attacker의 은닉에 적합하다.

 

만들어 볼 UDP Fooding 공격은 특정 타겟을 대상으로 하는 것이 아니라 네트워크 대역폭을 대상으로 하는 공격이다. Attacker가 target의 ip를 src ip로 spoofing하여 해당 네크워크 대역 아무 서버에게 보낸다. 여기서 중요한 것은 없는 port번호를 보내는 것이다. 그렇게 된다면 서버입장에서  ICMP패킷을 통해 계속 에러 메시지를 보내줘야하기 때문에 패킷 트레픽이 생길 것이다. 예문을 보자.!

# Target Server 인 '192.168.3.118'로 ip를 spoofing하고 105번에 보낸다. while 문을 통해 계속해서 패킷을 보낸다. Target PC는 본인의 의지와는 상관없이 계속해서 에러메시지를 받게 된다.

 


3. TCP Header

# https://ko.wikipedia.org/wiki/%EC%A0%84%EC%86%A1_%EC%A0%9C%EC%96%B4_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C    TCP Header는 위키백과에 잘 정의되어 있다.!! 바로 Class로 정의 해보자.