Xray 웹 취약점 스캐너 사용 가이드

서론

Xray는 침투 테스트 과정에서 필수적으로 사용되는 취약점 탐지 도구입니다. 보안 전문가들은 이 도구를 활용하여 Burp Suite나 AWVS와 연동하여 효율적으로 취약점을 발견할 수 있으며, 레드팀 활동 중 백그라운드에서 실행하여 예상치 못한 발견을 얻을 수 있습니다.

테스트 대상: http://testphp.vulnweb.com/

1. Xray 도구 소개

Xray는 다양한 경험を持つ 보안 전문가들이 개발한 강력한 보안 평가 도구입니다. AWVS, Burp Suite 등 여러 보안 도구와 연동하여 사용할 수 있으며, 웹 취약점 스캐닝에 최적화되어 있습니다.

2. Xray 아키텍처 이해

Xray의 동작 구조를 이해하면 클라이언트 설정과配置文件 구성을 더 효과적으로 관리할 수 있습니다.

  • 입력 처리(Input): 단일 URL 지정, 기본 크롤러, HTTP 프록시 수동 입력
  • 취약점 탐지(Processing): 내장된 스캔 플러그인 및 사용자 정의 POC 지원
  • 결과 출력(Output): HTML, JSON, Webhook 형식으로 결과 저장

3. Xray 설치

Xray는 단일 바이너리 파일로 제공되며, 의존성 없이 즉시 사용 가능합니다. 공식 GitHubReleases 페이지에서 운영체제에 맞는 버전을 다운로드하세요.

CA 인증서 설정

HTTPS 통신을 스캔하려면 클라이언트의 신뢰를 얻어야 합니다. 사용자 정의 CA 인증서가 클라이언트에 신뢰받으면, Xray는 위조된 서버 인증서를 생성하여 통신 내용을 캡처할 수 있습니다.

CA 인증서 생성
./xray_linux_amd64 genca
브라우저에 인증서 가져오기

생성된 CA 인증서를 브라우저에 가져와서 신뢰할 수 있는 인증서로 설정해야 합니다.

4. 기본 사용법

4.1 단일 URL 스캔

파라미터: --url

./xray_linux_amd64 webscan --url http://testphp.vulnweb.com/ --html-output scan-result.html

지정된 URL을 스캔하고 결과를 HTML 형식으로 저장합니다.

4.2 기본 크롤러 모드

파라미터: --basic-crawler

단순 URL 스캔相比, 크롤러 모드는 먼저 대상 페이지를 크롤링한 후 취약점을 탐지하므로 더 포괄적인 스캔이 가능합니다.

./xray_linux_amd64 webscan --basic-crawler http://testphp.vulnweb.com/ --json-output crawler-result.json

설정 파일(config.yml)에서 basic-crawler의 max_depth 파라미터를 조정하여 크롤링 깊이를 제한할 수 있습니다. 0으로 설정하면 무제한입니다.

4.3 HTTP 프록시 모드

파라미터: --listen

프록시 모드 동작 구조:

Xray는 MITM(中间人) 역할을 수행합니다. 클라이언트와 서버 간의 트래픽을 그대로 전달하면서 통신 내용을 기록하고, 이를 기반으로 취약점 스캔을 수행합니다.

  • Xray가 로컬 7778 포트에서 수신 대기
  • 사용자가 브라우저 프록시를 7778 포트로 설정
  • Xray가 브라우저의 요청을 가로채서 스캔 후 서버로 전달
  • 서버 응답을 스캔하여 사용자에게 반환

스캔 설정:

./xray_linux_amd64 webscan --listen 127.0.0.1:7778 --html-output proxy-result.html

이 모드는 수동으로 특정 페이지를 탐색하면서 실시간으로 스캔할 수 있어手工渗透 테스트에 적합합니다.

대상 도메인 제한:

불필요한 페이지 스캔을 방지하려면 config.yml의 hostname_allowed 필드에 스캔할 도메인을 지정하세요.

5. Burp Suite 연동

5.1 Xray 프록시 시작

./xray_linux_amd64 webscan --listen 127.0.0.1:7778 --html-output burp-integration.html

5.2 Burp Suite 설정

Burp Suite의 Proxy 설정에서 Upstream Proxy Servers에 다음을 추가하세요:

  • 호스트: 127.0.0.1
  • 포트: 7778

또는 브라우저 프록시를 직접 127.0.0.1:7778로 설정하고 Burp Suite의 Invisible Proxy 기능을 사용할 수도 있습니다.

설정이 완료되면 테스트할 웹사이트나 애플리케이션을 브라우저를 통해 접근하면 Xray가 자동으로 트래픽을 스캔합니다.

결론

Xray는 다양한 스캔 모드를 제공하여 다양한 시나리오에 대응할 수 있습니다. 단일 URL 스캔부터 크롤러 모드, HTTP 프록시 모드까지 상황과 목적에 맞게 선택하여 활용하면 효율적인 취약점 탐지가 가능합니다.

태그: Security vulnerability-scanning xray penetration-testing burp-suite

7월 20일 07:13에 게시됨