Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Portspoof — Emuliert offene Ports und Dienstsignaturen über alle 65535 TCP-Ports, um Aufklärung zu verlangsamen, Scanner zu verwirren und Angreiferressourcen mit überzeugenden Fake-Diensten und Tarpitting zu verschwenden. | Kitploit
Tools/GitHubGitHub/drk1wi/portspoof
DefensivwerkzeugeAufklärungSchwachstellenanalyseIDS/IPS-UmgehungNetzwerksicherheitRed Teaming
GitHubdrk1wi/portspoof

Portspoof

Emuliert offene Ports und Dienstsignaturen über alle 65535 TCP-Ports, um Aufklärung zu verlangsamen, Scanner zu verwirren und Angreiferressourcen mit überzeugenden Fake-Diensten und Tarpitting zu verschwenden.

Repository anzeigen
2.4k1794vor 14 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Webseite
Teilen

Portspoof

License Platform Build Status

Portspoof emuliert offene Ports und Dienst-Signaturen über alle 65535 TCP-Ports und verwandelt die Aufklärungsphase von einem schnellen Scan in einen langen, ressourcenintensiven Prozess. Scanner sehen tausende überzeugender, aber gefälschter Dienste, sodass es unpraktikabel wird, die tatsächliche Angriffsfläche zu identifizieren.

Table of Contents

  • Übersicht
  • Hauptfunktionen
  • Funktionsweise
  • Entwurfsansatz
  • Installation
  • Konfiguration
  • Verwendung
  • Härtung mit iptables
  • Portspoof Pro
  • Autoren & Lizenz

Übersicht

Das Hauptziel von Portspoof ist es, die Aufklärung für Angreifer langsam, kostspielig und unzuverlässig zu machen. Anstelle eines standardmäßigen 5-Sekunden-Nmap-Scans, der jeden tatsächlichen Dienst auf einem System kartiert, sieht ein Angreifer, der Portspoof gegenübersteht, 65535 offene Ports, von denen jeder wie ein anderer legitimer Dienst aussieht. Es gibt keine schnelle Möglichkeit zu erkennen, welche echt sind.

Hauptfunktionen

  • Alle 65535 TCP-Ports sind immer offen: Anstatt einem Angreifer mitzuteilen, dass ein Port GESCHLOSSEN oder GEFILTERT ist, sendet Portspoof bei jedem Verbindungsversuch SYN+ACK zurück.
  • Dienst-Emulation: Über 9000 dynamische Dienst-Signaturen, die aus regulären Ausdrücken generiert werden. Jeder Port antwortet auf Sondierungen mit einer anderen, überzeugenden Dienst-Identität.
  • Gemischte Zustellungsmodi: Jeder Port erhält beim Start ein unterschiedliches Verhaltensprofil (sofortiges Banner, verzögerte Antwort oder stilles Halten) mit Haltezeiten, die über einen weiten Bereich verteilt sind. Die vollständige Versionserkennung (nmap -sV -p-) überschreitet bei weitem die praktischen Grenzen.
  • Offensive Verteidigung: Kann als 'Exploitation Framework Frontend' verwendet werden, um Schwachstellen in den eigenen Scan-Tools des Angreifers auszunutzen.
  • Leichtgewichtig & Sicher: Läuft im Benutzermodus (keine Root-Rechte erforderlich), bindet sich an nur EINEN TCP-Port pro laufender Instanz und hat einen marginalen CPU-/Speicherverbrauch.

Funktionsweise

1. Besiegen von Port-Scannern

Beispiel Nmap-Scan:

root@kitploit:~
$ 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. Verwirren der Versionserkennung

Portspoof antwortet auf Dienst-Sondierungen mit gültigen, dynamisch generierten Signaturen, die auf einer massiven Datenbank regulärer Ausdrücke basieren. Dadurch kann ein Angreifer nicht mehr feststellen, welche Portnummern Ihr System tatsächlich verwendet.

Beispiel Versionsscan (Ports 1–100):

root@kitploit:~
$ 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?

Das Ergebnis

Zusammengefasst bedeuten diese Techniken:

  • Es gibt keine schnelle Möglichkeit, echte Dienste von gefälschten zu unterscheiden. Timing, Verhalten und Banner-Inhalte variieren über den gesamten Portbereich.
  • Ein vollständiger Versionsscan (nmap -sV -p-) mit den Standard-Tarpit-Einstellungen dauert über 10 Stunden und erzeugt hunderte Megabyte an nutzlosen Daten.
  • Der Scanner des Angreifers verschwendet Zeit und Threads für Verbindungen, die ins Leere führen.

Entwurfsansatz

