1. DDOS 란?
- ‘분산 서비스 거부’ 또는 ‘분산 서비스 거부 공격’이라고 한다. 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 해킹 방식의 하나이다. 서비스 공격을 위한 도구들을 여러 대의 컴퓨터에 심어놓고 공격 목표인 사이트의 컴퓨터시스템이 처리할 수 없을 정도로 엄청난 분량의 패킷을 동시에 보내게 되어 네트워크의 성능을 저하시키거나 시스템을 마비시키는 방식이다.
이로써 이용자는 정상적으로 접속할 수 없는 것은 물론 심한 경우에는 주컴퓨터의 기능에 치명적 손상을 입을 수 있다. 또 수 많은 컴퓨터시스템이 운영자도 모르는 사이에 해킹의 숙주로 이용될 수도 있다. 공격은 일반적으로 악성코드나 이메일 등을 통하여 일반 사용자의 PC를 감염시켜 이른바 ‘좀비PC'로 만든 다음 C&C(명령제어) 서버의 제어를 통하여 특정한 시간대에 수행된다.
2. DDOS 공격의 구조
-공격자(Attacker) : 공격을 주도하는 해커의 컴퓨터
-마스터(Master) : 공격자에게서 직접 명령을 받는 시스템으로, 여러대의 에이전트(Agent)를 관리한다.
-Handler 프로그램 : 마스터 시스템의 역할을 수행하는 프로그램이다.
-에이전트(Agent) : 공격 대상에 직접 공격을 가하는 시스템이다.
-데몬(Daemon)프로그램 : 에이전트시스템 역할을 구행하는 프로그램이다.
3. 관련사항
Ping of Death
- ping을 이용하여 ICMP 패킷을 정상 크기보다 아주 크게 만드는 것
- 크게 만들어진 패킷은 네트워크를 통해 라우팅(routing)되어 공격 네트워크에 도달하는 동안 아주 작은 조각(fragment) 으로 쪼개지고 공격 대상은 조각화된 패킷을 모두 처리해야 하므로 정상적인 ping보다 부하가 훨씬 많이 걸림
SYN Flooding
- 네트워크에서 서비스를 제공하는 시스템은 동시 사용자 수가 제한되어 있음
- SYN Floodin(플러딩)은 존재하지 않는 클라이언트가 서버별로 한정되어 있는 접속 가능 공간에 접속한 것처럼 속여 다 른 사용자가 서비스를 제공받지 못하게 하는 것
- 공격자는 3-way-handshaking과정에서 서버를 다운시키기 위해 WKfq은 시간 안에 많은 양의 SYN만 보냄
- 시스템은 보통 SYN에 대한 연결을 무한정 기다리지 않고 일정 시간 동안만 연결을 시도하고 기다리도록 설정되어있음
- SYN Flooding 공격을 성공하려면 서버에 설정된 대기 시간 안에 서버가 수용할 수 있는 동시 사용자 수의 한계를 넘 는 연결을 시도해야 함
- 서버가 ‘SYN Received'상태로 ACK 패킷을 기다리는 상태를 ’백로그에 빠졋다’ 고 표현하며, ‘SYN Received' 상태로 ACK패킷을 기다리는 시간은 설정 사항으로 변경할 수 있음
Trinoo
- 1999년 6월 말부터 7월 사이에 퍼지기 시작했으며, 미네소타 대학 사고의 주범, 원래 이름은 Trinoo
- 처음 솔라리스 2.x 시스템에서 발견되었으며, 최소 227개 시스템이 공격에 쓰인 것으로 알려져 있음
- UDP를 기본으로 하는 공격을 시행하며 ‘statd, cmsd, ttdbserverd' 데몬이 주 공격 대상
- Trinoo는 기본적으로 아래 표와 같은 포트 번호를 사용하지만 소스 코드에서 임의로 변경 가능
접속자 |
대상 |
프로토콜 |
포트 |
공격자 |
마스터 |
TCP |
27665 |
마스터 |
에이젼트 |
UDP |
27444 |
에이젼트 |
마스터 |
UDP |
31335 |
에이젼트 |
공격대상 |
UDP |
|
TFN(TribedFlood Network)
- 1999년 8월 사고를 일으켯던 Trinoo의 약간 발전된 형태로 믹스터(Mixter)라는 사람이 개발
- Telnetubby Flood Network라고 부르기도 함
- TFN도 Trinoo처럼 statd, 츤ㅇ, ttdb 데몬의 취약점을 공격
- 클라이언트를 구동하면 패스워드를 사용하지 않고, 클라이언트와 데몬간에는 ICMP Echo Request 패킷을 사용
- 클라이언트의 각 명령은 ICMP Echo Request 패킷에 16비트 이진수로 데몬에 전송
- TFN은 공격자 시스템과 마스터 시스템 간 연결이 암호문이 아닌 평문으로 전달되는 약점이 있음. 이는 데이터가 다른 해커나 관리자에게 스니핑되거나 세션 하이재킹될 수 있으며, 공격자를 노출시키는 등 치명적일 수 있음
4. 실습구성도
Master IP : 192.168.10.185(Fedora)
Agent IP : 192.168.10.183(CentOS)
Target IP : 192.168.10.207(Win7)
5. 실습과정
(Master 설정)
STEP1. Trinoo master 컴파일(192.168.10.185)
Trinoo 소스 압축 풀기
#tar -xvf trinoo.tar
#cd master
#make
(Agent 설정)
STEP2. 에이전트 컴파일과 실행(192.168.10.183)
-똑같이 압축을 풀어준다.
#tar -xvf trinoo.tar
- daemon/ns.c 파일에 마스터 IP를 지정해준다.
- 수정된 ns.c 파일은 master 디렉토리로 이동한다.
#cp ns.c ../master
#cd ../
#cd master
#ls
-vi로 Makefile을 수정한다.
#vi Makefile
- make 명령을 이용하여 컴파일 이후 daemon을 실행한다.
#make
#./daemon
(Master 설정)
STEP3. 마스터 실행 (192.168.10.185)
-master 디렉토리에 master을 실행한다.
-암호는 gOrave이다. (O는 대문자다.)
#./master
#gOrave
(Master 설정)
STEP4. 공격을 위해 master에 접속한다.(192.168.10.185) // 자기 자신 master을 telnet로 접속하는것
- telnet 192.168.10.185 27665 로 접속한다.
- 암호는 ‘betaalmostdone'이다.
- trinoo>에서 명령을 내릴 수 있다.
(Master 설정)
SETP4 에서 만약 telnet이 없다면 yum list telnet로 확인후 설치를 하면된다.
#yum list telnet
#yum -y install telnet-server
#cd /etc/xinetd.d
#vi telnet
-disable = no로 바꿔준다
#service xinetd restart
//이명령어로 텔넷을 재시작해준다.
(Master 설정)
STEP5 192.168.10.207을 대상으로 공격해보자
- bcast명령은 에이젼트 목록을 검색한다.
- mdos명령을 이용 대상을 공격하자.
'CERTIFICATE' 카테고리의 다른 글
[모의해킹] 해커 지망자들이 알아야 할 Buffer Overflow Attack의 기초 (0) | 2020.03.31 |
---|---|
[웹 모의해킹 이론] CSRF(Cross Site Request Forgery) (0) | 2019.11.04 |
[모의해킹] EP.08 : MITM 공격(웹 변조) (0) | 2019.10.14 |
[모의해킹] EP.07 : 은닉채널 (0) | 2019.10.04 |
[모의해킹] EP.06 : 터널링(Tunneling) (0) | 2019.10.01 |