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
Tools/GitHubGitHub/pbxqdown/portclue
DefensivwerkzeugeContainer-SicherheitKonfigurationsprüfungInformationsbeschaffungNetzwerksicherheitDienstprogramme & Frameworks
GitHubpbxqdown/portclue

portclue

Erklären Sie, warum ein Linux-TCP-Port erreichbar sein kann oder nicht

Repository anzeigen
3vor 2 TagenNoch nicht 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

PortClue

CI Release License Go

PortClue erklärt, warum ein TCP-Port auf einer Linux-Maschine erreichbar sein könnte oder nicht. Es verwandelt Socket-, Prozess-, Firewall- und Docker-Zustand in eine kurze Beweiskette, anstatt dass Sie ss, /proc, nftables, iptables und docker inspect manuell korrelieren müssen.

PortClue-Demo: eine Übersicht lokaler TCP-Listener, dann die Beweiskette für Port 8080

Führen Sie es ohne Port aus, um zu ermitteln, welche lokalen TCP-Endpunkte Aufmerksamkeit verdienen:

root@kitploit:~
$ sudo portclue
LOCAL TCP LISTENERS

PORT    SERVICE                   CONFIDENCE BIND            OWNER       SOURCE BIND SCOPE
22      OpenSSH server            HIGH       0.0.0.0,::      ssh.service host   ALL_INTERFACES
8080    NGINX web server          HIGH       0.0.0.0,::      nginx       host   ALL_INTERFACES
8443    api service               MEDIUM     192.0.2.10      demo-api    docker SPECIFIC_INTERFACE
9000    Python HTTP server        MEDIUM     127.0.0.1       python3     host   LOOPBACK_ONLY

BIND SCOPE describes socket binding, not firewall reachability.
Run `portclue PORT` for the complete evidence chain and local exposure verdict.
Tool herunterladen

ALL_INTERFACES, SPECIFIC_INTERFACE und LOOPBACK_ONLY beschreiben, wo ein Socket Datenverkehr annimmt. Sie behaupten bewusst nicht, dass eine Firewall ihn zulässt. Untersuchen Sie einen Port für die vollständige lokale Firewall-Analyse:

root@kitploit:~
$ sudo portclue 8080
POTENTIAL EXTERNAL EXPOSURE

TCP port 8080

  0.0.0.0:8080/tcp  [POTENTIAL]
    Service            NGINX web server
    Category           web
    Confidence         HIGH
    Identity evidence  executable basename matched "nginx"
    -> LISTEN             NETLINK_INET_DIAG reports socket inode 123456 bound to 0.0.0.0:8080/tcp
    -> OWNED              PID 4242 (nginx), systemd unit nginx.service
    -> ALL_INTERFACES     0.0.0.0 accepts traffic addressed to any local interface
    -> ACCEPT             nftables: a direct rule matches TCP destination port 8080 and returns accept

Unknown outside this machine:
  - router port forwarding
  - cloud firewall or security group
  - upstream NAT, including carrier-grade NAT

[!IMPORTANT] PortClue v0.1 ist ein früher, konservativer Linux-Prototyp. POTENTIAL bedeutet, dass der beobachtete lokale Pfad Datenverkehr zulässt; es behauptet nicht, dass ein Port aus dem öffentlichen Internet erreichbar ist. Nicht unterstützte Firewall-Ausdrücke erzeugen UNKNOWN.

Was es liest

  • TCP-Listener über NETLINK_INET_DIAG, nicht durch Auslesen der ss-Ausgabe
  • Prozesszugehörigkeit, ausführbare Datei, Kommandozeile, cgroup und Netzwerk-Namespace über /proc
  • systemd-Unit-Beschreibungen aus installierten Unit-Dateien und aktive Socket-Trigger über systemctl show
  • nftables über nft --json list ruleset
  • iptables über iptables-save, wenn nftables nicht verfügbar ist
  • Docker veröffentlichte Ports über die lokale Docker Engine HTTP API, einschließlich Image und Labels

Dienstidentität

PortClue identifiziert, zu was ein Port gehört, bevor es die Exposition erklärt. Beweise werden in dieser Reihenfolge gewichtet:

  1. beobachtete ausführbare Datei, systemd-Unit und aktiver Socket-Trigger;
  2. Docker-Image, Container-Name und Labels;
  3. der eingebettete kuratierte Dienstkatalog;
  4. die lokale Port-Konvention aus /etc/services.

Ein tatsächlicher Eigentümer überschreibt immer einen konventionellen Portnamen. Wenn nur die Port-Konvention bekannt ist, wird die Identität explizit mit LOW-Konfidenz markiert. Der eingebettete Katalog ist in internal/identify/catalog.json gespeichert und wird innerhalb der einzelnen Binärdatei ausgeliefert; PortClue lädt Identitätsdaten nicht zur Laufzeit herunter.

