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


[A3AID08-02]
MS Windows Server Service Code Execution 공격 보안 권고안

 


최초 작성일 : 2008. 10. 24

최초 작성일 : 2008. 12. 01

위험등급:
긴급

현재 상태(패치 여부) : 패치

벤더: Microsoft Windows


대상 시스템 :

- Microsoft Windows 2000 SP4
- Microsoft Windows XP SP2, SP3
- Microsoft Windows XP Professional x64 Edition, SP2
- Microsoft Windows Server 2003 SP1, SP2
- Microsoft Windows Server 2003 SP1, SP2 for Itanium-based Systems
- Microsoft Windows Server 2003 x64 Edition, SP2
- Windows Vista, SP1
- Windows Vista x64 Edition
- Windows Server 2008, x64 Edition, Itanium-based Systems

 -
취약점 개요:
이 취약점 영향을 받는 시스템에서 사용자가 특수하게 조작된 RPC 요청을 받을 경우 원격 코드 실행을 허용 할 수 있습니다. RPC는 원격 컴퓨터간의 프로그램 서비스를 요청하는 프로토콜로 해당 서버 서비스를 통해 파일,프린트,네트워크 공유를 지원해 다양한 기능을 수행합니다.
클라이언트는 이 서버와 통신하기 위해 TCP/139,445번의 SMB(Server Message Block)을 이용합니다. RPC 를 통하여 명령을 실행하기 위해서는 서버와 우선 SMB 세션을 맺어야 합니다. 윈도우 XP SP2,SP3 윈도우 서버 2008, 윈도우 Vista에서는 기본적인 방화벽 정책으로 TCP/139,445 포트가 예외처리 되어 있지 않습니다.
따라서 해당 공격이 성공하기 위해서는 방화벽이 중지 되어 있거나 방화벽은 돌고 있으나 파일/프린터 공유가 허용되어 있는 경우입니다. 취약점은 Netapi32.dll 에서 NetrCanonicalize method 에 wcscat 함수를 이용하여 읽어 드린 버퍼의 길이를 체크 하지 못하여 Stack Buffer OverFlow 가 존재 하였습니다.
현재 공격코드는 공개 된 상황이며 이 취약점을 악용한 웜 바이러스가 확인된 상태입니다.

 
- 심각도 및 취약점 확인

취약점 영향

MS Server Service Code Execution

비정상 실행 및 원격 코드 실행

긴급




취약점 세부 분석 :

1. 취약점 내용(Netapi32.dll)
Net Api 32 Library 은 Microsoft 네트워크에 access 하는 어플리케이션에 사용되는 Windows NET API 를 포함한 Library 입니다. 서버 서비스는 srvsvc 이름으로 파이프를 사용 하며 해당 인터페이스는 {4b-324fc8-1670-01d3-1278-5a47bf6ee188} 값으로 등록 되어 있습니다. 이 인터페이스를 이용하여 세션, 파일공유, 서비스 자원에 접근이 가능합니다.
클라이언트는 서버와 통신을 하기 위하여 SMB TCP/149,445 를 이용하여 세션을 맺습니다. 서버 측에서는 해당 세션에 인증을 하게 되는데 \\server\pipe\browser , \\server\pipe\srvsvc 형태의 익명 세션을 허용 합니다. 세션을 맺고 나면 rpc와 바인딩을 하여 클라이언트와 서버간의 통신이 가능하게 됩니다. 이때 공격자는 취약한 RPC 메시지를 전송하며 NetrCanonicalize Method 구간에 wscat 함수로 인하여 Stack Buffer OverFlow 가 발생 하여 임의의 코드 실행이 가능하게 됩니다.

 2. 공격 분석

Exploit은 공개된 상황이며 실행 한 환경은 XPPRO SP2(빌드2600.xpsp_sp2_rtm.040803-2158)에서 테스트 하였습니다. exploit 은 다음 URL에서 구한 것으로 테스트를 진행 하였습니다.

