25
RootKits RootKits [email protected]. [email protected]. br br

RootKits [email protected]. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

Embed Size (px)

Citation preview

Page 1: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

[email protected]@rfdslabs.com.br

Page 2: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

Definição:Definição:

Codigo ou conjunto de codigos usados, após uma Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na invasao, para ocultar a presença do invasor na

maquina da vitima. maquina da vitima.

Page 3: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

Page 4: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

Page 5: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

Rootkits Populares: Rootkits Populares:

SuckITSuckIT

T0rnT0rn

Ambient’s Rootkit (ARK)Ambient’s Rootkit (ARK)

Fuck’ITFuck’IT

AdoreAdore

BBDBBD

Page 6: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

Softwares para detecção: Softwares para detecção:

ChkrootkitChkrootkit

RkhunterRkhunter

AIDEAIDE

TripwireTripwire

Page 7: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKitsHistórico:Histórico:

1989 – Publicado o primeiro rootkit na phrack 1989 – Publicado o primeiro rootkit na phrack magazine.magazine. 1994 – CERT menciona a existencia de rootkits em 1994 – CERT menciona a existencia de rootkits em seus alertas.seus alertas. 1995 – Rootkit se torna popular entre os invasores.1995 – Rootkit se torna popular entre os invasores. 1997 – Referencia a LKM maliciosos em forma de 1997 – Referencia a LKM maliciosos em forma de rootkits.rootkits. 2001 – Publicado a 3 geração de rootkit. /dev/kmem is 2001 – Publicado a 3 geração de rootkit. /dev/kmem is your friend. your friend.

Page 8: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

1 Geração:1 Geração:

Rootkits Binarios.Rootkits Binarios.

Sistemas Alvo: SunOS, Linux.Sistemas Alvo: SunOS, Linux.

Atuacao: substituição de binários como, os, Atuacao: substituição de binários como, os, ifconfig, login, find, etcifconfig, login, find, etc..

Retirada dos logs:Retirada dos logs:

Wtmp.Wtmp.

Uso de arquivos de configuração.Uso de arquivos de configuração.

Page 9: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

2 Geração:2 Geração:

Rootkits em LKM (Linux Kernel Module)Rootkits em LKM (Linux Kernel Module)

Sistemas Alvo: Linux, BSD, MacOS.Sistemas Alvo: Linux, BSD, MacOS.

Atuação:Atuação:

Modulos do kernel.Modulos do kernel.

Retirada dos logs:Retirada dos logs:

Automaticamente.Automaticamente.

Page 10: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits3 Geração:3 Geração:

Rootkits -> /dev/kmemRootkits -> /dev/kmemSistemas Alvo: Linux.Sistemas Alvo: Linux.Atuação:Atuação:Memória do kernel.Memória do kernel.Retirada dos logs:Retirada dos logs:Automaticamente.Automaticamente.Keyloggers, sniffers etc.Keyloggers, sniffers etc.

Page 11: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits3 Geração:3 Geração:

I dev/kmem is our friend", assim cita o artigo "Linux on-the-fly kernel I dev/kmem is our friend", assim cita o artigo "Linux on-the-fly kernel patching without LKM" (Sd e Devik, 2001), que trouxe à tona uma nova patching without LKM" (Sd e Devik, 2001), que trouxe à tona uma nova

geração de rootkits.geração de rootkits.

Na segunda geração dos rootkits, com a retirada do suporte a carregamento de Na segunda geração dos rootkits, com a retirada do suporte a carregamento de módulois, foi neutralizada a sua ação quase em 95%; o administrador inibia módulois, foi neutralizada a sua ação quase em 95%; o administrador inibia

uma função facilitadora, mas ganhava muito em segurança. uma função facilitadora, mas ganhava muito em segurança.

Sd e Devik apresentaram uma solução que é complexa e extremamente Sd e Devik apresentaram uma solução que é complexa e extremamente criativa. O linux possui um dispositivo conhecido como kmem (/dev/kmem), criativa. O linux possui um dispositivo conhecido como kmem (/dev/kmem),

que possui o diretório de escrita e leitura somente pelo root. que possui o diretório de escrita e leitura somente pelo root.

Este dispositivo abstrato virtual utilizada pelo kernel para a memória real Este dispositivo abstrato virtual utilizada pelo kernel para a memória real (/dev/mem) ou seja, o mesmo faz o endeçamento da memória real+swap. (/dev/mem) ou seja, o mesmo faz o endeçamento da memória real+swap.

Page 12: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits3 Geracao:3 Geracao:

Suckit.Suckit.sd e Devik apresentaram uma nova geração de rootkits, o programa suckit. O sd e Devik apresentaram uma nova geração de rootkits, o programa suckit. O

