본문 바로가기

HOW TO HACK/Hacking Tools

[툴 소개] Arachni Web Scanner 도구 분석 및 사용팁

안녕하세요. Mr.Rootable 입니다.

Arachni Web Application Security Scanner는 Ruby 언어 기반의 무료 웹사이트 취약점 점검 도구이며, 

높은 탐지율을 자랑하는 도구라고 소개됩니다.

SECTOOLMARKET 사이트의 Benchmark 결과에서 타 도구와 비교해 높은 성능을 자랑하네요.

http://sectoolmarket.com/price-and-feature-comparison-of-web-application-scanners-unified-list.html


그래서 오늘은 가격도 착하고(무료) 성능도 좋은 이 Arachni 웹스캐너 도구를 설치하고 사용해보도록 하겠습니다.

더 심도있게 테스트해보고 싶지만 생업에 시간을 쫓기다보니 간단하게 정리할 수 밖에 없는 점 양해 부탁드립니다.






Step 1. Arachni 도구 Download & Install



* 알림 *

본 글은 칼리리눅스 2016.02 버전(32비트) arachni 1.5.1 버전 기준으로 작성되었습니다.



1) Download

Arachni 웹스캐너는 공식사이트(Click Here)에서 다운로드 받을 수 있습니다. 

Arachni는 (스크린샷에는 없지만) 윈도우, 리눅스, 맥 등의 멀티플랫폼을 지원합니다. 

전 칼리리눅스 32bit 환경에서 테스트를 해볼 계획이니 Linux x86 32bit를 다운받겠습니다.

wget 명령어를 통해 터미널창 환경에서 다운로드 받았습니다.


# wget https://github.com/Arachni/arachni/releases/download/v1.5.1/arachni-1.5.1-0.5.12-linux-i686.tar.gz



물론 apt-get install arachni 명령어를 통해 바로 설치할 수도 있으며, 공식사이트에서 직접 클릭하여 다운로드 받을 수 있습니다.

아무튼 다운로드가 완료되면 아래 스크린샷과 같이 다운로드 받은 경로에 tar.gz 파일이 생깁니다.


저는 편의상 평소 제 작업 경로로 파일을 이동하겠습니다. (이 부분은 생략하셔도 됩니다.)

# mv arachni-1.5.1-0.5.12-linux-i686.tar.gz ./Hack/ 


아래 명령어로 파일 압축을 풀어줍니다.

# tar -zxvf arachni-1.5.1-0.5.12-linux-i686.tar.gz


이제 arachni-1.5.1-0.5.12/ 라는 디렉토리가 생긴 것을 볼 수 있습니다. 

arachni-1.5.1-0.5.12 디렉토리로 이동하여 무엇이 있는지 차근히 살펴보세요.



2) Install


아래 명령어를 통해 디렉토리 경로를 이동 후 install 합니다.

# cd ./system/arachni_ui_web/bin

# bundle install

정상적으로 install이 완료되면 위와 같은 화면이 나옵니다.


 ※ Install 과정에서 뜻밖의 오류를 만났을 때   

 

 # bundle install 과정에서 아래와 같은 오류가 발생할 수 있습니다. (저는 발생했습니다 ㅠ.ㅠ)

 저와 동일한 오류가 발생하는 분들은 아래 해결법을 통해 해결하세요.


 (1) 첫번째 오류... pg 설치 중 에러

 

 ☞ 해결법

   # apt-get install libpg-dev

   # gem install pg

 

 (2) 두 번째 오류... sqllite3 설치 중 에러

  

  ☞ 해결법  

     # apt-get install libsqlite3-dev

 

 그래도 오류 해결이 되지 않는 분들은.. 여러분의 구글링 실력을 믿겠습니다!!




Step 2. Arachni 도구 분석



1) README 보기


우선 arachni-1.5.1-0.5.12/README 파일부터 살펴봤습니다.

빨간 밑줄이 있는 부분을 보면 대략적인 사용법을 알 수 있습니다.


우선 기본계정은 관리자(Administrator)와 일반사용자(User) 계정이 있네요.

