* TCP SYN Flooding 공격
- 고전적인 DDOS, DOS 공격 기법
- 아주 잘 알려진 공격기법이다.
- 대량의 TCP SYN packet을 이용해서 타겟 서버의 서비스를 더이상 사용할 수 없도록
만드는 공격 기법이다.
TCP SYN Flooding 공격툴 작성
1) TCP SYN Packet을 작성
- SYN,ACK 패킷을 수신한 이후에 ACK를 보내지 않고,
서버와 연결을 맺지 않는게 핵심이다.
2) 반복해서 서버에 요청
3) IP Spoofing까지 해주어야한다.
먼저 우리가 만든 ftp 서버를 열어준다.
우리가 이 서버로 공격을 할 것이다.
명령어 service vsftpd start
그 후 netstat -ant
21번 포트가 열려있는 것을 확인 할 수 있다.
(서버 오픈)
SYN 패킷 전송하는 프로그램은
우리가 전에 TCP Half Scan에서 만들었던 것을 이용할 것이다.
아래 코드는
조금 수정한 코드다.
목적지 포트번호를 21번으로 맞춘다.
(코드)
이렇게 만든후 패킷을 보내보았다.
와이어샤크에서 패킷을 확인해보았다.
(패킷 캡쳐)
(SYN_RECV)
서버 입장에서
SYN_RECV 상태로 바뀌었다. 패킷이 접수되고 Established로 넘어가지 않은 것은
내가 ACK 응답을 안보냈기 때문에
이 상태가 유지되는 것이다.
이 상태를 더 만들어주기위해
다른 패킷들을 보내는 것이다.
패킷을 반복적으로 보내주었다.
와이어샤크로 그 상황을 캡쳐했다.
(캡쳐 상황)
(결과 화면)
-> 이러한 여러 상태들이 만들어지지 않았다.
??
이유는 IP 하나에 하나씩 연결된다.
그렇기 때문에
IP 스푸핑을 해주어서 여러 IP주소로 보내줄 것이다.
IP를 랜덤으로 보내주기 위해서
random모듈을 이용할 것이다.
random.randrange를 이용해서
랜덤수를 이용할 것이다.
(random.range() 테스트)
랜덤모듈을 이용해서
난수를 뽑는 모습이다.
(IP스푸핑 코드)
IP스푸핑을 위해 a,b,c,d 에 랜덤수를 생성해서
출발지 IP주소에 넣어주었다.
그리고 체크섬을 다시 계산해야해서
반복문 안에 빼서 넣어주었다.
실행한 결과
서버의 모습이다.
(피해모습)
(피해모습)
피해모습을 보면 수많은 SYN_RECV 상태로 여러 수많이 남아있는 모습이다.
Dos 로는 여기까지지만
DDos를 이용하면 서버를 다운시킬 수 있다.
:)
'Hacking > Network Hacking' 카테고리의 다른 글
Network Hacking - HTTP (request-line, status-line) (0) | 2017.01.23 |
---|---|
Network Hacking - FTP (File Transfer Protocol) (0) | 2017.01.21 |
Network Hacking - DNS Spoofing 프로그램 만들기(3) (3) | 2017.01.19 |
Network Hacking - DNS Spoofing 프로그램 만들기(2) (0) | 2017.01.18 |
Network Hacking - DNS 패킷 분석, DNS Spoofing 프로그램 만들기(1) (0) | 2017.01.17 |