fisl11: análise de binários elf
Post on 16-Apr-2017
1.409 Views
Preview:
TRANSCRIPT
Fernando Mercs
Anlise de binrios ELF
No final da minha palestra
Sortearei o curso Segurana em Servidores Linux: Norma ISO 27002Preencham o cupom que est no folheto da 4Linux dentro da bolsa do fisl11
Se voc j preencheu, ele j est aqui na urna
O ganhador deve estar presente at o quinto sorteio. Se no estiver presente ganhar o sexto sorteado
Engenharia Reversa
Arte de analisar um artefato a fim de entender seu funcionamento.
Em nosso foco, analisar um binrio para estudar seu comportamento.
Aspectos legais
preciso conhecer a licena empregada pelo desenvolvedor do binrio a ser analisado, a fim de no ferir nenhuma licena de software.
Por que reverter em GNU/Linux?
Aprendizado de como os programas se comportam no sistema
Troubleshooting
Adaptao de drivers de dispositivos
Anlise de programas desconhecidos
Criar outro programa compatvel com o formato ou protocolo utilizado pelo que sofrer a ER
O binrio
Conjunto de bits.
Formato e arquitetura conhecidos.
Instrues ASM conhecidas.
Editvel.
Compactvel e criptografvel.
ELF (Executable and Linkable Format)
Assembly
Linguagem de mquina
Dependente de fabricante
Simplesmente necessria
Existem softwares que tentam gerar cdigo C a partir de ASM
Intel:mov eax, 0AT&T:movl $0, %eax
Anlise de um Hello World
void main() { printf("FISL 11\n");}
$ gcc -o hello hello.c$ file helloELF 64-bit LSB executable, x86-64, version 1 (SYSV)...
Anlise de um Hello World
$ strings -t x hello 200 /lib64/ld-linux-x86-64.so.2 309 __gmon_start__ 318 libc.so.6 322 puts 327 __libc_start_main 339 GLIBC_2.2.5 5ec FISL 11
Anlise de um Hello World
$ hte hello
Anlise de um Hello World
Demonstrao
Projeto EDB
Debuga binrios ELF x86 e x86-64
Execuo linha a linha (ASM)
Bom suporte a plugins
Destinado a binrios sem source
Ainda em desenvolvimento (precisando de doaes)
Anlise de um cavalo-de-tria
1. void main() {2. struct sockaddr_in srv;2. int sockfd;3. sockfd = socket(AF_INET, SOCK_STREAM, 0);4. memset(&srv, 0, sizeof(struct sockaddr_in));5. srv.sin_addr.s_addr = INADDR_ANY;6. srv.sin_port = htons(6666);7. srv.sin_family = AF_INET;8. bind(sockfd, (struct sockaddr*) &srv, sizeof(struct sockaddr));9. listen(sockfd, 4);10. while (1) {}}
Anlise de um cavalo-de-tria
$ strings -t x trojan 388 libc.so.6 392 socket 399 htons 39f listen 3a6 memset 3ad bind
Anlise de um cavalo-de-tria
Anlise de um cavalo-de-tria
Demonstrao
Packing
Alta compactao
Pode resultar em obfuscao
Possui rotina de descompactao em memria.
Pode ser dumpado e ter o packer removido.
Packing
$ ls -lh binario-rwxr-xr-x 106K binario$ upx --best binario$ ls -lh binario-rwxr-xr-x 49K binario
Packing
Alta compactao
Pode resultar em obfuscao
Possui rotina de descompactao em memria.
Pode ser dumpado e ter o packer removido.
Packing
Erro do HTE ao tentar abrir um binrio compactado com UPX:
Packing
Malwares
Cdigo otimizado e especializado
Packeado
Pode conter criptografia
Obfuscao e anti-debugger
Esconde strings
Pode ser necessria anlise numa sandbox.
ER hoje
Arma no cenrio closed source (argumento poderoso no open source)
Continua sendo usada no desenvolvimento de drivers
Grande oportunidade na forense computacional
Oportunidade
Espionagem muito utilizada na rea militar.
A indstria de anti-vrus investe milhes para se antecipar s ameaas.
Voc de segurana? Quer usar esse know-how para outra rea? Inovao gera necessidade de ER.
Quer um hobby que evolua mais seu conhecimento em segurana?
Mais informaes
GNU/Linux Reversing linuxreversing.org
Linux Assembly asm.sourceforge.net
HT Editor hte.sourceforge.net
EDB codef00.com
Perguntas
? ? ? ? ?
Obrigado!
@FernandoMercesfernando.merces@4linux.com.brwww.4linux.com.brwww.hackerteen.comtwitter.com/4LinuxBR
Tel: 55-11-2125-4747
ConstrutorAssuntoData e Horrio
Luiz VieiraSegurana22/07 s 10h00 e 23/07 s 11h00
Kinn C JulioDesenvolvimento PHP22/07 s 11h00 e 23/07 s 12h00
Gustavo MaiaJava, eXo Platform, Android22/07 s 12h00 e 23/07 s 13h00
Fernando MercesEngenharia Reversa22/07 s 13h00 e 23/07 s 14h00
Bruno GurgelAlfresco, MediaWiki, BBB, Dimdim22/07 s 14h00 e 23/07 s 15h00
Caio CandidoLPI, Softwares de Acessibilidade22/07 s 15h00 e 23/07 s 16h00
Dbora LavniaMarketing com Software Livre22/07 s 16h00 e 23/07 s 17h00
Csar DomingosBusiness Intelligence22/07 s 17h00 e 23/07 s 18h00
Fernando LozanoJBoss AS, Java, Portais22/07 s 18h00 e 23/07 s 19h00
Rodrigo TornisPostfix, Expresso22/07 s 19h00 e 24/07 s 10h00
Anahuac P GilKyapanel, OpenLdap23/07 s 10h00 e 24/07 s 11h00
Clique para editar o formato do ttulo de texto
Clique para editar o formato do texto em estrutura de tpicosSegundo Nvel da Estrutura de TpicosTerceiro Nvel da Estrutura de TpicosQuarto Nvel da Estrutura de TpicosQuinto Nvel da Estrutura de TpicosSexto Nvel da Estrutura de TpicosStimo Nvel da Estrutura de TpicosOitavo Nvel da Estrutura de TpicosNono Nvel da Estrutura de Tpicos
/2
03/09/10
top related