Scansione di una sottorete esternamente

6

Scenario:

Ho un router con un indirizzo IP pubblico fornito dall'ISP e due host dietro il router con un IP privato (192.168.x.x).

È possibile eseguire una scansione di porte o vulnerabilità di una sottorete privata dietro l'indirizzo IP pubblico?

    
posta deXter 05.07.2012 - 14:14
fonte

7 risposte

3

Sì, non hai bisogno di NAT, masquerading o persino routing (ma hai almeno bisogno del proxy HTTP).

Questo strumento utilizza websockets e richieste ajax ma è possibile farlo con solo img URL. Un semplice applet Java identificherà e riporterà l'indirizzo IP locale se non si desidera eseguire la scansione di molti indirizzi.

    
risposta data 05.07.2012 - 17:38
fonte
4

Di solito, tali reti sono dietro Network Address Translation (NAT) . NAT attende che un sistema interno invii un pacchetto a un indirizzo WAN, quindi memorizza il percorso in una tabella. Altera il pacchetto per avere l'IP WAN del router come indirizzo sorgente e lo invia a Internet. Quando la risposta ritorna, corrisponde al pacchetto in arrivo su una rotta. Questo è particolarmente facile da dimostrare con TCP, dove una connessione ha un numero di sequenza che può essere utilizzato per abbinare i pacchetti alla conversazione.

Il problema con l'accesso alle porte interne è che se un pacchetto non corrisponde esplicitamente a una rotta che il router conosce, viene eliminato. Si noti che le regole di port forwarding creano i propri percorsi, in modo che il router sappia instradare i pacchetti TCP / UDP in arrivo su un particolare IP interno. In quanto tale, è abbastanza difficile enumerare gli IP interni da Internet, per non parlare delle scansioni delle porte.

L'unico modo che conosco per farlo è quello di sfruttare il router. Alcuni di essi hanno impostato male i daemon UPnP, consentendo di ingannare il router nell'impostare le regole di port forwarding. Ci sono altri modi per farlo, di solito tramite il pannello di controllo del router.

Aaron "finux" Finnon ( @ f1nux su Twitter ) ha fatto un gran parlare di pwning UPnP a BSidesLondon all'inizio di quest'anno: link

    
risposta data 02.09.2012 - 19:31
fonte
3

Non appena l'indirizzo è raggiungibile dalla rete, sì, è possibile eseguire la scansione delle porte da una rete remota. Naturalmente, le attrezzature tra te e la tua macchina target (i firewall, in particolare) influenzeranno i risultati.

Se l'indirizzo IP di destinazione non è instradabile su Internet, allora potrebbe o non potrebbe essere possibile eseguire una scansione su alcune porte. Tutto dipende dalla configurazione del server NAT (e firewall) tra la LAN di destinazione e Internet.

Esistono siti Web specializzati (come questo ) per questo se non si dispone di una macchina di origine su una rete remota. Ovviamente, per eseguire una scansione di questo tipo dovresti avere un'autorizzazione dal proprietario / amministratore del sistema di destinazione, se non sei tu.

    
risposta data 02.09.2012 - 19:31
fonte
2

Risposta breve: No.

Risposta lunga: Forse. Dipende.

I router NAT funzionano monitorando il traffico in uscita e creando regole al volo per inviare il traffico in entrata dove necessario.

Ad esempio:

  1. La macchina interna (192.168.1.2) apre la connessione TCP (invia un SYN TCP) a una macchina esterna: 13.37.10.20, porta 80. La connessione è collegata alla porta 54321 sulla macchina interna.
  2. Il router NAT vede una nuova connessione TCP in uscita, da 192.168.1.2:54321 a 13.37.10.20:80, memorizza il numero di sequenza TCP e crea una regola per il traffico in arrivo da 13.37.10.20:80 con il numero di sequenza successivo deve essere indirizzato a 192.168.1.2:54321 nella subnet locale.
  3. La macchina esterna rinvia il pacchetto TCP con i flag SYN + ACK impostati, con il proprio numero di sequenza. Il router NAT vede che corrisponde alla regola precedente e lo indirizza a 192.168.1.2:54321, memorizzando il numero di sequenza. Ora consente di inviare pacchetti in entrambe le direzioni, a condizione che l'IP, la porta e i numeri di sequenza corrispondano ai valori della regola.
  4. I dati vengono scambiati tramite la connessione TCP.
  5. Un lato invia una FIN, il router consente all'altra parte di inviare indietro e ACK e quindi di eliminare la regola. Ulteriore traffico non può essere inviato dalla macchina esterna, perché il router NAT non ha più questa regola di inoltro.