실행파일들은 bin/ 디렉토리 아래에 있으며,

./bin/arachni_web 파일은 Web 인터페이스 환경 구동을 위한 파일이고,

./bin/arachni 파일은 커맨드라인 환경에서의 구동을 위한 파일이네요.


이 밖에도 위와 같이 많은 바이너리 파일이 있지만 취약점 점검에 필요한 몇가지만 테스트해보겠습니다.



2) Web Interface 분석


사용 환경 분석은 Web Interface 환경에 대해서만 살펴보겠습니다. (커맨드라인 환경은 실행 테스트만 하도록 하겠습니다.)

bin/ 디렉토리 아래에 있는 arachni_web 파일을 실행합니다.


# ./arachni_web


arachni_web 파일은 Arachni 웹서버를 실행하고, tcp://localhost:9292를 리스닝하는 역할을 합니다.

웹브라우저에서 직접 Url을 입력하여 접속합니다.


웹브라우저> http://localhost:9292/


웹브라우저를 통해 위의 Url로 접속을 하면 아래와 같이 로그인 페이지가 뜹니다.

README 파일을 통해 알게된 관리자 계정으로 로그인해봅니다. (위의 README 파일에서 빨간 박스처리한 부분을 보시면 됩니다.)


Welcome to Arachni! 

Arachni가 반갑게 맞아주며, 몇몇 정보를 볼 수 있는 대시보드가 나옵니다.



대시보드는 통과하고 상단 메뉴 먼저 살펴보면, Scans, Profiles, Dispatchers, Users 가 있습니다.


각 메뉴의 기능은 다음과 같습니다.


2-1) Scans 메뉴 

웹어플리케이션의 취약점을 점검하는 사실상 메인 메뉴입니다.

타겟URL을 설정하고, 프로파일(점검유형)을 선택하는 등 스캔에 필요한 기본적인 정보를 셋팅하고, 취약점 점검을 실행하는 메뉴입니다.

하위에는 NewSchedule 두 가지 메뉴가 있습니다.


Scans - New : 신규 취약점 스캔을 실행한다. 


① 점검할 대상 URL을 입력한다. http, https 프로토콜까지 모두 입력해야 한다.

② Profiles 메뉴에 등록된 프로파일(점검유형)을 선택한다. 기본값으로 Global이 셋팅되어있다.

③ 메모할 내용을 적는다.

④ 점검결과를 공유할 사용자 그룹을 설정한다. (그룹은 Users 메뉴에서 추가 및 관리할 수 있다)

⑤ 고급옵션으로 취약점 점검을 실행할 프로세스수와 부하분산, 예약실행 등을 설정한다. 

    아래에서 나올 Dispatcher를 사용한다.


Scan - Schedule : 새로운 스캔을 실행하거나, 현재 실행 중인 혹은 종료된 스캔을 확인하고, 결과 레포트를 확인할 수 있다.


2-2) Profiles 메뉴

프로파일(점검 유형)을 관리하는 메뉴입니다. 

Default 프로파일과 웹해킹에 주로 사용되는 공격 유형인 SQL Injection과 Cross-Site Scripting(XSS)는 

기본으로 등록되어있으며, 별도로 커스텀 프로파일을 추가할 수 있습니다.

상단메뉴 Profiles를 클릭하면 아래와 같은 화면으로 이동합니다.

Profiles 메인 페이지


말씀드린대로 SQL Injection, Cross-Site Scripting(XSS)과 Default 프로파일이 보입니다.

각 프로파일의 우측에 있는 버튼메뉴를 통해 프로파일 상세내역을 조회하고, 편집하고, 생성하는 등의 작업을 할 수 있습니다.

각 버튼에 마우스를 올려놓으면 어떤 기능인지 뜨니 대략 아실 수 있을 것으로 보고 부연설명은 하지 않습니다.


Profiles 메뉴의 하위메뉴로는 New 메뉴가 있습니다. (Profiles - New 실행)

해당 메뉴를 클릭하면 아래와 같이 새로운 프로파일을 등록할 수 있습니다.



