udp flooding, syn flooding 공격 실습

공격기법 및 탐지|2021. 1. 6. 10:39

metasploitable2 -linux

kali linux 

 

vmware에 2개띄운뒤

 

bridge 로 네트워크 구성을 한다 

 

그리고 핑이 잘 통하는지 확인을 한다

 

 

 

 

 

 

 

그리고  이제 ip로 접속한다

 

 

 

 

그뒤에 칼리에서 wireshark를 킨다

metasploitable 의 아이피로 잡는다.

 

 

 

 

 

=======================================

 

 

udp flooding

 

 

 

 

 

 

 

톰캣 서비스를 한번 공격을해보려고 한다.

 

 

 

 

 

 

칼리터미널에서

 

apt-get install hping3*

 

 

 

 

 

 

 

 

hping3 192.168.1.80 -S --flood --rand-source -p 8180 -d 2000

 

 

-s 는 출발지 포트지정

목적지 포트 무작위

단편화공격

1초에 10 패킷 (-u10000)

1초에 1000 패킷 (-u100)

 

무수히 많은 패킷들이 wireshark에서 랜덤소스로 잡히게되고

 

 

이런식으로하니 tomcat 에서는 아예 패킷때문에

먹통이되고 연결이 불가능하게됬다. 

 

이공격을하면 거의 전반적으로 다 느려진다

뒤에 패킷의 크기만 조절해주면될거같다

 

 

 

80번포트에도 한번해보고 이제 다른곳을해보세요

 

 

 

 

====================================================

 

 

syn flooding 공격

 

 

tcp 3 way handshaking의 취약점을 이용하여 서버의 backlog query를 가득차게

만들어서 정상 사용자의 접속을 방해하는공격

 

 

공격자는 출발지 ip를 조작하여 syn 패킷을 공격대상 서버로 보낸다.

 

syn 패킷을 받은

서버는 조작한 ip로 syn-ack 패킷을 보내고 backlog queue에 연결을 준비한다.

 

하지만 조작된 ip로 syn-ack를 받은 서버는 ack 응답을 보내주지 않으므로 

backlog query가 가득찬 상태를유지한다.

 

 

대응방안

1.syncookie설정 syn 패킷에 cookie를 삽입하여 인증기능을 구현한다

 

2.first syn drop 첫번쨰 syn 패킷은 무조건 drop한다.

정상적인서버라면 syn패킷을 재전송하기때문에 악성행위자의 접속시도를 막을수있다




 

똑같이 진행을하며 wireshark를 키고

 

 

칼리에서 메타스플로잇으로 공격

 

hping3 192.168.1.80 -S --flood --rand-source -p 8180 -d 1000

 

-출발지 포트 지정-s

목적지 포트 무작위

단편화 공격 

 

 

================

단편화란 (100 mbyte 파일을 잘게 쪼개서 1500byte=1.5kyte=0.0015Mbyte)로 쪼갠다 

헤더는 20byte 바디가 1480byte   

1500byte 이상을 강제로 집어넣는다라고 가정했을때

예시 2000byte를 집어넣었을떄는 패킷이 터진다.

 

1500byte이상만 넣으면 단편화 공격이된다.

 

 

==================

 

1초에 10 패킷 (-u10000)

1초에 1000 패킷 (-u100)

 

 

메타스플로잇에서

 

netstat -an을 친다

내 피시랑연결된 서버네트워크 상태

(안되면 윈도우에서 -> 메타스플로잇으로 telnet 접속해서 확인합니다.

 

netstat -an 모든 연결된 것들을 숫자화 시킨다.

 

 

 

 

 syn_received 가 꽉차있으므로

사용자가 이것사이로 비집고 들어갈수가없기떄문에 서버가 다운이된다.

 

 

 

 

 

 

 

hping3 192.168.1.80 -S --flood --rand-source -p 8180 -d 2000

을 하게되면

 

-d 뒤에 2000을넣으면

 

총 2000byte를 보내겠다는게아니라 패킷하나에 2000byte를 꾸겨넣겠다는 뜻입니다

 

패킷단위에 wireshark 한줄에 1500byte가 넘으면 패킷이 터지는것입니다

 

 

 

이렇게 조각이나버리는 것을 알수있다 (사이즈를 더키우면 터진다(1500byte이상넣을시)

 

 

 

 

 

 

댓글()