Netcat (NC) 처럼 쓰이는 ncat

웹 어플리케이션 2009. 9. 17. 17:22 Posted by TEAMCR@K
nmap 5.0에서 새로 추가된 실행 프로그램 "ncat"이 나름 활용성이 좋습니다.
이것도 "Swiss_Army_knife" 와 비유해서 여러 용도로 사용할 수 있다는 것을 강조하고 있네요^^);

해당 URL : http://nmap.org/5/#changes-ncat


[옵션]
(seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30s)
  -4                         Use IPv4 only
  -6                         Use IPv6 only
  -C, --crlf                 Use CRLF for EOL sequence
  -c, --sh-exec <command>    Executes specified command via /bin/sh
  -e, --exec <command>       Executes specified command
  -g hop1[,hop2,...]         Loose source routing hop points (8 max)
  -G n                       Loose source routing hop pointer (4, 8, 12, ...)
  -m, --max-conns n          Maximum n simultaneous connections
  -h, --help                 Display this help screen
  -d, --delay <time>         Wait between read/writes
  -o, --output               Dump session data to a file
  -x, --hex-dump             Dump session data as hex to a file
  -i, --idle-timeout <time>  Idle read/write timeout
  -p, --source-port port     Specify source port to use (doesn't affect -l)
  -s, --source addr          Specify source address to use (doesn't affect -l)
  -l, --listen               Bind and listen for incoming connections
  -k, --keep-open            Accept multiple connections in listen mode
  -n, --nodns                Do not resolve hostnames via DNS
  -t, --telnet               Answer Telnet negotiations
  -u, --udp                  Use UDP instead of default TCP
  -v, --verbose              Set verbosity level (can be used up to 3 times)
  -w, --wait <time>          Connect timeout
      --send-only            Only send data, ignoring received; quit on EOF
      --recv-only            Only receive data, never send anything
      --allow                Allow specific hosts to connect to Ncat
      --allowfile            A file of hosts allowed to connect to Ncat
      --deny                 Hosts to be denied from connecting to Ncat
      --denyfile             A file of hosts denied from connecting to Ncat
      --broker               Enable Ncat's Connection Brokering mode
      --chat                 Start a simple Ncat chat server
      --proxy <addr[:port]>  Specify address of host to proxy through
      --proxy-type <type>    Specify proxy type ("http" or "socks4")
      --proxy-auth <auth>    Authenticate with HTTP or SOCKS proxy server
      --ssl                  Connect or listen with SSL
      --ssl-cert             Specify SSL certificate file (PEM) for listening
      --ssl-key              Specify SSL private key (PEM) for listening
      --ssl-verify           Verify trust and domain name of certificates
      --ssl-trustfile        PEM file containing trusted SSL certificates
      --version              Display Ncat's version information and exit

ActiveX Method 분석 방법

웹 어플리케이션 2009. 8. 6. 09:41 Posted by TEAMCR@K

ActiveX Method 분석 방법


kerz@a3security.com
(A.K.A k3rz)


 
I. ActiveX Method 분석

1. 개 요
오늘날 ActiveX는 없으면 허전함을 느낄 정도로 많은 국내 웹 사이트에서 설치하도록 유도하고 있습니다. ActiveX를 설치하여 지도, 게임, 동영상, 메신저, 웹 어플리케이션, 보안 등의 프로그램을 웹에서 연동할 수 있도록 사용자에게 사실상 편의성을 제공하고 있습니다. 하지만 보안적인 시점으로 보았을 때 많은 위험성을 내재하고 있는데 이 문서에서는 ActiveX의 분석 방법과 이를 이용한 어떤 공격이 있는지 살펴 보도록 하겠습니다.

2. ActiveX 개념
MS 사이트에서 인용을 하자면 “ActiveX은 소프트웨어 컴포넌트와 스크립트, 기존 응용프로그램을 활용해 대화형 컨텐트를 만들기 기초를 구성하며, ActiveX 기술 사용의 가장 큰 혜택은 응용프로그램들은 웹 브라우저에 통합시켜 이러한 응용프로그램으로 관리되는 데이터가 웹 페이지처럼 접속될 수 있게 합니다.”라고 설명 하고 있습니다.
간단하게 말하자면 ActiveX란 HTML이 아닌 일반 응용 프로그램과 인터넷 익스플로러을 연결하여 기능적인 확장할 수 있도록 MS사가 개발한 기술입니다. 사실상은 자바 애플릿에 대응하기 위해서 통합 플랫폼이기도 합니다. 자바 애플릿과 비교해서는 사용자 PC의 파일, 레지스트리 등의 자원에 접근이 가능합니다.
즉, 웹 인터페이스를 통해 프로그램을 호출 가능한데, 이 점을 이용하여 ActiveX 공격이 가능합니다. ActiveX는 ActiveX Control, ActiveX Document, Active Scripting, 자바 가상 기계, ActiveX 서버 프레임웍의 구조로 되어있습니다.


3. ActiveX 취약점 종류

가. 프로그램 크래쉬
프로그램의 정상적인 기능이 의도하지 않은 에러(공격)에 의하여 프로그램이 종료될 수 있는데, 이를 이용한 공격으로는 nProtect 등과 같은 악성 프로그램 실행 방지 솔루션에 대한 크래쉬 등을 예를 들 수 있습니다.

나. 로컬 자원 접근
불특정 다수 사용자 컴퓨터의 리소스를 이용할 수 있는 취약점으로 원하는 명령실행 및 파일 또는 레지스트리의 읽기, 수정, 쓰기, 삭제기능을 제공 시 발생할 수 있습니다.

다. 기능 우회
프로그램의 정상적인 기능이 의도하지 않은 조작(공격)에 의하여 프로그램의 기능을 우회할 수 있습니다. 예로는 악성 프로그램 실행 방지 솔루션에 대한 ActiveX의 실행 체크 변수(property) 값을 참으로 조작하여 이미 실행되어 있는 것처럼 설정하면 원래 기능이 실행되지 않는 취약점입니다.

라. 파일 다운로드
ActiveX 개발자들은 주기적인 업데이트를 위해서 사이트 주소로부터 파일을 다운로드 기능을 제공합니다. 하지만 인증처리 미흡으로 인해 공격자는 주소 값을 조작하여 악성 파일을 다운로드 수행하는 취약점입니다.

마. 시스템 명령 실행
ActiveX는 시스템의 리소스를 이용할 수 있는데, 공격자는 이를 조작하여 net user를 추가하는 등의 시스템 명령을 실행할 수 있는 취약점이 있습니다.

바. 버퍼 오버플로우
ActiveX의 변수(Property) 값에 대한 길이 체크 미흡으로 인해 메모리의 버퍼를 오버플로우 시켜서 EIP 값을 다른 값으로 덮어 씌우는 취약점입니다. 이 경우 시스템 명령 실행, 프로그램 크래쉬 등의 공격이 가능합니다.

사. 포맷 스트링
ActiveX 의 변수(Property) 값에 대해 포맷 스트링 기법을 이용하여 특정 메모리를 덮어씌우는 취약점으로 시스템 명령 실행, 프로그램 크래쉬 등의 공격이 가능합니다.


4. ActiveX Method 분석
ActiveX 공격을 위해서는 개발자가 어떤 Name, Method, Property 등의 값을 분석을 해야 하는데, 이를 확인을 위해 일반적으로 많이 사용하는 TOOL을 이용하는 방법에 대해서 설명하도록 하겠습니다.

가. 기본적인 ActiveX 정보 확인
ActiveX의 정보를 알기 위해서 웹 사이트로부터 소스보기, ActiveX 프로그램 자체로부터 정보를 확인 할 수 있습니다.

ActiveX 공격을 위해서는 Object에 대한 정보가 꼭 필요로 하고, 일반적으로 Property, JavaScript를 이용하여 ActiveX를 설정 / 실행합니다. 이러한 내용들을 소스보기를 통해서 확인할 수 있습니다.

다음은 웹 사이트를 통해 확인한 ActiveX 정보 입니다.

                                                 [그림 1] ActiveX 정보 확인


ActiveX 프로그램 자체에 대한 정보는 등록정보를 통해서 알 수 있습니다. ActiveX는 기본적으로 “%SystemRoot%\\Downloaded Program Files\\” 폴더 안에서 확인할 수 있고, “Internet Explorer → 도구 → 인터넷 옵션 → 일반(메뉴) → 설정(버튼) → 개체보기(버튼)”을 통해서 확인 할 수 있습니다.
하지만 Explorer를 통한 ActiveX파일은 숨겨진 파일도 있기 때문에 Command 창을 통해서 확인하기를 권장하며 탐색창을 통해서 OCX 파일을 복사할 경우 에러가 발생되는데 Command 창에서 copy 명령을 통해서 이를 해결 할 수 있습니다.

다음은 ActiveX 파일 목록을 확인한 화면입니다.

                                    [그림 2] Command를 통한 ActiveX 목록 확인


다음은 ActiveX 파일 목록을 확인한 화면입니다.

                                             [그림 3] 탐색기를 통한 ActiveX 목록 확인

ActiveX를 Copy한 후 파일 속성을 통해서 부가적인 정보를 확인 할 수 있습니다. 사실상 파일 속성을 통한 정보는 자신의 스타일에 따라서 확인을 안 하셔도 무방합니다.


다음은 ActiveX 파일 속성을 통한 정보를 획득한 화면입니다.

                                                [그림 4] ActiveX 파일 속성 정보


나. Tool을 이용한 ActiveX 정보 확인

기본적으로 ActiveX 파일 이름과 버전, Object, Property, JavaScript 등에 대해서 알아보았습니다. 하지만 정작 중요한 METHOD 값에 대해서 아직 못 봤습니다. 이제 간단한 Tool을 통해서 확인해 보도록 하겠습니다.

※ 개인적으로 습득한 ActiveX 정보 획득 방법을 열거한 내용이며 Tool 사용방법에 대해서 조사한 내용이 아니므로 정보 획득 방법에 대해서 초점을 맞춰서 보시길 바랍니다.

(1) ActiveX Control Test Container, OLE View
Microsoft Visual Studio를 설치 시 추가적으로 Microsoft Visual C++ 6.0 Tools 을 설치할 수 있습니다. 그 중에 ActiveX Control Test Container, OLE View 툴을 통해서 ActiveX Method 정보를 확인 할 수 있습니다.

ActiveX Control Test Container을 이용하면 현재 설치되어있는 ActiveX 목록을 확인 할 수 있고, Method, Parameter, Value, Type 정보에 대해서 상세하게 확인할 수 있습니다.

Method Name, Parameter, Value 등을 통해서 현재 ActiveX의 기본설정과 Method가 무엇을 실행하는 것인지 간주할 수 있습니다.


다음은 ActiveX Control Test Container을 이용한 ActiveX Method 정보를 확인한 내용 화면입니다.

                                           [그림 5] ActiveX Method 정보 확인(1)

 
다음은 ActiveX Control Test Container을 이용한 ActiveX Method 정보를 확인한 내용 화면입니다.

                                          [그림 6] ActiveX Method 정보 확인(2)


다음은 ActiveX Control Test Container을 이용한 ActiveX Method 정보를 확인한 내용 화면입니다.

                                      [그림 7] ActiveX Method 정보 확인(3)

OLE View를 통해서는 ActiveX Control 값에 대해 조금 더 자세한 내용을 확인 할 수 있는 효과를 얻을 수 있습니다.

다음은 OLE View를 통해서 ActiveX 정보를 확인한 화면입니다.

                                        [그림 8] ActiveX Method 정보 확인(1)


다음은 OLE View을 이용한 ActiveX Method 정보를 확인한 내용 화면입니다.

                                          [그림 9] ActiveX Method 정보 확인(2)

(2) PEiD

PEiD를 이용하여 어떤 언어로 제작되었는지 확인 할 수 있습니다. 확인한 프로그램 같은 경우는 Microsoft Visual C++ 6.0으로 제작한 정보를 획득 할 수 있었습니다.


다음은 ActiveX 의 제작 언어를 확인한 화면입니다.

                                              [그림 10] ActiveX 제작 언어 확인


(3) Microsoft Visual

Microsoft Visual Studio를 이용해서 ActiveX 파일을 import 함으로써 코드를 확인 할 수 있습니다.
 
다음은 MFC ActiveX ControlWizard를 이용한 프로젝트 생성 과정 화면입니다.

                                           [그림 11] ActiveX 프로젝트 생성 과정


다음은 등록된 ActiveX 파일을 불러오는 과정 화면입니다.

                                           [그림 12] ActiveX 파일 불러오기 과정(1)

다음은 등록된 ActiveX 파일을 불러오는 과정 화면입니다.

                                             [그림 13] ActiveX 파일 불러오기 과정(2)


다음은 등록된 ActiveX 파일을 불러오는 과정 화면입니다.

                                          [그림 14] ActiveX 파일 불러오기 과정(3)

다음은 불러온 ActiveX 의 내용을 확인한 화면입니다.

                                              [그림 15] ActiveX 파일 내용 확인


불러온 ActiveX 파일을 분석하여 암호화 프로그램의 경우 후킹을 통해 복호화 내용을 확인 등의 공격을 시도할 수 있습니다.


추가적으로 Microsoft Visual C++ 6.0 Tools 을 설치할 수 있습니다. 그 중에 ActiveX Control Test Container, OLE View 툴을 통해서 ActiveX Method 정보를 확인 할 수 있습니다.


(4) ResHacker

리소스 해커를 이용하여 ActiveX 인터페이스, 코드 등을 확인 할 수 있습니다.

 
다음은 ActiveX 의 인터페이스를 확인한 화면입니다.

                                            [그림 16] ActiveX의 인터페이스 확인


다음은 ActiveX 의 코드를 확인한 화면입니다.

                                                     [그림 17] ActiveX의 코드 확인

(5) ActiveXplorer

ActiveXplorer를 이용하여 현재 설치되어있는 ActiveX 목록을 확인 할 수 있고, Method, Parameter, Value, Type 정보에 대해서 확인할 수 있습니다.


다음은 ActiveXplorer을 이용한 ActiveX 파일 정보를 확인한 내용 화면입니다.

                                                [그림 18] ActiveX 파일 정보 확인


다음은 ActiveXplorer을 이용한 ActiveX Method를 확인한 내용 화면입니다.

                                              [그림 19] ActiveX Method 정보 확인

(6) ComRaider

ComRaider를 이용하여 현재 설치되어있는 ActiveX 목록을 확인 할 수 있고, Method, Parameter, Value, Type 정보에 대해서 확인할 수 있습니다.


다음은 ComRaider을 이용한 ActiveX 파일 불러오기 과정 화면입니다.

                                            [그림 20] ActiveX 파일 불러오기 과정


다음은 ComRaider을 이용한 ActiveX Method, 코드를 확인한 화면입니다.

                                          [그림 21] ActiveX Method, 코드 확인

(7) OllyDbg

일반적으로 디버깅 시에 많은 사람들이 사랑하는 OllyDbg 프로그램을 이용한 ActiveX를 분석 할 수 있습니다.

다음은 OllyDbg를 이용한 ActiveX 파일을 불러오는 과정입니다.

                                           [그림 22] ActiveX 파일 불러오는 과정


다음은 All referenced Text strings을 통해 ActiveX 내용을 확인한 화면입니다.

                                                [그림 23] ActiveX Method 확인



※ 현재 ㈜에이쓰리시큐리티에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다.

MSB ASCII obfuscation

웹 어플리케이션 2009. 7. 10. 10:21 Posted by 알 수 없는 사용자

MSB ASCII Obfuscation 취약점 분석


By
bdr@a3security.com
(A.K.A Dear.Tom)
kerz@a3security.com
(A.K.A k3rz)

연구 대상

MSB ASCII Obfuscation 취약점

문서 작성일

2009.07

문서 버전

V1.0


 

가. SecurityFocus 권고문

(1) 개 요

이 취약점은 Network와 실제 Data가 Internet에서 사용되는 단위의 차이로 인하여 발생하는 것 입니다.ASCII로 인코딩되는 문자는 모두 7bit(Web Browser 에서 쓰이는 ASCII의 사용 Data의 bit는 7bit)이지만,Network 에서 Data 전송에 사용하는 단위인 Octet은 8bit 입니다. 만약, ASCII로 인코딩 되어 전송되면 MSB(Most Significant Bit)는 무시됩니다.

Fireforx 1.5, Opera 8.5 and InternetExplorer 6에서 테스트
결과, IE 6, IE 7 에서 취약점이 발생하였습니다.
웹 페이지 작성자는 페이지의 보여지는 부분을 변경하지 않고, 임의 문자로 설정할 수 있습니다. 그러나 바이러스 스캐너나 콘텐츠 필터는 완벽히 다른 문자로 보기 때문에 이러한 프로그램들은 바이러스나 스팸을 막을 수 없습니다.

결론적으로 이것은 스패머나 바이러스 작성자에게 스팸 설치나 바이러스 필터를 우회할 가능성을 제공해줍니다.


(2) 영 향

IE는 오직 7bit 인 ASCII로 인코딩 된 웹 페이지를 보여줍니다. 다양한 하드웨어 라우터와 안티바이러스 솔루션으로 체크한 결과, 모두 웹페이지 안에 삽입된 악성 자바스크립트를 막는데 실패했습니다.


(3) Bug 개요 및 대응방안

필터나 스캔 APP 이 분석하기 전에 ASCII로 인코딩 된 웹 페이지의 MSB를 제거합니다.


(4) 샘플페이지

URL) http://www.iku-ag.de/ASCII (IE 6에서 동작)
URL) http://www.iku-ag.de/sicherheit/ascii-eng.jsp (IE 6에서 동작)



