Ascolto del router Netgear sulla porta 32764?


13

Ho un Netgear DG834G con firmware V5.01.01. Dal lato LAN, se eseguo il port scan, è in ascolto sulla porta tcp 32764. Cercare di telnet in questa porta mi dà la risposta MMcS\xff\xff\xff\xff\0\0\0\0(in esadecimale, ovviamente).

Ho UPnP disabilitato, non è una porta di gestione remota e non è aperta sul lato WAN. Non riesco a trovare nulla nella documentazione di Netgear e la ricerca online non trova nulla. Alcune persone sembrano aver notato, ma in realtà nessuno ha una risposta. Ho anche creato una regola firewall che blocca l'accesso in uscita a quella porta, ed è ancora aperta, quindi in realtà è il router che la sta ascoltando.

Qualcuno sa cosa potrebbe essere questo?


Quale client Telnet stai usando? Quando uso Putty tutto ciò che ottengo con il mio router netgear è "MMcSÿÿ" ...
Mokubai

1
Una y con doppi punti sopra è 0xff esadecimale, stai ottenendo lo stesso di me.
Dentrasi,

Solo per aggiungere a questo perché mi sono imbattuto recentemente in questo, ecco l'output ora: SF-Port32764-TCP: V = 5.61TEST4% I = 7% D = 5/8% Time = 4FA9A45B% P = i686-pc-linux- gnu% r SF: (GenericLines, C, "MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0")% r (Help, C, "MMcS \ xff \ xff \ SF: xff \ xff \ 0 \ 0 \ 0 \ 0 ")% r (X11Probe, C," MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0 ")% r (LPDStr SF: ing, C," MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0 ")% r (TerminalServer, C," MMcS \ xff \ xff \ SF: xff \ xff \ 0 \ 0 \ 0 \ 0 "); Sarebbe utile avere ulteriori informazioni sul perché questa porta è aperta per impostazione predefinita.


Poiché questo dispositivo appartiene a te e sei su una LAN, forse puoi provarci nmap -sV --version-all the_device_hostname.
user2284570

Risposte:


4

Hmm, strano.

Hex ff = Decimale 255, quindi logicamente la risposta che stai ricevendo è equivalente

MMcS 255.255.255.255 0.0.0.0 (punti aggiunti per chiarezza di rete) che per me è fondamentalmente un indirizzo di trasmissione sulla tua rete. Potrebbe essere indicato che qualsiasi IP sulla rete può utilizzare il servizio MMCS, ovvero 255.255.255.255 net mask 0.0.0.0.

Esistono diverse cose che potrebbero essere MMCS, come il MultiMedia Class Scheduler che Vista è in grado di utilizzare per ottenere la priorità per il traffico multimediale sulla rete. Spiegherebbe perché anche la porta è aperta solo sulla rete locale.

Anche un po 'di informazioni sul punto 5 del primo post di questa pagina

Dubito che sarebbe qualcosa a che fare con MIP-MANET Cell Switching che sembra essere qualcosa a che fare con le reti di telefonia mobile. Wow, ci sono alcune cose strane che vengono restituite quando si esegue Google per MMCS 255.255.255.255 . Come questo .

Quindi direi che è molto probabilmente una porta che consente a Windows MultiMedia Class Scheduler di comunicare con il router per stabilire le priorità del traffico, ma potrebbe essere una strana roba funky della rete di telefonia mobile.


Il tuo post è in backdoor_description.pptx :)
kenorb il

@kenorb Non sono sicuro di sentirmi orgoglioso, vergognato o leggermente violato ...
Mokubai

Penso orgoglioso che tu abbia aiutato alcune persone a non rovinare il loro periodo natalizio :)
Kenorb

17

In realtà, questo sembra essere un backdoor software incluso dal produttore come descritto qui e sfruttabile usando questo script .

Finora persone non collegate a fornitori hanno riferito che ci sono backdoor nei seguenti router: Linksys WAG200G, Linksys WAG320N (Firmware V1.00.12) e Netgear DM111P. Ma sembra che possano essere presenti anche i seguenti dispositivi (inclusi i tuoi), Netgear DG834, DG834G WPNT834 DG934, WG602, router WGR614, Linksys WAG160N e DGN2000, WAG120N wireless-WRVS4400N. Sembra probabile che questa back-door sia presente anche in altri dispositivi.



@ D3C4FF: La cosa che sarebbe la più interessante, sarebbe sapere qual è l'indirizzo IP di destinazione del servizio, quando funziona normalmente. Sono curioso di sapere quale persona raccoglie automaticamente i dati.
user2284570

In realtà questa domanda è stata il risultato principale che questa back-door è stata creata come nella presentazione originale: backdoor_description.pptx :)
Kenorb

1

Questa è la porta MIPS che è presente nei dispositivi SerComm, router e gateway domestici (Linksys, Netgear, Cisco) utilizzati per gli aggiornamenti del firmware.

Questo è gestito da un scfgmgrprocesso in ascolto sulla porta 32764.