PortClue ist schreibgeschützt. Es verbindet sich nicht mit dem abgefragten Port, scannt keinen anderen Host, ändert keine Firewall-Regeln, stoppt keine Prozesse oder Container, lädt keine Daten hoch und führt keinen Daemon aus.

Installation

Installationsskript (empfohlen)

Läuft unter Linux (amd64 und arm64). Das Skript lädt das passende GitHub Release-Archiv herunter, verifiziert SHA256SUMS und installiert eine einzelne Binärdatei. Es ändert nicht die Shell-Konfiguration.

Benutzerinstallation (Standard, kein Root). Installiert nach ~/.local/bin, im Besitz des Benutzers:

root@kitploit:~
curl -fsSL https://raw.githubusercontent.com/pbxqdown/portclue/v0.1.2/scripts/install.sh | sh
portclue

Eine Benutzerinstallation läuft ohne Root und meldet die für Ihr Konto verfügbaren Beweise und vermerkt, was fehlt. Dies reicht aus, um Listener und Docker- Zuordnungen zu erkunden. Da sudo nicht in ~/.local/bin sucht und diese Binärdatei von Ihrem Benutzer beschreibbar ist, führen Sie diese Kopie nicht mit sudo aus.

Systeminstallation (Root-eigentümerschaft, für sudo portclue). PortClue liest die vollständigsten Beweise (eingeschränktes /proc, vollständiger Firewall-Zustand) als Root. Dafür installieren Sie eine Root-eigene Binärdatei nach /usr/local/bin (das Skript verwendet sudo nur für den letzten Installationsschritt, nicht zum Herunterladen oder Entpacken):

root@kitploit:~
curl -fsSL https://raw.githubusercontent.com/pbxqdown/portclue/v0.1.2/scripts/install.sh | sh -s -- --system
sudo portclue

Optionale Überschreibungen: PORTCLUE_VERSION=0.1.2 (ohne führendes v) und PORTCLUE_INSTALL_DIR für beide Modi.

Deinstallation:

root@kitploit:~
# user install
rm ~/.local/bin/portclue
# system install
sudo rm /usr/local/bin/portclue
# or, matching how you installed:
curl -fsSL https://raw.githubusercontent.com/pbxqdown/portclue/v0.1.2/scripts/install.sh | sh -s -- --uninstall
curl -fsSL https://raw.githubusercontent.com/pbxqdown/portclue/v0.1.2/scripts/install.sh | sh -s -- --system --uninstall

Release-Archiv

Laden Sie das passende portclue-VERSION-linux-ARCH.tar.gz und SHA256SUMS von GitHub Releases herunter, verifizieren Sie die Prüfsumme und installieren Sie dann:

root@kitploit:~
sha256sum -c SHA256SUMS --ignore-missing
tar -xzf portclue-0.1.2-linux-amd64.tar.gz   # or linux-arm64
sudo install -m 0755 portclue-0.1.2-linux-amd64/portclue /usr/local/bin/portclue
portclue --version

Architektur-Zuordnung:

uname -mArchiv
x86_64linux-amd64
aarch64, arm64linux-arm64

Jedes Archiv enthält die Binärdatei, README, Apache-2.0-Lizenz und Hinweise zu Drittanbietern.

Go-Installation

Erfordert Linux und Go 1.25+:

root@kitploit:~
go install github.com/pbxqdown/portclue/cmd/[email protected]

Dies legt die Binärdatei in $(go env GOPATH)/bin ab. Bevorzugen Sie das prüfsummenverifizierte Release-Archiv oder das Installationsskript, wenn Sie reproduzierbare Installationsartefakte wünschen.

Aus dem Quellcode bauen und ausführen

Voraussetzungen: Linux und Go 1.25 oder neuer.

root@kitploit:~
go build -o portclue ./cmd/portclue
./portclue
./portclue --json
./portclue 8080
./portclue --json 8080

Der Übersichtsmodus akzeptiert optionale Filter (ignorierte Felder bleiben uneingeschränkt):

root@kitploit:~
./portclue --bind-scope ALL_INTERFACES,SPECIFIC_INTERFACE
./portclue --source docker
./portclue --min-confidence MEDIUM
./portclue --json --bind-scope ALL_INTERFACES --min-confidence HIGH

--bind-scope akzeptiert eine kommagetrennte Liste von ALL_INTERFACES, SPECIFIC_INTERFACE und LOOPBACK_ONLY. --source akzeptiert host und/oder docker. --min-confidence behält Einträge bei oder über HIGH, MEDIUM, LOW oder UNKNOWN. Diese Flags gelten nur, wenn PORT weggelassen wird.