II. 취약점 분석


가. MSB 변환 프로그램

(1) 일부 소스
    - 전체 소스는 공개하지 않으며, 일부 소스만 공개하겠습니다.

.. 생략

 

int main(int argc, char *argv[])
{
char *in_file_name, *out_file_name;
FILE *inf, *outf;
struct stat statbuf;
long long size, i;
size_t read_len;
char buf[BUF_MAX];

if(argc != 3)
{
printf("Usage: %s Src Dst", argv[0]);
return -1;
}

in_file_name = argv[1];
printf("input is %s\n", in_file_name);

if (stat(in_file_name, &statbuf) == -1)
{
perror("fstat");
return 1;
}

 .... 생략

for (i=0; i<size;)
{
size_t len;
char *p_buf=buf;
len = fread(buf, sizeof(char), BUF_MAX, inf);
i += len;

while (len) {
fprintf(outf, "%c", (*p_buf)|0x80);
p_buf++;
len--;
}
}

fclose(inf);
fclose(outf);

return 0;
}


(2) 소스 분석

현재 읽어온 Data의 1byte와 0x80(즉, 1000 0000)을 OR 연산을 수행합니다. 이것은 모든 byte의 MSB를 1로 수정하는 것 입니다. 이렇게 함으로써 웹 상에 보여질 때는 변형된 문자가 보여집니다. 하지만, web browser가 해석할 때는 변형된 1bit를 제외한 나머지 변형되지 않은 7bit만을 가지고 해석하기 때문에 문제가 발생합니다.

