Roteador Netgear escutando na porta 32764?

13

Eu tenho um Netgear DG834G executando o firmware V5.01.01. Do lado da LAN, se eu varrer a porta, ela está escutando na porta 32764 do TCP. Tentar telnetar para essa porta me dá a resposta MMcS\xff\xff\xff\xff\0\0\0\0(em hexadecimal, obviamente).

O UPnP está desativado, não é uma porta de gerenciamento remoto e não está aberta no lado da WAN. Não consigo encontrar nada na documentação do Netgear e a pesquisa on-line também não encontra nada. Algumas pessoas parecem ter notado, mas ninguém realmente tem uma resposta. Também criei uma regra de firewall que bloqueia o acesso de saída a essa porta, e ela ainda está aberta; portanto, é na verdade o roteador que está ouvindo nela.

Alguém sabe o que isso poderia ser?

Dentrasi
fonte
Qual cliente de telnet você está usando? Quando eu uso Putty tudo que eu tenho com o meu router Netgear é "MMcSÿÿ" ...
Mokubai
1
Um y com pontos duplos é hexadecimal 0xff, você está recebendo o mesmo que eu.
Dentrasi
Só para adicionar isso, porque me deparei com isso recentemente, aqui está a saída agora: SF-Port32764-TCP: V = 5.61TEST4% I = 7% D = 5/8% Tempo = 4FA9A45B% P = i686-pc-linux- gnu% r SF: (Linhas genéricas, C, "MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0")% r (Ajuda, 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 "); Mais informações sobre por que essa porta está aberta por padrão seria bom.
Como este dispositivo pertence a você e você está em uma LAN, talvez você possa tentar nmap -sV --version-all the_device_hostname.
user2284570

Respostas:

4

Hmm, estranho.

Hex ff = decimal 255, portanto, logicamente, a resposta que você está recebendo é equivalente a

MMcS 255.255.255.255 0.0.0.0 (pontos adicionados para maior clareza da rede) que, para mim, é basicamente um endereço de broadcast na sua rede. Pode-se afirmar que qualquer ip na sua rede pode usar o serviço MMCS, ou seja, 255.255.255.255 net mask 0.0.0.0.

O MMCS pode ser uma série de coisas, como o MultiMedia Class Scheduler que o Vista pode usar para obter prioridade no tráfego de multimídia pela rede. Isso explicaria por que a porta também está aberta apenas na sua rede local.

Também algumas informações sobre o ponto 5 do primeiro post desta página

Duvido que tenha algo a ver com o MIP-MANET Cell Switching, que parece ter algo a ver com redes de telefonia móvel. Uau, existem algumas coisas estranhas que são retornadas quando você pesquisa no MMCS 255.255.255.255 . Como este .

Então, eu diria que é muito provável que seja uma porta que permita ao Windows MultiMedia Class Scheduler conversar com o roteador para priorizar o tráfego, mas pode ser algo estranho na rede de telefonia móvel.

Mokubai
fonte
O envio da mensagem está em backdoor_description.pptx :)
kenorb
@kenorb Eu não tenho certeza se sentir orgulhoso, vergonha ou ligeiramente violada ...
Mokubai
Acho orgulhoso que você ajudou algumas pessoas a não estragar o seu tempo de Natal :)
kenorb
17

Na verdade, isso parece ser uma porta traseira de software incluída pelo fabricante, conforme descrito aqui e explorável usando esse script .

Até agora, pessoas não relacionadas ao fornecedor relataram que há portas traseiras nos seguintes roteadores: Linksys WAG200G, Linksys WAG320N (Firmware V1.00.12) e Netgear DM111P. Mas parece que os seguintes dispositivos (incluindo o seu) também podem estar presentes, Netgear DG834, DG834G WPNT834 DG934, WG602, roteador WGR614, Linksys WAG160N e DGN2000, WAG120N wireless-WRVS4400N. Parece provável que essa porta traseira também esteja presente em outros dispositivos.

NULLZ
fonte
@ D3C4FF: O que seria mais interessante seria saber qual é o endereço ip de destino do serviço, quando ele funciona normalmente. Estou curioso para saber qual pessoa coleta os dados automaticamente.
precisa saber é o seguinte
Na verdade, esta questão foi o principal resultado que este back-door foi criado como é na apresentação de slides original: backdoor_description.pptx :)
kenorb
1

Essa é a porta MIPS que está presente nos dispositivos fabricados, roteadores e gateways domésticos SerComm (Linksys, Netgear, Cisco) usados ​​para atualizações de firmware.

