Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
fingerprintx — 오픈 포트에서 서비스 검색을 위한 독립 실행형 유틸리티! | Kitploit
도구/GitHubGitHub/praetorian-inc/fingerprintx
ReconnaissanceNetwork MappingPort ScanningInformation GatheringUtilities & FrameworksArchived
GitHubpraetorian-inc/fingerprintx

fingerprintx

오픈 포트에서 서비스 검색을 위한 독립 실행형 유틸리티!

저장소 보기
75878299개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

fingerprintx

기능 • 설치 • 사용법 • fingerprintx 실행 • 라이브러리로 사용 • 왜 nmap이 아닌가? • 참고사항 • 감사의 말

fingerprintx는 httpx와 유사한 유틸리티로, RDP, SSH, MySQL, PostgreSQL, Kafka 등과 같은 서비스의 핑거프린팅도 지원합니다. fingerprintx는 Naabu와 같은 포트 스캐너와 함께 사용되어 포트 스캔 중 발견된 포트 집합을 핑거프린트할 수 있습니다. 예를 들어, 엔지니어가 IP 범위를 스캔한 후 발견된 모든 포트에서 실행 중인 서비스를 신속하게 핑거프린트하려는 경우가 있습니다.

기능

  • 노출된 서비스의 빠른 핑거프린팅
  • 애플리케이션 계층 서비스 탐지
  • 다른 명령줄 도구와 잘 연동됨
  • 식별된 서비스로부터 자동 메타데이터 수집

https://user-images.githubusercontent.com/69640071/193334167-8405dd50-f9bf-4386-b7b8-83255af41a8b.mov

Fingerprintx 예제

Fingerprintx 체인 예제

Fingerprintx SMB 예제

지원 프로토콜:

51개의 서비스 탐지 플러그인이 TCP 및 UDP 프로토콜을 지원합니다:

서비스전송 프로토콜
CassandraTCP
ChromaDBTCP
CouchDBTCP
DB2TCP
DHCPUDP
DiameterTCP
DNSTCP/UDP
EchoTCP
ElasticsearchTCP
FirebirdTCP
FTPTCP
HTTP/HTTPSTCP
IMAPTCP
InfluxDBTCP
IPMITCP
IPSECUDP
Java RMITCP
JDWPTCP
KafkaTCP
LDAPTCP
Linux RPCTCP
MemcachedTCP
MilvusTCP
ModbusTCP
MongoDBTCP
MQTTTCP
MSSQLTCP
MySQLTCP
Neo4jTCP
NetBIOS-NSUDP
NTPUDP
OpenVPNUDP
OracleDBTCP
PineconeTCP
POP3TCP
PostgreSQLTCP
RDPTCP
RedisTCP
RsyncTCP
RTSPTCP
SMBTCP
SMPPTCP
SMTPTCP
SNMPUDP
SNPPTCP
SSHTCP
STUNUDP
SybaseTCP
TelnetTCP
VNCTCP

주요 기능:

  • 벡터 데이터베이스: ChromaDB, Milvus, Pinecone
  • 관계형 데이터베이스: PostgreSQL, MySQL, MSSQL, OracleDB, DB2, Sybase, Firebird
  • NoSQL 데이터베이스: MongoDB, CouchDB, Cassandra, Redis, Elasticsearch, InfluxDB, Neo4j
  • 개발자 도구: JDWP (Java Debug Wire Protocol), Java RMI
  • 산업용 프로토콜: Modbus, IPMI
  • 메시징: Kafka, MQTT, SMTP
  • 원격 접속: SSH, RDP, Telnet, VNC
  • 파일 전송: FTP, SMB, Rsync
  • 통신/AAA: Diameter (3GPP 네트워크, LTE/5G), SMPP (SMS 게이트웨이)

설치

Github를 통해

go install github.com/praetorian-inc/fingerprintx/cmd/fingerprintx@latest

소스에서 (go 버전 > 1.18)

$ git clone [email protected]:praetorian-inc/fingerprintx.git
$ cd fingerprintx

# go 버전 > 1.18인 경우
$ go build ./cmd/fingerprintx
$ ./fingerprintx -h

Docker

$ git clone [email protected]:praetorian-inc/fingerprintx.git
$ cd fingerprintx

# 빌드
docker build -t fingerprintx .

# 실행
docker run --rm fingerprintx -h
docker run --rm fingerprintx -t praetorian.com:80 --json