Echte Dienste (SSH, SMTP, FTP, HTTP) senden ein Banner und halten die Verbindung offen, während sie auf Eingaben des Clients warten. Eine überzeugende Emulation bedeutet, dasselbe zu tun: akzeptieren, senden, halten. Aber ein Thread-pro-Client-Modell verbraucht Speicher und CPU durch Kontextwechsel, und im großen Maßstab gehen dem Verteidiger die Ressourcen aus, bevor dem Angreifer die Geduld ausgeht. Das Täuschungswerkzeug wird zu einem Selbst-DOS-Vektor.

Der Ansatz: eine single-threaded epoll Ereignisschleife. Jeder Port bekommt beim Start einen Zustellungsmodus zugewiesen: einige senden sofort ein Banner, einige warten, bis der Client Daten sendet, bevor sie antworten, und einige bleiben stumm. Die Haltezeiten sind über Größenordnungen verteilt (Zehntelsekunden bis Minuten) mit einem Jitter pro Verbindung, sodass wiederholte Sondierungen am selben Port nicht die gleiche Zeitmessung zurückgeben.

Das ist wichtig, denn ohne diese Maßnahme kann ein Angreifer Müll an jeden Port senden und die Antwortzeit messen: echte Dienste schließen schnell (falsches Protokoll), während eine naive Tarpit Sekunden lang hält. Mit gemischten Modi und einer breiten zeitlichen Streuung schließen tausende gefälschte Ports ebenfalls im gleichen Bereich wie echte Dienste. Es gibt keine saubere Schwelle, nach der gefiltert werden kann.

Die Ökonomie funktioniert aufgrund der Asymmetrie:

  • Kosten für den Verteidiger: ~1–2 KB Kernel-Speicher pro inaktiver Verbindung. Die epoll-Schleife ist single-threaded, kein Overhead durch Kontextwechsel. Ein bescheidener Rechner hält 10k+ gleichzeitige Verbindungen ohne Probleme.
  • Kosten für den Angreifer: Zeit und Aufwand. Ein Port-Scan sagt ihnen nichts – jeder Port ist offen. Um echte Dienste zu finden, benötigen sie eine Versionserkennung über alle 65535 Ports, dann Protokoll-Sondierungen auf alles, was plausibel erscheint. Ein 5-Sekunden-Scan wird zu 10+ Stunden aktiver Arbeit, das Ergebnis ist immer noch ein Heuhaufen, und die meisten Angreifer wenden sich einem einfacheren Ziel zu.

Die Zustellungsmodi pro Port sind für die Lebensdauer des Prozesses festgelegt, aber über Neustarts hinweg unvorhersehbar. Die Haltezeiten haben eine verbindungsspezifische zufällige Komponente, sodass wiederholte Sondierungen eine natürliche Varianz zeigen, ähnlich wie echte Dienste unter Last.

v2.0 ersetzt das ursprüngliche Banner-und-Schließen-Verhalten, das anfällig für einen Verbindungsschluss-Bypass war (siehe Vicarius/Hored1971 Blogbeitrag). Die Tarpit-Engine hält alle Verbindungen mit gemischtem Timing offen und vereitelt Verbindungsschluss-Filterung, Timing-Fingerprinting, Banner-Analyse und statistische Mustererkennung.


Installation

Voraussetzungen

Stellen Sie sicher, dass ein C++-Compiler und CMake (3.10+) installiert sind.

Aus dem Quellcode erstellen

root@kitploit:~
mkdir build && cd build
cmake -DCMAKE_INSTALL_SYSCONFDIR=/etc .. 
make
sudo make install

Konfiguration

Portspoof läuft im Benutzermodus, ist aber auf System-Firewall-Regeln angewiesen, um den für andere Ports bestimmten Datenverkehr abzufangen.

1. Firewall konfigurieren (iptables)

Leiten Sie den gesamten eingehenden TCP-Datenverkehr (Ports 1-65535) auf den Portspoof-Port (Standard 4444) um.

Linux (iptables):

root@kitploit:~
# Exclude real services first, then redirect the rest to 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

Hinweis: Ersetzen Sie eth0 durch Ihr Netzwerk-Interface. Fügen Sie für jeden Port, der einen echten Dienst betreibt, eine RETURN-Regel hinzu.

Um dies dauerhaft zu machen, können Sie Ihre iptables-Regeln speichern oder die iptables-config im Verzeichnis system_files verwenden.

2. Systemstart

Sie können Portspoof zu Ihren Startskripten hinzufügen, indem Sie die Beispiele in system_files/init.d/ verwenden.


Verwendung

Dienst-Emulationsmodus (empfohlen)

Dieser Modus generiert und versorgt Port-Scanner mit gefälschten Dienst-Signaturen.

root@kitploit:~
portspoof -c /etc/portspoof.conf -s /etc/portspoof_signatures -D

Mit benutzerdefinierten Tarpit-Zeiten (jede Verbindung zwischen 10 und 60 Sekunden halten):

root@kitploit:~
portspoof -s /etc/portspoof_signatures -t 10 -T 60 -D

Offener Port-Modus

