Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
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
cornershot — Erweitern Sie die Netzwerksichtbarkeit aus mehreren Blickwinkeln anderer Hosts. | Kitploit
Tools/GitHubGitHub/zeronetworks/cornershot
AufklärungSchwachstellenanalyseInformationsbeschaffungNetzwerksicherheitPenetrationstests
GitHubzeronetworks/cornershot

cornershot

Erweitern Sie die Netzwerksichtbarkeit aus mehreren Blickwinkeln anderer Hosts.

Repository anzeigen
3114916vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

GitHub release (latest SemVer) GitHub all releases

Was ist CornerShot?

Im Krieg ist CornerShot eine Waffe, die es einem Soldaten ermöglicht, um eine Ecke zu schauen (und möglicherweise einen Schuss abzugeben), ohne sich selbst zu exponieren. Ähnlich ermöglicht das CornerShot-Paket, den Netzwerkzugriff eines entfernten Hosts zu überprüfen, ohne dass man besondere Berechtigungen auf diesem Host benötigt.

Mit CornerShot kann eine Quelle mit Netzwerkzugriff auf einen Träger feststellen, ob zwischen Träger und Ziel Netzwerkzugriff für einen bestimmten Port p besteht.

Angenommen, ein Red Team versucht, von einem „kompromittierten" Quell-Host A zu einem Ziel-Host X zu gelangen, zu dem Host A keinen Zugriff hat. Wenn sie über Host B propagieren, werden sie erst dann feststellen, dass es keinen Netzwerkzugriff zwischen Host B und X gibt.

Durch die Verwendung von CornerShot kann das Team entdecken, dass Host C tatsächlich Zugriff auf Ziel X hat, sodass die Propagation auf Ziel X zunächst über Host C erfolgen sollte.

+-----+        +-----+          +-----+
|     |        |     | gefiltert|     |
|  A  +-------->  B  +----X--->(p) X  |
|     |        |     |          |     |
+-----+        +-----+          +-(p)-+
 Quelle      Träger           Ziel
   +                               ^
   |                               |
   |           +-----+             |
   |           |     |   offen     |
   +---------->+  C  +-------------+
               |     |
               +-----+

Ähnlich wie nmap unterscheidet CornerShot zwischen den folgenden Portzuständen: open, closed, filtered und unknown (falls nicht bestimmbar).

Die folgende Demo zeigt die Ausführung von CornerShot gegen zwei Träger-Hosts 172.0.1.12 & 172.0.1.13, um festzustellen, ob sie Netzwerkzugriff auf 192.168.200.1 haben:

cornershot demo

Weitere Informationen hier.

Anwendungsfälle

Einzelne Bereitstellung für vollständige Netzwerktransparenz

Die scheinbar einfache Aufgabe, festzustellen, ob ein Host B im Netzwerk Zugriff auf Host C hat, kann eine umfangreiche Bereitstellung von Netzwerksensoren, Geräteagenten oder die Sammlung einer Vielzahl von Firewall-Regeln, Router-Konfigurationen und Host-Richtlinien erfordern.

CornerShot kann diesen Prozess vereinfachen, indem ein (oder sehr wenige) Agenten verwendet werden, die andere Hosts im Netzwerk abfragen können, um deren Zugriff auf entfernte Hosts zu bestimmen.

Validierung von BloodHound-Pfaden

Sicherheitsteams, die BloodHound nutzen, um Berechtigungserweiterungspfade in ihrem Netzwerk zu finden und zu entschärfen, kämpfen oft mit Millionen von logischen Pfaden, die von BloodHound entdeckt werden.

ShotHound ist ein Tool, das CornerShot mit BloodHound integriert, um praktische Pfade zu entdecken, die durch Netzwerkzugriff unterstützt werden.

Erste Schritte

CornerShot kann als Paket oder als eigenständiges Modul verwendet werden. Die einzigen Anforderungen sind Python 3 und das impacket-Paket.

Installation

pip install cornershot

Eigenständige Verwendung

Die grundlegende Verwendung erfordert Anmeldedaten eines gültigen Domänenbenutzers, einen FQDN-Domänennamen, eine Träger-IP und eine Ziel-IP.

