Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Portspoof — 모든 65535 TCP 포트에 걸쳐 열린 포트와 서비스 시그니처를 에뮬레이션하여 정찰을 지연시키고, 스캐너를 혼란시키며, 설득력 있는 가짜 서비스와 트래피팅으로 공격자의 자원을 낭비하게 합니다. | Kitploit
도구/GitHubGitHub/drk1wi/portspoof
Defensive ToolsReconnaissanceVulnerability AnalysisIDS/IPS EvasionNetwork SecurityRed Teaming
GitHubdrk1wi/portspoof

Portspoof

모든 65535 TCP 포트에 걸쳐 열린 포트와 서비스 시그니처를 에뮬레이션하여 정찰을 지연시키고, 스캐너를 혼란시키며, 설득력 있는 가짜 서비스와 트래피팅으로 공격자의 자원을 낭비하게 합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

Portspoof

License Platform Build Status

Portspoof는 모든 65535개 TCP 포트에서 열린 포트와 서비스 시그니처를 에뮬레이션하여, 정찰 단계를 빠른 스캔에서 오래 걸리고 리소스 집약적인 프로세스로 전환합니다. 스캐너는 수천 개의 그럴듯하지만 가짜 서비스를 보게 되어 실제 공격 표면을 식별하는 것이 실용적이지 않게 됩니다.

목차

  • 개요
  • 주요 기능
  • 작동 방식
  • 설계 접근 방식
  • 설치
  • 설정
  • 사용법
  • iptables로 강화
  • Portspoof Pro
  • 저자 및 라이선스

개요

Portspoof의 주요 목표는 공격자에게 정찰을 느리고, 비용이 많이 들며, 신뢰할 수 없게 만드는 것입니다. 표준 5초 Nmap 스캔이 시스템의 모든 실제 서비스를 매핑하는 대신, Portspoof를 마주한 공격자는 65535개의 열린 포트를 보게 되며, 각 포트는 서로 다른 합법적인 서비스처럼 보입니다. 어떤 것이 실제인지 빠르게 알 수 있는 방법이 없습니다.

주요 기능

  • 모든 65535 TCP 포트가 항상 열려 있음: 공격자에게 포트가 CLOSED 또는 FILTERED임을 알리는 대신, Portspoof는 모든 연결 시도에 SYN+ACK을 반환합니다.
  • 서비스 에뮬레이션: 정규 표현식에서 생성된 9000개 이상의 동적 서비스 시그니처. 모든 포트는 프로브에 대해 서로 다른 설득력 있는 서비스 ID로 응답합니다.
  • 혼합 전달 모드: 각 포트는 시작 시 서로 다른 동작 프로필(즉시 배너, 지연 응답 또는 침묵 유지)을 가지며, 유지 시간은 넓은 범위에 걸쳐 분산됩니다. 전체 범위 버전 감지(nmap -sV -p-)는 실용적인 한계를 훨씬 초과합니다.
  • 공격적 방어: 공격자의 스캐닝 도구 자체의 취약점을 악용하기 위한 'Exploitation Framework Frontend'로 사용될 수 있습니다.
  • 가볍고 안전함: 사용자 공간에서 실행되며(루트 권한 불필요), 실행 중인 인스턴스당 하나의 TCP 포트에만 바인딩되며, CPU/메모리 사용량이 미미합니다.

작동 방식

1. 포트 스캐너 무력화

예시 Nmap 스캔:

$ nmap -p 1-20 target
Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for target
Host is up (0.00016s latency).
PORT   STATE SERVICE
1/tcp  open  tcpmux
2/tcp  open  compressnet
3/tcp  open  compressnet
4/tcp  open  unknown
5/tcp  open  rje
6/tcp  open  unknown
7/tcp  open  echo
8/tcp  open  unknown
9/tcp  open  discard
10/tcp open  unknown
11/tcp open  systat
12/tcp open  unknown
13/tcp open  daytime
14/tcp open  unknown
15/tcp open  netstat
16/tcp open  unknown
17/tcp open  qotd
18/tcp open  unknown
19/tcp open  chargen
20/tcp open  ftp-data

2. 버전 감지 혼란

Portspoof는 방대한 정규 표현식 데이터베이스를 기반으로 유효하고 동적으로 생성된 시그니처로 서비스 프로브에 응답합니다. 결과적으로 공격자는 시스템이 실제로 사용하는 포트 번호를 결정할 수 없습니다.

예시 버전 스캔 (포트 1–100):

