Upload
internet
View
102
Download
0
Embed Size (px)
Citation preview
RootKitsRootKits
[email protected]@rfdslabs.com.br
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.
RootKitsRootKits
RootKitsRootKits
RootKitsRootKits
Rootkits Populares: Rootkits Populares:
SuckITSuckIT
T0rnT0rn
Ambient’s Rootkit (ARK)Ambient’s Rootkit (ARK)
Fuck’ITFuck’IT
AdoreAdore
BBDBBD
RootKitsRootKits
Softwares para detecção: Softwares para detecção:
ChkrootkitChkrootkit
RkhunterRkhunter
AIDEAIDE
TripwireTripwire
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.
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.
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.
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.
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.
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.
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.
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)
• 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
RootKitsRootKitsAdore-ng
RootKitsRootKits
Adore-ngAdore-ng
RootKitsRootKits
Adore-ng Caracteristicas: Adore-ng Caracteristicas:
RootKitsRootKits
Adore-ngAdore-ng
RootKitsRootKitsAide Detectando um rootkit binário.
RootKitsRootKitsDetectando LRK4
RootKitsRootKitsREWT
RootKitsRootKitsREWT
RootKitsRootKitsPerguntas:
1 - E possível restabelecer confiança em uma maquina com rootkit instalado?
2 – Quais as 3 gerações de rootkits?
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.