fisl11: análise de binários elf

Download FISL11: Análise de binários ELF

If you can't read please download the document

Upload: fernando-merces

Post on 16-Apr-2017

1.407 views

Category:

Documents


3 download

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