$ nmap -sV -p 1-100 target
Nmap scan report for target
Host is up (0.00016s latency).
PORT    STATE SERVICE            VERSION
1/tcp   open  tcpmux?
2/tcp   open  irc                ircu ircd
3/tcp   open  tcpwrapped
5/tcp   open  http               Polycom CMA Global Address Book (GAB) httpd
10/tcp  open  http               PGP Universal httpd
11/tcp  open  http               SnapStream Media Beyond TV PVR http config
12/tcp  open  pop3               Novell GroupWise pop3d
13/tcp  open  http               micro_httpd
15/tcp  open  ssh                OpenSSH r (protocol 8; NCSA GSSAPI authentication patch)
16/tcp  open  ftp                QMS/Minolta Magicolor 2200 DeskLaser printer ftpd
17/tcp  open  smtp               Network Box smtpd
21/tcp  open  ftp?
22/tcp  open  ssh                OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 (Ubuntu Linux; protocol 2.0)
23/tcp  open  tcpwrapped
25/tcp  open  smtp?
27/tcp  open  http               BMC/Marimba Management http config
37/tcp  open  http               Indy httpd qlRKjiF
39/tcp  open  pop3
41/tcp  open  ftp                VSE ftpd WhH
43/tcp  open  imap               Scalix imapd 6
46/tcp  open  telnet             AXIS webcam telnetd 96747 (Linux)
49/tcp  open  smtp               Openwave Email Mx smtpd
50/tcp  open  http               3Ware web interface 3v (RAID storage)
51/tcp  open  ftp                WebStar 4dftp ...
53/tcp  open  tcpwrapped
55/tcp  open  webdav             Tonido WebDAV
56/tcp  open  tor-control        Tor control port (Authentication required)
59/tcp  open  irc                ircu ircd
60/tcp  open  rtsp               GStreamer rtspd
64/tcp  open  http               BaseHTTPServer CAxoE (Mercurial hg serve; Python LDkW)
66/tcp  open  telnet             Slirp PPP/SLIP-on-terminal emulator telnetd
70/tcp  open  smtp               qpsmtpd
71/tcp  open  smtp               Microsoft Exchange smtpd
73/tcp  open  http               Avaya IP Office VoIP PBX httpd
77/tcp  open  smtp               Zeus SMTPS smtpd
79/tcp  open  ftp                Sambar ftpd
80/tcp  open  tcpwrapped
81/tcp  open  imap-proxy         nginx imap proxy
82/tcp  open  ssh                (protocol 811)
83/tcp  open  http               peercast.org
88/tcp  open  csta               Alcatel OmniPCX Enterprise
90/tcp  open  http               WASD httpd
91/tcp  open  http               Fortinet FortiGate 50B firewall http config
93/tcp  open  imap               ModusMail imapd 4
98/tcp  open  ssh                Sysax Multi Server sshd 7 (protocol 940)
99/tcp  open  http               2Wire HomePortal http config 5473
100/tcp open  newacct?

결과

이러한 기술이 결합되어 다음을 의미합니다:

  • 실제 서비스와 가짜 서비스를 빠르게 구별할 수 있는 방법이 없습니다. 타이밍, 동작 및 배너 내용이 포트 범위에 따라 모두 다릅니다.
  • 기본 타르핏 설정을 사용한 전체 버전 스캔(nmap -sV -p-)은 10시간 이상 소요되며 수백 MB의 가짜 데이터를 생성합니다.
  • 공격자의 스캐너는 아무런 결과도 없는 연결에 시간과 스레드를 낭비합니다.

설계 접근 방식

실제 서비스(SSH, SMTP, FTP, HTTP)는 배너를 보내고 클라이언트 입력을 기다리며 연결을 유지합니다. 설득력 있는 에뮬레이션은 동일한 작업을 수행하는 것을 의미합니다: 수락, 전송, 유지. 그러나 클라이언트당 스레드 모델은 메모리와 CPU를 컨텍스트 스위칭에 낭비하며, 규모가 커지면 방어자는 공격자가 인내심을 잃기 전에 리소스가 고갈됩니다. 속임수 도구는 자체 DOS 벡터가 됩니다.

접근 방식: 단일 스레드 epoll 이벤트 루프. 각 포트에는 시작 시 전달 모드가 할당됩니다. 일부는 즉시 배너를 푸시하고, 일부는 클라이언트가 데이터를 보낼 때까지 기다렸다가 응답하며, 일부는 침묵을 유지합니다. 유지 시간은 수십 밀리초에서 분 단위로 여러 자릿수에 걸쳐 분산되며 연결당 지터(jitter)가 추가되므로 동일한 포트에 대한 반복적인 프로브가 동일한 타이밍을 반환하지 않습니다.

이것이 중요한 이유는 이것 없이는 공격자가 모든 포트에 쓰레기를 보내고 응답 타이밍을 측정할 수 있기 때문입니다. 실제 서비스는 잘못된 프로토콜의 경우 빠르게 닫히는 반면, 순진한 타르핏은 몇 초 동안 유지됩니다. 혼합 모드와 넓은 타이밍 분포를 사용하면 수천 개의 가짜 포트도 실제 서비스와 동일한 범위에서 닫힙니다. 필터링할 수 있는 명확한 임계값이 없습니다.

