Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/zeronetworks/cornershot
RicognizioneAnalisi delle VulnerabilitàRaccolta InformazioniSicurezza di RetePenetration Testing
GitHubzeronetworks/cornershot

cornershot

Amplifica la visibilità di rete da molteplici punti di vista di altri host.

Vedi Repository
31149162 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

GitHub release (latest SemVer) GitHub all releases

Cos'è CornerShot

In guerra, CornerShot è un'arma che permette a un soldato di guardare oltre un angolo (e possibilmente sparare) senza esporsi al rischio. Allo stesso modo, il pacchetto CornerShot permette di osservare l'accesso di rete di un host remoto senza bisogno di avere privilegi speciali su quell'host.

Usando CornerShot, una sorgente, con accesso di rete a un carrier, può determinare se esiste accesso di rete tra il carrier e il target per una specifica porta p.

Ad esempio, supponiamo che un red team stia cercando di propagarsi da un host sorgente "compromesso" A, a un host target X, a cui l'host A non ha accesso. Se si propagano attraverso l'host B, solo allora scopriranno che non c'è accesso di rete tra l'host B e X.

Usando CornerShot, il team può scoprire che l'host C ha effettivamente accesso al target X, quindi la propagazione verso il target X dovrebbe passare prima attraverso l'host C.

+-----+        +-----+          +-----+
|     |        |     | filtered |     |
|  A  +-------->  B  +----X--->(p) X  |
|     |        |     |          |     |
+-----+        +-----+          +-(p)-+
 source      carrier        target
   +                               ^
   |                               |
   |           +-----+             |
   |           |     |   open      |
   +---------->+  C  +-------------+
               |     |
               +-----+


Similmente a nmap, CornerShot distingue tra i seguenti stati delle porte: open (aperta), closed (chiusa), filtered (filtrata) e unknown (sconosciuta) (se non può essere determinata).

La seguente demo mostra l'esecuzione di CornerShot contro due host carrier 172.0.1.12 e 172.0.1.13, per determinare se hanno accesso di rete a 192.168.200.1:

cornershot demo

Leggi di più qui.

Casi d'Uso

Singola Distribuzione per Visibilità Completa della Rete

Il compito apparentemente semplice di identificare se un host B nella rete ha accesso all'host C può richiedere una grande distribuzione di sensori di rete, agenti sui dispositivi o la raccolta di una moltitudine di regole firewall, configurazioni di router e policy degli host.

CornerShot può semplificare questo processo utilizzando uno (o pochissimi) agenti che possono interrogare altri host nella rete per determinare il loro accesso a host remoti.

Validare i Percorsi di BloodHound

I team di sicurezza che utilizzano BloodHound per trovare e mitigare i percorsi di escalation dei privilegi all'interno della loro rete spesso lottano con milioni di percorsi logici scoperti da BloodHound.

ShotHound è uno strumento che integra CornerShot con BloodHound, al fine di scoprire percorsi pratici supportati dall'accesso di rete.

Per Iniziare

CornerShot può essere utilizzato come pacchetto o come modulo standalone. Gli unici requisiti sono Python 3 e il pacchetto impacket.

Installazione

pip install cornershot

Utilizzo Standalone

L'uso base richiede le credenziali di un utente di dominio valido, un nome di dominio FQDN, un IP carrier e un IP target.

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

Per scansionare un intervallo di carrier contro un intervallo di target, possono essere utilizzati subnet o intervalli IP in una lista delimitata da virgole:

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

Per impostazione predefinita, CornerShot tenterà di scansionare le seguenti porte: 135, 445, 3389, 5985, 5986. L'utente può fornire una lista delimitata da virgole di porte e intervalli di porte:

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

Come Pacchetto

Nel codice, è necessario istanziare un oggetto CornerShot con nome utente, password e nome di dominio di un utente di dominio valido. L'aggiunta di carrier, target e porte si ottiene tramite il metodo add_shots. Una volta pronto, è possibile chiamare il metodo open_fire, che esegue solo le chiamate RPC pertinenti in base alle porte richieste.

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()

Il risultato di open_fire è un dizionario con chiavi dei carrier, ogni carrier ha un altro insieme di chiavi per i target, e infine ogni target contiene un dizionario di porte e i rispettivi stati. Questo è un formato di esempio del risultato:

{'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'}
	}
}

Come Funziona CornerShot?

CornerShot si basa su vari metodi di Remote Procedure Call (RPC) standard e ben documentati, utilizzati da vari servizi Microsoft. Utilizzando metodi che richiedono solo un account autenticato nel dominio, CornerShot è in grado di innescare traffico di rete da un host carrier verso un target.

CornerShot è in grado di determinare lo stato della porta remota misurando il tempo impiegato da una chiamata RPC e utilizzando diversi codici di errore per ciascun metodo RPC.

Metodi RPC

Il lettore potrebbe conoscere il "printer bug", scoperto da Lee Christensen. Sebbene sia chiamato bug, è un comportamento ben documentato del servizio di stampa, che consente a qualsiasi utente autenticato di costringere un server remoto ad autenticarsi verso qualsiasi macchina, utilizzando il metodo RpcRemoteFindFirstPrinterChangeNotificationEx.

CornerShot utilizza i seguenti metodi RPC da diversi protocolli Microsoft (ci sono molti altri metodi, che saranno implementati nelle versioni future):

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

L'implementazione dei protocolli stessi è ottenuta tramite il meraviglioso pacchetto impacket.

Scarica lo strumento