Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
exchange-scanner — 공개적으로 노출된 Microsoft Exchange 서버를 식별하고 해당 소프트웨어 버전을 확인합니다. | Kitploit
도구/GitHubGitHub/bishopfox/exchange-scanner
ReconnaissanceVulnerability ScannersVulnerability AnalysisInformation GatheringWeb SecurityEmail Security
GitHubbishopfox/exchange-scanner

exchange-scanner

공개적으로 노출된 Microsoft Exchange 서버를 식별하고 해당 소프트웨어 버전을 확인합니다.

저장소 보기
12개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Microsoft Exchange Server 스캐너

예시 스캔

설명

이 도구는 대상 호스트의 몇 가지 일반적인 공개 서비스를 스캔하여 Microsoft Exchange Server를 탐지하고 가능하면 소프트웨어 버전을 식별합니다.

이를 위해 다음 기법을 사용합니다.

  • 응답 헤더, 로그인 페이지 콘텐츠, 파비콘 해시를 통한 Outlook Web Access(OWA) 핑거프린팅
  • XML 응답을 통한 Exchange Control Panel(ECP) 내보내기 도구 핑거프린팅
  • 응답 헤더를 통한 Autodiscover 엔드포인트 핑거프린팅
  • 일반 포트의 SMTP, IMAP, POP3 서비스 배너를 통한 서비스 핑거프린팅

탐지된 빌드 번호는 Microsoft에서 크롤링한 버전 테이블과 대조됩니다. 이 테이블은 Service Pack(SP), Cumulative Update(CU), Security Update(SU), Hotfix Update(HU), Update Rollup(RU) 수준을 포함하여 Exchange Server 5.5부터 Exchange Server Subscription Edition(SE)까지 모든 릴리스를 다룹니다. 일치 항목은 제품 이름, 릴리스 날짜, NVD 사전 형식의 CPE 문자열과 함께 보고됩니다.

시작하기

사전 요구 사항

스캐너를 실행하는 권장 방법은 Docker를 사용하는 것입니다. Docker 자체 외에 로컬 종속성이 필요 없습니다. 대신 스크립트를 직접 실행하려면 64비트 Debian Linux를 기준으로 설계되었지만, Python 3, dnsx, fingerprintx가 지원하는 모든 Linux 변형에서 작동해야 합니다(설치 스크립트를 약간 수정하면 됩니다).

설치

Docker (권장)

이미지를 빌드합니다. 여기에는 Python, 고정된 Python 패키지, 버전이 고정된 dnsx 및 fingerprintx 바이너리가 포함되며, 빌드 시 Microsoft에서 Exchange Server 버전 테이블을 크롤링합니다:

root@kitploit:~
docker build -t exchange-scanner .

그런 다음 스크립트에 전달할 것과 동일한 인수(아래 사용 방법 참조)를 전달하여 스캐너를 실행합니다:

root@kitploit:~
# Scan a single target
docker run --rm exchange-scanner -q -t 192.168.5.3

# Scan a list of targets (mount the file into the container)
docker run --rm -v "$PWD/targets.txt:/app/targets.txt" exchange-scanner -l targets.txt

버전 테이블을 갱신하려면 이미지를 다시 빌드하세요.

수동 설치

필요한 도구, 패키지 및 기타 종속성을 설치하려면 scripts/install-requirements.sh를 실행하세요. Python 패키지는 scripts/requirements.txt에 특정 버전으로 고정되어 있습니다.

exchange-versions.json에 있는 소프트웨어 버전 테이블을 업데이트하려면 언제든지 scripts/get-exchange-versions.py를 별도로 다시 실행해도 됩니다.

사용 방법

exchange-scanner.py 스크립트를 -h와 함께 실행하여 사용 세부 정보를 확인하세요:

root@kitploit:~
❯ ./exchange-scanner.py -h
usage: exchange-scanner.py [-h] [-q] [-d] [-x TIMEOUT] [-o OUTFILE] (-t TARGET | -l LIST)