URL) http://www.milw0rm.com/exploits/7104\

다음 화면은 해당 exploit을 실행하여 성공되는 과정입니다.
 



다음 화면은 공격으로 인해 bind shell 이 4444 포트로 listening 되는 화면입니다.
 



다음 그림은 텔넷을 이용하여 4444포트로 접속하는 장면입니다.
 

공개 되어있는 exploit 코드를 살펴 보면 universal 한 코드가 아닌 것을 알 수 있습니다. 해당 공격코드가 임의의 코드를 실행 할 때 방법을 살펴보면 call/jmp esp 방법을 사용하고 있었으며 call esp OP 코드가 있는 주소 값은 0x7ffa4512 주소로 중국 Windows 에서 사용되는 주소 값입니다. 해당 주소 값을 다시 사용하기 위해 다음과 같이 findjmp 를 이용하여 주소 값을 찾는 화면입니다. 
 


이처럼 주소 값은 윈도우 OS 버전/국가 별로 다르기 때문입니다. 또 다른 문제점은 OS 버전 별로 NetApi32.dll 에 존재하는 RET 주소가 몇 바이트 씩 차이가 납니다. 예시로 같은 SP2 라도 빌드 상태 및 hofix 적용 범위에 따라 NetApi32.dll 버전이 다르기 때문입니다.

XP PRO SP2 빌드 버전

NetApi32.dll 버전

2600.xpsp_sp2_qfe.070227-2300

5.1.2600.2976

2600.xpsp_sp2_rtm.040803-2185

5.1.2600.2180

위 표에서 첫 번째 버전 에서는 2바이트를 줄여서 공격해야지 공격이 성공하며 2번째 에서는 exploit에 있는 그대로 공격하면 성공하게 됩니다.(단 esp 주소를 변경 해야 함)


다음 그림은 OllyDBG 를 이용하여 svhost.exe –netsvc 를 attach 하여 NetApi32.dll 에 있는 NetrCanonicalize method 의 entry 부분을 디버깅 하는 화면입니다. 




해당 루틴을 살펴 보면 exploit 코드에서 다음과 같이 RPC 메시지를 두 번 전송 합니다. 처음에는 bind shell 코드를 전송하며 두 번 째는 RET 주소를 변경하기 위한 exploit 코드입니다.

TransactNamedPipe(hFile, (PVOID)&POP, sizeof(POP) - 1, rbuf, sizeof(rbuf), &dw, NULL);

TransactNamedPipe(hFile, (PVOID)&EXPLOIT, sizeof(EXPLOIT) - 1, rbuf, sizeof(rbuf), &dw, NULL);


취약점 부분을 디버깅 위해서는 다음 과 절차로 진행 하면 됩니다. 먼저 서비스가 돌고 있는 svchost.exe 를 attach를 합니다. 다음 Process explorer 로 해당 프로세서의 id를 확인 하는 장면입니다.
 



해당 프로세서 id를 attach하여 NetApi32.dll 모듈의 NetrCanonicalize method entry에 bp를 잡습니다. 그리고 공격자가 exploit을 실행을 하면 해당 취약점 루틴부분을 분석 할 수 있습니다.


3. 위험 분석
상기 취약점을 이용한 Worm/virus 가 돌고 있으며 윈도우 패치를 하지 않은 사용자는 시스템이 장악 당하게 됩니다. 해당 Worm은 사용자 컴퓨터를 장악 한 뒤 2차적으로 droper 형태의 악성코드를 받게 되며 온라인 게임 이나 개인정보 등을 유출하게 끔 되어 있습니다.
AV에서 검출하는 진단명으로는 다음과 같습니다.

시만텍 W32.Downadup
마이크로소프트 Conficker.A
F-Secure Worm:W32/Downadup
CA Win32/Conficker.A


대응 방안:

