Path Traversal , Directory Traversal을 좀 더 쉽게 테스팅할 수 있는 Traversal 전용 Fuzzer - DotDotPwn에 대한 내용으로 진행할까 합니다. 이 툴은 현재 Kali Project에도 속해있을 정도로 유명하고 잘 사용되는 툴 입니다. 잘 익혀두면 정말 필요할 때 알맞게 사용하실 수 있죠.
Install DDP(DotDotPwn)
일단 git을 통해 설치해줍니다.#> git clone https://github.com/wireghoul/dotdotpwn.git
DotDotPwn은 perl로 만들어진 툴이며 여러가지 모듈이 필요합니다. 하나하나 모자라는 모듈에 대해 apt 같은 패키지 매니저로 설치할수도 있지만 cpan을 이용하면 쉽게 설치가 가능합니다.
#> cpan
+ install Net:FTP
+ install TFTP
+ install Time:HiRes
+ install Socket
+ install IO:Socket
+ install Getopt:Std
+ install Switch
일단 명령행에서 cpan을 치면 대화형 콘솔로 진입합니다. 여기서 install 명령을 써서 패키지를 설치할 수 있는데 위에 해당 툴에서 필요한 패키지를 하나한 설치해줍니다.
(아래 이미지 처럼 cpan 내부에서 install 을 이용해서 설치해야합니다.)
또 다른 방법으로는 아래와 같이 apt-get 을 이용한 설치가 있습니다.
다만 정확한 설치를 위해서는 cpan을 통해 설치하는 것이 좋을것 같네요.
#> apt-get install libswitch-perl
#> apt-get install libnet-tftp-perl
#> perl dotdotpwn.pl
#################################################################################
# #
# CubilFelino Chatsubo #
# Security Research Lab and [(in)Security Dark] Labs #
# chr1x.sectester.net chatsubo-labs.blogspot.com #
# #
# pr0udly present: #
# #
# ________ __ ________ __ __________ #
# \______ \ ____ _/ |_\______ \ ____ _/ |_\______ \__ _ __ ____ #
# | | \ / _ \\ __\| | \ / _ \\ __\| ___/\ \/ \/ // \ #
# | ` \( <_> )| | | ` \( <_> )| | | | \ /| | \ #
# /_______ / \____/ |__| /_______ / \____/ |__| |____| \/\_/ |___| / #
# \/ \/ \/ #
# - DotDotPwn v3.0 - #
# The Directory Traversal Fuzzer #
# http://dotdotpwn.sectester.net #
# dotdotpwn@sectester.net #
# #
# by chr1x & nitr0us #
#################################################################################
Usage: /home/noon/Noon/dotdotpwn/dotdotpwn.pl -m <module> -h <host> [OPTIONS]
Available options:
-m Module [http | http-url | ftp | tftp | payload | stdout]
DDP(DotDotPwn)을 이용하여 Path Traversal Test하기
자 이제 ddp를 이용해서 traversal 에 대해 fuzzing 하는법을 알아볼까합니다.솔직히 정교하게 필터링을 우회하려면 직접 필터링 규칙을 유추해서 푸는것이 제일 좋습니다.
로그도 적고 성공률도 높아요. 그러나 귀찮을 경우도 있고, 혹시나 놓치는 부분이 있을 수 있기 때문에 이러한 툴도 사용하게 되지요.
#> ddp | grep Usage
Usage: /home/noon/Noon/dotdotpwn/dotdotpwn.pl -m <module> -h <host> [OPTIONS]
#> ddp | grep Module
-m Module [http | http-url | ftp | tftp | payload | stdout]
Usage 중 잘 알아야할 것을 봤습니다. 일단 사용 방법과 모듈 종류입니다.
간단하게 보면 모듈/호스트 등의 설정을 주고 테스팅을 진행할 수 있습니다.
그럼 Fuzzing 작업을 진행하겠습니다.
크게 옵션 몇개에 대해 더 알고가야 편합니다.
1. -h
이 옵션은 타켓 호스트를 지정하는 옵션입니다.
-h 127.0.0.1
2. -u
이 옵션은 URL을 지정합니다. 여기에 패턴이 들어갈 부분을 지정해줍니다.
패턴 부분은 아래와 같이 TRAVERSAL 이라는 문구로 지정할 수 있습니다.
-u http://127.0.0.1/test.php?file=TRAVERSAL
3. -m
이 옵션을 모듈을 지정합니다. http 인지, ftp인지 등등 지정이 가능하죠.
-m http-url // [http | http-url | ftp | tftp | payload | stdout]
4. -k
이 옵션은 탐지할 문자열을 의미합니다. /etc/passwd 파일을 목표로 한다면 아래와 같이 지정이 가능하죠.
-k "root:"
옵션을 살펴봤으니 직접 돌려봅니다.
#> ddp -m http-url -h 127.0.0.1 -u http://127.0.0.1/lib/file_download.asp?FilePath=TRAVERSAL -k HOSTS
위를 보면 http-url 모듈을 이용하고 호스트는 localhost, url은 해당 url
k 옵션을 이용해 문자열 탐지를 사용하였습니다. hosts 파일을 로드했을 때 주석을 읽어오면 정탐으로 보도록 했죠.
Output 은 굉장히 심플합니다.
로그중에서는 취약한 코드로 탐지된 데이터에 대해 VULNABLE이라고 명시해주고, 마지막에 간략하게 Report 형태로 제공합니다.
일반적으로 Traversal 는 필터링 패턴을 파악하고 우회구문을 만드는 것이 매력 포인트이자 좋은 방법이지만 때때로 우리는 귀찮을때가 있습니다. DDP 같은 Fuzzer를 이용해 쉽게 테스팅하는 것도 좋은 방법중에 하나죠 :)
HAHWULSecurity engineer, Gopher and H4cker! |
0 개의 댓글:
Post a Comment