
IP 주소별로 한 번만 스캔하고 Nmap을 사용하여 대량의 데이터에 대한 스캔 시간을 줄입니다.
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` 명령을 사용할 수 있습니다.
edu4rdshl/unimap 이미지는 모든 릴리스에서 linux/amd64 및 linux/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에 맞는 최신 버전을 다운로드하여 사용하세요.
unimap은 AUR 헬퍼를 사용하여 사용 가능한 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)를 열고 평소처럼 도구를 실행하면 됩니다.
unimap -f targets.txt -u log.csv 전체 스캔을 수행하고 출력을 log.csv에 기록합니다.unimap -f targets.txt --fast-scan -o 빠른 스캔을 수행하고 로그 파일을 logs/ 폴더에 저장합니다.sudo unimap -f targets.txt --ports "1-1000" --min-rate 5000 서비스 및 버전 탐지를 수행하면서 1-1000 포트를 스캔합니다(빠른 스캔을 원하면 --fast-scan 플래그 사용) min-rate는 5000입니다.--threads 및 --min-rate(가장 중요한 요소) 수를 조정하기만 하면 됩니다.단위 및 통합 테스트 실행(네트워크, 루트 또는 Nmap 불필요):
cargo test
Docker 이미지를 빌드하고 scanme.nmap.org에 대해 실제 스캔을 실행하는 짧은 엔드투엔드 검사 실행(Docker 및 인터넷 액세스 필요):
scripts/container-test.sh
이슈를 열어주세요.