Tutto il resto del traffico in entrata viene eliminato dal router NAT.

In alcuni casi, le macchine sulla rete interna devono essere in grado di accettare i pacchetti in arrivo dalla rete esterna, senza sapere nulla sulla macchina esterna in anticipo. Ad esempio, potrei configurare un server web su 192.168.1.2:80, ma voglio che sia accessibile dalla rete esterna. Questo è facilitato dal port forwarding.

Il port forwarding aggiunge una regola permanente alle regole di inoltro NAT, in modo tale che il traffico da tutti gli indirizzi IP (o un elenco predefinito di) a una porta specifica venga inviato a un indirizzo IP interno. Nel caso precedente, potrei dire che qualsiasi cosa venga inviata al mio router sulla porta TCP 80 dovrebbe essere inoltrata a 192.168.1.2:80.

Questo non offre una vulnerabilità in sé, ma ne conduce uno. Molti software di giochi e comunicazioni (ad esempio IM, VoIP, ecc.) Richiedono l'accettazione di connessioni in entrata. Poiché la maggior parte dei consumatori non sa come configurare il proprio router e diventa una seccatura inserire manualmente le regole di port forwarding ogni volta che si installa un nuovo gioco / programma, i router hanno bisogno di un'API che consenta la configurazione automatica di queste regole. L'API più popolare per questo è UPnP (Universal Plug-n-Play).

UPnP consente a un programma di dire al router di aggiungere una regola di port forwarding UPnP. La maggior parte dei router specifica alcune restrizioni su questo, ad es. tempo massimo che può esistere una regola prima che il programma abbia bisogno di rinnovarla, ma in generale è piuttosto lassista.

L'API funziona su HTTP, quindi è relativamente facile da implementare nella maggior parte delle lingue. Inoltre, non richiede alcuna autenticazione oltre a "I have an internal IP address", il che significa che AJAX cross-site, socket Web HTML5 e persino iframe creati all'interno di un browser possono avere la possibilità di configurare le regole di port forwarding. Questo di solito richiede un bug nella politica della stessa origine del browser, ma è certamente possibile che un utente malintenzionato lo sfrutti per creare regole di port forwarding arbitrarie. Questi potrebbero essere utilizzati per impronte digitali della rete interna. Potrebbero anche utilizzare le prese per impronte digitali direttamente sulla rete interna, per farti visitare una pagina web. Ovviamente, la scansione verrebbe interrotta alla chiusura della pagina. La risposta di symbbean mostra un esempio pratico di questo.

L'altro problema è che UPnP a volte è implementato sul router in un modo piuttosto scadente. Alcuni router consentono di eseguire alcune cose pazzesche tramite UPnP senza autenticazione, ad es. spegnendo il wifi, ripristinando il dispositivo alle impostazioni di fabbrica, firmware lampeggiante. Ho persino trovato un router che ti diceva l'SSID wifi e la password in chiaro se hai inviato una determinata richiesta UPnP. In effetti, in alcuni casi i router consentono l'accesso UPnP "limitato" anche da parte di Internet. È una pratica di sicurezza bizzarra e terribile.

    
risposta data 05.07.2012 - 15:04
fonte
1

Dovresti esaminare una tecnica chiamata Firewalking , il documento originale e un altro foglio .

Sembra che gli strumenti 0trace e intrace sono correlati.

    
risposta data 05.07.2012 - 16:44
fonte
1

Sì, ma solo se si dispone di un port forwarding (DNAT; D = destination), che esporrà una porta (e quindi servizio se qualcosa è in ascolto) su uno degli host interni (in una semplice installazione). Per eseguire la scansione della rete interna, l'utente malintenzionato dovrebbe stabilire in qualche modo una connessione alla rete interna tramite i servizi esposti (VPN, SSH) o anche server Web o altri servizi, se esiste una vulnerabilità.

    
risposta data 05.07.2012 - 14:41
fonte
0

Supponendo di avere un indirizzo IP pubblico, con una subnet privata 192.168.xx che utilizza NAT dinamico per tradurre gli indirizzi IP privati nell'indirizzo IP pubblico, non c'è modo per un utente malintenzionato di eseguire una scansione di porta / vulnerabilità del tuo sottorete privata da internet.

    
risposta data 05.07.2012 - 14:23
fonte

Leggi altre domande sui tag