ㅇ ㅂㅇ
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 패킷이 가장 많이 확인된다. >