for (i=0; i<size;)
{
size_t len;
char *p_buf=buf;
len = fread(buf, sizeof(char), BUF_MAX, inf);
i += len;

while (len) {
fprintf(outf, "%c", (*p_buf)|0x80);
p_buf++;
len--;
}
}


(3) 프로그램 사용 결과

Usage) program_name input_file output_file

 
[그림 1] 프로그램 사용법


다음은 XSS 평문을 MSB ASCII obfuscation을 이용한 인코딩한 화면입니다.
[그림 2] 프로그램 사용 결과


(4) 취약한 환경 테스트
IE 버전별 테스트 결과 아래 표와 같이 나왔습니다.
[표 1] 테스트 결과

Vendor Version Result
MS Internet Explorer  6.0 취약함
7.0 취약함
8.0 취약하지 않음

다음은 IE 6.0에서 테스트 결과 성공한 화면입니다.

[그림 3] IE 6.0 및 7.0 스크립트 실행 화면


다음은 IE 8.0에서 테스트 결과 실패한 화면입니다.

[그림 4] IE 8.0 스크립트실행 실패화면


나. 조건 분석

(1) 전제 조건

이 취약점을 이용한 공격에 성공하기 위해서는 다음과 같은 메타태그가 설정되어 있거나, 존재하지 않아야 합니다.

<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">

이러한 특징이 이 취약점을 이용한 공격의 한계점이 될 수 있습니다.


(2) 한계점 우회 방안

이러한 한계점을 극복하기 위하여 다음과 같은 해결방안을 생각해 볼 수 있습니다.
- Iframe 혹은 Div 태그 안에 메타태그를 삽입하여 적용하도록 함

