Explorando SNMP e Melhorando a Segurança em sua Utilização

Iremos demonstrar o quão poderá ser vulnerável a sua rede caso você tenha uma community  SNMP RFC 1157(RO, RW) habilitada e conhecida pelo agente de ameaça que poderá explorá-la.

Iremos abordar os comandos snmpwalksnmpget e snmpset, todos fazem parte do pacote open source netsmp, e funciona principalmente em ambiente Linux / Unix / MacOs, também existem ferramentas similares que funcionam em Windows.

Basicamente você poderá fazer uma varredura em todas as OIDs dos dispositivos (Switches, Roteadores, firewalls, Servidores entre outros dispositivos que trabalham com SNMP).

Colocando a mão na massa,e utilizando um MAC OS vamos levantar informações sobre um determinado equipamento e posteriormente iremos alterar um parâmetro de configuração deste equipamento.

Informações Necessárias:
Comandos: snmpget / snmpwalk / snmpset
Communities: rdefaultro (e apenas de leitura) rdefaultrw (community de leitura e escrita).
IP Alvo: 192.168.1.1
Outras Info: Parâmetros de coleta

sh-3.2# snmpwalk  -v1 -c 'rdefaultro' 192.168.1.1: system SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, 7200 Software (C7200-JK9S-M),  Version 12.4(18), RELEASE SOFTWARE (fc1) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2007 by Cisco Systems, Inc. Compiled Sat 01-Dec-07 03:07 by prod_rel_team SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.222 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (128459) 0:21:24.59 SNMPv2-MIB::sysContact.0 = STRING:  SNMPv2-MIB::sysName.0 = STRING: RT_R5_BA.toka.msft SNMPv2-MIB::sysLocation.0 = STRING:  SNMPv2-MIB::sysServices.0 = INTEGER: 78 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00 

! Verificando Uptime do ativo
sh-3.2# snmpget -v 2c -c rdefaultro 192.168.1.1 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (103618) 0:17:16.18

! Verificando Hostname
sh-3.2# snmpwalk -v1 -c 'rdefaultro' 192.168.1.1: system.sysName.0
SNMPv2-MIB::sysName.0 = STRING: RT_R5_BA.toka.msft


! Alterando o Campo Contato do Router
sh-3.2# snmpset -c 'rdefaultrw' -v 1 192.168.1.1 system.sysContact.0 s teste@rdefault.com.br SNMPv2-MIB::sysContact.0 = STRING: teste@rdefault.com.br
sh-3.2# snmpwalk -c 'rdefaultro' 192.168.1.1 system.sysContact.0 SNMPv2-MIB::sysContact.0 = STRING: teste@rdefault.com.br

Melhorando a segurança de equipamentos Cisco que possuem SNMP habilitado:

✓ Utilizar snmpv3 de preferencia com criptografia;
✓ Utilizar ACL restringindo quais IPs poderão realizar consultas snmp;
✓ Não utilizar o nome de comunidade como “public”, pois é um erro comum por se tratar de uma comunidade default;
✓ Habilitar Comunidades Read Write apenas se necessário (Evitando manipulações de MIBs via snmpset):

Conclusão

Nós desejamos você tenham em mente o conceito de “think out of the box”, desta forma os conceitos apresentados neste artigo podem ser implementados na maioria dos equipamentos disponíveis no mercado, mudando apenas a sintaxe de implementação e ou ferramenta utilizada. Para este artigo foi utilizando um router Cisco com IOS.

Leave a comment