1. 보안 대책
NetApi32.dll 모듈에서의 bof 를 방지할려면 MS 보안패치를 반드시 실행하여야 한다.
URL)http://www.microsoft.com/downloads/details.aspx?familyid=0D5F9B6E-9265-44B9-A376-2067B73D6A03&displaylang=ko

또한 임시 방편적으로 방화벽 설정 및 파일/프린터 공유 예외처리 제외를 하여 주면 해당 공격에 대한 대비책이 될 수 있다.

2. 관련 사이트

본 취약점에 대한 추가적인 정보를 확인할 수 있는 관련 사이트는 다음과 같다.
http://www.microsoft.com/korea/technet/security/bulletin/ms08-067.mspx
http://nchovy.kr/forum/2/article/292
http://blogs.securiteam.com/index.php/archives/1150
http://milw0m.com

 

Copyright(c) 1998-2008 A3 Security ,LTD


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


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


A3AID08-01

Cross-site File Upload (CSFU) 공격 보안 권고안

 


권고문 작성일 : 2008. 3. 12

위험등급:

현재 상태(패치 여부) : -

벤더: 웹 서비스 모두 포함


대상 시스템 :

웹 서비스 모두 포함

 -
취약점 개요:
CSFU취약점은 XSS취약점의 응용 버전이라고 있다.
XSS 공격자가 요청한 request 대해 해당 게시물을 열람한 일반 사용자의 브라우저에서 실행 있게 하는 것이라면, CSFU 게시물을 열람한 일반 사용자가 자신도 모르는 사이에 공격자가 작성해놓은 요청을 하고, 원하는 작업까지 수행하게 된다.
결론적으론 일반사용자의 요청을 위조하여 원하는 결과를 얻어내는 취약점이라 있다. 공격기법 문서에서는 공격자가 작성한 악의적인 Ajax 작성된 스크립트가 포함 게시물을 일반 사용자가 클릭하거나 열람하는 것만으로도 스크립트가 실행되어 파일이 업로드 되는 과정을 테스트를 통해 살펴 본다.


심각도 및 취약점 확인

취약점

Cross-site File Upload 취약점 위험도

의도되지 않은 요청변조(file upload)



취약점 세부 분석 :

1. 취약점 내용

공격자가 작성한 악의적인 스크립트가 포함된 게시물을 일반 피해자가 열람할 경우 Ajax의 XMLHttpRequestPost를 이용하여 request가 생성되고 자동으로 submit 되도록 하여 악의적인 코드가 클라이언트 웹 브라우저에서 실행이 되도록 하는 취약점이다.
사용자가 글을 읽는 순간 스크립트가 실행이 되면서 파일을 업로드 시키는 HTTP 패킷을 요청하게 되어 파일 업로드가 발생되는 취약점이다. 


2. 공격 분석

가. AJAX의 XMLHttpRequestPost

피해자가 악의적인 글을 보았을 때 자동적으로 파일이 업로드 되도록 하기위해 데이터 송 수신을 처리하는 XMLHttpRequestPost인 Ajax를 사용하였다.


아래는 파일 업로드를 하기 위한 데이터 형식인 multipart/form-data를 사용한 화면이다.

 





나. 인코딩을 통한 데이터 값

파일 데이터를 올리기 위해 웹 브라우저는 약속된 문법에 의한 encription작업을 수행하는데 이것은 일련의 boundary 값이다. 파일 업로드가 성공적으로 수행되기 위한 필수 조건은 header의 boundary값과 데이터의 boundary값이 일치해야 한다.
boundary값 사이의 삽입된 임의의 구분자를 이용하여 각각의 필드를 구분하고 필드명과 필드값을 얻어올 수 있다.
각각의 필드는 -----------------------------7d81f42c70952란 boundary값으로 구분이 된다.
첨부파일 필드를 보게 되면 실제 데이터도 확인 할 수 있다.

이 값들을 통째로 인코딩을 시켜 Ajax파일의 post부분에 삽입하여 스크립트를 작성하였다.

 




