오늘은 전송계층인 L4의 취약점을 분석해 보겠다.
Layer 4에는 TCP와 UDP가 있다.
오늘은 L4 중에서 UDP의 취약점을 분석해볼 것이다.
* UDP헤더를 이용한 공격 기법
1) 스캐닝
2) UDP Flooding
1. 스캐닝
- 타겟의 정보를 수집하는 방법
- 어떠한 서비스가 열려있는지 ,포트가 열려있는지 확인하는 방법
- 내 컴퓨터에서 netstat 치면 나오는 정보를 알아내는 방법이다.
- 다른 host에서 netstat의 정보를 확인하려는 방법이다.
- 그 중 UDP 스캐닝 기법이 있다. (UDP 통신 방법을 이용해서)
- 해당 포트가 열려있을 때와 닫혀있을 때가 돌아오는 반응이 다르다.
-> 이걸 이용해서 스캐닝을 하는 방법이다.
(확인하려는 정보)
위의 화면을 확인해보려는 것이다. cmd 창에서 netstat 명령어로 확인 할 수 있다.
하지만 상대 host의 정보는 쉽게 확인할 수 없으므로
스캐닝 이란 작업을 한다.
(UDP 스캔 코드)
위는 윈도우 소켓을 이용해서 UDP 패킷을 만들고 전송하는 코드이다.
여기서 원하는 포트번호 50000번을 지정해서 보냈다.
(옆 자리 사람이 서버를 열어둔 상태이다.)
(아무 응답이 없다.)
-> 이렇게 아무 응답이 없다면 포트가 열려있다는 것이다.
그렇다면 닫혀있다면 어떤 반응일까?
(포트가 닫혀있을 때)
포트가 닫혀있을 때는 위와 같이 ICMP 에러 패킷이 전송된다.
우리는 이로써 포트가 닫혀있는 걸 알 수 있다.
정리하면
포트가 열려있으면 -> 아무 응답 없다.
포트가 닫혀있으면 -> ICMP 에러 패킷이 온다.
- 프로토콜에 따라 다르겠지만, 데이터를 서비스에 맞게 설정한 경우 응답이 올 수 있다.
-> 포트가 닫혀있는 경우 icmp error 메세지로 응답이 온다.
- destination unreachable 로 응답이 온다.
- 확인하고자 하는 host의 방화벽이 켜져있으면 icmp응답이 오지 않는다.
- 그래서 방화벽을 끄고 실험했다. 여기서 알 수 있는 것은
방화벽으로 UDP 스캐닝을 막을 수 있다는 것이다.
- 우리는 패킷 수로 체크를 해서 트래픽 수가 많아지면 정확도가 떨어졌다.
- 스캔 툴 : nmap (유명한 대표적인 스캐닝 도구)
* 주의. 스캐닝 아무대나 하면 안된다. (엄연한 불법이다.)
2. UDP헤더를 이용한 DDos 공격 기법
- UDP Flooding 기법 : 대량의 UDP 패킷을 발생시키는 공격기법
-> 공격의 목적이 특정 타겟이 아니라 타겟 네트워크의 대역폭을 대상으로 하는 공격기법이다.
-> 네트워크 전체를 마비시키는 목적이다.
-> 포트가 닫혀있으면 에러메세지를 보낸다.
-> 출발지 ip 주소를 스푸핑한다. (해당 네트워크 안에 있는 IP주소로)
-> 해당 네트워크 내에서 에러메세지가 돌아다닌다.
-> 이 양이 대량이면 그 해당 네트워크의 대역폭을 감소시킬 수 있다.
-> 해결방법은 ICMP 패킷을 안쓰는 것이다. (그렇기 때문에 요즘 ICMP를 안쓴다.)
( 아까 확인했듯이 방화벽이 켜져있으면 ICMP 에러메세지를 만들지 안는다.)
-> 윈도우 소켓으로는 IP 스푸핑이 안된다.
-> L2까지 보내던 방법으로 보내서 확인 할 수 있다. (sleep()을 주어서 조금 지연시켜야한다.)
그렇지 않으면 와이어샤크가 뻗어버린다.
확인해 보겠다.
(UDP Flooding 코드)
코드는 위와 같다.
내가 UDP Flooding 공격을 받은 상황은 다음과 같다.
위 코드의 화면은 아니다.
다른 사람이 나의 컴퓨터를 이용해 167번 컴퓨터를 공격하고 있는 모습이다.
공격자는 공격 대상 host의 ip주소로 출발 ip를 스푸핑 해서
나에게 UDP 패킷을 보낸다.
그리고 나는 닫혀있으므로 공격 대상(피해자)에게 대량의 ICMP 패킷을 보내는 것이다.
위 화면은 sleep 을 걸어두어서 확인 할 수 있는 정도의 양이 나왔다.
실제로 sleep을 안걸었을 때 와이어샤크가 동작을 멈추었다.
'Hacking > Network Hacking' 카테고리의 다른 글
Network Hacking - 리눅스 실습환경 구축,리눅스 방화벽, 와이어샤크 트러블 슈팅 (0) | 2017.01.10 |
---|---|
Network Hacking - TCP Scan (SYN, Stealth, X-MAS) (0) | 2017.01.04 |
Network Hacking - Wireshark, checksum, Dos Attack (0) | 2017.01.02 |
Network Hacking - ICMP (0) | 2016.12.31 |
Network Hacking - 스니퍼 프로그램만들기(2) (포워딩) (0) | 2016.12.30 |