• Nome:Ricardo L0gan
  • Especialidade:Network Security and Security Researcher Enthusiast
  • E-mail:ricardologanbrøgmail·com·br
  • Contato:About-me | Github: Loganbr | Twitter:l0ganbr | Localização:::1
Indice
============
0x00 - Introdução
0x01 - Coletando informações básicas sobre o sistema
0x02 - Instalando do Nipper
0x03 - Rodando o Nipper
0x04 - Resultado
0x05 - Conclusão
0x06 - Referência

0x00 - Introdução
Há um tempo atrás fuçando ferramentas do Back Track 3 conheci a tool Nipper, que me chamou atenção por sua utilidade no dia a dia. Esta é uma simples ferramenta desenvolvida em C que pode ser utilizada para identificação de configurações fracas em ativos de rede como routers, firewalls e switches de vários fabricantes como cisco, juniper, HP(3com), Nokia, Nortel, Sonicwall. Neste artigo apresentarei técnicas já conhecidas para coleta de informações em dispositivos que não temos acesso e a utilização do Nipper para melhor compreensão da configuração obtida. Para esta nossa prova de conceito (POC – Proof of Concept) precisaremos das seguintes ferramentas complementares:

- Nmap
- ADMsnmp

0x01 - Coletando informações básicas sobre o sistema
Abaixo, descrevo esta etapa apenas para alinhar técnicas / ferramentas que podem auxiliar na coleta de informações básicas que irão auxiliar o trabalho do Nipper.

[ NMAP ]

sh-3.2# nmap -A -sU -p 161,162 172.16.1.56