Quando si accede tramite telnet, i dati preceduti da ScMMo MMcS(a seconda dell'endianità del sistema) sembrano essere restituiti.

È un protocollo binario molto semplice con intestazione (byte 0xC) seguito da un payload.

Struttura dell'intestazione:

typedef struct scfgmgr_header_s {
    unsigned long   magic;
    int             cmd;
    unsigned long   len;
} scfgmgr_header;

Questo si basa su fonti Cisco GPL (ad es. Wap4410n_v2.0.1.0_gpl.tgz su ftp-eng.cisco.com disattivato).

Per informazioni effettive, vedere la descrizione di elvanderb e il codice Python di esempio .


Attualmente è famoso per l'overflow del buffer basato su heap che può darti pieno accesso al dispositivo ( una backdoor ). Questo è stato scoperto da Eloi Vanderbeken nel Natale 2013, tuttavia è stato probabilmente conosciuto dagli hacker cinesi nel 2008 ( file cgi ).

Ecco come funziona.

Overflow del buffer basato su heap:

Overflow del buffer basato su heap

messaggi:

messaggi

Quindi l'uso di un semplice messaggio traboccante può fornire molti dettagli interessanti:

screenshot - nome utente e password WiFi

Tuttavia, ciò potrebbe causare il ripristino della configurazione, quindi non farlo a casa.

Ecco alcuni comandi invertiti eseguiti dal router eseguiti tramite questa porta.

  1. nvram - Configurazione del dump.

  2. get var - Ottieni la configurazione var

    possibile overflow del buffer basato su stack (se la variabile è controllata dall'utente)

  3. set var - Imposta la configurazione var

    buffer overflow basato su stack, buffer di output (dimensione ≈ 0x10000) è nello stack.

  4. commit nvram - Leggi nvram / dev / mtdblock / 3 da / tmp / nvram e controlla CRC

    imposta nvram (/ dev / mtdblock / 3) da / tmp / nvram; controlla CRC

  5. Imposta la modalità bridge su ON (non sono sicuro, non ho avuto il tempo di testarlo)

    nvram_set(“wan_mode”, bridgedonly)
    nvram_set(“wan_encap”, 0)
    nvram_set(“wan_vpi”, 8)
    nvram_set(“wan_vci”, 81)
    system(“/usr/bin/killall br2684ctl”)
    system(“/usr/bin/killall udhcpd”)
    system(“/usr/bin/killall -9 atm_monitor”)
    system(“/usr/sbin/rc wan stop >/dev/null 2>&1”)
    system(“/usr/sbin/atm_monitor&”)
    
  6. Mostra la velocità misurata di Internet (download / upload)

  7. cmd (sì, è una shell ...)

    • comandi speciali:

      • esci, ciao, esci -> esci ... (vivo = 0)
      • cd: cambia directory (un po 'WTF)
    • altri comandi:

      • overflow intero nella gestione stdout (?) non sfruttabile ma comunque ...
      • buffer overflow sull'output cmd (di nuovo lo stesso buffer) ...
  8. scrivi file

    • nome del file nel payload
    • root dir = / tmp
    • l'attraversamento della directory potrebbe essere possibile (non testato ma è un open (sprintf (“/ tmp /% s”, payload)) ...)
  9. versione di ritorno

  10. restituire il modem router ip

    • nvram_get ( “lan_ipaddr”)
  11. ripristina le impostazioni di default

    • nvram_set (“restore_default”, 1)
    • nvram_commit
  12. read / dev / mtdblock / 0 [-4: -2]

    • non so cosa sia, non ho avuto il tempo di provarlo
  13. dump nvram su disco (/ tmp / nvram) e commit

Fonte: (presentazione) Come Linksys mi ha salvato il Natale!


Normalmente quel tipo di porte dovrebbe essere ufficialmente da IANA .

Questo è ciò che unSpawn ha risposto a LinuxQuestions nel 2007 in relazione a questa porta:

Se è una porta assegnata ufficialmente da IANA (con un numero compreso tra 0 e circa 30000), il suo numero dovrebbe corrispondere a un servizio in / etc / services ("numero di servizi getent"), il file dei servizi di uno scanner come Nmap o online database come Sans 'ISC.

Si noti che l'utilizzo della porta effimera può essere configurato localmente utilizzando il /proc/sys/net/ipv4/ip_local_port_range sysctl. Un vecchio valore predefinito era 1024-5000, per i server viene utilizzato un valore di 32768-61000 e alcune applicazioni richiedono qualcosa come 1025-65535.

Nota anche che si tratta di mappature statiche da numero a servizio e mentre per esempio / etc / services dirà TCP/22corrispondenze SSH che non devono essere il caso in una situazione particolare,

Altrimenti se si tratta di una porta per la quale non si conosce quale processo è stato associato ad esso, se si ha accesso all'host è possibile interrogarlo utilizzando netstat -anp, lsof -w -n -i protocol:portnumberoppure fuser -n protocol portnumber. Questo è il metodo più accurato,

Altrimenti, se non si ha accesso all'host, è possibile interrogarlo, ad esempio, tramite telnet. Questo non è un metodo accurato e nel caso di un host compromesso potresti avvisare l'intruso che stai affrontando.

Guarda anche:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.