Protocolos de Rede Vulneráveis
Oque são Protocolos de Rede?
Protocolos de rede são os conjuntos de normas que permitem duas ou mais máquinas conectadas à internet se comuniquem. Essas normas operam como uma linguagem universal, que pode ser interpretada por dispositivos (computadores, notebooks, celulares, ...) de qualquer fabricante, por meio de qualquer sistema operacional.
Eles são responsáveis por pegar os dados transmitidos pela rede e dividi-los em pequenos pedaços, que são chamados de pacotes. Cada pacote carrega em si informações de endereçamento de origem e destino. Os protocolos também são responsáveis pela sistematização das fases de estabelecimento, controle, tráfego e encerramento.
Porém algumas normas apresentam falhas que podem ser exploradas para fornecer ao atacante algum tipo de benefício.
Abaixo você encontrará uma lista com alguns protocolos monitorados pela FURG, porque são vulneráveis e alguns links de estudo.
ARD / ARMS
Serviço:
Apple Remote Desktop (ARD), Apple Remote Management Service (ARMS)
Descrição do serviço:
O serviço ARMS (Apple Remote Management Service) é um serviço executado em sistemas MAC OS X que é parte do serviço ARD (Apple Remote Desktop) e é habilitado na porta 3283/udp. Esses serviços são utilizados para fornecer acesso remoto e de gerenciamento para esses sistemas.
O recurso Apple Remote Desktop é o equivalente direto do Remote Desktop Protocol (RDP) da Microsoft.
Vulnerabilidade:
Pode ser abusado para fazer parte de ataques distribuídos de negação de serviço, consumindo recursos da sua rede e impactando terceiros.
Descrição do ataque:
O protocolo é baseado em UDP e pode ser explorado para ataques de negação de serviço que usem amplificação. O atacante envia uma requisição forjando o IP da vítima e o servidor com ARMS retorna uma resposta maior que a requisição.
O ARMS pode ser abusado para causar danos a terceiros, envolvendo sua rede em ataques a outras organizações, além de implicar em um consumo de banda maior.
O fator de amplificação é de 35,5. ¹
Verificação:
Windows
netstat -an | findstr [Porta]
Linux
netstat -an | grep [Porta]
Externo
nmap -sU -p[Porta] [IP]
O campo [Porta] deverá ser substituído pela porta notificada, por padrão é a 3283.
Solução:
O serviço deve ser desabilitado. Caso seja necessário ele deve ser bloqueado usando filtro de pacotes / firewall ou configurado de forma a limitar o acesso apenas à rede local ou aos IPs que necessitem desse acesso. ¹
Referências:
https://en.wikipedia.org/wiki/Apple_Remote_Desktop
https://www.cert.br/docs/whitepapers/ddos/
https://www.netscout.com/blog/asert/call-arms-apple-remote-management-service-udp
¹ https://www.zdnet.com/article/macos-systems-abused-in-ddos-attacks/
https://duo.com/decipher/fbi-warns-of-ddos-attacks-abusing-network-protocols
https://commons.lbl.gov/display/itdivision/2019/07/17/Apple+Remote+Management+Service+Abuse
https://nsfocusglobal.com/fbi-warning-new-ddos-reflection-attacks-are-coming-are-you-ready/
Chargen
Serviço:
Character Generator Protocol (CharGen)
Descrição do serviço:
O Character Generator Protocol (CHARGEN) é um serviço do Internet Protocol Suite definido no RFC 864. Ele é destinado para fins de teste, depuração e medição.
Um host pode se conectar a um servidor que suporta o protocolo gerador de caracteres tanto em Transmission Control Protocol (TCP) quanto em User Datagram Protocol (UDP) na porta número 19. Ao abrir uma conexão TCP, o servidor começa a enviar caracteres arbitrários para o host conectado e continua até que o host feche a conexão. Na implementação UDP do protocolo, o servidor envia um datagrama UDP contendo um número aleatório (entre 0 e 512) de caracteres toda vez que recebe um datagrama do host de conexão. Todos os dados recebidos pelo servidor são descartados.
Vulnerabilidade:
Pode ser utilizado para ataques de negação de serviço, distribuído e com reflexão e amplificação.
Descrição do ataque:
O protocolo CHARGEN, baseado em UDP, pode ser abusado para amplificar o tráfego de ataque de negação de serviço.
Um usuário malicioso pode realizar consultas em um host vulnerável e através da técnica de spoofing direcionar o resultado dessa consulta para o ip spoofado gerando assim um ataque de negação de serviço usando seu host como atacante. O invasor gera um grande número de pacotes UDP com endereço IP de origem falsificado para fazer parecer que os pacotes estão vindo do destino pretendido. Esses pacotes UDP são enviados para servidores Chargen (porta 19) e enviam de 200 a 1.000 vezes mais dados do que recebem, dependendo da implementação.
https://www.security.unicamp.br/blog/24-amplificacao-udp/
Verificação:
Web
https://vtest.cais.rnp.br/cgi-bin/check_vul.pl
Windows
netstat -an | findstr [Porta]
Linux
netstat -an | grep [Porta]
Externo
nmap -sU -p[Porta] [IP]
O campo [Porta] deverá ser substituído pela porta notificada
Solução:
O serviço deve ser desabilitado ou bloqueado usando filtro de pacotes / firewall. Este serviço não tem uso válido em um servidor moderno e não deve ser usado.
Referências:
http://en.wikipedia.org/wiki/Character_Generator_Protocol
DNS
Serviço:
Domain Name System (DNS)
Descrição do serviço:
Os servidores DNS (sistema de nomes de domínios) são os responsáveis por localizar e traduzir para números IP os endereços dos sites que digitamos nos navegadores.
Nem todas as consultas são processadas na hora, e neste caso o Cache DNS entra em ação, armazenando as últimas consultas por determinado período de tempo para não ser necessário realizar uma nova consulta para um endereço previamente acessado.
Por padrão, o DNS usa a porta 53 UDP para servir as solicitações e as requisições.
Vulnerabilidade:
Possibilidade de ataques de envenenamento de cache (cache poisoning). Pode ser utilizado para ataques de negação de serviço, distribuído e com reflexão e amplificação.
Descrição do ataque:
- O uso de servidores não confiáveis ou inseguros pode levar os clientes a acessar sites falsificados ou inválidos.
- Possibilidade de ataques de envenenamento de cache (cache poisoning), que levam o servidor recursivo a armazenar informações forjadas. Tais informações podem ser usadas para comprometer a segurança de clientes que façam consultas a esse servidor.
- Possibilidade de ser abusado por atacantes e utilizado para ataques de negação de serviço distribuídos (DDoS), que podem implicar nas seguintes conseqüências:
- o grande número de consultas DNS forjadas recebidas e, principalmente, a quantidade de respostas grandes enviadas para a vítima, podem consumir uma quantidade considerável de banda da rede com um servidor DNS recursivo aberto;
- a rede, com o DNS aberto sendo abusado, pode ser co-responsabilizada em caso de ataque de negação de serviço contra terceiros.
https://sgis.rnp.br/wiki/06hardening/Bind/MitigacaoAtaqueDns/
http://www.cert.br/docs/whitepapers/dns-recursivo-aberto
https://bcp.nic.br/i+seg/acoes/amplificacao/#servidor-dns
Verificação:
Testar o servidor DNS a partir dos seguintes sites:
https://vtest.cais.rnp.br/cgi-bin/check_vul.pl
http://security.zensupport.co.uk
http://www.openresolverproject.org/
Solução:
Desinstalar/desabilitar se não for necessário.
Restringir acesso a servidores DNS recursivos.
Limitar acesso de sua rede local a servidores autoritativos via firewall, permitindo somente servidores locais ou globais confiáveis.
https://bcp.nic.br/dns-recursivo
https://blog.remontti.com.br/3086
http://wiki.nti.furg.br/wiki/seguranca/desativar_dns_e_mdns
Referências:
https://pt.wikipedia.org/wiki/Sistema_de_Nomes_de_Dom%C3%ADnio
IPMI-RMCP
Serviço:
Intelligent Platform Management Interface (IPMI)
Remote Management and Control Protocol (RMCP)
Descrição do serviço:
É uma interface padronizada para gerência de hardware utilizada por administradores de sistema para monitorar sistemas de computadores. Administradores podem utilizar as mensagens do IPMI para monitorar o estado da plataforma por meio de dados como a temperatura, a tensão, estado da ventilação e das fontes de energia ou mesmo informações para inventário. Também é possível efetuar operações de recuperação remota, configurando o desligamento, reinício e a programação dos watchdog timers.
Por padrão o IPMI trabalha com UDP na porta 623.
O sucessor do IPMI é o Redfish.
Vulnerabilidade:
Pode ser utilizado para ataques de negação de serviço, distribuído e com reflexão e amplificação. Exposição de informações sensíveis.
Descrição do ataque:
O ataque é feito direcionando consultas para um host vulnerável e através da técnica de spoofing direcionar o resultado dessa consulta para o ip spoofado gerando assim um ataque de negação de serviço usando seu host como atacante. Além disso, servidores IPMI mal configurados podem permitir acesso a dados e desconfiguração de servidores.
https://www.ibm.com/support/knowledgecenter/pt-br/POWER9/p9hdx/p9eih_openbmc_security.htm
Verificação:
- nmap -sU --script ipmi-brute -p 623 [IP/rede]
- nmap -sU --script ipmi-version -p 623 [IP/rede]
- https://vtest.cais.rnp.br/cgi-bin/check_vul.pl
https://www.zabbix.com/documentation/current/pt/manual/config/items/itemtypes/ipmi
https://book.hacktricks.xyz/pentesting/623-udp-ipmi
Solução:
Limitar acesso via firewall ou configuração do serviço.
Referências:
https://pt.wikipedia.org/wiki/Intelligent_Platform_Management_Interface
https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface
https://www.fortiguard.com/appcontrol/35961
https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi
https://www.somosagility.com.br/6854-2
IPP - printer service
Serviço:
Internet Printing Protocol (IPP)
RAW Printing Protocol (Várias implementações na Porta 9100)
Descrição do serviço:
Protocolo de Internet especializado para comunicação entre dispositivos clientes (computadores, telefones celulares, tablets, etc.) e impressoras (ou servidores de impressão ). Ele permite que os clientes enviem um ou mais trabalhos de impressão para a impressora ou servidor de impressão e realizem tarefas como consultar o status de uma impressora, obter o status dos trabalhos de impressão ou cancelar trabalhos de impressão individuais.
IPP - 631/TCP
printer - 9100/TCP
printer - 9100/UDP
Vulnerabilidade:
Utilização indevida de recursos da instituição, interromper trabalhos de impressão.
Descrição do ataque:
Impressora e servidores mal configurados permitem exploração de comandos e recursos.
Verificação:
- nmap -p 631 [IP/rede]
- --script cups-info
- --script cups-queue-info
- nmap -p 9100 [IP/rede]
- nmap -sU -p 9100 [IP/rede]
Solução:
Limitar acesso via firewall ou configuração do serviço.
Referências:
https://en.wikipedia.org/wiki/List_of_printing_protocols
https://en.wikipedia.org/wiki/Internet_Printing_Protocol
https://book.hacktricks.xyz/pentesting/pentesting-631-internet-printing-protocol-ipp
LDAP
Serviço:
Lightweight Directory Access Protocol (LDAP)
Descrição do serviço:
Protocolo que serve para atualizar e pesquisar diretórios rodando sobre a camada TCP/IP. Ele roda sobre o TCP/IP que permite organizar os recursos de rede de forma hierárquica, como uma árvore de diretório, onde temos primeiramente o diretório raiz, em seguida a rede da empresa, o departamento e por fim o computador do funcionário e os recursos de rede (arquivos, impressoras, etc.) compartilhados por ele. A árvore de diretório pode ser criada de acordo com a necessidade. Por padrão usa a porta 389/TCP.
Vulnerabilidade:
Pode ser utilizado para ataques de negação de serviço, distribuído e com reflexão e amplificação. Exposição de informações sensíveis.
Descrição do ataque:
O ataque é feito direcionando consultas com cabeçalho mal-formado. Além disso, servidores LDAP mal configurados podem permitir acesso a dados de usuários / vazamento de informações.
https://www.security.unicamp.br/blog/24-amplificacao-udp/
Verificação:
- nmap -p 389 --script ldap-rootdse [IP/rede]
- https://vtest.cais.rnp.br/cgi-bin/check_vul.pl
Solução:
Limitar acesso via firewall ou configuração do serviço.
Referências:
https://pt.wikipedia.org/wiki/LDAP
https://www.hardware.com.br/termos/ldap
https://por.small-business-tracker.com/ddos-attacks-abusing-exposed-ldap-servers-rise-981802
Obs:
Existe um serviço CLDAP, variante do LDAP usando UDP, com capacidade de amplificação maior que o LDAP.
mDNS
Serviço:
Multicast DNS (mDNS)
Descrição do serviço:
O mDNS é um protocolo DNS Multicast. Um “multicast” repassa a mesma mensagem para vários pontos em uma rede. O mDNS é um método para descoberta de vizinhos de uma rede, indicado para redes pequenas sem servidores DNS próprios. Por padrão usa a porta 5353/UDP.
Vulnerabilidade:
Pode ser utilizado para ataques de negação de serviço, distribuído e com reflexão e amplificação. Além disso, qualquer usuário da internet pode obter informações sensíveis sobre a rede local.
Descrição do ataque:
https://www.kb.cert.org/vuls/id/550620
https://www.security.unicamp.br/blog/24-amplificacao-udp/
Verificação:
- https://vtest.cais.rnp.br/cgi-bin/check_vul.pl
- dig +short @[IP] -p 5353 -t any _services._dns-sd._udp.local
O teste deve ser feito de fora da rede local
Solução:
- Não deixar esse serviço público para toda a internet. Limitar acesso via firewall ou configuração do serviço.
- Não executar o serviço como root.
- Não utilizar pois esse protocolo não tem uso prático e não é necessário dentro da rede da instituição.
http://wiki.nti.furg.br/wiki/seguranca/desativar_dns_e_mdns
Referências:
https://en.wikipedia.org/wiki/Multicast_DNS
https://www.security.ufrj.br/tutoriais/tratamento-de-hosts-vulneraveis-executando-protocolo-mdns/
Memcached
Serviço:
Memcached
Descrição do serviço:
Memcached é um sistema de cache em memória distribuído de propósitos gerais.
É frequentemente utilizado para acelerar sites dinâmicos orientados a banco de dados, cacheando dados e objetos na memória RAM para reduzir o número de vezes que uma fonte de dados externa (como um banco de dados ou uma API) deve ser acessada.
Por padrão configurado na porta 11211 tanto TCP quanto UDP.
Vulnerabilidade:
Pode ser utilizado para ataques de negação de serviço, distribuído e com reflexão e amplificação. Exposição de informações sensíveis.
Descrição do ataque:
Ataques de amplificação: os invasores enviam uma solicitação de pacote baseada em UDP de pequeno tamanho ao servidor memcached. Os pacotes são falsificados para parecer como se fossem enviados do alvo pretendido do ataque DDoS. Em resposta, o servidor memcached responde enviando o alvo falsificado uma resposta massivamente desproporcional.
https://www.senki.org/memcached-on-port-11211-udp-tcp-being-exploited
https://minutodaseguranca.blog.br/12043-2/
https://www.security.unicamp.br/blog/24-amplificacao-udp/
Verificação:
- https://vtest.cais.rnp.br/cgi-bin/check_vul.pl
- nmap -p 11211 [IP] --script memcached-info
- telnet [IP] 11211
Executar Telnet de algum computador fora da sua rede e executar um dos comandos abaixo para ver se o servidor está respondendo a consultas:
#stats
ou
#stats items
Solução:
- Se o servidor precisa estar acessível remotamente na Internet, as portas usadas pelo sistema precisam ser tratadas no firewall ou filtradas.
- Por padrão ele escuta em toda a interface disponível, deve-se alterar para limitar a uma interface específica como ' 127.0.0.1 '.
- Caso o servidor suporte autenticação de controle de acesso ou recursos de criptografia, recomenda-se a utilização deles.
- É recomendado logar os acessos solicitados, incluindo falhas de autenticação ou autorizações.
Referências:
MSRPC
Serviço:
Microsoft Remote Procedure Call (MSRPC)
Olhar “Portmapper”, outra implementação Remote Procedure Call (RPC).
Descrição do serviço:
Tecnologia de comunicação entre processos que permite a um programa de computador chamar um procedimento (sub-rotina) em outro espaço de endereçamento (geralmente em outro computador, conectado por uma rede). O programador não se preocupa com detalhes de implementação dessa interação remota: do ponto de vista do código, a chamada se assemelha a chamadas de procedimentos locais.
Vulnerabilidade:
Diversas vulnerabilidades na implementação da Microsoft (MSRCP), tais como buffer overflow, que permite execução de códigos arbitrários, e ataques DOS.
https://memoria.rnp.br/cais/alertas/2004/MS04-029.html
https://memoria.rnp.br/cais/alertas/2006/MS06-031.html
https://www.listas.unicamp.br/pipermail/security-l/2003-August/000760.html
https://www.kb.cert.org/vuls/id/326746
Descrição do ataque:
Vários exploits causam falhas que comprometem máquinas e podem causar ataques de negação de serviço.
https://www.nic.br/noticia/na-midia/especialistas-alertam-para-exploit-de-falha-no-rpc-do-windows
https://tribunapr.uol.com.br/arquivo/tecnologia/microsoft-alerta-para-novas-falhas-de-seguranca
https://www.exploit-db.com/exploits/76
Verificação:
No próprio equipamento:
- Windows
netstat -an | findstr 135
- Linux
netstat -an | grep 135
De fora da rede local
- nmap -p 135 [IP/rede]
*se necessário, substituir a porta 135 pela denunciada
Solução:
Filtrar as portas 135/TCP, 135/UDP, 139/TCP, 139/UDP, 445/TCP, 445/UDP no firewall.
Desativar o serviço se não for necessário.
Referências:
https://pt.wikipedia.org/wiki/Chamada_de_procedimento_remoto
https://en.wikipedia.org/wiki/Remote_procedure_call
https://en.wikipedia.org/wiki/Microsoft_RPC
https://www.geeksforgeeks.org/remote-procedure-call-rpc-in-operating-system
https://searchapparchitecture.techtarget.com/definition/Remote-Procedure-Call-RPC