[경] 주용식과장님 득녀 [축]

CR@K 이야기 2010. 1. 11. 12:10 Posted by 알 수 없는 사용자
저희팀 주용식과장님께서 득녀하셨습니다.

올해 초 조정원 대리님의 득남 소식 이후 또 경사가 났네요 ^^

많이 축하해 주세요~
"노트북이 도청당한다" 기사에 대한 기술적 분석

I. 기사 내용


[2. 기사 요약]

노트북 컴퓨터가 도청장치로 이용될 수 있는 새로운 사실이 시연을 통해 확인되었으며, 시연내용으로 e메일이나 메신저를 통해 노트북으로 악성코드(도청)를 설치하게 되면, 노트북을 켤 때마다 마이크가 켜지면서 도청이 시작된다.

하루 정도의 노력으로 제작 가능한 수준이다.

기존의 보안 프로그램으로는 탐지가 되지 않으며, 현재로서 막을 대안이 없어 대책을 만드는 것이 시급하다.

II. 기술적 관점에서의 기사내용 분석

[1. 새로운 개념이 아닌 이미 해외에 공개된 툴 존재]

위의 기사는 0-day(patch되기 전의 새롭게 발견된 취약점)가 아니라, 악성코드가 실행된 후 감염된 PC를 악용할 수 있는 방법이며, 이러한 개념은 기존에 해외에서 원격관리용 툴로 소개되고 배포된 사례가 있습니다. 또한 유사한 사례로 Skype에 대한 위협도 보고된 바가 있습니다.(http://teamcrak.tistory.com/131 참고)
다음은 기존에 존재하던 원격 관리용 툴로 기사에서 소개된 audio capture 기능을 포함한 프로그램입니다.


[2. 악성코드 제작시간과 기술수준]

악성코드라는 것은 단 하루만에 만들어 낼 수 있는 것이 아닙니다. 시스템, 네트워크 등등 거의 모든 분야의 테크닉(은닉, 감염, 전파, 기능 등)이 집약된 결정체가 바로 악성코드 입니다. 기사에서 의미하는 하루만에 제작 가능하다는 의미는 이미 작성된 악성코드에 해당 기능을 추가하는데 걸리는 시간을 하루라고 표현한 것이라 판단됩니다.

[3. 보안 프로그램의 진단]

첫째, 기사에는 “감염된 PC를 시중에서 많이 쓰는 여러 보안프로그램으로 검사해 봤다“는 방법 자체가 보안 프로그램의 성능을 평가하기에는 부족한 평가 방법입니다. 실제 악성코드가 실행(최초 감염)되어 은닉하기까지 모든 과정을 보안 프로그램으로 모니터링하여야 올바른 진단 방법입니다.
두 번째, 최초 감염이 어떠한 취약점이 아닌 사용자 부주의에 의한 사용자 개입(직접 파일 실행)이 이루어졌을 경우 이는 사용자가 악성코드의 실행을 허용하였기 때문에 사용자의 정당한 행위로 인식하고 기존의 보안 프로그램으로 막을 수 없습니다. 만일 0-day(패치 이전의 취약점)를 이용하여 전파를 시켰다면 이를 막을 수 없는 것은 당연합니다. 또한 이번 건은 샘플이 접수되지 않은 PoC(Proof of Concept, 개념증명) 코드이기 때문에 백신 등에서 진단하지 않는 것이 당연합니다.

[4. 대응방안]

기사에서 소개한 도청프로그램에 대한 대응방안으로는 도청프로그램 자체가 아닌 악성코드의 감염을 막아야 하며, PC의 업데이트(패치) 관리 및 일반 사용자의 보안의식 재고(e메일 첨부파일 실행 시 주의 등)등이 있습니다. 따라서 아래와 같은 사용자 측면의 대응방안이 필요합니다.
1. 이메일, 메신저, 인터넷(P2P 등)에서 받은 파일 중 출처가 불분명하거나 수상한 파일은 실행하지 않고 삭제한다.
2. 불법소프트웨어를 사용하지 않고, 정품 소프트웨어를 사용한다.
3. 최신의 보안패치 적용, 강력한 패스워드 설정, 공유금지 등과 같은 기본적인 PC 보안 수칙을 준수한다.
4. 윈도우 방화벽 등의 개인용 방화벽을 사용한다.
5. 백신 등의 엔드포인트보안솔루션을 사용한다.

[5. 결론]

이번 건은 기술적 관점에서 새로운 것이 아닌 악성코드(바이러스, 웜 등) 감염 시 생길 수 있는 위협에 대한 하나를 소개한 측면이라고 봅니다.
일반 사용자는 PC 보안 수칙을 잘 준수하고, 기업/공공기관에서는 조직의 침해사고 예방/대응 지침을 잘 준수하면 예방이 가능합니다.


세미콜론을 이용한 IIS 파일 파싱 우회 취약점

I. 취약점 개요

1. 목 적
2009년 12월 말에 발표된 IIS 파일 파싱 부분에서 발생한 취약점을 소개하기 위해 이 문서를 제작하였습니다. IIS 서버 관리자 및 관련 개발자분들께서는 참조하시기 바랍니다.

2. 위험도
수준 : 상 
이유 : 웹 상에서 임의의 파일 업로드를 이용한 시스템 장악 가능

 
3. 취약 버전
Microsoft Internet Information Services 6.x 이하 버전의 거의 모든 버전에서 취약한 것으로 알려져 있습니다. 처음 발표 시 모든 버전이 취약한 것으로 알려졌지만, 현재는 일부 버전에서는 취약하지 않은 것으로 확인되었습니다. 이 취약점에 대한 보고서에도 'All Version'이라는 부분이 현재에는 삭제되어 있는 것을 확인할 수 있습니다.
OS 별/ IIS 버전 별 취약한 내용은 SecurityFocus(http://www.securityfocus.com/bid/37460)에 상세하게 소개되어 있으니 참고하시기 바랍니다.
테스트는 IIS 5.1과 IIS 6.0에서 이루어졌으며, 테스트가 이루어지지는 않았으나, IIS 7.5와 닷넷 프레임워크에서는 취약하지 않은 것으로 알려져 있습니다.
II. 취약점 상세

1. 설 명
이 취약점은 IIS에서 파일을 파싱하는 과정에서 ";" 부분을 인식하여 앞부분의 확장자를 체크함으로써 발생하는 취약점입니다. 보통 웹 개발자들이 파일 업로드 부분에서 파일 확장자 필터링의 경우 파일명의 제일 끝부분을 체크하는 경우가 많기 때문에 정상적으로 이미지 파일(jpg, gif등)로 인식하지만, 실제 파일을 웹 상에서 열게 되면, ";"부분까지만 인식하여 실행가능한 asp파일로 실행하게 되는 취약점입니다.

2. 위 협
앞에서 이야기한 바와 같이 일반적인 ASP 게시판에서 파일 업로드 부분의 확장자 필터링 루틴을 위의 방법을 이용하여 우회가 가능합니다. 우회가 가능하게 된 경우 공격자에 의해 웹쉘 업로드 및 실행을 통하여 웹 서버 시스템의 권한 획득이 가능하게 됩니다.

3. 버전별 실행여부 확인
해당 취약점에 대해 버전 별(IIS5.1/XP포함, IIS6.0/서버2003포함)로 비교한 것을 캡쳐한 화면입니다.

다음은 XP(SP3)에서 지원하는 IIS 5.1 버전에서 asp 실행여부를 확인하는 장면입니다. 아래는 asp파일을 이용하여 서버의 IIS 버전을 확인하는 화면입니다.

[그림 1] IIS 버전 확인(5.1)

아래와 같이 asp가 실행되지 않고 평문으로 출력하는 것을 확인할 수 있습니다. 이는 asp가 아닌 jpg로 인식하기 때문에 그대로 출력되어 asp가 실행되지 않는다고 할 수 있습니다.

[그림 2] 파일 소스가 텍스트로 출력

다음은 서버 2003 R2 버전의 IIS 6.0 버전에서 테스트한 화면입니다. 아래는 asp 파일을 이용하여 서버의 IIS 버전을 확인하는 화면입니다.

[그림 3] IIS 버전 확인(6.0)

아래와 같이 asp로 실행된 화면을 보여주는 것을 확인할 수 있습니다.

[그림 4] asp로써 파일이 실행된 화면

III. 대응방안 및 참고사이트

1. 대응방안
KrCERT에서 발표한 내용과 발표자의 자료를 기초로 하여 대응방안을 정리하였습니다.

가. 웹 개발자
- 웹 어플리케이션 측에서 업로드 파일명을 랜덤문자열로  치환하여 파일명과 확장자를 임의 지정하도록 해야합니다. 사용자의 입력값을 그대로 파일명으로 사용하지 못하도록 해줍니다.
- 파일명과 확장자에 알파벳과 숫자만 사용하도록 해야합니다.

나. 웹 서버 관리자
- 업로드 디렉토리의 파일 실행권한을 제거해 줍니다.

2. 참고 사이트

축!정원이 형 득남..

CR@K 이야기 2010. 1. 8. 13:41 Posted by 알 수 없는 사용자

아기다리 고기다리던 정원이형의 득남소식이 어제 전해졌습니다.

정원이형을 알고 계시거나 저희 블로그에 들려주시는 분들은 댓글로 축하인사 해주세요.

Metasploit 기능 분석

취약점 분석/2009년 이후 2010. 1. 3. 19:00 Posted by TEAMCR@K

 
Metasploit 기능 분석
by aramlee@a3security.com(A.K.A InPure)
& bdr@a3security.com(A.K.A DearTom)

I. Metasploit 소개

1. 개  요
Metasploit은 취약점 점검에 편리하도록 익스플로잇을 모아놓은 ruby기반(version 3 이상, 그 이하 버전은 perl 기반)의 오픈소스 프레임워크로, 취약점에 대한 깊이 있는 지식이 없어도 간단하고 쉽게 취약점 점검이 가능합니다.
최근 Metasploit 3.3.3 버전이 발표되었으며(2009.12.23), 최신 버전에서는 다음과 같은 기능이 추가되었습니다.
- 모든 익스플로잇에 해당 익스프로잇을 기본 설정으로 하여 타겟에 실행하였을 경우 위험도를 포함하고 있습니다.
- 검색 명령어에 -r옵션으로 위험도가 가장 작은 모듈을 검색할 수 있습니다. (db_autopwn과 nexpose_scan 에서는 –R 옵션을 사용합니다.)
- The sessions command can now run a single command (-c) or a script (-s) on all open sessions at once.
- Win32 EXE파일이 88k에서 37k로 더 작아졌습니다.

2. 지원하는 운영체제
32bit MS Windows, UNIX(Linux)를 지원합니다.

3. 설치

Metasploit 3.3.3(WIN32)은 아래 URL에서 다운로드합니다.
http://spool.metasploit.com/releases/framework-3.3.3.exe
 

  
설치가 완료되면 시작메뉴 > 모든 프로그램 > Metasploit3의 하위메뉴에서 프로그램을 실행합니다.


4. 인터페이스 소개
1) Metasploit3 GUI (WIN32 3.2-release)
Metasploit3 GUI는 3.2 release버전까지 지원되었습니다. GUI는 로컬에서 응용프로그램으로 동작하며, 몇 번의 버튼 클릭만으로 취약점 점검이 가능합니다.
다음은 Metasploit3 GUI를 실행한 화면입니다.
                                                          [그림 1] Metasploit3 GUI 실행 화면


메인 화면의 메뉴 아래의 검색어 입력란에 특정문자열을 입력한 후 찾기를 클릭하면 관련된 모듈을 검색합니다.
다음은 oracle로 검색하여 그 결과를 캡쳐한 화면입니다.
                                                                      [그림 2] 모듈 검색

검색된 모듈에서 필요한 익스플로잇을 선택하면 아래 창에 설명이 출력되며 이 상태에서 더블클릭을 하거나 우클릭을 하여 실행합니다. 다음 화면은 익스플로잇을 선택한 후 우클릭을 한 화면입니다.
                                                                     [그림 3] 익스플로잇 실행

2) Metasploit3 Web
Metasploit3 Web은 웹 인터페이스로 실행하면 로컬의 55555포트로 동작하며 GUI와 같이 사용이 편리합니다.
다음은 Metasploit3 Web을 실행한 화면입니다.
                                                        [그림 4] Metasploit Web 실행 화면