optional arguments:
  -h, --help            show this help message and exit
  -q, --quiet           Suppress log output (except errors)
  -d, --debug           Print debugging messages
  -x TIMEOUT, --timeout TIMEOUT
                        Set timeout for HTTP requests (defaults to 3 seconds)
  -o OUTFILE, --outfile OUTFILE
                        Save output to a file instead of writing to stdout
  -t TARGET, --target TARGET
                        A single hostname or IP address to scan
  -l LIST, --list LIST  File containing a list of hostnames and/or IP addresses to scan (one per line)

필수: -t 또는 -l

  • 단일 대상을 스캔하려면 -t에 호스트 이름이나 IP 주소 하나를 지정하세요. 호스트 이름이 여러 IP로 확인되면 스크립트는 각 IP를 별도로 스캔합니다.
  • 여러 대상을 한 번에 스캔하려면 줄마다 호스트 이름이나 IP 주소를 하나씩 포함한 파일을 만든 다음 -l에 파일 이름을 지정하세요.

로깅: 대부분의 로그 출력을 억제하려면 -q를 사용하세요. 더 자세한 로그를 보려면 -d를 사용하세요.

시간 제한: HTTP 요청당 최대 응답 시간을 변경하려면 시간 제한 값을 초 단위로 지정하세요(기본값은 3). 특정 상황에서 단일 IP 주소가 200개 이상의 요청을 생성할 수 있으므로(대부분의 스캔이 이 수준에 도달하지는 않지만) 일반적으로 더 짧은 시간 제한이 권장됩니다.

출력: 스캔 결과는 기본적으로 JSON 형식으로 출력됩니다. stdout 대신 파일로 출력을 저장하려면 -o에 파일 이름을 지정하세요.

예시

root@kitploit:~
$ ./exchange-scanner.py -q -t 192.168.5.3
[
    {
        "hostname": "192.168.5.3",
        "ip_address": "192.168.5.3",
        "build_number": "15.2.1118",
        "exchange_services": [
            "https://192.168.5.3:443",
            "imaps://192.168.5.3:993"
        ],
        "product_name": "Exchange Server 2019 CU12 (2022H1)",
        "major_version": "2019",
        "update": "Cumulative Update 12",
        "security_update": null,
        "release_date": "2022-04-20",
        "recalled": false,
        "cpes": [
            "cpe:2.3:a:microsoft:exchange_server:2019:cumulative_update_12:*:*:*:*:*:*",
            "cpe:2.3:a:microsoft:outlook_web_access:2019:cumulative_update_12:*:*:*:*:*:*"
        ]
    }
]

기타

법적 고지

사전 상호 동의 없이 대상을 공격하기 위해 이 도구를 사용하는 것은 불법입니다. 적용 가능한 모든 지방, 주, 연방 법률을 준수할 책임은 최종 사용자에게 있습니다. 개발자는 어떠한 책임도 지지 않으며 이 프로그램으로 인한 오용이나 손해에 대해 책임을 지지 않습니다.

라이선스

이 프로젝트는 GNU General Public License에 따라 라이선스가 부여됩니다.

기능 및 제한 사항

  • 스캐너는 현재 기본 서비스의 기본 포트만 확인합니다.
  • 대상이 외부 관점에서 스캔된다고 가정합니다.
  • 부분 빌드 번호가 발견되면 퍼지 매칭을 사용하여 버전을 결정합니다.
  • 또한 Microsoft가 회수한 업데이트를 출력의 recalled 필드를 통해 표시합니다.
  • CPE 문자열은 NVD CPE 사전 형식을 따릅니다. NVD 사전은 업데이트를 CU/SP/RU 수준까지만 추적하므로(SU/HU 제외) 해당 CPE는 최선을 다한 것이며 사전 항목과 정확히 일치하지 않을 수 있습니다. 전체 탐지 세부 정보(정확한 빌드 번호, SU/HU 수준)는 다른 결과 필드에 보존됩니다.
도구 다운로드