SYN Flooding / Port Scan

2017. 7. 17. 21:28NetworkHacking/Network




< 포트 스캐닝 >

포트스캔이란 운영중인 서버에서 열려있는 TCP/UDP포트를 검색하는 것을 의미한다

TCP Flag값을 변경시켜 각 패킷마다 반응이 어떻게 다르게 나타나는지 확인해보자


[ TCP Half Open스캔 ]

[ 그림1 ]


< SYN패킷을 보냈을 때 서버의 포트가 열려있는 경우 동작방식 >

1> 클라이언트에서 서버로 " SYN " 패킷을 보냈다 ( Flag = 2 )

2> 서버에서 클라이언트에게 " ACK+SYN " 패킷으로 응답이 왔다 ( Flag = 18 )

3> 클라이언트에서 서버로 " RST " 패킷을 보내서 연결을 끊었다 ( Flag = 4 )


[ 그림2 ]


SYN패킷을 보냈을 때 서버의 포트가 닫혀있는 경우 동작방식 >

1> 클라이언트에서 서버로 " SYN " 패킷을 보냈다 ( Flag = 2 )

2> 서버에서 " ACK + RST " 패킷으로 응답이 돌아온다 ( Flag = 20 )


서버와 클라이언트사이에 TCP 세션이 형성되지 않으므로 로그에 기록이 남지 않는다


[ FIN스캔 ]

[ 그림3 ]


< 서버의 포트가 열려있는 경우 동작방식>

1> 클라이언트에서 서버로 " FIN " 패킷을 전송하였다 ( Flag = 1 )

2> 아무런 응답도 오지 않는다


< 서버의 포트가 닫혀있는 경우 동작방식>

1> 클라이언트에서 서버로 " FIN " 패킷을 전송하였다 ( Flag = 1 )

2> 서버에서 클라이언트로 " RST "패킷으로 응답이 돌아간다 ( Flag = 4 )

( ※ 그림3에서는 실습시 중복실행으로 인한 오류같습니다 )

* FIN패킷 뿐아니라 NULL , XMAS 같은 Stealth Scan 의 동작방식은 위와 동일합니다



< SYN Flooding >

[ 그림4 ]


SYN패킷을 전송하면 서버는 SYN+ACK 패킷으로 응답하며 ACK패킷이 들어오길 대기한다

그림1에서 보면 서버에서 계속 SYN+ACK패킷을 내보내는 것이 확인되어진다

이를 이용한 DOS공격이 SYN Flooding공격법이다 ( 아이피주소를 바꾸어서 SYN패킷을 전송한다 )

http://itsaessak.tistory.com/151http://itsaessak.tistory.com/158 프로그래밍방법 참조 )



[ 실행결과 ]

[ 그림5 ]


실행결과 변경된 아이피주소로 서버에 SYN패킷이 전송되어 지는것이 확인된다

아이피를 수많은 컴퓨터에서 랜덤으로 바꿔가며 무수히 많은 SYN패킷을 서버로 보내면 서버에서는 SYN+ACK패킷을 내보내며 ACK패킷을 기다린다

=> 서버에서 과부화가 걸려 서비스에 지장이 생긴다 ( DDoS 공격 )