위의 스크린샷에서 좌측의 파란색 메뉴는 프로파일 등록시 등록할 수 있는 점검방법에 대한 세부정보들입니다.


    • Scope - 웹크롤링 방법에 대한 세부 정보 셋팅
    • Audit - Fuzzing 방법에 대한 세부 정보 셋팅
    • Input - 입력 파라미터에 대한 샘플값 셋팅
    • Fingerprinting - 핑거프린팅할 OS, 데이터베이스, 웹서비스, 프로그래밍언어 등의 플랫폼 셋팅
    • Checks - 점검할 Active나 Passive 유형의 취약점 리스트 셋팅
    • Plugins - 점검시 사용하는 부가기능 셋팅
    • Session - 세션 유효성 체크 방법 셋팅


2-3) Dispatchers 메뉴

Scans 메뉴의 Advanced Option에서 사용하기 위한 Dispatcher를 등록 및 관리하는 메뉴입니다.

Dispatcher는 간단히 말해, 점검을 수행하는 서버로 생각하시면 될 것 같습니다.  (제 개인적인 생각입니다.)

이를 위해서는 Dispatcher 로 사용될 서버에 arachni_rpcd 라는 파일이 실행되고 있어야 합니다.

arachni_rpcd 파일은 arachni_web 파일로 실행된 웹인터페이스와 점검수행 서버(Dispatcher)를 연결해주는 역할합니다.

(arachni_rpcd 초반부에 살펴본 arachni-1.5.1-0.5.12/bin/ 디렉토리 하위에 있습니다.)

또한, 취약점 점검을 실행할 서버를 여러 대 준비해서 Arachni를 설치하고, Dispatcher의 역할을 부여하면

취약점 점검 부하 분산 및 점검시간 단축을 위해 사용할 수 있는 것 같습니다.


상단메뉴의 Dispatchers 메뉴를 클릭하면 아래와 같이 Dispatchers 메인페이지로 이동하며, 

이 곳에서 사용가능한 Dispatcher와 사용불가능한 Dispatcher를 확인할 수 있습니다.


아래 스크린샷은 New 메뉴를 통해 새로운 Dispatcher를 등록하는 페이지입니다.

① Dispatcher서버로 사용할 서버의 IP주소

② Dispatcher서버로 사용할 서버의 포트

③ 다른 사용자 사용가능 여부 체크


Dispatcher의 정보가 모두 입력되면, 하단의 Create Dispatcher 버튼을 통해 생성합니다.


2-4) Users 메뉴

사용자를 생성하고 관리하는 메뉴입니다. 

admin@admin.admin과 같이 이메일주소와 비밀번호를 등록하는 것 같네요.

본 글에서 다루고자 하는 것에 비해 상대적으로 중요도가 낮을 것으로 판단하여 스킵하니 양해 바랍니다.




Step 3. Arachni 도구를 통한 취약점 점검 (Web + Command-Line)



제 Arachni를 통해 웹어플리케이션의 취약점 점검(스캔)을 해보겠습니다.

일단은 점검대상이 있어야겠죠? 허가받지 않은 사이트에 대한 스캔 실행은 국내법상 불법행위입니다.

저는 급히 아래와 같이 가상머신으로 DVWA 환경(Win 7 + Xampp + DVWA)을 구성했습니다.

DVWA 환경 구성 방법은 생략합니다. 구글링해보시면 많이 나옵니다.^^


점검대상 웹사이트가 만들어졌습니다.

제 DVWA 사이트의 IP주소는 192.168.0.88 입니다. 

