OpenLDAP, criando e explorando um overlay

Post on 26-Jun-2015

438 views 2 download

description

O protocolo LDAP se tornou um padrão para serviços de diretórios e é implementado em softwares renomados como OpenLDAP e outros não tão renomados assim como Active Directory(!?MS-PAC/MS-KILE/MS-NLMP?!). O desenvolvimento de overlays para o OpenLDAP é a forma mais elegante que temos para adicionar novas funcionalidades ao mesmo, mas o que pode acontecer quando desenvolvedores desavisados se aventuram no submundo dos códigos do OpenLDAP ?

Transcript of OpenLDAP, criando e explorando um overlay

Marcelo Machado Fleury

marcelomf[noSpam]gmail[p]com

marcelo[p]fleury[noSpam]4linux[p]com[p]br

Http://marcelomf.blogspot.com

Http://www.slideshare.com/marcelomf

Http://twitter.com/marcelomf

#h2hc-community, #pev, #gojava, #gophp, #owasp...

“Vamos assar uns GNUs, quebrar umas janelas, comer umas maçãs ou matar uns demônios”

OpenLDAP, criando e explorando um overlay

2

Agenda

● LDAP

● OpenLDAP

● SASL

● Overlays

● Buffer Overflow

● Mapeamento de um processo

● Stack Overflow

● Anatomia de um exploit

● POC

3

LDAP

● Estrutura

● Operações

● Por que e onde utilizar

4

OpenLDAP

● Índices

● Módulos

● ACLs

● SSL/TLS

● Backends diversos

● Replicação: master/slave, multimaster

5

SASL

● GSS-API

● Ampliação da gama de aplicações que poderão se autenticar

● userPassword: {SASL}principalName

6

Overlays

● Por que ?

● Alguns importantes

● Vamos ver, criar e explorar!

7

Buffer Overflow

● Arquitetura x86– 32 bits X 64 bits

● 0 – F ; 1 bit ; 1 byte ; – 1 endereço 0x00000000 - 0xffffffff

● Integer Overflow

● Heap Overflow

● Stack Overflow

8

Processo(duartes.org)

9

Stack Overflow

char buffer[500];

strcpy(buffer, argv[1]);

strncpy X off by one

10 Anatomia de um exploit● Segmentation fault/SIGSEGV x Fuzzers

● Um pacote (Header X Payload)– Socket

– Operações

– Connect Back / Covert Channel

● “Trigar” uma falha

● Shellcode– Assembly e (%EAX, %EBP, %ESP, %EIP)

– NOPS / 0x90 e lixos

– Nullbytes 0x00

– Código a ser executado

– Polimorfismo

11

POC● Proteções

– Kernel Land X User Land

– Em tempo de compilação

– Hardware

● Exemplos– ASLR

– DEP

– PIE

● SELinux, Apparmor e GRSecurity(+PAX)

Marcelo Machado Fleury

marcelomf[noSpam]gmail[p]com

marcelo[p]fleury[noSpam]4linux[p]com[p]br

Http://marcelomf.blogspot.com

Http://www.slideshare.com/marcelomf

Http://twitter.com/marcelomf

#h2hc-community, #pev, #gojava, #gophp, #owasp...

"Conheço muitos que não puderam quando deviam, porque não quiseram quando podiam." By François

Rabelais

Muito Obrigado!