ㅇ ㅂㅇ
DDOS 공격
DDos 공격의 구조
 > 공격자(Attacker) : 공격을 주도하는 해커의 컴퓨터다.
 > 마스터(Master) : 공격자에게서 직접 명령을 받는 시스템으로, 여러대의 에이전트(Agent)를 관리한다.
 > 핸들러(Handler) 프로그램 : 마스터 시스템의 역할을 수행하는 프로그램이다.
 > 에이전트(Agent) : 공격 대상에 직접 공격을 가하는 시스템이다.
 > 데몬(Daemon) 프로그램 : 에이전트 시스템 역할을 수행하는 프로그램이다.
< 왼쪽부터 공격자 / 마스터 / 에이전트 / 목표물 순서 >
공격자가 마스터와 에이전트를 획득하여 실제적으로 DDoS 공격을 하는 순서
 1). 많은 사용자가 사용하며, 대역폭이 넓다. 관리자가 모든 시스템을 세세하게 관리 할 수 없는 곳의 계정을 획득하여 스니핑이나 버퍼 오버플로우 등의 공격으로 설치 권한이나 루트 권한을 획득한다.
 2). 잠재적인 공격으 대상을 피하기 위해 네트워크 블록별로 스캐닝을 실시한다. 그리고 원격지에서 버퍼 오버플로우를 일으킬 수 있는 취약한 서비스를 제공하는 서버를 파악한다.
 3). 취약한 시스템 목록을 확인 후 실제 공격을 위한 프로그램을 작성한다.
 4). 권한을 획득한 시스템에 침투하여 프로그램을 컴파일하여 설치한다.
 5). 설치한 프로그램으로 공격을 시작한다.
다양한 DDoS Tool
TFN(TribedFlood Network)
 > 1999년 8월 사고를 일으켰던 Trinoo의 약간 발전된 형태로 믹스터(Mixter)라는 사람이 개발
 > TeletubbyFlood Network라고 부르기도 함
 > TFN도 Trinoo처럼 statd, cmsd, ttab 데몬의 취약점을 공격
 > 클라이언트를 구동하면 패스워드를 사용하지 않고, 클라이언트와 데몬 간에는 ICMP Echo Request 패킷을 사용
 > 클라이언트의 각 명령은 ICMP Echo Request 패킷에 16비트 이진수로 데몬에 전송
 > TFN은 공격자 시스템과 마스터 시스템 간 연결이 암호문이 아닌 평문으로 전달되는 약점이 있음, 이는 데이터가 다른 해커나 관리자에게 스니핑되거나 세션 하이재킹 될 수 있으며, 공격자를 노출시키는 등 치명적일 수 있음.
TFN 2K
 > TFN의 발전된 형태로, 역시 믹스터가 개발
 > 특징
  - 통신에 특정 포트를 사용하지 않고 암호화되어 있으며, 프로그램을 통해 UDP, TCP, ICMP를 복합적으로 사용하며 포트도 임의로 결정한다.
  - TCP, SYN Flooding, UDP Flooding, ICMP Flooding, Smurf 공격을 쓰고 있다.
  - 모든 명령은 CAST-256 알고리즘으로 암호화된다.
  - 지정된 TCP 포트에 백도어를 실행할 수 있다.
  - 데몬은 설치 시 자신의 프로세스 이름을 변경함으로써 프로세스 모니터링을 회피한다.
  - UDP 패킷의 헤더가 실제 UDP 패킷보다 3바이트 만큼 더 크다.
  - TCP 패킷의 헤더의 길이는 항상 0이다. 정상 패킷이라면 절대로 0일 수 없다.