다. 스크립트의 실행

아래 화면은 이 글을 열람하게 될 경우 스크립트가 실행되도록 하여 자동으로 파일 업로드가 이루어지도록 하는 공격자의 게시물이다.
 




아래는 공격자가 원하는 제목과 내용으로 파일 업로드가 성공적으로 이루어진 화면이다.



실제로 파일이 첨부되었는지 확인을 해보았다.

 



3. 위험 분석

자동으로 입력된 신뢰정보를 기반으로 한 웹 애플리케이션에서 사용자의 신뢰 정보 내에서사용자의 요청을 변조하여 사용자가 의도하지 않은 reguest를 보내어 공격자가 원하는 파일을 업로드 시킬 수 있다. 이는 해당 시스템에 자기도 모르는 사이에 어떤 파일이 업로드 될지 모르며, 만일 쉘이 업로드 될 경우엔 해당 시스템이 장악될 수도 있는 잠재적인 위험성을 내포하고 있다.




대응 방안:

CSFU취약점은 XSS취약점과 맥락을 같이 하는 취약점이다. 때문에 XSS취약점에 대한 개선이 최우선 되어야 것이며 이를 통해 CSFU 취약점에 대한 위협을 줄일 있다.
악성 스크립트가 사이트에 침투하는 것을 막는 것이 가장 중요하기 때문에, 들어오는 모든 입력에 대해 필터링을 적용해야만 한다. 또한, 폼에 토큰을 추가시켜 하나의 토큰만을 사용하도록 해서 CSFU 위험을 효과적으로 제거 하는 방법도 있다.
어플리케이션의 취약점을 완벽하게 제거하는 것은 현실적으로 힘들기 때문에 지속적인 관리를 해주는 것이 무엇보다 중요하다.



관련 사이트 : 
본 취약점에 대한 추가적인 정보를 확인할 수 있는 관련 사이트는 다음과 같다.
 http://www.gnucitizen.org/blog/cross-site-file-upload-attacks/


Copyright(c) 1998-2008 A3 Security ,LTD


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

웹 어플리케이션 취약점의 권고내용으로 포스팅한 내용으로써, 악의적인 사용을 금지합니다.
법적인 책임은 사용한 사람에게 있음을 알립니다.


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

사이트 : http://www.damnvulnerablelinux.org/

 일반적인 Web Application 취약점 테스트 할 수 있는 WebGoat를 비롯해서,

 바이너리 분석, Crack Me 리버싱 테스트 등 여러가지 환경에서 학습을 할 수 있는 BackTrack 기반 LiveCD 입니다.

 또한, 문제를 풀어나가는 동영상도 많이 존재하니 꼭 한번씩 해보시길 바랍니다.

 해킹대회를 준비하시는분들은 더욱 좋은 기회라고 생각합니다.


[사이트 메인 페이지]



[Live CD 실행화면]
BackTrack Live CD기반으로 구성되어 있기 때문에 동일합니다.


WEBrick 디렉터리 리스팅 취약점

서버/WAS/DBMS 2008. 11. 12. 11:17 Posted by TEAMCR@K


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

Ruby기반의 WAS로 사용되고 있는 WEBrick 에서 디렉터리 리스팅 취약점이 존재합니다.

백 슬러시(/) 에 대한 encoding 문자를 처리 하지 못함으로써 발생하였고, 취약점을 이용하여 시스템 파일 및 웹 서비스 관련 소스 파일 다운로드가 가능합니다.

예제) http://[server]:[port]/..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/boot.ini


아래는 Metaexploit 3.0 기반에서 시도한 화면입니다.




다음은 다운로드된 시스템 파일(boot.ini)을 열람하는 부분입니다.



대응 방안>
http://www.ruby-lang.org/en/news/2008/03/03/webrick-file-access-vulnerability/