① Exploits
익스프로잇을 검색하는 메뉴입니다.
                                                              [그림 5] Exploit 검색 초기 화면

                                                                   [그림 6] Exploit 검색 화면

검색결과 중 맨 위의 Apache Win32 Chunked Encoding을 클릭하면 익스플로잇 설명과 타겟을 선택 가능한 창이 열립니다.
                                                                [그림 7] Exploit 설명 및 타겟 설정

익스플로잇에 필요한 정보를 모두 설정한 후Launch Exploit 버튼을 클릭하여 익스플로잇을 실행합니다.

② Auxiliaries
Auxiliaries 모듈을 검색하는 메뉴입니다.
                                                             [그림 8] Auxiliaries 검색

Exploit과 같은 방법으로 검색한 결과에서 특정 모듈을 클릭한 후 모듈 실행에 필요한 정보를 입력하고 Launch Auxiliary 버튼을 클릭합니다.
③ Payloads
Payload를 검색하는 메뉴입니다.
                                                              [그림 9] Payload 검색

Exploit, Auxiliary과 같은 방법으로 검색한 결과에서 특정 모듈을 클릭한 후 모듈 실행에 필요한 정보를 입력하고 Generate 버튼을 클릭합니다.
④ Console
Metasploit의 콘솔창을 여는 메뉴입니다.
                                                                    [그림 10] Console 열기