Stacheldraht
 > 독일어로 ‘철조망’이라는 뜻
 > 1999년 10월에 처음 출현 한 것으로 알려져 있으며, TFN을 발전시킨 형태
 > Stacheldraht(슈타첼드라트) 역시 TFN 2K 처럼 공격자와 마스터, 에이전트, 데몬과의 통신에 암호화 기능이 추가됨
 > 공격자가 마스터에 접속하면 마스터는 현재 접속을 시도한 이가 올바른 공격자인지 확인하기 위해 패스워드 입력을 요구
 > 입력된 패스워드는 최초 설치되기 전에 'Authentication'의 'Passphrase'를 사용하여 암호화된 상태로 공격자에게서 핸들러로 보내짐
Trinoo
 > 1999년 6월 말부터 7월 사이에 퍼지기 시작했으며, 미네소타 대학 사고의 주범, 원래 이름은 TrinOO
 > 처음 솔라리스 2.x 시스템에서 발견되었으며, 최초 227개 시스템이 공격에 쓰인 것으로 알려져 있음
 > UDP를 기본으로 하는 공격을 시행하며, 'statd, smsd, ttabserverd' 데몬이 주 공격 대상
 > Trinoo는 기본적으로 아래 표와 같은 포트 번호를 사용하지만 소스 코드에서 임의로 변경 가능
| 
접속자 | 
대상 | 
프로토콜 | 
포트 | 
| 
공격자 | 
마스터 | 
TCP | 
27665 | 
| 
마스터 | 
에이전트 | 
UDP | 
27444 | 
| 
에이전트 | 
마스터 | 
UDP | 
31335 | 
| 
에이전트 | 
공격대상 | 
UDP | 
 | 
 * 마스터 명령
 die : 마스터 작동 중지
 quit : 마스터 logout
 dos(mdos) IP : IP를 대상으로 공격
 mtimer N 공격 시간 지정 N은 1~1,999 까지 (d : 300)
DDOS 공격 by Trinoo
 공격 실습
 1). Trinoo master 컴파일
  > Trinoo 소스 압축 풀기
< 마스터 데몬 실행 비밀번호 : gOrave, 마스터 접속 비밀번호 : betaalmostdone >
 > master 디렉토리로 이동 후 make 명령을 이용 컴파일하기
 2). Trinoo 에이전트 컴파일 및 실행
< master와 마찬가지로 압축을 푼다. >
  > 이후 daemon 디렉토리에 있는 ns.c 파일을 master 디렉토리에 복사 후 편집한다.
< agent는 master의 ip 주소를 따로 지정해 주어야 한다. >
  > Makefile 편집
< Makefile의 내용이 바뀐 것을 확인 가능 >
  > master와 마찬가지로, 컴파일 후 daemon 실행
< 컴파일 후 데몬 실행 >
< 데몬을 실행하여 제대로 작동 중인지 확인 >
 3). 마스터 실행
  > master 디렉토리에서 master를 실행한다.
  > 암호는 gOrave이다. (O는 대문자)
< master의 실행이 제대로 되었는지 확인 >
 4). 공격을 위해 마스터 접속
  > telnet 192.168.10.104 27665 로 접속
  > 암호는 ' betaalmostdone ' 이다.
  > trinoo> 창에서 명령을 내릴 수 있다.
  > bcast 명령은 에이전트 목록을 검사한다.
  > 가끔 마스터에서 bcast 명령을 통해 에이전트 목록 확인이 불가능 할 경우
     에이전트의 데몬을 재실행하자.
< 목록이 안뜨는 경우 > 
< 에이전트의 데몬을 재실행 >
  > mdos 명령을 이용 대상을 공격 시도
< mdos와 관련된 정보 확인 >
 > 아주 잠깐이라도 UDP 패킷이 10만개 정도 전달
 > 공격에 참여한 에이전트 PC의 상태도 공격 당한 PC 만큼 좋지 않게 된다.
< tcpdump로 목표물이 주고 받은 패킷을 기록한 결과 325만개의 패킷 기록 >
< DDoS 공격은 UDP, ICMP 패킷을 가지고 공격을 하기에 UDP, ICMP 패킷이 가장 많이 확인된다. >