Dieser Modus gibt lediglich einen OPEN-Status für jeden Verbindungsversuch zurück, ohne Dienst-Banner zu senden. Verbindungen werden weiterhin tarpitted.

root@kitploit:~
portspoof -D

Fuzzing-Modus

Portspoof kann verwendet werden, um Scan-Tools zu fuzzen, indem zufällige oder auf Wortlisten basierende Payloads gesendet werden.

Fuzzen mit internem Generator:

root@kitploit:~
# Generates random payloads of random size
portspoof -1 -v

Fuzzen mit einer Wortliste:

root@kitploit:~
portspoof -f payloads.txt -v

Härtung mit iptables

Die grundlegende REDIRECT-Regel oben funktioniert, aber ein aggressiver Scanner kann immer noch versuchen, Portspoof mit Verbindungen zu überlasten. Das folgende Regelset fügt Ratenbegrenzung und automatisches Bannen für Hosts hinzu, die die Verbindungsschwelle überschreiten. Ports, die echte Dienste hosten (in diesem Beispiel SSH), werden von der Weiterleitung ausgeschlossen, sind aber weiterhin durch die globale Bann-Regel geschützt.

root@kitploit:~
# --- NAT: redirect everything except real services ---
# add a RETURN rule for each port you actually use (SSH, HTTP, etc.)
iptables -t nat -A PREROUTING -p tcp --dport 22 -j RETURN
iptables -t nat -A PREROUTING -p tcp -j REDIRECT --to-ports 4444

# --- FILTER: defense in depth ---

# allow loopback (critical: prevents breaking local services)
iptables -A INPUT -i lo -j ACCEPT

# if this IP was flagged as abusive, drop everything (silent, no RST)
iptables -A INPUT -m recent --name PORTSCAN --rcheck --seconds 60 -j DROP

# rate-limit new SYNs per source IP
iptables -A INPUT -p tcp --syn -m hashlimit \
  --hashlimit-above 10/sec --hashlimit-burst 30 \
  --hashlimit-mode srcip --hashlimit-name syn_throttle -j DROP

# if a single IP holds 100+ connections to portspoof, flag and drop
iptables -A INPUT -p tcp --syn --dport 4444 -m connlimit \
  --connlimit-above 100 --connlimit-mask 32 \
  -m recent --name PORTSCAN --set -j DROP

# allow established traffic and new connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --syn -j ACCEPT
iptables -A INPUT -j DROP

Für Umgebungen mit hohem Datenverkehr erhöhen Sie die Größe der xt_recent-Liste:

root@kitploit:~
echo "options xt_recent ip_list_tot=10000" > /etc/modprobe.d/xt_recent.conf

Und passen Sie das Kernel-Verbindungs-Tracking an:

root@kitploit:~
sysctl -w net.netfilter.nf_conntrack_max=131072
sysctl -w net.core.somaxconn=4096

Portspoof Pro

Portspoof Pro skaliert die Täuschung von einem einzelnen Host auf ein ganzes Netzwerk. Ein einzelner Sensor emuliert vollständige /16-Netzwerke: Tausende IPs, jede mit einzigartigen Diensten über alle Ports, die zustandsbehaftete mehrstufige Konversationen führen.

  • Netzwerkweite Täuschung. Verwandle dunklen IP-Raum und ungenutzte Subnetze in ein aktives Täuschungsgitter. Jeder emulierte Host präsentiert einzigartige Dienste mit einer unterschiedlichen Persönlichkeit pro Quell-IP. Aktives Tarpitting erschöpft die Socket-Pools des Angreifers und drosselt automatisierte Werkzeuge.
  • Scan-Erkennung und Tool-Fingerprinting. Erkennt SYN-, FIN-, NULL-, XMAS-, ACK-Scan-Techniken. Fingerprintet Nmap, Masscan, ZMap und benutzerdefinierte Scanner. Strukturierte JSON-Telemetrie mit MITRE ATT&CK-Zuordnung, an Ihr SIEM gestreamt.
  • Produktionssicherer Einsatz. Läuft in einer sandboxed Umgebung neben dem Produktionsverkehr. Routing-Richtlinien leiten Täuschungsverkehr an den Sensor. Keine Inline-Taps, kein Risiko für echte Arbeitslasten.
  • Konformität von Haus aus. Unterstützt NIS2, DORA, ISO 27001, NIST CSF und CIS Controls.

portspoof.io


Autoren & Lizenz

Autor: Piotr Duszyński (@drk1wi)

Lizenz: GNU General Public License v2.0 (GPLv2). Siehe die Datei LICENSE für Details.

Für kommerzielle, legitime Anwendungen kontaktieren Sie bitte den Autor für die entsprechenden Lizenzierungsvereinbarungen.


Probleme melden

Wenn Sie auf Fehler stoßen oder Funktionswünsche haben, melden Sie diese bitte im GitHub Issue Tracker oder kontaktieren Sie den Autor per E-Mail unter piotr [at] duszynski.eu.

Tool herunterladen