그러나 이 방안 또한, 태그가 막혀있지 않다는 점에 기초하기 때문에 한계가 있을 수 있고, 만약 태그를 쓸 수 있다면 우회할 필요없이 바로 공격이 가능할 것이기 때문에 이러한 방안은 실용성이 떨어진다고 판단할 수 있습니다.


(3) 문제점

7bit 였던 문자가 16bit의 문자로의 변환은 UTF-8을 기준으로 합니다. 하지만, UTF-8 문자표에는 할당되지 않은 값들이 존재하고, 이러한 값들로 인해 공격문이 올바르게 동작하지 않을 가능성이 많습니다.

다음은 UTF-8에 비포함된 문자열 화면입니다.

[그림 5] UTF-8에 할당되어 있지 않은 문자


다음은 깨짐 현상이 발생하는 예제 화면입니다.
[그림 6] 예제 소스


다음은 평문 소스를 인코딩한 화면입니다.
[그림 7] 소스 Encoding


다음은 문자열 깨짐 현상으로 공격이 실패한 화면입니다.
[그림 8] 깨짐 현상 발생


UTF-8 문자와 대칭되지 않는 문자들에 대한 처리 문제가 해결되어야만 Webshell 등을 정상적으로 동작시킬 수 있을 것입니다.



III.위험 분석

가. MSB ASCII obfuscation 취약점을 이용한 Webshell 업로드

MSB ASCII obfuscation 취약점으로 인하여 Webshell 내용을 인코딩 한 후, 업로드시 방화벽을 우회하는 가능성이 생깁니다. 뿐만 아니라 파일 내용을 검사하는 경우 취약점을 이용한 공격이 가능합니다. 실제 테스트 경우 Webshell 내용 일부가 인코딩 되면서 손실되어 불가능 했지만, Webshell 내용을 변경하여 손실을 방지한다면 가능 할 것 입니다.

다음은 인코딩을 위한 Webshell 소스 화면입니다.
[그림 9] Webshell 소스 코드


다음은 Webshell을 인코딩하여 우회를 시도한 화면입니다.
[그림 10] Webshell 인코딩 결과


다음은 정상적인 Webshell 화면입니다.
[그림 11] 정상적인 Webshell 결과 화면


다음은 인코딩한 Webshell 화면입니다.
[그림 12]인코딩 된Webshell 결과 화면


나. 메일 필터링 우회

메일 전송중 스크립트 필터링 과정에서 취약점을 이용하여 스크립트를 스팸메일 등의 악성코드를 삽입할 수 있습니다. 특히 일반 메일 서비스 경우 스팸메일 대책으로 "sex, s*x, fuck, promo, rate, save, shop, money"등의 spam filter word를 적용하는 경우 인코딩으로 우회가 가능 합니다.


다. 악성코드 인코딩을 파일이름으로 적용한 파일을 업로드하여 악성코드 실행 가능성

일반적인 경우 파일 업로드시 파일이름 또한 명시되는 것을 이용하여 파일이름을 인코딩하여 업로드하여 명시 결과 악성코드가 실행할 수 있습니다. 예를 들어 “숍訊昱穿刷奄剔㎬炡筌㈊섞昌侄從풅.xxx”와 같은 파일 이름으로 업로드 시도를 하여 파일이름이 디코딩되면서 실행될 수 있습니다.


IV.결 론

ASCII가 2번째부터 8번째 bit만을 사용한다는 것을 이용하여 MSB를 1로 변경시킴으로서 전혀 다른 문자열이 된다는 것이 MSB ASCII obfuscation 취약점의 초점이며, 인코딩을 통해 필터링을 우회 할 수 있으며, 2006년부터 2007년정도에 실제 공격이 유행하였습니다. 그러나 이 취약점은 Meta 태그의 charset속성 값이 us-ascii으로 정해져 있어야 실행이 가능하며, 상위 Meta 태그의 charset 속성 값이 정해져 있는 경우 하위 Meta 태그의 charset은 적용되지 않습니다. 실제 대부분 국내 웹 사이트인 경우 <meta http-equiv="Content-Type" content="text/html; charset=euc-kr">로 설정된 부분이 많기 때문에 이 취약점은 제한적으로 사용됩니다.

이번 MSB ASCII obfuscation 취약점 분석을 통해 쓸모없는 bit 값을 변경하여 공격에 적용한 창의적인 생각을 다른 방향에도 복합적으로 이용한다면 또 다른 새로운 공격이 도출될 가능성이 있으므로 일반적으로 스쳐갈 수 있는 부분에도 생각하는 능동적인 생각을 해야하며 적용하는 습관을 가져야 합니다.
 

V.참고 자료

