
네트워크 정찰을 위한 Rust CLI: TCP/UDP 포트 탐색, 서비스 식별, DNS/TLS/HTTP 증거 수집, 그리고 상관 분석을 통한 공개 출처 사용자 이름 검색.
정찰 및 증거 엔진
Rust로 구현된 범위 제한 정찰 및 증거 상관 분석.
RXScan은 네트워크 정찰, 공개 출처 검색, 조사, 증거 상관 분석을 하나의 CLI로 결합합니다.
호스트와 포트를 탐색하고, 관측된 서비스를 식별하며, 범위가 제한된 프로토콜 및 웹 증거를 수집하고, 공개 제공자를 검색하며, 발견 사항을 상관 분석하고, 이후 분석 및 비교를 위해 결과를 저장할 수 있습니다.
RXScan은 보고하는 내용에 대해 의도적으로 보수적인 태도를 취합니다. 포트 번호가 서비스를 식별하지 않으며, HTTP 성공이 그 자체로 계정을 확인하지 않으며, 불완전한 커버리지는 부정적인 결과와 구분하여 유지됩니다.
저장소에서 빌드 및 설치:
git clone https://github.com/DarkRX1/RXScan.git
cd RXScan
cargo install --path . --locked
설치된 빌드를 확인하세요:
rxscan --version
rxscan --help
일반적인 정찰 스캔을 실행합니다:
rxscan example.test
공개 소스 검색:
rxscan search --username exampleuser
공개된 조사 결과를 조사하고 상호 연관시키기:
rxscan investigate --username exampleuser
세 가지 주요 진입점은 다음과 같습니다:
rxscan TARGET
rxscan search ...
rxscan investigate ...
기본 스캔은 recon 워크플로, 레벨 3, 균형 잡힌 실행 설정을 사용합니다.
rxscan example.test
원하는 포트를 정확히 선택하려면 포트를 지정하세요:
rxscan example.test --ports 22,80,443
rxscan example.test --ports 1-1024
rxscan example.test --ports 22,80,443,8000-8100
전체 TCP 포트 범위를 스캔합니다:
rxscan example.test --all-ports
UDP 검색은 명시적입니다:
rxscan example.test --udp
유효한 계획과 추가 실행 세부 정보를 표시합니다:
rxscan example.test --explain
RXScan은 다음을 지원합니다:
rxscan example.test --scan-mode auto
rxscan example.test --scan-mode connect
rxscan example.test --scan-mode syn
TCP connect 스캔은 현재 지원되는 플랫폼에서 RXScan이 사용하는 이식 가능한 스캔 경로입니다.
Raw SYN 스캔은 필요한 capability가 사용 가능한 경우 Linux의 IPv4에서 사용할 수 있습니다. 요청된 SYN 경로를 사용할 수 없을 때 RXScan은 connect 스캔을 SYN으로 조용히 표시하는 대신 실제 적용된 폴백을 보고합니다.
UDP 스캔은 제한된 네이티브 프로브를 사용하며 옵트인 방식으로 유지됩니다.
현재 프로토콜 인식 UDP 탐색에는 DNS, NTP, SSDP와 같은 서비스에 대한 소규모 프로브가 포함됩니다.
UDP 무응답은 포트가 열려 있거나 닫혀 있다는 증거로 보고되지 않습니다. RXScan은 그에 따른 open|filtered 불확실성을 유지합니다.
OS 탐지는 명시적이며 증거에 기반하며, 단일 힌트로 추측하지 않습니다:
rxscan example.test --os
--os는 범위 내 호스트마다 제한된 프로브 계획을 실행하며(최대 6개의 일반 TCP/ICMP 프로브, 스캔이 이미 알고 있는 포트 재사용), 모든 후보를 설명합니다: 일치하는 증거, 상충하는 증거, 사용할 수 없는 증거, 커버리지, 출처. 원시 패킷 기능이 없으면 신뢰도가 낮아진 수동적 증거로 정직하게 저하됩니다. 증거가 불충분할 때 Unknown은 일급 결과입니다. 증거 모델, 한계, 현재 코퍼스 현실은 docs/OS_FINGERPRINTING.md를 참조하세요.
RXScan은 포트 번호만으로 서비스를 할당하는 대신 관찰된 프로토콜 동작으로 서비스를 식별합니다.
현재 네이티브 식별은 다음을 포함한 일반적인 프로토콜을 지원합니다:
프로토콜과 사용 가능한 증거에 따라 관찰 결과에는 제품/버전 정보, 배너, HTTP 엔드포인트 및 제목, TLS 인증서 정보, SSH 신원 정보, 정규화된 기술 증거가 포함될 수 있습니다.
RXScan이 식별하기에 충분한 증거가 없으면 미지 서비스는 미지로 남습니다.
이러한 식별 프로브에는 인증이 필요하지 않습니다.
사용자 이름 검색은 다음을 통해 사용할 수 있습니다:
rxscan search --username exampleuser
일반 출력은 모든 부정적인 제공자 결과를 인쇄하는 대신 유용한 긍정적 및 불확실한 발견에 집중합니다.
발견 항목은 관찰된 프로필, 다른 관찰된 리소스, 확인되지 않은 후보 위치를 구분할 수 있습니다.
예를 들어:
FINDINGS
✓ provider / exampleuser
Profile https://example.test/exampleuser
high · 94% · public profile
? another-provider / exampleuser
Candidate https://example.test/u/exampleuser
low · 25% · weak evidence
레이블은 의도적으로 구분되어 있습니다:
| 레이블 | 의미 |
|---|---|
Profile | 관찰된 신원별 공개 프로필 |
Resource | 반드시 공개 프로필일 필요는 없는, 관찰된 신원별 리소스 |
Candidate | 확인되지 않은 신원별 위치 |
일반적인 제공자 홈페이지나 API 엔드포인트는 확인된 프로필 URL로 제시되지 않습니다.
RXScan은 또한 차단됨, 속도 제한됨, 알 수 없음, 오류, 미스캔과 같은 제공자 결과를 거짓 부정 결과로 변환하지 않고 구분하여 유지합니다.
다음을 사용하여 전체 사람이 읽을 수 있는 결과 집합을 표시합니다:
rxscan search --username exampleuser --all
추가 실행 및 분류 세부 정보를 다음 명령으로 표시합니다:
rxscan search --username exampleuser --explain
공개된 발견 사항은 RXScan의 조사 및 상관관계 파이프라인을 통해 전달될 수 있습니다:
rxscan investigate --username exampleuser
기본 보기는 계정, 유용한 URL, 신뢰도, 의미 있는 관계에 초점을 맞춥니다.
정적 JavaScript, 스타일시트, 폰트, 이미지와 같은 보조 웹 리소스는 기반 증거와 관련이 있을 때 보존되지만 기본 사람용 보고서를 압도하지는 않습니다.
상세 보기는 수집된 관계 데이터를 더 많이 노출할 수 있습니다.
조사는 기본적으로 수동적으로 유지됩니다. 공개 증거를 통해 네트워크 대상을 발견한다고 해서 네트워크 스캔이 자동으로 승인되거나 트리거되지는 않습니다.
RXScan은 관찰 결과를 보고, 조사, 그래프, 이력, 분석 경로에서 사용되는 유형화된 증거로 저장합니다.
프로젝트 전반에 걸쳐 몇 가지 규칙이 의도적으로 적용됩니다:
200만으로는 공개 계정이 존재함을 확립하지 않습니다;관찰과 해석 사이의 이러한 구분은 RXScan 설계의 핵심 부분입니다.
확인된 웹 서비스의 경우 RXScan은 다음과 같은 제한된 HTTP 관찰을 수집할 수 있습니다:
robots.txtsitemap.xml워크플로와 증거는 또한 제한된 크롤링, 기준선 검사, 관리형 콘텐츠 탐색, 상황별 GET 쿼리 후속 조치를 허용할 수 있습니다.
DNS 관찰은 다음을 포함한 제한된 레코드 수집을 지원합니다:
TLS 관찰은 핸드셰이크 및 인증서 증거를 기록합니다. 이는 완전한 TLS 암호화 스위트 스캐너가 아닙니다.
네트워크 활동은 RXScan의 범위 정책을 따릅니다.
추가로 허용된 대상은 명시적으로 제공될 수 있습니다:
rxscan example.test --scope example.test
대상은 제외할 수도 있습니다:
rxscan example.test --exclude api.example.test
범위를 벗어난 작업은 해당 네트워크 접촉 전에 거부됩니다.
범위 적용은 우발적인 접촉을 줄여줍니다. 그러나 운영자가 권한을 확보해야 하는 책임을 대체하지는 않습니다.
RXScan은 스케줄링, 동시성, 재시도, 실행 시간, 호스트 확장, 증거 수집, 후속 활동과 같은 작업에 제한을 둡니다.
마감 시한이나 기타 실행 제한으로 인해 작업이 실행되지 못하는 경우, RXScan은 완료된 증거를 보존하고 남은 작업을 기록하여 실행을 완전히 완료된 것으로 표시하지 않습니다.
이는 부분 네트워크 스캔에도 적용됩니다.
사람이 읽는 출력은 대화형 사용을 목적으로 합니다:
rxscan example.test
터미널에 적합한 경우 색상이 자동으로 적용되며, 다음으로 제어할 수 있습니다:
rxscan --color auto example.test
rxscan --color always example.test
rxscan --color never example.test
--explain은 일반적인 findings-first 뷰에서 의도적으로 생략된 추가적인 planner, policy, accounting, reasoning 정보를 노출합니다.
기계 판독 가능한 출력은 별도로 제공됩니다:
rxscan example.test --format jsonl
rxscan example.test --output scan.jsonl
기계 출력에는 터미널 ANSI 스타일링이 포함되지 않습니다.
스캔은 체크포인트를 작성할 수도 있습니다:
rxscan example.test --checkpoint scan.rxscan
RXScan은 보고, 분석, 비교, 프로젝트 그래프 작업을 포함한 지속적 증거 및 오프라인 워크플로를 지원합니다.
예시:
rxscan report scan.rxscan
rxscan diff old.rxscan new.rxscan
과거 비교는 커버리지를 인식합니다. 이후 스캔이 동일한 대상이나 증거 표면을 커버하지 않았다면, 부재만으로 확인된 제거로 해석되지 않습니다.
RXScan은 현재 Linux를 대상으로 합니다.
원시 SYN 스캐닝은 Linux/IPv4 전용입니다. 다른 스캔 경로와 프로토콜 기능은 각자의 역량 요구 사항을 가집니다.
실행:
rxscan capabilities
현재 빌드/런타임이 무엇을 사용할 수 있는지 확인할 수 있습니다.
알려진 제한 사항은 다음과 같습니다:
rxscan search providers 및 docs/PROVIDER_CONTRACT.md에 있습니다;RXScan은 신생 프로젝트입니다. 오래 확립된 네트워크 스캐너가 가진 프로토콜 커버리지, 핑거프린트 코퍼스, 플랫폼 범위 또는 운영 이력을 갖춘 것으로 취급되어서는 안 됩니다.
RXScan은 정찰 도구이며, 익스플로잇 프레임워크가 아닙니다.
다음을 자동으로 제공하지 않습니다:
네트워크 스캔은 소유한 시스템 또는 평가가 명시적으로 승인된 시스템에 대해서만 사용해야 합니다.