본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

3. 네트워크 해킹과 보안


6.1) DoS


▣ DoS(Denial of Service) 공격의 개념

DoS공격은 다른 해킹에 비하여 비교적 간단.(한줄 명령어)

- 공격 대상이 수용할 수 있는 능력 이상의 정보나 사용자 또는 네트워크의 용량을 초과시켜 비정상적으로 작동하게함. 


▣ DoS 공격의 분류

- 파괴 공격 : 디스크나 데이터, 시스템의 파괴

- 시스템 자원의 고갈 : CPU, 메모리, 디스크의 사용에 과다한 부하를 가중시킴.

- 네트워크 자원의 고갈 : 쓰레기 데이터로 네트워크의 대역폭을 고갈시킴.


▣ DoS 종류

- 1-Tier Attack : 1대1 공격. Attacker가 Victim을 바로 공격.

- 2-Tier Attack : 다수 대 1 공격. 공격자가 다수의 좀비pc를 이용하여 희생자를 공격.

- 3-Tier Attack == DDos (Distributed Denial of Service)

☞ 최상위 공격자를 C&C(Command&Control)이라 부름. 

☞ 최상위 공격자가 행동대장격인 핸들러들을 시켜 똘마니에 해당하는 좀비pc로 희생자를 공격.

☞ 실제로 공격 행위를 한 건 좀비pc이므로 C&C를 추적하기 어려움.


6.2) Ping of Death


- Ping을 이용하여 ICMP 패킷을 정상적인 크기보다 크게 만들어 전송.

- 큰 패킷은 전송 동안 MTU로 인해 단편화되어 아주 작은 프래그먼트로 전송됨.

- 희생자 컴퓨터는 이 모든 작은 프래그먼트들을 모두 처리해야하기때문에 많은 부하가 걸림.

- 명령어(칼리) : hping3 -1 희생자IP -d 100000

☞ -1 : ICMP 메시지를 보내겠다.

☞ -d : 데이터

☞ 100000 : data size



- 그러나 희생자의 컴퓨터는 인터넷이 잘 됨.

☞ 요즘은 컴퓨터 처리력이 굉장히 좋아 모든 패킷을 처리해줌.

- 보안 방법

☞ ping 메시지의 크기가 클 이유가 없으니 OS단에서 길이를 정의해줌.

☞ IDS/IPS 사용



6.3) SYN Flooding


- SYN을 넘치게 함. 즉, 클라이언트가 서버의 SYN Queue를 overflow 시켜서 서버를 오동작 시키거나 crash 시킴.

- 명령어(칼리) : hping3 서버IP(희생자) -a 존재하지않는IP -p 80 -S -i u10000

☞ 존재하지않는IP : ping으로 아무곳이나 보내보고 답이없는 곳을 설정.

☞ -p : protocol

☞ -S : SYN 메시지

☞ -i : interval / u10000 : 1초에 약 10개정도

- 하지만 현실적으로는 엄청 많은 SYN 메시지를 전송해야하기때문에 많은 공격자가 해야 효과적임.

- 보안 방안

☞ ACK 패킷이 돌아오는 시간을 체크하여 오래 걸리면 Queue를 자동으로 비움.

☞ SYN 패킷의 간격을 살펴 미친듯이 들어오면 차단.


6.4) TearDrop


- 눈물처럼 똑똑 떨어지게 하는 공격.

- 클라이언트가 패킷을 세그멘테이션 시 offset(쪼개어지는 숫자)을 어긋나도록 수정.

- 대상 서버가 세그멘테이션 된 패킷을 재조합 하지 못하도록 하여 장애를 발생시키는 공격 기법.

- 심하면 블루 스크린이 뜸.

[출처 : http://www.netforpro.ir/]


- 하지만 이 또한 현재 버전의 OS들에선 불가하다 쪼개어지는 offset이 다르면 버리도록 설정되어있음.

- 보안 방안

☞ System Security upgrade

☞ Using IDS/IPS


6.5) Land Attack


- Loop를 만들어서 뻗게함.

- Src.IP와 Dst.IP를 같게 만들어 루핑이 발생하며 가용성 저하됨. => SYN Flooding

- 명령어(칼리) : hping3 dst.IP -a src.IP -s src.port -p dst.port -S -c 100

☞ -c : count

- 보안 방안

☞ src.IP와 dst.IP가 같은지 체크.

☞ Using IDS/IPS


7.1) DrDoS (Distributed Reflection DoS : 분산 반사 서비스 거부 공격)


7.2) Smurf Attack