python -m cornershot <user> <password> <domain> <carrier> <target>

Um einen Bereich von Trägern gegen einen Bereich von Zielen zu scannen, können Subnetze oder IP-Bereiche in einer kommagetrennten Liste verwendet werden:

python -m cornershot <user> <password> <domain> 192.168.1.10-192.168.1.20 192.168.5.0/24,192.168.6.0/24

Standardmäßig versucht CornerShot, die folgenden Ports zu scannen: 135, 445, 3389, 5985, 5986. Der Benutzer kann eine kommagetrennte Liste von Ports und Portbereichen angeben:

python -m cornershot -tp 22,8080,45000-45005 <user> <password> <domain> <carrier> <target>

Als Paket

Im Code muss man ein CornerShot-Objekt mit dem Benutzernamen, dem Passwort und dem Domänennamen eines gültigen Domänenbenutzers instanziieren. Das Hinzufügen von Trägern, Zielen und Ports erfolgt über die Methode add_shots. Sobald dies erledigt ist, kann die Methode open_fire aufgerufen werden, die nur die relevanten RPC-Aufrufe basierend auf den erforderlichen Ports durchführt.

from cornershot import CornerShot
cs = CornerShot("username", "password", "fqdn")
cs.add_shots(carriers=["192.168.1.1"],targets=["192.168.1.2","192.168.1.3"])
results = cs.open_fire()

Das Ergebnis von open_fire ist ein Wörterbuch mit Schlüsseln für Träger; jeder Träger hat einen weiteren Satz von Schlüsseln für Ziele, und schließlich enthält jedes Ziel ein Wörterbuch von Ports und deren jeweiligen Zuständen. Dies ist ein Beispielformat eines Ergebnisses:

{'carrier_1': 
	{'target_1': 
		{135: 'unknown', 445: 'filtered', 3389: 'filtered', 5986: 'filtered', 5985: 'filtered'},
	'target_2': 
		{135: 'unknown', 445: 'open', 5985: 'unknown', 5986: 'filtered', 3389: 'open'}
	}, 
'carrier_2': 
	{'target_1': 
		{3389: 'filtered', 135: 'filtered', 5985: 'filtered', 445: 'filtered', 5986: 'unknown'}, 
	'target_2': 
		{5985: 'filtered', 5986: 'filtered', 445: 'filtered', 135: 'filtered', 3389: 'open'}
	}
}

Wie funktioniert CornerShot?

CornerShot basiert auf verschiedenen, gut dokumentierten, standardmäßigen Remote Procedure Call (RPC)-Methoden, die von verschiedenen Microsoft-Diensten verwendet werden. Durch die Verwendung von Methoden, die nur ein authentifiziertes Konto in der Domäne erfordern, kann CornerShot Netzwerkverkehr von einem Träger-Host zu einem Ziel auslösen.

CornerShot kann den Zustand des entfernten Ports bestimmen, indem es die Zeit misst, die ein RPC-Aufruf benötigt hat, und verschiedene Fehlercodes für jede RPC-Methode verwendet.

RPC-Methoden

Der Leser mag mit dem „Printer Bug” vertraut sein, der von Lee Christensen entdeckt wurde. Obwohl es als Bug bezeichnet wird, handelt es sich um ein gut dokumentiertes Verhalten des Druckdienstes, das es jedem authentifizierten Benutzer ermöglicht, einen entfernten Server zu zwingen, sich bei einem beliebigen Rechner zu authentifizieren, unter Verwendung der Methode RpcRemoteFindFirstPrinterChangeNotificationEx.

CornerShot nutzt die folgenden RPC-Methoden aus mehreren Microsoft-Protokollen (es gibt viele weitere Methoden, die in zukünftigen Versionen implementiert werden):

  • RPRN : RpcOpenPrinter
  • RRP : BaseRegSaveKey
  • EVEN : ElfrOpenBELW
  • EVEN6 : EvtRpcOpenLogHandle

Die Implementierung der Protokolle selbst erfolgt über das hervorragende impacket-Paket.

Tool herunterladen