○ Bypassing of web filters by using ASCII
(http://www.securityfocus.com/archive/1/437948/30/0/threaded)

○ High-bit ASCII obfuscation
(http://blogs.msdn.com/dross/archive/2006/10/01/780339.aspx)

○ Malformed ASCII bypasses filters
(http://ha.ckers.org/blog/20060621/malformed-ascii-bypasses-filters/)

○ Bypassing XSS web filters by using US ASCII encoding
(http://blog.kassaras.com/?p=37)

○ 자바스크립트 난독화 이해하기 / 안철수연구소 ASEC

○ US-ASCII 방식의 악성 스크립트 분석 하기
(http://totoriver.egloos.com/562258)

○ UTF-8 코드표

Microsoft IIS 6.0 WebDAV 원격 인증 우회

웹 어플리케이션 2009. 6. 3. 05:05 Posted by 알 수 없는 사용자

이 취약점은 IIS(Internet Information Server) 5.0, 5.1, 6.0이 설치되어 있는 취약점에 제한되어 원격 공격자들에 대해서 허용하며, 웹 서버가 URL의 데이터값 중 유니코드 토큰을 제대로 파싱 처리하지 못하여 나타나는 취약점입니다.

이로 인해 암호로 보호된 폴더를 인증 우회로 인해 리스팅, 다운로드, 업로드 모두 가능합니다.

Example)
WebDAV로 서비스를 구동하는 웹 서버(http://www.a3sc.co.kr)는
-
내부에서만 사용하는 암호화된 폴더 "A3SECRUITY"를 암호로 설정하여 사용
-
이 폴더안의 "A3SC.zip" 라는 파일이 존재
-
A3SC 내부인은 매일 폴더 암호를 변경하여 사용
한다고 가정을 했을때..

즉 정리하자면 아래와 같습니다.
호스트: http://www.a3sc.co.kr
암호화된 폴더: "c:\inetpub\wwwroot\A3SECURITY\"
파일: "A3SC.zip"
암호: 매일 변경 됨

공격자는 위와 같은 환경에서 별도의 암호 인증없이 유니코드 우회를 통해 "A3SECURITY" 폴더안에 파일 리스트를 확인 할 수 있으며, "A3SC.zip"을 다운하거나, 자신의 원하는 파일을 업로드 할 수 있습니다.

아래는 유니코드 취약점을 이용한 HTTP GET 요청입니다.

GET /%c0%af/A3SECURITY/A3SC.zip HTTP/1.1
Translate: f
Connection: close
Host: www.a3sc.co.kr

또는 다음 요청도 같은 효과를 가집니다.
GET /A3SECURITY%c0%af/A3SC.zip HTTP/1.1
Translate: f
Connection: close
Host: www.a3sc.co.kr

취약점의 URL에서는 위와 같이 '/'(%c0%af) 유니코드 문자가 들어가 있습니다.
이 유니코드로 인해서 WebDAV는 상위 부모 디렉토리의 권한으로 하위 디렉토리(A3SECURITY)로 접근하여 수행하게 됩니다.
따라서 공격자는 암호 인증을 통한 사용자만 접근할 수 있어야하는 과정을 통과하여 내용을 확인 할 수 있습니다.
대부분의 wwwroot 의 권한은 익명 사용자에게 읽기 권한을 부여하기 때문에, 이번 취약점을 이용하여 접근할 수 있습니다.

대응 방안
1. IIS 5.0, 5.1 일 경우 WebDAV는 자동으로 활성화되기 때문에 사용하지 않으면 비활성화를 권고합니다.
   IIS 6.0 일 경우도 사용하지 않는다면 비활성화를 권고합니다.
2. WebDAV 사용 중인 경우 익명 사용자 계정(Internel Guest Account, IURL_%SystemName%)의 권한을 주지 않도록 권고합니다.
   불가피한 경우 권한을 최소한 익명사용자의 write 권한을 제거해야 합니다. 이는 웹쉘 업로드 공격으로 이어질 수 있기 때문에
   반드시 제거하길 권고합니다.
3. 패턴검사를 통해 HTTP 요청 "%c0%af" 유니코드를 차단을 권고합니다.


현재 milw0rm 2009년 5월 15일짜로 처음으로 게시 되었으며, 20일 IIS WebDAV Vulnerability in Action / 22일, 26일에 PHP, Perl Exploit이 추가적으로 게시되었습니다.


관련사이트:

http://milw0rm.com/exploits/8806
http://milw0rm.com/exploits/8765
http://milw0rm.com/exploits/8754
http://milw0rm.com/exploits/8704
http://milw0rm.com/video/watch.php?id=103

C
opyright(c) 1998-2009 A3 Security ,LTD


Disclaimer
※ 현재 ㈜에이쓰리시큐리티에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다.


SQL Injection Cheat Sheet

웹 어플리케이션 2009. 5. 6. 14:10 Posted by TEAMCR@K

DBMS별 SQL Injection Cheat Sheet 입니다.
다양한 공격방법들이 정리되어 있으며 심화학습하는데 도움이 되시기 바랍니다.

http://pentestmonkey.net/blog/oracle-sql-injection-cheat-sheet/

http://pentestmonkey.net/blog/mssql-sql-injection-cheat-sheet/

http://pentestmonkey.net/blog/mysql-sql-injection-cheat-sheet/

▷ 작성자 : nohpro (nohpro@a3security.com)
▷ 편집자 : nohpro (nohpro@a3security.com)



Internet Explorer 8의 교차 사이트 스크립트 필터 기능


IE8에서 교차 사이트 스크립팅 필터라는 이름으로 XSS(Cross Site Scripting)을 브라우저단에서 필터링 시키는 기능이 추가되었네요. 인터넷 옵션에 “XSS필터 사용/사용 안 함” 항목이 추가되어 XSS공격으로부터 client를 보호하기 위한 기능이군요

다음과 같이 “XSS 필터 사용” 옵션을 사용할 경우 XSS 필터기능에 의해 XSS공격을 브라우저에서 차단시키도록 설정이 가능합니다.


[그림 1] XSS 필터 옵션

 
XSS공격 시 다음과 같이 차단메시지가 보여지면서 스크립트 실행을 제한하게 되는군요
 


[그림 2] 스크립트 실행 차단

현재 공개된 IE8의 XSS 필터는 Type-1에 의한 XSS공격만을 필터링 시키고 있습니다.

Type-1 XSS 공격은 파라미터로 값이 전송될 경우 존재하는 XSS 취약점인데, Get 형태로 파라미터가 전송될 경우에는 다음과 같이 XSS필터 기능에 의해 스크립트 실행이 차단됩니다. Type-1 XSS 공격을 시도할 경우 이미 알려진 다양한 패턴은 대다수 차단이 되고 있더군요.

ex)http://www.a3sc.co.kr/a3sc.php?a3sc=<script>alert(1)</script>
 


[그림 3] 파라미터를 통한 XSS 공격 시 스크립트 실행 차단

하지만 아직까지는 Type-1 XSS 공격에 대해서만 필터링이 적용 되다보니, 게시판이나 자료실 등과 같은 곳에서 시도되는 XSS 공격에 대해서는 필터링이 적용이 안되고 있습니다.

다음은 IE8에서 게시판에 스크립트를 입력하는 화면입니다.
 


[그림 4] IE8 에서 스크립트 입력


다음과 같이 IE8에서 XSS 필터 기능을 사용함에도 불구하고 스크립트가 실행된 화면입니다.
 


[그림 5] IE8에서 스크립트 실행


IE8에서 추가된 client 보호기능 중 하나인 “XSS필터” 기능은 client입장에서는 상당히 유용한 보안옵션일 수 있습니다.
스팸메일이나 게시판, 메일 등을 통해서 XSS를 이용한 공격이 이루어지고 있습니다. 이때 확인되지 않은 URL에 대해서 client가 접근을 하더라도 “XSS 필터”를 통해 차단이 되기 때문에 비교적 안전하게 사이트 이용이 가능합니다.

하지만 위에서 설명한 대로 아직까지는 파라미터를 통해 시도되는 XSS 공격(Type-1)에 대해서만 필터링이 이루어지고 있습니다.
추후에 MS에서 업데이트를 진행하겠지만 아직까지는 IE8의 “XSS필터” 기능에 너무 의존해서는 안될 것 같네요.

“XSS 필터” 기능이 적용된 IE8을 사용하는 client 일지라도 아직까지는 XSS 공격에 100% 안전할 순 없을 것 같습니다..

참고) http://en.wikipedia.org/wiki/Cross_site_scripting#Attack_vectors
        http://blogs.msdn.com/dross/archive/2008/03/10/xss-focused-attack-surface-reduction.aspx


 Copyright(c) 1998-2009 A3 Security ,LTD 

현재 ㈜에이쓰리시큐리티에서 테스트 분석 중에 있으며, 문서는 계속 업데이트될 것입니다. 문서는 보안취약점으로 인한 피해를 최소화하는 도움이 되고자 작성되었으나, 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다 

▷ 작성자 : nova (nova@a3security.com), 니키 (ngnicky@a3sc.co.kr)
▷ 편집자 : 니키 (ngnicky@a3sc.co.kr)


Firefox Add-on (XSS ME, SQL Injection) 에 대해서


사용자마다 브라우저의 선택은 다르겠지만, Firefox의 부가기능들 중 관심을 가질만한 것들이 많습니다. 그중에서 "XSS ME" ,"SQL Injection ME" 라는 부가기능을 설명을 할려고 합니다. 실습환경은 CentOS + WebGoat 를 사용했습니다.

WebGoat의 환경 구성 방법은 아래 간단하게 설명을 하였습니다. 윈도우 버전도 동일하게 JDK와 WebGoat만 설치하시면 됩니다. 설치화면은 생략하겠습니다^^)

vmware 다운로드
vmware + centos 4.6 (images download)
- http://www.thoughtpolice.co.uk/

WebGoat 다운로드
OWASP WebGoat 5.2 Download (java, tomcat 포함)
- http://sourceforge.net/project/showfiles.php?group_id=64424&package_id=61824&release_id=613045

JDK 다운로드
http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u12-linux-i586-rpm.bin?BundledLineItemUUID=lT5IBe.pae8AAAEfo3hqH7Yk&OrderID=1BlIBe.pJ38AAAEfiHhqH7Yk&ProductID=1O1IBe.pLl4AAAEerDlTv_an&FileName=/jdk-6u12-linux-i586-rpm.bin


1. vmware에서 centos images를 구동한다.


2. JDK 설치

다운로드한 JDK를 설치한다.

- 설치방법
#sh jdk-6u12-linux-i586-rpm.bin

- 설치 위치  확인
/usr/java/jdk1.6.0_12 설치 되었음.

- ./etc/profile,  /.profile,  /.bash_profile 중 한곳에 jdk path를 추가합니다.

[root@localhost jihpa# vi /etc/profile
##### for jdk setting #####
export JAVA_HOME=/usr/java/jdk1.6.0_10
export PATH=$PATH:/usr/java/jdk1.6.0_10/bin

- 환경설정 적용
#export JAVA_HOME=/usr/java/jdk1.6.0_10
#export PATH=$PATH:/usr/java/jdk1.6.0_10/bin

3. OWASP WebGoat 설치

압축해제 이후 대상 폴더안에 webgoat.sh를 수정해야함.
17번째 라인에 있는 $JAVA_HOME/bin/java -version 2>&1 | grep 'version \"1.5' >/dev/null 를 다음과 같이 수정

==========================================================================
17                 $JAVA_HOME/bin/java -version 2>&1 | grep 'version \"1.5' >/dev/null
17                 $JAVA_HOME/bin/java -version 2>&1 | grep 'version \"1.6' >/dev/null
==========================================================================

JDK의 버전 체크에서 문제가 되므로 반드시 수정해야함.

- OWASP WebGoat안에 tomcat/conf/server_8080.xml tomcat/conf/server_80.xml 파일 수정
vmware이미로 제공되는 os의 IP를 수정해야합니다.

127.0.0.1로 되어있는 부분을 vmware의 대상 서버IP로 변경해주시기 바랍니다.

여기까지 설정되었으면

#sudo sh webgoat.sh start8080 <<< 8080 port로 실행
#sudo sh webgoat.sh start80 <<< 80 port로 실행
#sudo sh webgoat.sh stop <<< webgoat 중지

접속방법
http://localhost/WebGoat/attack

login in as: user = guest, password = guest


결론부터 말씀드리면 무료로 제공하는 자동툴은 대부분 패턴의 부족함이 있습니다. 자신에 맞는 환경을 만들려면 그만큼 사용자들이 많은 시간을 소비해야 겠죠? Source까지 제공(대부분 Javascript) 을 하기 때문에 관련 툴에 대한 분석을 하면서 학습에 도움이 되는데 만족을 해야 할거 같습니다.

WebGoat 테스트 중에서 XSS 와 관련된 파트에서 테스트를 해봤으며, 결과가 드러나고 있지만 확실히 이런 취약점이 존재하는지는 수동으로 재점검 할 필요가 있습니다. Add-on 기능에서는 단지 이런 종류의 기능을 제공하고 있다는것뿐이며 평가는 항상 사용자들이 점수를 주고 있습니다.

Firefox Add-on 기능중 XSS(Cross Site Scripting)과 SQL Injection 부분에 대해서 부가기능을 제공하고 있습니다.
아래 사이트에 가시면 관련 정보와 Source 파일까지 모두 받을 수 있으니 학습하는데 참고하시기 바랍니다.

http://securitycompass.com/exploitme.shtml



Firefox의 부가기능을 추가하는 방법은 아래와 같이 도구->부가기능으로 검색하시면 됩니다. "XSS Me"로 검색하시면 해당 부가기능이 검색될것이며 "Firefox에 추가"를 누르면 설치가 자동으로 될겁니다.
다른 부가기능들도 이와같이 간단하게 설치가 가능하며, 부가기능 모음 을 클릭하시면 모든 부가기능에서 자신이 원하는 것을 찾으셔도 됩니다. 한번도 경험하지 못하신 분들은 관심을 가지시면 Firefox의 매력에 빠질지도....^^)


설치가 완료되면 아래와 같이 추가가 되어 있을겁니다. "Open XSS Me Slidebar"를 클릭하면 왼쪽에 해당 기능이 보일겁니다.


해당 입력폼(Search)에 대한 점검을 모두 한다고 체크를 해주시면 간단하게 테스트할 수 있습니다.


XSS Me Options에 가면 점검 패턴들이 등록되어 있습니다. 자신이 원하는것도 XML 파일로 Import하여 추가를 할 수 있습니다.



SQL Injection 에 대한 점검방법은 위와 동일하기 때문에 생략을 하고, SQL Injection ME Options에 보면 XSS Me와 동일하게 패턴들이 등록되어 있습니다.


XSS 점검 후에 결과보고서를 제공하고 있습니다. 뭐가 잘못된 부분인지 상당히 판단하기 어렵죠?^^);;
분명 부족한점이 더 많은듯 보이지만, 점점 패턴에 대한 업데이트가 이루어지다 보면 자신한테 도움이 될만한 패턴들이 제공될 수도 있습니다.
중국툴(HDSI, NBSI 등)도 사용자 측면에서는 매우 쉽게 사용을 하고 있는 해킹툴이지만 그안에 있는 패턴은 전혀 생각지 못했던 패턴들일때가 있습니다. 현재도 많이 제공되는 툴들에 대한 응용과 활용도가 높아지고 있다는거죠^^)..