⑤ Sessions
익스플로잇을 실행하여 생성한 세션 정보를 확인하는 메뉴입니다.
세션 유무에 따라 다음과 같은 화면을 볼 수 있습니다.
                                                              [그림 11] 세션 정보가 없는 경우

                                                            [그림 12] 세션 정보가 있는 경우

⑥ Options
Skin을 변경하는 메뉴입니다.
                                                                          [그림 13] Options

⑦ About
Metasploit Framework Web Console 정보를 확인하는 메뉴입니다.
                                                                          [그림 14] About

3) Metasploit3 Console
Metasploit3을 Console창에서 사용하며, 사용할 모듈의 이름을 정확히 알고 있어야 합니다. 다음은 Console창을 실행한 화면입니다.
                                                   [그림 15] Metasploit Console 실행 화면

5. 사용법
① 모듈 로드
공격에 필요한 모듈을 로드합니다.

② PAYLOAD
공격 후 취할 행동을 결정합니다. (REVERSE 연결 등)

③ 타겟 등 모듈을 실행하는 데 필요한 옵션 입력
Info를 입력하여 모듈을 실행하는 데 필요한 옵션 정보를 확인할 수 있습니다.
옵션을 입력할 때에는 모듈명>set 옵션명 옵션값 을 입력합니다.