(IP주소는 여러분과 저는 다릅니다. DVWA가 설치된 PC에서 ipconfig를 통해 IP를 확인하시기 바랍니다.


우선 터미널을 새로 열고, 다음 명령어를 입력하여 arachni_rpcd를 실행합니다. (Dispatcher 기능 부여)


# ./arachni_rpcd


이제 웹브라우저를 열고, http://localhost:9292로 접속하여, Arachni 웹인터페이스로 이동합니다.

Arachni 웹인터페이스의 Scans - New를 통해 취약점 점검에 필요한 기본정보를 입력합니다.

① 점검대상인 제 DVWA사이트의 URL입니다. (테스팅 환경에 따라 다릅니다. 본인 환경에 맞게 입력하세요)

② 프로파일(점검유형)을 선택합니다. 저는 기본값인 Default(Global)로 설정할 것이므로 변경하지 않았습니다.

③ 메모할 사항을 적습니다.

④ 취약점 점검을 시작합니다.


Go 버튼을 클릭하면 취약점 점검이 시작됩니다.

아래 스크린샷에서 보시다시피 파란색 부분에 현재 점검중인 URL경로가 나오며,

그 아래로는 발견된 페이지수와 경과시간, Request(요청)/Response(응답) 수 정보가 나옵니다.

그리고, Issues 부분을 보면 발견된 취약점 정보를 확인할 수 있습니다.


① 발견된 취약점을 심각도 및 취약점 유형으로 분류하여 발견갯수를 보여줍니다.

② 발견된 취약점 유형, 취약점이 발견된 URL, CWE정보를 확인하기 위한 링크 등의 정보를 확인할 수 있습니다.

    URL 왼쪽에  버튼(awaiting review)을 클릭하면 아래와 같이 해당 취약점에 대한 구체적인 점검내용을 확인할 수 있습니다.



점검이 종료되면 아래 스크린샷에 보이는 메뉴(빨간 박스)를 볼 수 있습니다.

(저는 점검이 정상종료될때까지 기다려보려고 했으나, 부하분산을 하지 않아서인지 시간이 너무 오래 걸려서 도중에 중단했습니다.)

각 메뉴는 다음과 같은 기능을 합니다.

  • Comments : 메모할 사항을 적는 기능입니다.

  • Share : 미리 생성해둔 사용자 그룹에게 점검결과를 공유할 수 있습니다.

  • Download report as : HTML, JSON 등의 각종 파일 포맷으로 점검결과를 보고서 형태로 다운로드 받을 수 있습니다.


부족하지만 Arachni 웹인터페이스 사용법 및 테스트는 여기서 끝내겠습니다.

마지막으로 간단하게 커맨드라인 환경에서 Arachni를 통해 취약점 점검을 하는 방법을 소개하며, 이번 포스팅을 마치도록 하겠습니다.

커맨드라인 환경에서 실행하려면 아래 실행파일 중 제일 앞의 arachni 파일만 사용하면 됩니다.


칼리리눅스에서 터미널을 열고, 압축을 풀었던 arachni-1.5.1-0.5.12/bin/ 디렉토리로 이동하여 아래 명령어를 실행합니다.


# ./arachni http://192.168.0..88/DVWA-master


아래는 점검이 종료된 후의 터미널창 모습입니다.

빨간 박스 부분을 보면 점검결과에 대한 레포트가 현재 작업디렉토리에 저장되었습니다.


이 저장된 레포트파일(.afr)은 arachni_reporter 파일(bin/ 디렉토리 하위에 파일 존재)을 이용하여 확인할 수 있습니다. 


# ./arachni_reporter 192.168.0.88 2017-05-16 14 17 39 +0900.afr


저장된 레포트파일(.afr)은 웹인터페이스에서 확인할 수도 있습니다.

arachni_web 이 실행되어있지 않다면 실행 후 웹페이지(http://localhost:9292)에 접속합니다.


# ./arachni_web

웹브라우저> http://localhost:9292


웹인터페이스로 진입하면 아래의 순서대로 메뉴 이동을 합니다.

1) 상단메뉴에서 Scans - Schedule 메뉴로 이동합니다.

2) Active or Finished Scans 버튼 클릭합니다.

3) 최종적으로 아래 페이지로 이동되고, 빨간 박스처리된 Import 버튼을 이용하여 저장된 레포트파일(.afr)을 불러와 열람할 수 있습니다.


두서없고 부족한 글이지만 이상으로 Arachni Web Application Security Scanner 테스트를 마칩니다.

혹시 내용에 오류가 있거나, 부족한 부분은 언제든 지적해주시길 바랍니다. <끝>