Intrusão de rede As técnicas utilizadas pelos hackers http://necdum.pt/ Introdução • Os hackers são bem sucedidos porque os deixamos • Nesta apresentação iremos falar sobre as diversas técnicas possíveis para adquirir informação sobre a sua rede, e as razões pelas quais estas informação é vital para a segurança da sua rede Vulnerabilidades • As vulnerabilidades têm de ser identificadas antes de poderem ser exploradas. • Os seguintes pontos têm que ser determinados: – Identificação de sistemas: que máquinas estão activas na sua rede? – Enumeração de serviços: que serviços se encontram a correr nessas máquinas? – Enumeração de utilizadores: quais são os logins (e respectivas passwords) dos utilizadores da sua rede? – Teste de vulnerabilidades: Existe algum serviço vulnerável a um ataque conhecido pelo hacker? Informações genéricas • O primeiro passo é o tentar conhecer a empresa em causa, no que diz respeito a: – Serviços oferecidos e parcerias • Possíveis relações de confiança entre serviços – Identificação de colaboradores e respectivos interesses profissionais • Possíveis fugas de informação no que diz respeito a topologia de rede e software utilizado – Redes e endereços IP alocados • Identificação dos alvos Whois - um ponto de partida • As bases de dados Whois contêm muita informação – Normalmente são o primeiro passo no processo de aquisição de informação sobre a sua rede e a sua empresa – Cada domínio registado na Internet tem um registo numa destas bases de dados. Estes registos contêm: • Nome e endereço da empresa • Número de telefone e endereço de email do: – contacto técnico – contacto administrativo – contacto financeiro Whois - continuação • Existem diversas bases de dados Whois. Diferentes bases de dados possuem informação sobre diferentes domínios – – – – whois.networksolutions.com: .com, .net, .org, .edu whois.nic.gov: .gov whois.nic.mil: .mil whois.ripe.net: domínios europeus • As bases de dados Whois podem ser pesquisadas através do comando whois, e podem também utilizadas para a obtenção de informação sobre redes e/ou endereços IP. Whois - um exemplo • whois -h whois.ripe.net vitima inetnum: 192.168.1.0 - 192.168.1.127 netname: VITIMA descr: Vitima, Serviços de Informatica S.A. country: PT admin-c: TAC3-RIPE tech-c: JTR1-RIPE tech-c: JPT16-RIPE status: ASSIGNED PA mnt-by: AS9186-MNT changed: [email protected] 20001009 source: RIPE Whois - um outro exemplo • whois -h whois.ripe.net 192.168.1.0 inetnum: 192.168.1.0 - 192.168.1.127 netname: VITIMA descr: Vitima, Serviços Digitais country: PT admin-c: TAC3-RIPE tech-c: JTR1-RIPE tech-c: JPT16-RIPE status: ASSIGNED PA mnt-by: AS9186-MNT changed: [email protected] 20001009 source: RIPE Domain Name Service - DNS • O seu DNS pode estar a fornecer demasiada informação sobre os seus endereços IP, política de nomeação de sistemas e outros. • Os registos de DNS contêm: – – – – Nome e endereço IP das máquinas da sua rede. Endereço IP dos seus servidores de DNS. Endereço IP dos seus servidores de SMTP. Os registos TXT pode conter informação específica sobre o seu equipamento, sistema operativo, versões, etc. DNS - dig • O comando ‘dig’, é uma ferramenta freeware muito utilizada para querys de DNS: – Obter os name servers do seu domínio: • dig ns vitima.pt: ;; ANSWER SECTION: vitima.pt. 17h54m26s IN NS dns1.vitima.pt. vitima.pt. 17h54m26s IN NS dns2.vitima.pt. – Obter os mail servers do seu domínio: • dig mx vitima.pt • ;; ANSWER SECTION: vitima.pt. 1H IN MX 10 mail.vitima.pt. DNS - Transferências de zona • As transferências de zona são feitas pelos servidores de DNS secundários, permitindo-lhes assim terem as suas bases de dados sincronizadas. • Se não estiverem protegidas, o hacker pode fazer uma tentativa de transferência de zona, de maneira a ter acesso a toda a base de dados do seu servidor de DNS: – Tentativa de transferência da zona vitima.pt: • dig @192.168.1.1 vitima.pt axfr ; <<>> DiG 8.3 <<>> @192.168.1.1 vitima.pt axfr ; (1 server found) ;; Received 0 answers (0 records). ;; FROM: laika.necdum.net to SERVER: 192.168.1.1 ;; WHEN: Fri Feb 16 01:29:00 2001 DNS - Limitação de informação • Através dos registos do seu DNS, o hacker pode ficar a saber sobre todas as suas máquinas. – Uma boa política de segurança é o de manter um servidor de DNS externo, com apenas a informação relativa às máquinas que devem ser acedidas pelo público em geral. • O hacker irá tentar descobrir TODAS as máquinas existentes na sua rede. – Quantas mais máquinas o hacker conhecer, maiores são as suas probabilidades de encontrar uma máquina vulnerável. • Para descobrir as restantes máquinas, o hacker terá que utilizar técnicas de scanning. Scanning - à procura de máquinas • Um método de detecção de máquinas activas numa rede é o de enviar pacotes para todos os endereços IP dessa rede, e analisar quais os que respondem • Existem diversos tipos de pacotes que podem ser usados: – – – – – – Ping - usa pacotes ICMP do tipo 0 e do tipo 8 Outros pacotes ICMP TCP connect TCP Syn UDP Outros Recolher informação da sua rede • É útil ao hacker conhecer a estrutura da sua rede: – Permite-lhe saber quais os caminhos que os pacotes percorrem dentro da sua rede. – Pode indicar máquinas por trás das firewalls. • A política de routing pode ser determinada: – Verificando os caminhos que os pacotes tomam dentro da sua rede • o traceroute (tracert em Windos) permite esta verificação – Perguntando directamente aos routers Traceroute • Consiste no envio de pacotes com baixos TTLs, e registo dos pacotes de retorno. • Com o traceroute, o hacker pode ver quais os caminhos seguidos pelos pacotes dentro da sua rede: • traceroute 192.168.1.13 traceroute to www.vitima.pt (192.268.1.13), 30 hops max, 38 byte packets 1 gateway.necdum.net (194.38.148.246) 1.769 ms 1.743 ms 1.828 ms 2 internal (192.168.64.25) 20.516 ms 20.386 ms 20.288 ms 3 rt-lisboa-1.meganet.pt (194.38.128.1) 21.778 ms 21.976 ms 22.354 ms 4 195.245.142.225 (195.245.142.225) 26.441 ms 25.321 ms 93.067 ms 5 195.245.142.5 (195.245.142.5) 63.029 ms 56.748 ms 59.061 ms 6 195.245.142.14 (195.245.142.14) 37.450 ms 38.736 ms 37.150 ms 7 195.245.131.162 (195.245.131.162) 38.344 ms 39.007 ms 38.832 ms 8 195.245.131.194 (195.245.131.194) 43.926 ms 43.701 ms 38.788 ms 9 192.168.1.126 (192.168.1.126) 60.514 ms 48.280 ms 40.577 ms 10 192.168.1.58 (192.168.1.58) 41.769 ms 40.519 ms 38.675 ms 11 192.168.1.13 (192.168.1.13) 40.450 ms 38.797 ms 40.302 ms SNMP - olhando para a sua rede • Simple Network Management Protocol - SNMP – Usado para monitorização e administração remota de máquinas. – A maior parte dos routers e switches tem a capacidade de falar SNMP. – Muitas redes não têm os seus equipamentos de rede protegidos contra acessos SNMP. • Muitas redes nem sabem da capacidades SNMP dos seus routers e switches, e muito menos das suas configurações por omissão • Pode ser utilizado para determinar políticas de routing e topologia de rede. SNMP - snmpnetstat • O snmpnetstat faz parte de um conjunto de aplicações de SNMP freeware, e é usado para questionar routers capazes de falar SNMP sobre as suas tabelas de routing • snmpnetstat 192.168.1.126 -rn Routing tables Destination default 10 192.168.1/27 192.168.1.32/28 192.168.1.40/29 192.168.1.50/32 192.168.1.56/29 192.168.1.60/32 192.168.1.64/27 192.168.1.120/29 Gateway Flags Interface 192.168.1.121 UG if0 0.0.0.0 U Null0 192.168.1.58 UG if0 192.168.1.57 UG if0 192.168.1.57 UG if0 192.168.1.57 UG if0 192.168.1.62 U Ethernet1 192.168.1.57 UG if0 192.168.1.57 UG if0 192.168.1.126 U Ethernet0 SNMP - defesas • Antes de poder usar SNMP, o hacker tem de saber o community name do equipamento – Por omissão, o nome é ‘public’ • O community name é a ‘password’ do SNMP • De maneira a impedir que os hackers possam recolher este tipo de informação, deverá escolher bons community names – I.e, palavras não públicas e difíceis de adivinhar Identificação de serviços • Após a identificação das máquinas, o hacker irá agora tentar determinar quais os serviços que se encontram a correr: – Estes serviços são o que o hacker irá tentar atacar. • O primeiro passo no processo de identificação de serviços é o port scanning. Port scanning • O port scanning consiste no envio de pacotes para portas específicas das máquinas alvo, e na observação das respostas – Existem diferentes tipos de pacotes que podem ser enviados • TCP - usando o 3 way TCP handshake. • SYN - apenas é enviado o primeiro pacote do 3 way TCP handshake. • UDP - na tentativa de se encontrar serviços UDP. • Outros. Port scanning - ferramentas • Existem inúmeras ferramentas de port scanning de domínio público. • Uma das ferramentas mais utilizadas para port scanning é o nmap, da www.insecure.org: – Suporta várias técnicas para detecção de portas activas – Suporta stealth scans, difíceis de serem detectados – Permite saber qual o sistema operativo que corre na máquina Port scanning - nmap • nmap vitima.pt Interesting ports on (192.168.1.13): (The 2 ports scanned but not shown below are in state: closed) Port State Service 21/tcp open ftp 25/tcp open smtp 80/tcp open http 443/tcp open https Determinar o Sistema Operativo • Saber qual o Sistema Operativo que corre numa máquina, permite ao hacker procurar vulnerabilidades e exploits específicos. • Para determinar o Sistema Operativo, o hacker pode: – Fazer “inspecção de banners”. – Usar TCP/IP fingerprinting. Esta técnica baseia-se na análise dos pacotes que são devolvidos pela stack TCP/IP da máquina alvo. • O nmap suporta técnicas sofisticadas de TCP/IP fingerprinting Determinar o software dos serviços • Com a lista de portas activas gerada anteriormente, o hacker irá tentar determinar: – O nome do software. – A sua versão. – O seu Patch Level. • Os banners dos serviços muitas vezes indicam este tipo de informação. Determinar o software dos serviços • Inspecção de banners é uma técnica que se baseia em analisar a informação retornada pelos serviços. • É normalmente feita com um cliente de telnet (ou uma ferramenta semelhante), ligando-se directamente ao serviço. • Bons protocolos para esta técnica são o ftp (tcp/21), telnet (tcp/23), smtp (tcp/25) e o http (tcp/80) • telnet mail.vitima.pt 25 Connected to mail.vitima.pt. Escape character is '^]'. 220 mail.vitima.pt Microsoft ESMTP MAIL Service, Version: 5.0.2195.1600 ready at Fri, 16 Feb 2001 01:46:34 +0000 Determinar o software dos serviços • Caso a inspecção de banner se mostre infrutífera, o hacker irá usar outras técnicas: – Através da utilização normal do serviço. • Por exemplo, muitos servidores de http retornam o seu nome e versão na página de erro por omissão – O hacker pode ainda determinar o software por outras informações. • Por vezes, o facto de se conhecer a versão do sistema operativo pode permitir determinar a versão do software do serviço Vulnerabilidades • Depois de determinar o software que corre nos serviços, o hacker irá iniciar o processo de teste de vulnerabilidades. • Existem inúmeras bases de dados de vulnerabilidades, organizadas por sistema operativo e versão do software. • Caso qualquer um dos serviços encontrados pelo hacker conste destas bases de dados, este irá tentar explorar a vulnerabilidade. – Este é o funcionamento normal dos scanners de vulnerabilidades existentes, como o CyberCop e o ISS – Alguns hackers irão correr estes tipos de scanners, mas outros não, por serem facilmente detectáveis Vulnerabilidades - fontes de informação • Sites de segurança – http://www.securityfocus.com/ – http://p.ulh.as/ • Mailing lists – Bugtraq – NTSecurity – CERT • Contacto directo – IRC – Cons – Sites específicos Vulnerabilidades - tipos • Existem diversos tipos de vulnerabilidades: – Remotos vs locais – Elevação de previlégios vs negação de serviço – Erro de programação vs erro de configuração • Os mais graves são os que permitem acesso remoto ao sistema, com previlégios de super utilizador. • Buffer overflows Vulnerabilidades - leitura e escrita no disco • Serviços que permitem a leitura e escrita no disco são os alvos preferenciais dos hackers: – File Transfer Protocol (FTP) – Network File Server (NFS) – System Message Block (SMB) • O serviço de Remote Procedure Calls é um alvo frequente: – rpcinfo -p <host> é usado para questionar os serviços de RPC existentes numa máquina Vulnerabilidades - continuação • Network File Service (NFS) – Baseado em RPC – showmount -e <host> pode ser usado para determinar se existe algum share a ser partilhado por outras máquinas • Windows File Shares (SMB) – snbclient -L <netbios name> -I <target IP> pode ser usado para determinar se existe algum share SMB a ser partilhado por outras máquinas Vulnerabilidades - serviços de Internet • DNS – Existem problema em quase todas as versões do Bind, o servidor de DNS mais utilizado na Internet • Mail – Foram célebres os problemas que afligiram o Sendmail desde o seu nascimento • HTTP – O IIS e é pródigo em problemas de segurança, sendo conhecidos problemas em: • Frontpage extensions • Coldfusion • Unicode interpretation Vulnerabilidades - exploits • Qualquer um dos serviços identificado é uma potencial porta de entrada para o hacker. • Existem inúmeras fontes de informação na Internet que distribuem informação sobre as vulnerabilidades existentes nos diversos serviços: – Algumas apenas descrevem a vulnerabilidade, bem como maneiras de se proteger das mesmas. – Outras descrevem a maneira como a vulnerabilidade pode ser explorada (exploit), podendo inclusivé fazer-se acompanhar pelo código fonte do exploit. Informação sobre os seus utilizadores • De maneira a poder ter acesso a alguns dos sistemas da sua rede, o hacker irá tentar aceder aos mesmos fazendo-se passar por um dos utilizadores creditados. • Existem várias fontes de informação onde pode ser encontrada informação sobre os seus utilizadores: – Motores de procura – News – Endereços de mail • Caso esteja activo, o finger pode fornecer muita desta informação. Utilizadores - passwords • Depois de ter compilado uma lista de nomes, o hacker irá tentar adivinhar as respectivas passwords. • O hacker irá tentar ligar-se a um dos serviços que forneça login, e tentar algumas passwords. • Existem inúmeras ferramentas que permitem a automatização deste processo: – Baseados em dicionários - palavras comuns. – Brute force - tentando todas as combinações possíveis. • Qualquer serviço que forneça login pode ser atacado por este tipo de ferramenta. Utilizadores - boas passwords • De maneira a proteger as suas passwords deste tipo de ataque, deverá – Criar passwords longas (> 7 caracteres). – Criar passwords que contenham letras, números e símbolos. – Criar passwords que não sejam baseadas em palavras conhecidas. • Os serviços que fornecem login devem bloquear a conta depois de várias tentativas falhadas. – É assim que funciona o Multibanco Sumário • Os hacker necessitam de informação para serem bem sucedidos nas suas tentativas de intrusão. • Existem diversas maneiras de eles conseguirem esta informação. • Ao negar esta informação aos hacker, está-lhes a negar o acesso à sua rede.