비대칭성 때문에 경제성이 확보됩니다:

  • 방어자 비용: 유휴 연결당 약 1~2KB 커널 메모리. epoll 루프는 단일 스레드이며 컨텍스트 스위칭 오버헤드가 없습니다. 적당한 사양의 시스템도 10,000개 이상의 동시 연결을 쉽게 처리합니다.
  • 공격자 비용: 시간과 노력. 포트 스캔은 아무 정보도 제공하지 않습니다 — 모든 포트가 열려 있습니다. 실제 서비스를 찾으려면 65535개 포트 전체에 대해 버전 감지를 수행한 다음, 그럴듯해 보이는 모든 것에 대해 프로토콜 수준 프로빙을 수행해야 합니다. 5초 스캔이 10시간 이상의 적극적인 작업이 되고, 결과는 여전히 건초 더미이며, 대부분의 공격자는 더 쉬운 목표로 넘어갑니다.

포트별 전달 모드는 프로세스 수명 동안 고정되지만 재시작 간에는 예측할 수 없습니다. 유지 시간에는 연결당 임의 구성 요소가 있으므로 반복 프로브는 부하가 걸린 실제 서비스와 유사한 자연스러운 변동성을 보여줍니다.

v2.0은 연결 종료 우회에 취약했던 기존 배너-후-종료 동작을 대체합니다(Vicarius/Hored1971 블로그 게시물 참조). 타르핏 엔진은 혼합 타이밍으로 모든 연결을 열어두어 연결 종료 필터링, 타이밍 핑거프린팅, 배너 분석 및 통계적 패턴 모델링을 무력화합니다.


설치

사전 요구 사항

C++ 컴파일러와 CMake(3.10+)가 설치되어 있는지 확인하십시오.

소스에서 빌드

mkdir build && cd build
cmake -DCMAKE_INSTALL_SYSCONFDIR=/etc .. 
make
sudo make install

설정

Portspoof는 사용자 공간에서 실행되지만 다른 포트로 향하는 트래픽을 가로채기 위해 시스템 방화벽 규칙에 의존합니다.

1. 방화벽(iptables) 설정

들어오는 모든 TCP 트래픽(포트 1-65535)을 Portspoof 포트(기본값 4444)로 리디렉션합니다.

Linux (iptables):

# 먼저 실제 서비스를 제외한 다음 나머지를 Portspoof로 리디렉션
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j RETURN
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp -j REDIRECT --to-ports 4444

참고: eth0을 네트워크 인터페이스로 바꾸십시오. 실제 서비스가 실행 중인 각 포트에 대해 RETURN 규칙을 추가하십시오.

이를 영구적으로 적용하려면 iptables 규칙을 저장하거나 system_files 디렉토리에 제공된 iptables-config를 사용할 수 있습니다.

2. 시스템 시작

system_files/init.d/의 예제를 사용하여 Portspoof를 시작 스크립트에 추가할 수 있습니다.


사용법

서비스 에뮬레이션 모드 (권장)

이 모드는 포트 스캐너에 가짜 서비스 시그니처를 생성하여 공급합니다.

portspoof -c /etc/portspoof.conf -s /etc/portspoof_signatures -D

사용자 정의 타르핏 타이밍 사용 (각 연결을 10초에서 60초 사이로 유지):

portspoof -s /etc/portspoof_signatures -t 10 -T 60 -D

열린 포트 모드

이 모드는 서비스 배너를 보내지 않고 모든 연결 시도에 대해 단순히 OPEN 상태를 반환합니다. 연결은 여전히 타르핏됩니다.

portspoof -D

퍼징 모드

Portspoof는 무작위 또는 단어 목록 기반 페이로드를 전송하여 스캐닝 도구를 퍼징하는 데 사용될 수 있습니다.

내부 생성기로 퍼징:

# 무작위 크기의 무작위 페이로드 생성
portspoof -1 -v

단어 목록으로 퍼징:

portspoof -f payloads.txt -v

iptables로 강화

위의 기본 REDIRECT 규칙은 작동하지만, 공격적인 스캐너는 여전히 연결로 Portspoof를 압도하려고 시도할 수 있습니다. 다음 규칙 세트는 비율 제한을 추가하고 연결 임계값을 초과하는 호스트를 자동으로 차단합니다. 실제 서비스(이 예제에서는 SSH)를 호스팅하는 포트는 리디렉션에서 제외되지만 전역 차단 규칙에 의해 여전히 보호됩니다.

도구 다운로드