업데이트로 돌아가기
New releaseSep 9, 2026

unimap v0.8.0

IP 주소별로 한 번만 스캔하고 Nmap을 사용하여 대량의 데이터에 대한 스캔 시간을 줄입니다.

공유

Unimap

IP 주소별로 한 번만 스캔하고 대량의 데이터에 대해 Nmap 스캔 시간을 줄입니다. Unimap은 "Unique Nmap Scan"의 약어입니다. 이 도구는 Linux, OSX, Windows 또는 Android(Termux)에서 문제없이 실행할 수 있습니다.

왜?

조직 전체에 Nmap을 실행할 계획이 있다면 수십, 수백 또는 수천 개의 서브도메인이 동일한 IP 주소를 가리킬 가능성이 높으며, 어느 시점에는 스캔을 계속하는 것이 거의 불가능해진다는 점을 고려해야 합니다. 또한 동일한 원격 호스트 주소에 대한 여러 스캔으로 인해 IP가 차단될 수도 있습니다.

어떻게?

Unimap은 자체 기술을 사용하여 처음에 모든 서브도메인의 IP 주소를 확인합니다. 이 프로세스가 완료되면 고유한 IP 주소로 벡터를 생성하고 사용자가 구성한 스레드 수에 따라 Nmap으로 병렬 스캔을 시작합니다. 동시에 Nmap으로 생성된 파일의 데이터를 분석하여 각 IP에 해당하는 정보를 파악합니다. 마지막으로 Unimap은 서브도메인과 연결된 각 IP의 정보를 연관시킵니다. 예를 들어 동일한 IP를 가리키는 서브도메인이 50개 있다면 Nmap 스캔은 한 번만 수행하지만 각 서브도메인과 연결된 모든 데이터를 동시에 확보할 수 있습니다. 대규모 스캔에서는 며칠 또는 몇 주를 절약할 수 있습니다.

설치

소스에서 설치

컴퓨터에 Rust(1.88 이상)와 Nmap이 설치되어 있어야 합니다. 그런 다음 실행하세요:

1. git clone https://github.com/Edu4rdSHL/unimap.git && cd unimap
# 또는 https://github.com/Edu4rdSHL/unimap/releases/latest 에서 릴리스를 다운로드하여
# 압축을 풀고 다음 단계로 진행할 수 있습니다.
2. cargo build --release
# 이제 바이너리는 ./target/release/unimap 에 있습니다.
# 다음 명령은 Linux와 MacOS에서만 작동합니다. Windows 사용자는 환경 변수에 대상 경로를 지정해야 합니다.
3. cp ./target/release/unimap /usr/local/bin
# 이제 어디서든 `unimap` 명령을 사용할 수 있습니다.

Docker 지원

edu4rdshl/unimap 이미지는 모든 릴리스에서 linux/amd64linux/arm64용으로 latest 및 릴리스 버전으로 게시됩니다:

docker pull edu4rdshl/unimap:latest
docker run --rm edu4rdshl/unimap:latest -t hackerone.com --fast-scan
# CSV 및 Nmap XML 파일 유지: /opt/unimap에 디렉토리 마운트
docker run --rm -v "$(pwd):/opt/unimap" edu4rdshl/unimap:latest -f targets.txt --fast-scan -u results.csv

이미지를 직접 빌드하려면 docker/README.md를 참조하세요.

사전 컴파일된 바이너리 사용

OS에 맞는 최신 버전을 다운로드하여 사용하세요.

AUR 패키지 사용 (Arch Linux)

unimapAUR 헬퍼를 사용하여 사용 가능한 AUR 패키지에서 설치할 수 있습니다. 예를 들어,

$ paru -S unimap

원한다면 AUR 패키지를 클론한 후 makepkg로 컴파일할 수 있습니다. 예를 들어,

git clone https://aur.archlinux.org/unimap.git && cd unimap && makepkg -si

사용법

Unimap은 Nmap TCP SYN(Stealth) 스캔을 실행하려면 루트/관리자 권한이 필요합니다. 정확성과 성능을 위해 이를 사용합니다. Linux 또는 Linux 기반 시스템을 사용 중이라면 루트 셸을 사용하거나 sudo로 도구를 실행하세요. Windows에서는 관리자 권한으로 명령 프롬프트(CMD)를 열고 평소처럼 도구를 실행하면 됩니다.

예제

  1. unimap -f targets.txt -u log.csv 전체 스캔을 수행하고 출력을 log.csv에 기록합니다.
  2. unimap -f targets.txt --fast-scan -o 빠른 스캔을 수행하고 로그 파일을 logs/ 폴더에 저장합니다.
  3. sudo unimap -f targets.txt --ports "1-1000" --min-rate 5000 서비스 및 버전 탐지를 수행하면서 1-1000 포트를 스캔합니다(빠른 스캔을 원하면 --fast-scan 플래그 사용) min-rate는 5000입니다.

고려 사항

  • Unimap은 더 빠른 네트워크(클라우드 VPS)에서 실행되도록 사전 구성되어 있습니다. 용량이 충분하지 않은 홈 네트워크에서 스캔을 실행하면 네트워크 제한으로 인해 연결이 끊어질 수 있습니다.
  • 앞서 말한 내용이 홈에서 Unimap을 사용할 수 없다는 의미는 아닙니다. --threads--min-rate(가장 중요한 요소) 수를 조정하기만 하면 됩니다.
  • 우리는 Nmap을 어떤 식으로든 래핑하거나 자체적으로 포트를 스캔하지 않습니다. 최대 성능을 얻기 위해 적절한 Nmap 옵션을 사용합니다. Nmap은 훌륭하며 현재 존재하는 가장 빠른 포트 스캐너입니다.
  • 우리는 Nmap 출력 데이터를 파싱하여 더 이해하기 쉬운 출력을 제공하면서 동일한 IP를 여러 번 스캔하는 것을 방지합니다. 이것이 우리의 주요 목표입니다.

개발

단위 및 통합 테스트 실행(네트워크, 루트 또는 Nmap 불필요):

cargo test

Docker 이미지를 빌드하고 scanme.nmap.org에 대해 실제 스캔을 실행하는 짧은 엔드투엔드 검사 실행(Docker 및 인터넷 액세스 필요):

scripts/container-test.sh

버그를 발견했나요?

이슈를 열어주세요.

카테고리