
JF⚡can - Masscan과 Nmap을 사용한 초고속 포트 스캐닝 및 서비스 탐색. Masscan으로 대규모 네트워크를 스캔하고 Nmap의 스크립팅 기능을 사용하여 서비스에 대한 정보를 탐색합니다. 보고서를 생성합니다.
[!CAUTION]
⚠️ 프로젝트 중단
이 프로젝트는 더 나은 성능과 기능을 위해 Go로 재작성되었습니다. > 새 버전은 다음을 사용하세요: nullt3r/massmap
JFScan은 Masscan의 속도와 Nmap의 지문 식별 기능을 활용하는 래퍼입니다. JFScan은 URL, 도메인 또는 IP( CIDR 포함) 형태의 대상을 입력받습니다. 인수 또는 stdin을 사용하여 대상 파일을 지정할 수 있습니다.
JFScan은 결과만 출력하고 Nuclei와 같은 다른 도구와 연결할 수도 있습니다. JFScan의 domain:port 출력은 웹 애플리케이션의 취약점을 식별하는 데 중요합니다. 가상 호스트가 제공될 콘텐츠를 결정하기 때문입니다.
또한 JFScan은 발견된 포트를 Nmap으로 스캔할 수 있으며, 사용자 정의 옵션을 정의하고 Nmap의 고급 스크립팅 기능을 활용할 수 있습니다.

JFScan의 입력 및 출력 처리 로직:

usage: jfscan [-h] [--targets TARGETS] (-p PORTS | --top-ports TOP_PORTS | --yummy-ports) [--resolvers RESOLVERS] [--enable-ipv6] [--scope SCOPE] [-r MAX_RATE] [--wait WAIT] [--disable-auto-rate] [-i INTERFACE] [--source-ip SOURCE_IP]
[--router-ip ROUTER_IP] [--router-mac ROUTER_MAC] [--router-mac-ipv6 ROUTER_MAC_IPV6] [-oi] [-od] [-o OUTPUT] [-q | -v] [--nmap] [--nmap-options NMAP_OPTIONS] [--nmap-threads NMAP_THREADS] [--nmap-output NMAP_OUTPUT] [--version]
[target]
JFScan - 그냥 스캔해라
선택적 인수:
-h, --help 이 도움말 메시지를 출력하고 종료합니다
-p PORTS, --ports PORTS
포트, 범위 또는 포트 목록 가능: 0-65535 또는 22,80,100-500,...
--top-ports TOP_PORTS
상위 N개 포트만 스캔, 예: --top-ports 1000
--yummy-ports 가장 맛있는 포트만 스캔
-q, --quite 결과만 출력
-v, --verbose 자세한 출력
--nmap 발견된 포트에서 nmap 실행
--nmap-options NMAP_OPTIONS
nmap 인수, 예: --nmap-options='-sV' 또는 --nmap-options='-sV --script ssh-auth-methods'
--nmap-threads NMAP_THREADS
동시에 실행할 nmap 수, 기본값 8
--nmap-output NMAP_OUTPUT
nmap 결과를 표준 XML 형식으로 지정된 파일에 출력 (nmap 옵션 -oX와 동일)
target 쉼표로 구분된 하나 이상의 대상, 허용 형식: 도메인 이름, IPv4, IPv6, URL
--targets TARGETS 대상 파일, 허용 형식: 도메인 이름, IPv4, IPv6, URL
-oi, --only-ips IP 주소만 출력, 기본값: 모든 리소스
-od, --only-domains 도메인만 출력, 기본값: 모든 리소스
-o OUTPUT, --output OUTPUT
masscan 결과를 지정된 파일로 출력
--resolvers RESOLVERS
쉼표로 구분된 사용자 정의 리졸버, 예: 8.8.8.8,1.1.1.1
--enable-ipv6 IPv6 지원 활성화, 그렇지 않으면 모든 IPv6 주소는 스캔 과정에서 무시됨
--scope SCOPE IP 주소 및 CIDR이 포함된 파일 경로로 범위 제어, 예상 형식: IPv6, IPv4, IPv6 CIDR, IPv4 CIDR
-r MAX_RATE, --max-rate MAX_RATE
masscan의 최대 kpps 속도
--wait WAIT 패킷 도착을 기다릴 시간(초) (대규모 네트워크 스캔 시), masscan 옵션
--disable-auto-rate masscan의 속도 조절 메커니즘 비활성화 (더 많은 오탐/미탐 가능)
-i INTERFACE, --interface INTERFACE
masscan 및 nmap에 사용할 인터페이스
--source-ip SOURCE_IP
masscan에 사용할 인터페이스의 IP 주소
--router-ip ROUTER_IP
masscan에 사용할 라우터의 IP 주소
--router-mac ROUTER_MAC
masscan에 사용할 라우터의 MAC 주소
--router-mac-ipv6 ROUTER_MAC_IPV6
IPv6 라우터의 MAC 주소 (masscan용)
--version 프로그램 버전 번호를 출력하고 종료
실행 전에 설치 지침을 따르세요. 루트 권한으로 JFScan을 실행하지 마세요. masscan 바이너리에 특수 권한을 설정했기 때문에 필요하지 않습니다.
포트 80과 443만 10 kpps 속도로 스캔:
$ jfscan -p 80,443 --targets targets.txt -r 10000
상위 1000개 포트로 대상 스캔:
$ jfscan --top-ports 1000 1.1.1.1/24
대상을 stdin으로 지정하고 nuclei로 파이프할 수도 있습니다:
$ cat targets.txt | jfscan --top-ports 1000 -q | httpx -silent | nuclei
또는 위치 인자로:
$ jfscan --top-ports 1000 1.1.1.1/24 -q | httpx -silent | nuclei
또는 한 번에 모두 지정: JFScan은 신경 쓰지 않고 지정된 모든 대상을 스캔합니다:
$ echo target1 | jfscan --top-ports 1000 target2 --targets targets.txt -q | httpx -silent | nuclei
nmap을 사용하여 발견된 서비스에 대한 추가 정보 수집:
$ cat targets.txt | jfscan -p 0-65535 --nmap --nmap-options="-sV --scripts ssh-auth-methods"
targets.txt 파일에는 다음과 같은 형식의 대상이 포함될 수 있습니다 (IPv6도 유사):
http://domain.com/
domain.com
1.2.3.4
1.2.3.0/24
1.1.1.1-1.1.1.30
먼저 libpcap-dev (Debian 기반 배포판) 또는 libcap-devel (Centos 기반 배포판)을 설치하세요:
sudo apt install libpcap-dev
그런 다음 공식 저장소를 클론하고 설치하세요:
sudo apt-get --assume-yes install git make gcc
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
sudo make install
sudo setcap CAP_NET_RAW+ep /usr/bin/masscan
sudo apt install python3 python3-pip
$ git clone https://github.com/nullt3r/jfscan.git
$ cd jfscan
$ pip3 install .
명령줄에서 jfscan을 직접 실행할 수 없는 경우 $HOME/.local/bin이 PATH에 있는지 확인하세요.
다음 줄을 ~/.zshrc 또는 ~/.bashrc에 추가하세요:
export PATH="$HOME/.local/bin:$PATH"
LICENSE 파일을 읽으세요.
저는 어떠한 손해에 대해서도 책임을 지지 않습니다. 귀하는 자신의 행동에 대한 책임이 있습니다. 상호 동의 없이 대상을 공격하는 것은 불법입니다.
* 작은 네트워크 범위를 스캔할 때는 그냥 nmap을 직접 사용해도 됩니다. JFScan을 사용할 필요가 없습니다. 다음 옵션을 사용하면 JFScan 속도의 최대 70%까지 도달할 수 있습니다:
nmap -Pn -n -v yourTargetNetwork/26 -p- --min-parallelism 64 --min-rate 20000 --min-hostgroup 64 --randomize-hosts -sS -sV
언제나 그렇듯 일부 오탐/미탐이 발생할 수 있습니다.