URL>1.8.5-p115 or 1.8.6-p114 으로 업그레이드 권고
ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.5-p115.tar.gz
ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p114.tar.gz

참고 URL )
 http://www.milw0rm.com/exploits/5215


웹 어플리케이션 취약점의 권고내용으로 포스팅한 내용으로써, 악의적인 사용을 금지합니다.
법적인 책임은 사용한 사람에게 있음을 알립니다.

작성자 : 김태훈 책임컨설턴트

A3AID07-06

MS Windows URI Handling 명령 실행 취약점 보안 권고안

 


권고문 작성일 : 2007. 10. 25

취약점 발표일 : 2007. 7. 26

위험등급:

현재 상태(패치 여부) :

벤더: Microsoft


대상 시스템 :

 - Windows XP Service Pack 2 with Internet Explorer 7
 - Windows XP Professional x64 Edition with Internet Explorer 7
 - Windows XP Professional x64 Edition Service Pack 2 with Internet Explorer 7
 - Windows Server 2003 Service Pack 1 and Windows Server 2003 Service Pack 2 with Internet Explorer 7
 - Windows Server 2003 x64 Edition and Windows Server 2003 x64 Edition Service Pack 2 with Internet Explorer 7
 - Windows Server 2003 with SP1 for Itanium-based Systems and Windows Server 2003 with SP2 for Itanium-based Systems with Internet Explorer 7
 - Adobe Acrobat 3D Any version
 - Adobe Acrobat Elements 8.1 and earlier
 - Adobe Acrobat Professional 8.1 and earlier
 - Adobe Acrobat Standard 8.1 and earlier
 - Adobe Reader 7.0, 8.0, 8.1
 - Firefox version 2.0.0.5

 

취약점 개요:

본 취약점은 Internet Explorer 7 버전이 설치된 Microsoft Windows XP/2003 시스템에서 등록된 URI Handler(mailto, http, news, snews, nttp, telnet)를 처리하는 ShellExecute API 결함으로 발생한 것이다. 취약점이 확인 된 ShellExecute API는 Windows 기반 어플리케이션 프로그램에서 Import하여 사용하는 API이며, 그 대표적인 경우가 PDF ACROJS(Acrobat Javaxscript)에서 사용하는 URI(<</URI(handler:AAA)/S/URI>>) 메서드이다.
본 취약점을 이용한 공격 유형 중에서 가장 이슈가 된 것은 PDF ACROJS(Acrobat Javaxscript)의 URI 메서드의 입력 값을 조작하여 생성한 PDF 파일이며, 이로 인해 PDF 취약점이 알려지게 됐다.
ShellExecute API의 URI Handling 오류는 PDF 공격 유형 뿐만 아니라 악성 웹 사이트 접속 및 공격 코드로 구성된 웹 링크를 클릭하는 경우에도 시스템 명령 수행 결과를 초래하게 된다.
취약점에 대한 Windows API 레벨에서 패치가 제공되지 않고 있는 0day(제로데이) 취약점이지만, 취약한 ShellExecute API를 사용한 어플리케이션 별로 패치를 제공하고 있다.
본 보고서는 ShellExecute API 취약점 공격 유형 중에서 가장 이슈가 되고 있는 PDF ACROJS URI 메서드 조작을 통한 URI Handling 명령 실행 취약점에 대해서 분석하였다.

 

취약점 세부 분석 :

(현재 에이쓰리시큐리티컨설팅에게서 서비스를 받으시는 고객에만 한정적으로 자료 제공)


대응 방안:


 = Microsoft Windows ShellExecute API에 대한 패치 버전이 아직 제공되지 않고 있기 때문에 확인되지 않는 사이트 및 첨부 파일에 대해서 접근해서는 안 된다.Adobe 및 FireFox 등 개별 어플리케이션에서 제공하는 패치 버전으로 업데이트 해야 한다.

 

Copyright(c) 1998-2007 A3 Security Consulting.,LTD


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