간단한 Firefox 부가기능을 설명했습니다. 이외에도 좋은 기능들이 많습니다. 정리되는대로 포스팅을 하도록 하겠습니다^^)

PGP Enterprise 9.x 가이드

웹 어플리케이션 2009. 2. 19. 15:22 Posted by TEAMCR@K

▷ 작성자 : 니키 (ngnicky@a3sc.co.kr)
▷ 편집자 : 니키 (
ngnicky@a3sc.co.kr)


개인정보 및 문서보안에 대해 이슈가 되고 있는 만큼, 전자우편 암호화 및 문서암호화에 널리 사용되고 있는 PGP에 대해서 상세히 살펴보도록 하겠습니다.


PGP(Pretty Good Privacy) Enterprise 9.x 가이드


1. PGP(Pretty Good Privacy) 란?
인터넷의 전자우편을 암호화하거나 복호화시켜 제3자가 알 수 없도록 하는 보안 프로그램이다. PGP(Pretty Good Privacy)는 1991년 필 짐머맨(Phil Zimmermann)이 개발하였고, PEM(Privacy enhanced Mail)에 비해 보안 측면에서는 조금 취약한 편이지만 전자우편 보안에 있어서 사실상의 표준이 되었다.

전자우편은 인터넷 상에서 마치 우편엽서와도 같아 주고받는 이들의 주소는 물론 내용까지 해킹당할 가능성이 많다. 이러한 단점을 보완하여 전자우편을 마치 편지봉투처럼 만든 것이 PGP이다. 일반 편지봉투는 뜯어서 내용을 보거나 바꿀 수 있으나, 이 프로그램은 전자우편의 내용을 암호 알고리즘을 이용하여 암호화시키므로 암호를 푸는 특정 키(key)를 가지고 있어야만 내용을 볼 수가 있다. (네이버 백과사전 참조)