Starting Nmap 5.51 ( http://nmap.org ) at 2011-11-17 14:24 BRST Nmap scan report for 172.16.1.56 Host is up (0.0043s latency).
PORT STATE SERVICE VERSION

161/udp open snmp Cisco SNMP service
162/udp open|filtered snmptrap

Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Device type: WAP|general purpose|switch|router|VoIP phone|broadband router|specialized Running (JUST GUESSING): Cisco IOS 12.X|15.X (93%), IBM z/OS (93%), Cisco embedded (91%), OpenBSD 4.X (89%), Luminary Micro embedded (89%) Aggressive OS guesses: Cisco Aironet 1231G WAP (IOS 12.3) (93%), IBM z/OS v1r8 (93%), Cisco 880 router (IOS 15.0) or 3750 switch (IOS 12.2) (91%), Cisco IP Phone 7912G (91%), Cisco C870 router (IOS 12.4) (90%), OpenBSD 4.2 (89%), Cisco Catalyst Express 500 switch (89%), Cisco uBR10012 broadband router (89%), Cisco 1841 router (IOS 12) (89%), Cisco 1841 router (IOS 12.4) (89%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
TRACEROUTE (using port 161/udp)
HOP RTT ADDRESS
1 4.79 ms 172.16.1.56

OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ Nmap done: 1 IP address (1 host up) scanned in 86.32 seconds

[ ADMsnmp ]

Uma parte importante neste artigo é que precisamos ter em mãos uma comunidade snmp para ter a configuração do ativo com o nipper. Para esta tarefa iremos utilizar o ADMsnmp que é uma tool que conheci também mexendo no Back Track, porém na versão 5. Com ADMsnmp podemos realizar um brute force com um wordlist qualquer, no nosso exemplo estamos usando snmp.passwd que já vem com o ADMsnmp.

root@bt:/pentest/enumeration/snmp/admsnmp# ./ADMsnmp 172.16.1.56 –wordf snmp.passwd

ADMsnmp vbeta 0.1 (c) The ADM crew
ftp://ADM.isp.at/ADM/
greets: !ADM, el8.org, ansia
>>>>>>>>>>> get req name=router id = 2 >>>>>>>>>>>
>>>>>>>>>>> get req name=cisco id = 5 >>>>>>>>>>>
>>>>>>>>>>> get req name=public id = 8 >>>>>>>>>>>
>>>>>>>>>>> get req name=private id = 11 >>>>>>>>>>>
>>>>>>>>>>> get req name=admin id = 14 >>>>>>>>>>>
>>>>>>>>>>> get req name=proxy id = 17 >>>>>>>>>>>
>>>>>>>>>>> get req name=write id = 20 >>>>>>>>>>>
>>>>>>>>>>> get req name=access id = 23 >>>>>>>>>>>
>>>>>>>>>>> get req name=root id = 26 >>>>>>>>>>>
>>>>>>>>>>> get req name=enable id = 29 >>>>>>>>>>>
>>>>>>>>>>> get req name=all private id = 32 >>>>>>>>>>>
>>>>>>>>>>> get req name= private id = 35 >>>>>>>>>>>
>>>>>>>>>>> get req name=test id = 38 >>>>>>>>>>>
>>>>>>>>>>> get req name=testero id = 41 >>>>>>>>>>>
<<<<<<<<<<< recv snmpd paket id = 42 name = testero ret =0 <<<<<<<<<<
>>>>>>>>>>>> send setrequest id = 42 name = testero >>>>>>>>
>>>>>>>>>>> get req name=guest id = 44 >>>>>>>>>>>
<<<<<<<<<<< recv snmpd paket id = 43 name = testero ret =0 <<<<<<<<<<
<<<<<<<<<<< recv snmpd paket id = 170 name = testero ret =2 <<<<<<<<<<
<<<<<<<<<<< recv snmpd paket id = 170 name = testero ret =2 <<<<<<<<<<

snmp check on 172.16.1.56
sys.sysName.0:RT_R1_SP.toka.msft
name = testero readonly access

0x02 - Instalação do Nipper
Primeiramente você poderá fazer o download da ferramenta em:
http://firewallninja.com/nipper

Após baixar você poderá compilar normalmente com o gcc. (gcc -o nipper nipper.c) ou executar umas das opções indicadas no arquivo INSTALL que estará na pasta do nipper.

0x03 - Rodando o Nipper
Informações coletadas que serão úteis para utilização do Nipper.
Alvo Possui SNMP Configurado: SIM
IP Maquina: 172.16.1.5
IP do Ativo: 172.16.1.56
Comunidade SNMP RO: testero
Arquivo de Saída: report_cisco.html
Local de saída da Consulta SNMP:/tmp

Partindo do ponto que NÃO temos o arquivo de configuração do ativo (router / etc...) em mãos e sim apenas descobrimos uma comunidade snmp Read Only no passo anterior podemos fazer com que o próprio nipper busque a configuração e já salve em um arquivo html.

$nipper --ios-router --cisco-ip=172.16.1.56 --local-ip=172.16.1.5 --cisco=new --snmp=testero --tftproot=/tmp --cisco-file=/tmp/report_cisco.html
Caso já estivéssemos com um arquivo de configuração(Ex: sw_config.txt) em mãos, poderíamos ter realizado apenas o seguinte passo:
$nipper --ios-switch --input=sw_config.txt --output=report_switch.html

0x04 - Resultado
O Resultado gerados para este paper foram retirados a partir de ambientes CISCO emulados com o Dynagem/Dynamips. Propositalmente estes arquivos já possuem erros de configuração como senha em criptografia, falta de ACL restringindo hosts/redes de realizarem consultas snmp, entre outros.

Link Resultado 1 – Router Cisco 3745 (Arquivo:report_cisco.html)

Link Resultado 2 – Switch Cisco 2960 (Arquivo:report_switch.html)


0x05 - Conclusão
O Nipper se mostra muito útil para uma rápida compreensão da configuração de um determinado ativo de rede e de suas possíveis falhas de configuração. Segue abaixo as principais características desta ferramenta.

- Exibe uma série de recomendações para desabilitar serviços que possam levar ao acesso não autorizado para o roteador ou rede;
- Verifica versão de OS do dispositivo verificando vulnerabilidades, utilizando-se do banco de dados vulnerabilidade conhecidas;
- Comandos e recomendações para proteger os dispositivos de rede;
- Facilita no entendimento configuração;
- Facilita no processo de Auditorias de segurança;
- Ajuda na verificação de complexidade da senha.

Em breve estarei analisando detalhadamente o código para verificar possibilidade de melhorias e ou correções, e estarei postando no site.

0x06 - Referência
http://firewallninja.com/nipper
http://nmap.org/
www.backtrack-linux.org