Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
portclue — Erklären Sie, warum ein Linux-TCP-Port erreichbar sein kann oder nicht | Kitploit
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
345vor 27 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, statt 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:

$ 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.

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:

$ 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.

Warum nicht ss oder lsof

  • Es braucht sie nicht. Listener stammen aus NETLINK_INET_DIAG, derselben Kernel- Schnittstelle, die ss verwendet, und Prozessdetails aus /proc. Nichts wird aus der Ausgabe eines anderen Tools geparst, sodass ein Container ohne ss und lsof trotzdem den Listener und seinen Eigentümer erhält. Die Firewall-Analyse führt jedoch nft oder iptables-save aus und meldet UNKNOWN ohne sie.
  • Es beantwortet die nächste Frage. ss -ltnp liefert Ihnen den Socket und die PID. Ob dieses Binding nur auf Loopback beschränkt ist, ob eine Firewall-Regel es zulässt und ob der Port eine Docker-Veröffentlichung statt eines Host-Listeners ist, ist Arbeit, die Sie sonst manuell erledigen würden.
  • Es rät nicht. Eine Firewall-Regel, die PortClue nicht modellieren kann, ergibt UNKNOWN, niemals eine selbstsichere falsche Antwort.

Was es liest

  • TCP-Listener über NETLINK_INET_DIAG, nicht durch Scraping der ss-Ausgabe
  • Prozesseigentümerschaft, Executable, 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 wem ein Port gehört, bevor es die Exposition erklärt. Beweise werden in dieser Reihenfolge gewichtet:

  1. beobachtetes Executable, systemd-Unit und aktiver Socket-Trigger;
  2. Docker-Image, Container-Name und Labels;
  3. der eingebettete kuratierte Dienstkatalog;
  4. die lokale Portkonvention aus /etc/services.

Ein tatsächlicher Eigentümer überschreibt immer einen konventionellen Portnamen. Wenn nur die Portkonvention 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 zur Laufzeit keine Identitätsdaten 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 von Ihnen:

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 weist darauf hin, was fehlt. Dies reicht aus, um Listener und Docker- Mappings 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):

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:

# 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:

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
Tool herunterladen