A사용자가 B사용자에게 전자우편을 보낼 때 A는 B의 공개키로 암호화 하고, B는 자신의 공개키로 암호화된 메시지를 비밀키로 복호화 한다. 전자서명은 A의 개인키로 암호화 하고, B는 A의 공개키로 복호화 한다. (SIS 가이드 라인 참고)
- 기밀성 : 이메일 수신자만이 내용을 볼 수 있도록 하는 것
- 전자서명 : 송신자라고 주장하는 사용자와 이메일을 실제로 보낸 송신자가 동일인가를 확인해주는 것

전자우편의 기밀성과 메시지인증•사용자인증•송신부인방지 등을 지원하고 있다. 곧, 해당자가 아닌 사용자들은 내용을 볼 수 없게 해주며, 전송 도중에 내용이 불법적으로 변경되었는가를 확인해 주고, 전자우편을 실제로 보낸 사람이 누구인가를 확실히 알 수 있게 하며, 송신자가 전자우편을 받고서도 받지 않았다고 주장할 수 없게 해준다.

1991년 처음 개발된 뒤 매사추세츠공과대학(MIT)에서 공개버전이, 보안회사인 비아크리프트(ViaCrypt)사에서 상업버전이 각각 출시되었다. 공개버전이나 상업버전은 모두 미국과 캐나다에서만 사용할 수 있으며, 오직 유닉스(UNIX) 버전만이 두 나라 이외의 지역에서도 사용할 수 있도록 하고 있다. (SIS 가이드 라인 참고)

오늘 소개해줄 PGP Enterprise 9.X 버전은 30일동안 사용할 수 있는 최상위 버전 프로그램이다.


2. 설치 및 설정 안내

최신 버전인 PGP Enterprise 9.X 는 Client 에 한해서 라이센스를 제공하고 30일동안 서비스를 사용할 수 있다.
http://www.pgp.com/downloads/desktoptrial/desktoptrial2.html

다음은 라이센스를 획득하기 위해서 동의서를 확인하고 승낙하는 화면이다.


[그림 1] 동의서 확인

다음은 라이센스를 획득하기 위해서 개인정보를 입력하는 화면이다.


[그림 2] 개인정보 입력

다음은 라이센스 발급 페이지에 접근하기 위한 링크주소가 입력한 메일주소로 도착한 화면이다.

 
[그림 3] 라이센스 발급 페이지 링크 주소

다음은 해당 프로그램의 라이센스가 발급되며, ‘Register’ 버튼을 클릭할 경우 해당 라이센스 등록에 필요한 정보를 다시 입력하게 된다.


 [그림 4] 라이센스 발급

다음은 라이센스 정보까지 입력하고 정상적으로 해당 프로그램을 다운로드 받는 화면이다.


[그림 5] 프로그램 다운로드

다음은 다운로드 받은 프로그램을 설치하는 화면이다.(다시 시작 필요)


[그림 6] 프로그램 설치

다음은 라이센스 발급시 입력한 정보와 라이센스 번호를 입력하는 화면이다.

[그림 7] 프로그램 설치 (2)

다음은 개인키(Private Key)를 생성하는 과정이다. 추후에 생성하는 것도 가능하지만 설치과정에서 생성하면 간편하다.


[그림 8] 개인키 생성

개인키가 생성되면서 프로그램이 정상적으로 설치된 화면이다.


[그림 9] 프로그램 설치 완료

설치한 뒤에 아래와 같이 다른 사용자에게 공개키(Public Key)를 첨부하여 보낼시 SMTP 프로톨로 문제로 에러가 발생한다. Outlook Express 를 통한 Gmail 서비스를 이용함에 있어 보안 연결(SSL)이 PGP 의 암호통신과 충돌이 생김으로써 발생한 것이다.

아래 페이지들을 참고하여 에러발생 문제를 해결 할 수 있었다.

[원본 페이지]
https://pgp.custhelp.com/cgi-bin/pgp.cfg/php/enduser/std_adp.php?p_faqid=91&p_created=1140801150&p_sid=WYnIC3pi&p_lva=&p_sp=cF9zcmNoPSZwX3NvcnRfYnk9JnBfZ3JpZHNvcnQ9JnBfcm93X2NudD0zNzcmcF9wcm9kcz0mcF9jYXRzPSZwX3B2PSZwX2N2PSZwX3NlYXJjaF90eXBlPWFuc3dlcnMuc2VhcmNoX25sJnBfcGFnZT0x&p_li=&p_topview=1

[번역 페이지]
http://kin.naver.com/knowhow/entry.php?d1id=8&dir_id=8&eid=7vg9+qrdTRL2A9IPtPDRuYlT4hDSAVlg&qb=cGdwvLPEoQ==&pid=figfPdoi5UssscwTeTwsss--300672&sid=SZTSeVWqlEkAAF72RSg


다음은 다른 사용자에게 공개키를 첨부하여 메일을 보내는 과정이다.


[그림 10] 공개키 배포

다음은 SMTP 프로토콜에 의한 에러가 발생한 화면이다.


[그림 11] SMTP 에러 발생

참고 페이지를 이용하여 아래와 같이 변경을 하였고 정상적으로 메일 서비스를 이용할 수 있었다. 도구->계정->사용자의 속성->고급 정보에서 보안연결(SSL) 필요 체크를 해체한다.


[그림 12] 보안 연결(SSL) 해체

다음은 도구->계정->사용자의 속성-> 서버 정보에서 ‘보내는 메일 서버’ 인증 필요에 체크를 한다.


[그림 13] 보안 연결(SSL) 해체

PGP Desktop 옵션(Options) -> Messaging에서 아래 화면과 같이 설정한다.

[그림 14] PGP 옵션 설정

모든 설정이 완료된 뒤에 정상적으로 메일이 보내지는 것을 확인할 수 있다.


[그림 15] 설정 완료


3. 문서 암호화

PGP Desktop 설치 및 설정이 완료되었다. PGP는 전자우편 서비스, 간단한 문장부터 문서(Doc, ppt 등)를 암호화 및 복호화가 가능하다.