funcionamento do suckit é uma das coisas mais interessantes que existem, funcionamento do suckit é uma das coisas mais interessantes que existem, basicamente podemos dizer que o mesmo cira um tabela particular de syscalls basicamente podemos dizer que o mesmo cira um tabela particular de syscalls

e desvia o entry point do kernel para a mesma. e desvia o entry point do kernel para a mesma.

O resultado é que não é necessária a utilização de LKMs. O linux disponibiliza O resultado é que não é necessária a utilização de LKMs. O linux disponibiliza um meio de localizar qualquer símbolo exportado ou utilizado pelo kernel, um meio de localizar qualquer símbolo exportado ou utilizado pelo kernel,

conforme comentamos antes, isso é guardado no System.map. conforme comentamos antes, isso é guardado no System.map.

O que estes rootkits fazem de uma maneira mais complexa é criar uma tabela O que estes rootkits fazem de uma maneira mais complexa é criar uma tabela própria através de comparação de bytes das informações da system calls e com própria através de comparação de bytes das informações da system calls e com

isso redirecionar o kernel para um espécie de tabela de símbolos própria e isso redirecionar o kernel para um espécie de tabela de símbolos própria e reescrever o kmem. reescrever o kmem.

Page 13: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits3 Geração:3 Geração:

O suckit faz isso e é virtualmente impossível a sua detecção. O suckit faz isso e é virtualmente impossível a sua detecção. Contudo, uma solução encontrada para a detcção dos mesmos cai Contudo, uma solução encontrada para a detcção dos mesmos cai na velha técnica de auditoria de arquivos, ja que estes programas, na velha técnica de auditoria de arquivos, ja que estes programas,

ao serem instalados, criam arquivos e diretórios próprios. ao serem instalados, criam arquivos e diretórios próprios.

Outra maneira é auditar as conexões, já que o backdoor do Outra maneira é auditar as conexões, já que o backdoor do mesmo possui um modus operandi, que permite determinar mesmo possui um modus operandi, que permite determinar

tentativas de conexão e algumas portas de serviços no sistema. tentativas de conexão e algumas portas de serviços no sistema.

Uma maneira de proteger servidores dete genero é prevenir o Uma maneira de proteger servidores dete genero é prevenir o kmem contra escrita, o que representa em alguns casos um custo kmem contra escrita, o que representa em alguns casos um custo muito alto para a segurança de um servidor. Os próprios autores muito alto para a segurança de um servidor. Os próprios autores

do suckit sugerem um patch para o kernel que faria isso. do suckit sugerem um patch para o kernel que faria isso.

Page 14: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

Rootkits mais comuns:Rootkits mais comuns: Linux Rootkit (LRK)Linux Rootkit (LRK) TeLeKit TeLeKit AdoreAdore KnarkKnark t0rnkitt0rnkit Kernel Intrusion System (KIS)Kernel Intrusion System (KIS)

Page 15: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

• chfn Trojaned! User->r00t• chsh Trojaned! User->r00t• inetd Trojaned! Remote access• login Trojaned! Remote access• ls Trojaned! Hide files •du Trojaned! Hide files• ifconfig Trojaned! Hide sniffing• netstat Trojaned! Hide connections• passwd Trojaned! User->r00t• ps Trojaned! Hide processes• top Trojaned! Hide processes• rshd Trojaned! Remote access• syslogd Trojaned! Hide logs• linsniffer Packet sniffer!• fix File fixer!• z2 Zap2 utmp/wtmp/lastlog eraser!• wted wtmp/utmp editor!• lled lastlog editor!• bindshell port/shell type daemon!• tcpd Trojaned! Hide connections, avoid denies

RootKitsRootKits

Page 16: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKitsAdore-ng

Page 17: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

Adore-ngAdore-ng

Page 18: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

Adore-ng Caracteristicas: Adore-ng Caracteristicas:

Page 19: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

Adore-ngAdore-ng

Page 20: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKitsAide Detectando um rootkit binário.

Page 21: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKitsDetectando LRK4

Page 22: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKitsREWT

Page 23: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKitsREWT

Page 24: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKitsPerguntas:

1 - E possível restabelecer confiança em uma maquina com rootkit instalado?

2 – Quais as 3 gerações de rootkits?

Page 25: RootKits rafaelsilva@rfdslabs.com.br. RootKits Definição: Codigo ou conjunto de codigos usados, após uma invasao, para ocultar a presença do invasor na

RootKitsRootKits

Exercícios. Exercícios.

Brincar com os diversos rootkits e backdoors.Brincar com os diversos rootkits e backdoors.

Trabalho em dupla:Trabalho em dupla:

Fazer ou montar sua propia backdoor.Fazer ou montar sua propia backdoor.