Isso é gerenciado pelo scfgmgrprocesso que está atendendo na porta 32764.

Quando acessados ​​via telnet, os dados prefixados por ScMMou MMcS(dependendo da capacidade do sistema) parecem ser retornados.

É um protocolo binário muito simples com cabeçalho (0xC bytes) seguido por uma carga útil.

Estrutura do cabeçalho:

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

Isso é baseado nas fontes Cisco GPL (por exemplo, wap4410n_v2.0.1.0_gpl.tgz em ftp-eng.cisco.com desativado).

Para informações reais, consulte a descrição de elvanderb e o exemplo de código Python .


Atualmente, é famoso pelo estouro de buffer baseado em heap, que pode fornecer acesso total ao dispositivo ( um backdoor ). Isso foi descoberto por Eloi Vanderbeken no Natal de 2013, mas provavelmente era conhecido por hackers chineses em 2008 ( arquivo cgi ).

Aqui está como funciona.

Estouro de buffer baseado em heap:

Estouro de buffer baseado em heap

Mensagens:

Mensagens

Portanto, o uso de mensagens transbordantes simples pode fornecer muitos detalhes interessantes:

captura de tela - nome de usuário e senha WiFi

No entanto, isso pode fazer com que a configuração seja redefinida; portanto, não faça isso em casa.

Aqui estão alguns comandos invertidos executados pelo roteador executados através desta porta.

  1. nvram - Configuração de despejo.

  2. get var - Obter configuração var

    possível estouro de buffer baseado em pilha (se a variável for controlada pelo usuário)

  3. set var - Definir configuração var

    estouro de buffer baseado na pilha, o buffer de saída (tamanho ≈ 0x10000) está na pilha.

  4. commit nvram - Leia nvram / dev / mtdblock / 3 em / tmp / nvram e verifique o CRC

    configure nvram (/ dev / mtdblock / 3) em / tmp / nvram; verifique CRC

  5. Ativar modo bridge (não tenho certeza, não tive tempo de testá-lo)

    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. Mostrar velocidade medida da Internet (download / upload)

  7. cmd (sim, é uma concha…)

    • comandos especiais:

      • sair, tchau, sair -> sair ... (vivo = 0)
      • cd: altere o diretório (um pouco WTF)
    • outros comandos:

      • estouro de número inteiro no tratamento stdout (?) não explorável, mas ainda ...
      • estouro de buffer na saída cmd (mesmo buffer novamente)…
  8. gravar arquivo

    • nome do arquivo na carga
    • raiz dir = / tmp
    • a travessia de diretório pode ser possível (não testada, mas aberta) (sprintf (“/ tmp /% s”, carga útil))…)
  9. versão de retorno

  10. retornar modem roteador ip

    • nvram_get ("lan_ipaddr")
  11. restaurar definições originais

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

    • não sei o que é, eu não tive tempo para testá-lo
  13. despejar o nvram no disco (/ tmp / nvram) e confirmar

Fonte: (apresentação de slides) Como a Linksys salvou meu Natal!


Normalmente esse tipo de porta deve ser oficialmente pela IANA .

Isto é o que o unSpawn respondeu no LinuxQuestions em 2007 relacionado a esta porta:

Se for uma porta oficialmente atribuída pela IANA (com um número entre 0 e aproximadamente 30000), seu número deverá corresponder a um serviço em / etc / services ('getent services portnumber'), o arquivo de serviços de um scanner como o Nmap ou um online banco de dados como o ISC da Sans.

Observe que o uso da porta efêmera pode ser configurado localmente usando o /proc/sys/net/ipv4/ip_local_port_range sysctl. Um padrão antigo era 1024-5000; para servidores, um valor de 32768-61000 é usado e alguns aplicativos desejam algo como 1025-65535.

Observe também que esses são mapeamentos estáticos de número para serviço e, por exemplo, / etc / services dirá que TCP/22corresponde ao SSH que não precisa ser o caso em uma situação específica,

Caso contrário, se for uma porta da qual você não sabe qual processo se ligou a ela, se você tiver acesso ao host, poderá interrogá-lo usando netstat -anp, lsof -w -n -i protocol:portnumberou fuser -n protocol portnumber. Este é o método mais preciso,

Caso contrário, se você não tiver acesso ao host, poderá interrogá-lo, por exemplo, enviando um telnet para ele. Este não é um método preciso e, no caso de um host comprometido, você pode alertar o intruso que está no caso dela.

Veja também:

kenorb
fonte