- 공격자가 ICMP를 조작하여 한번에 많은 양의 ICMP Reply를 희생자에게 보내는 공격.

- 공격은 A가 했지만 B가 죽음.

- ICMP Request 메시지의 src.IP를 희생자의 IP로 조작. 그 후 브로드캐스트로 전송.

- 전체로부터의 ICMP Reply 메시지는 희생자의 IP를 dst.IP로 설정 후 전송됨.

- 전체 망에 20대가 있을 시, 공격자가 100개의 Request를 보내도 희생자는 2000개의 Reply를 받음.

☞ 파급력이 엄청남.

- 명령어 : hping3 브로드캐스트IP -a 희생자IP --icmp --flood

- 보안 방안

☞ dst.IP가 브로드캐스트인지 확인.

☞ Using IDS/IPS


7.3) NTP DrDoS Attack


- 공격자가 NTP 서버의 MONLIST 취약점을 이용해 공격 대상에게 DNS응답을 보내는 공격.

- NTP 서버는 시각정보를 알려주는 서버임.

- MONLIST는 목록을 조회한 최대 600여개의 호스트들을 저장해놓은 목록임. 고로 MONLIST조회요청을 하면 600개의 목록이 날라옴.

- 이 때, src.IP를 희생자의 IP로 적으면 MONLIST가 희생자의 컴퓨터로 가니 파급력이 엄청남.


- NTP 서버 설치 (CentOS)

# yum -y install ntp

# vi /etc/ntp.conf

☞ restrict default와 restrict -6 ... 두 줄을 주석처리함.

☞ 위의 두 줄은 몬리스트 취약점을 막아주는 설정이기에 실습을 위해 주석처리.

# service ntpd restart


- 해킹에 필요한 패킷 수집 (칼리)

# wireshark  : 켜놓기

# ntpdc [NTP 서버의 IP]

ntpdc > monlist  : 몬리스트 조회

wireshark에서 ntp && src.ip == 칼리IP && dst.ip == NTP 서버 IP 인 패킷하나를 export함.




- 공격용 패킷 제작 (칼리)

: src.ip를 희생자의 ip로 변경.

# tcprewrite -i 정상패킷파일이름 -o 공격용패킷이름 --srcipmap 기존src.ip/32:희생자ip/32 -C -v

☞ --srcipmap : src.ip 변경

☞ /32 : subnet mask. 원래는 24로 해야하나 오류가 나기에 32로 사용.

☞ -C : 패킷 헤더 길이 재계산

☞ -v :  진행메시지 출력


- 패킷 재생=전송 (칼리)

# tcpreplay --loop=패킷재생횟수 --intf1=eth0 공격패킷이름

- 보안 방안

☞ NTP 서버에서 monlist를 사용하지 않거나 관리자만 사용가능하도록 재정의

☞ Using IDS/IPS


8.1) DDoS


▣ DDoS란?

- DDoS는 DoS 공격보다 효과적이며 강력하게 공격하기 위한 방법.

- 여러대의 장비를 이용하여 다중공격을 함.


▣ DDoS 종류

- 네트워크 resource 고갈형 공격

- 호스트 resource 고갈형 공격


8.2) Slowloris DoS


- 호스트 리소스 공격에 해당.

- 약점을 이용. (약점 : 고칠수없음 / 취약점 : 고칠수있음)

- 아파치 웹서버를 겨냥.

- Low Rate DDoS(저대역 DDoS : 패킷발생률이 초당 2000~3000 사이로 적음)

- 정상적인 get 접속 요청 후 마지막에 하나의 CR-LF(개행문자)를 하지 않음. --> 정상은 원래 2번 CR-LF를 전송

- 서버에서 마지막 개행문자가 올때까지 대기한 후 timeout에 도달하거나 무의미한 헤더를 지속적으로 전송.

- 계속해서 하나의 CR-LF가 담긴 패킷을 전송할 시, 다른 사람이 서비스 제공을 받지 못함.

☞ CR-LF == X-a: b

- 대응 방법

☞ apache만을 목표로 하기 때문에 다음과 같은 대응을 할 수 있음.

☞ Timeout 설정 변경(가장 현실적인 방법) : 연속된 패킷이 설정된 시간내로 오지 않을 경우 종료.

☞ netstat -na | grep ESTABLISHED : 연결이 많은 IP에 대해 차단. 

: 공격진행시 로그는 남지 않아도 netstat으로는 보이나 IP 계속 바꾸면 우회 가능.

☞ iptables의 connlimit(커넥션 제한) 설정

: 이 또한 위와 같은 방법으로 우회 가능.







i2sec 대구지점 23기 수료생.