사용법

fingerprintx -h

-h 옵션은 fingerprintx가 지원하는 모든 플래그를 표시합니다.

사용법:
  fingerprintx [flags]
대상 지정:
	호스트와 포트 번호 또는 IP와 포트 번호가 필요합니다. 포트는 열려 있다고 가정합니다.
	HOST:PORT 또는 IP:PORT
예제:
	fingerprintx -t praetorian.com:80
	fingerprintx -l input-file.txt
	fingerprintx --json -t praetorian.com:80,127.0.0.1:8000

Flags:
      --csv               csv 형식 출력
  -f, --fast              빠른 모드
  -h, --help              도움말
      --json              json 형식 출력
  -l, --list string       대상이 포함된 입력 파일
  -o, --output string     출력 파일
  -t, --targets strings   대상 또는 쉼표로 구분된 대상 목록
  -w, --timeout int       타임아웃 (밀리초) (기본값 500)
  -U, --udp               UDP 플러그인 실행
  -v, --verbose           상세 모드

fast 모드는 각 대상에 대해 해당 포트와 연관된 기본 서비스에 대해서만 핑거프린트를 시도합니다. 예를 들어, 입력이 praetorian.com:8443인 경우 https 플러그인만 실행됩니다. praetorian.com:8443에서 https가 실행 중이지 않으면 출력이 없습니다. 왜 이렇게 할까요? 대규모 호스트 목록에서 대부분의 서비스를 신속하게 핑거프린트하는 빠른 방법이기 때문입니다 (80/20 법칙 참고).

Fingerprintx 실행

단일 대상:

$ fingerprintx -t 127.0.0.1:8000
http://127.0.0.1:8000

기본적으로 출력 형식은 SERVICE://HOST:PORT입니다. 더 자세한 서비스 출력을 보려면 --json 플래그로 JSON을 지정하세요:

$ fingerprintx -t 127.0.0.1:8000 --json
{"ip":"127.0.0.1","port":8000,"service":"http","transport":"tcp","metadata":{"responseHeaders":{"Content-Length":["1154"],"Content-Type":["text/html; charset=utf-8"],"Date":["Mon, 19 Sep 2022 18:23:18 GMT"],"Server":["SimpleHTTP/0.6 Python/3.10.6"]},"status":"200 OK","statusCode":200,"version":"SimpleHTTP/0.6 Python/3.10.6"}}

다른 프로그램(예: naabu)의 출력을 파이프로 전달:

$ naabu 127.0.0.1 -silent 2>/dev/null | fingerprintx
http://127.0.0.1:8000
ftp://127.0.0.1:21

입력 파일로 실행:

$ cat input.txt | fingerprintx
http://praetorian.com:80
telnet://telehack.com:23

# 또는 선호하는 방식
$ fingerprintx -l input.txt
http://praetorian.com:80
telnet://telehack.com:23

더 많은 메타데이터 출력:

$ cat input.txt | fingerprintx --json
{"host":"praetorian.com","ip":"146.148.61.165","port":80,"service":"http","transport":"tcp","metadata":{"responseHeaders":{"Connection":["keep-alive"],"Content-Type":["text/html"],"Date":["Mon, 19 Sep 2022 18:37:55 GMT"],"Etag":["W/\"5e3e263f-1703\""],"Keep-Alive":["timeout=20"],"Server":["nginx"],"Vary":["Accept-Encoding"]},"status":"404 Not Found","statusCode":404,"version":"nginx"}}
{"host":"telehack.com","ip":"64.13.139.230","port":23,"service":"telnet","transport":"tcp","metadata":{"serverData":"fffb03"}}

라이브러리로 사용

fingerprintx는 프로젝트에 임포트하여 열린 포트에서 서비스를 스캔하는 데 사용할 수 있습니다. 사용 방법에 대한 예제 코드는 여기 examples 디렉토리에 제공되어 있습니다. go build scan.go로 빌드하세요. fingerprintx를 자신의 프로젝트에 임포트할 때 참고할 수 있는 또 다른 파일로는 명령줄 실행기가 있습니다.

왜 nmap이 아닌가?

Nmap은 네트워크 스캐닝의 표준입니다. 왜 nmap 대신 fingerprintx를 사용해야 할까요? 주요 이유는 두 가지입니다:

도구 다운로드