④ 실행
Run 또는 exploit 명령을 입력하여 실행합니다.

 
II.  Metasploit 활용방안
** 상세한 공격 내용이 포함되어 있어 악용할 우려가 있으므로 중략하였습니다. **

1. 활용방안

Metasploit 3.3.3 기준(Last updated 2009.12.23)으로 468개의 익스플로잇, 192개의 페이로드, 22개의 인코더, 8개의 NOP, 221개의 AUX가 존재하여 다양한 환경을 구성하여 취약점 점검이 가능합니다. 업데이트도 꾸준히 이루어져 최신 취약점도 점검할 수 있습니다. 이 장에서는 취약점 점검에 필요한 모듈을 추가하는 방법과 업데이트 방법에 대해서 기술하였습니다.

1) Metasploit 구조
Metasploit은 다음과 같은 구조로 되어 있습니다.


UI를 수정하고자 할 때에는 /data/mfweb에서, Module은 /modules에서, 프레임워크의 기능을 확장하고자 할 경우에는 /plugins 에서 변경합니다.

2) Modules
Module은 다음과 같이 다섯가지로 구분합니다. 모듈 파일의 경로는 (설치시 기본 경로 기준) C:\Program Files\Metasploit\Framework3\msf3\modules에 존재합니다.
‘⑤ Auxiliary’는 3.0이상부터 추가된 모듈입니다.

① Payload
익스플로잇이 성공한 후에 타겟 머신에 실행할 코드입니다..
사용하기 위해서는 익스프로잇을 로딩한 후 다음과 같이 입력합니다.

② Exploit
취약점을 이용하여 프레임워크가 임의의 코드를 실행할 수 있게 합니다.
다음과 같이 입력하여 익스플로잇을 사용합니다.

③ Encoder
인코딩하는 모듈로 플랫폼에 따른 다양한 인코딩방식을 지원합니다..

④ Nop
실제로 레지스터 상태나 프로세서 플래그에 영향을 미치지 않으면서 실행을 계속하는 인스트럭션을 생성합니다.

⑤ Auxiliary
익스플로잇으로 분류하기 애매한 모듈. 페이로드나 타겟을 사용하지 않는 스캔, DoS, Directory Inexing 등이 포함되어 있습니다.

3) Update
최신 취약점을 점검하기 위해서 Update를 하여 최신 버전으로 유지해야 합니다.
업데이트는 아래와 같은 방법으로 실행합니다.
시작 > 모든 프로그램 > Metasploit > Online Update
                                                                [그림 17] Metasploit Update

다음은 Update를 실행한 화면입니다.
                                                      [그림 18] Metasploit Update 실행 화면

III.  참고 사이트
- Metasploit 공식 홈페이지는 다음과 같습니다.
- Metasploit 공식 홈페이지 http://www.metasploit.com
- Metasploit 공식 블로그 http://blog.metasploit.com

- Metasploit에 관한 정보는 다음의 문서를 참고하였습니다.
- Metasploit3 아키텍처 분석 by xeraph@nchovy.kr
- BHUSA09-Gates-OracleMetasploit-PAPER by Chris Gates & Mario Ceballos
- BHUSA09-Gates-OracleMetasploit-SLIDES from BLACKHAT 2009
- How_2_use_metasploit_3.0 by rich4rd
- Metasploit_Framework_3 by bluearth in N@R
- Metasploit_Framework_Web_Interface_Tutorial by www.learnsecurityonline.com
- Metasploit_advance_bear_NR by bluearth in N@R
- Metasploit_basic_bear_NR by bluearth in N@R

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