다음은 ‘a3 시큐리티 테스트입니다’ 문자를 복사한뒤 ‘Encrypt’를 선택하여 암호화를 시키는 과정이다.


[그림 16] 문자 암호화

다음은 다른 사용자(테스트상 동일한 사용자)가 메일을 확인하여 ‘Decrypt & Verify’를 선택하여 복호화가 가능하다.

[그림 17] 문자 복호화

다음은 정상적으로 복호화가 된 화면이다.


[그림 18] 문자 복호화 완료

다음은 평문으로 저장되어 있는 문서 파일(DOC) 을 선택하여 개인키(Private Key) 로 해당 문서를 암호화 하는 과정이다.


[그림 19] 문서 파일 암호화

해당 키를 가지고 있지 않는 사람은 암호 문서를 열람할 경우 아래와 같이 깨진문자로 나타난다.


[그림 20] 암호화된 문서 열람

복호화 할 경우에는 문자 복호화와 동일하게 ‘Decrypt & Verify’를 선택하면 된다.


[그림 21] 암호화된 문서 복호화


4.연구 과제
정보 유출을 통제하고 있는 문서보안솔루션(DRM) 및 이동저장매체 통제 솔루션을 많이 사용하고 있으며, 각 제품별로 취약점들이 나타나고 있습니다. PGP 에대한 암호키 인증 우회를 통한 전자우편암호 우회기법도 꾸준한 연구 과제가 될거 같습니다.

II. Reference & Site

 ▷ http://www.pgp.com
 ▷ SIS 가이드 라인
 ▷ 정보 보안 개론과 실습 : 인터넷 해킹과 보안
    ▷ 슈퍼 유저 : www.superuser.co.kr
 ▷ https://pgp.custhelp.com/cgi-bin/pgp.cfg/php/enduser/std_adp.php?p_faqid=91&p_created=1140801150&p_sid=WYnIC3pi&p_lva=&p_sp=cF9zcmNoPSZwX3NvcnRfYnk9JnBfZ3JpZHNvcnQ9JnBfcm93X2NudD0zNzcmcF9wcm9kcz0mcF9jYXRzPSZwX3B2PSZwX2N2PSZwX3NlYXJjaF90eXBlPWFuc3dlcnMuc2VhcmNoX25sJnBfcGFnZT0x&p_li=&p_topview=1
 ▷ http://kin.naver.com/knowhow/entry.php?d1id=8&dir_id=8&eid=7vg9+qrdTRL2A9IPtPDRuYlT4hDSAVlg&qb=cGdwvLPEoQ==&pid=figfPdoi5UssscwTeTwsss--300672&sid=SZTSeVWqlEkAAF72RSg

Copyright(c) 1998-2009 A3 Security ,LTD


Disclaimer
※ 현재 ㈜에이쓰리시큐리티에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다.


 

Clickjacking 에 관하여 [2/2]

웹 어플리케이션 2009. 2. 2. 13:56 Posted by TEAMCR@K

1월 23일에 올렸던 파이어폭스(FireFox)의 Clickjacking 에 대해서(http://teamcrak.tistory.com/58) 문서를 포스팅 했는데, 몇일 사이에 Google Chorm 과 Internet Explorer 7 대상에 대해서도 관련 공격문서가 발표되었습니다.

Firefox 3.0.5 Status Bar Obfuscation / Clickjacking
Google Chrome 1.0.154.43 ClickJacking Vulnerability (2009-01-23)
Internet Explorer 7 ClickJacking Vulnerability (2009-01-23)

아래는 Internet Explorer 6에서 테스트한 결과입니다. Internet Explorer 7 도 동일한 결과가 나올거라 판단됩니다.



이 부분에 대한 보안뉴스의 기사내용입니다.
http://www.boannews.com/media/view.asp?page=1&idx=14065&search=&find=&kind=1

Internet Explorer 8의 X-FRAME-OPTIONS 기능과 FireFox의 NoScript Firefox plug-in 기능을 사용하여 보안을 하는 부분도 있지만, 이것을 제한하게 되면 그만큼 웹 서비스를 이용하는데 제한이 심할거라 판단됩니다.

우선은 일반사용자들이 링크문서에 대한 접근을 조심할 수 밖에 없는듯 합니다.



Copyright(c) 1998-2009 A3 Security ,LTD


Disclaimer
※ 현재 ㈜에이쓰리시큐리티에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다.

Clickjacking 에 관하여 [1/2]

웹 어플리케이션 2009. 1. 22. 10:51 Posted by TEAMCR@K

클릭잭킹(Clickjacking)이란 마우스 클릭(Click)과 하이잭킹(Hijacking)의 합성어로,  사용자 입장에선 자신이 보고있는 웹 페이지의 콘텐츠를 클릭하지만, 실제로는 다른 웹 페이지의 콘텐츠를 클릭하는 것입니다.
즉, 사용자는 눈치채지 못하는 사이에 자신이 원하지 않는(위험가능성이 있는) 콘텐츠나 링크를 클릭 할 수 있는 취약점입니다. XSS(Cross Site Scripting)와 CSRF(Cross Site Request Forgery)의 응용버전 인것 같은데, 최근 주목받고 있는 보안 동향중에 하나라고 합니다.

milw0rm에서도 2009년 1월 21일짜로 올라왔군요. 예제는 파이어폭스(Firefox)에서만 테스트가 됩니다.(Internet Explorer 에서는 링크된 주소로 정상적으로 이동됩니다)

http://milw0rm.com/exploits/7842




이전 5~6년전에 URL정보에 0x01 문자를 넣어 주소표시줄에 출력되는 URL정보와 실제 이동하는 URL이 달라서 사용자를 속일 수 있는 취약점이 있었는데 비슷한 개념이라고 생각하시면 될것 같네요. (공론화 이후 해당 결함은 패치되었습니다.)
http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2003-12/0353.html

참고로 CSRF 취약점을 익스플로잇 할때 iframe 태그에 width, height 를 0 값으로 채울때 IE는 아무런 특이점도 발견하지 못했는데, firefox, opera 같은 경우는 5x5 pixel 정도 되는 어떤 모양이 되었습니다.
이럴때 div 태그를 iframe 양 옆에 감싸주고 div 태그의 width, height 값을 0으로 주면 완벽하게 사용자를 속일 수 있었습니다.

 <div style="position:absolute; width:0px; height:0px; overflow:hidden"><iframe src="URL" width=0 height=0></iframe></div>


[참고사이트]

예제 사이트
http://blog.daum.net/memonpaper/6941607

ClickJacking에 대한 간단한 Demo
http://www.planb-security.net/notclickjacking/iframetrick.html

직접할 수 있는 데모 사이트
http://guya.net/security/clickjacking/game.html

ClickJacking 시연 동영상
http://kr.youtube.com/watch?v=gxyLbpldmuU

ZDNet Korea 뉴스
http://www.zdnet.co.kr/ArticleView.asp?artice_id=00000039173575

방지책
http://phpsec.org/projects/guide/2.html


Copyright(c) 1998-2008 A3 Security ,LTD


Disclaimer
※ 현재 ㈜에이쓰리시큐리티에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다.