Die Ausführung ohne Root liefert weiterhin nützliche Listener-, Docker-Zuordnungs- und Bind-Adress- Beweise. Prozessidentität und Firewall-Beweise können unvollständig sein, wenn /proc oder der Firewall-Zustand eingeschränkt sind; PortClue meldet dies unter Incomplete evidence. Verwenden Sie sudo für das vollständigste Ergebnis:

root@kitploit:~
sudo ./portclue
sudo ./portclue --bind-scope ALL_INTERFACES,SPECIFIC_INTERFACE
sudo ./portclue 8080

Versionierte JSON

Die JSON-Formen sind für Skripte und Agenten gedacht. Übersichts-JSON verwendet schema_version: 2, mode: "overview" und entries mit service_identity und bind_scope. Ein detaillierter Bericht verwendet schema_version: 1, query, verdict, paths mit service_identity, unknowns und warnings.

Innerhalb einer Schema-Version werden bestehende Feldnamen und Bedeutungen als stabil behandelt. Neue optionale Felder können hinzugefügt werden. Eine Entfernung, Umbenennung oder inkompatible Bedeutungsänderung erfordert eine neue schema_version. Beide Verträge haben Regressionstests.

Urteile

UrteilBedeutung
POTENTIALEin nicht-Loopback-lokaler Pfad wird beobachtet und die unterstützten Firewall-Beweise erlauben ihn. Externes Routing ist unbekannt.
NOT_EXPOSED_LOCALLYEs existiert kein Listener/Mapping, das Bind ist nur Loopback, oder unterstützte lokale Firewall-Beweise blockieren den Pfad.
UNKNOWNEine erforderliche Tatsache ist nicht verfügbar oder ein potenziell relevanter Firewall-Ausdruck wird nicht unterstützt.
CONFIRMEDReserviert für eine zukünftige explizite externe Sonde. Die aktuelle reine lokale CLI gibt es nie aus.

Unterstützt in v0.1

  • Linux, TCP, Host-Netzwerk-Namespace
  • IPv4-Listener- und lokale Filteranalyse
  • korrekte IPv6-Listener/Bind-Klassifizierung; vollständige IPv6-Firewall-Simulation wird nicht zugesichert
  • einfache nftables/iptables-Basis-Chains, direkte TCP-Zielport-Regeln und Basisrichtlinien
  • Docker-Bridge-Zuordnung veröffentlichter Ports
  • systemd-Socket-aktivierte TCP-Dienstzuordnung
  • Terminal- und JSON-Ausgabe
  • Übersichtsfilter: --bind-scope, --source, --min-confidence

Nicht enthalten: UDP, Podman, Kubernetes, Cloud-Sicherheitsgruppen, Router-Erkennung, Remote-Scanning, eBPF, kontinuierliche Überwachung oder Behebung.

Konservatives Firewall-Verhalten

PortClue versucht absichtlich nicht, die gesamte Netfilter-Virtual- Machine zu implementieren. Die erste Version versteht eine kleine Menge direkter Regeln. Mehrere Basis- Chains, Jumps, Sets, Maps, fib, dynamische Ausdrücke oder andere nicht erkannte Logik verursachen UNKNOWN, wenn sie die Abfrage beeinflussen können. Dies ist sicherer, als eine nicht geparste Regel stillschweigend als Accept oder Drop zu behandeln.

Entwicklung

Siehe CONTRIBUTING.md für Umfang, Tests und wie man Firewall-UNKNOWN-Ergebnisse meldet.

root@kitploit:~
make check
make release VERSION=0.1.2

make release erfordert einen sauberen Git-Worktree und erstellt versionierte amd64/arm64- Archive plus dist/SHA256SUMS. Das Pushen eines v*-Tags an das konfigurierte GitHub-Remote führt dieselben Prüfungen aus und erstellt ein GitHub-Release. Vom Makefile wird kein Tag erstellt.

Das langfristige Design hält den Analyzer, das Kausalmodell und die Renderer plattformneutral. Linux ist das erste Beweis-Backend; Windows ist das wahrscheinlich zweite Backend, wenn der Linux- Prototyp echte Nutzung erlangt.

Lizenz

PortClue ist unter der Apache License 2.0 lizenziert. Siehe LICENSE. Binärarchive enthalten auch THIRD_PARTY_NOTICES.

Siehe CHANGELOG.md für die Release-Historie und JSON-Kompatibilitätshinweise, SECURITY.md für unterstützte Versionen und private Schwachstellenmeldung, und CONTRIBUTING.md zum Mitwirken.