Nelson Murilo - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Nelson Murilo

Description:

ls - Trojaned to hide specified files and dirs. Defaults to /dev/ptyr. ... [ Phrack Magazine Volume 8, Issue 52 January 26, 1998, article 18 of 20 ... – PowerPoint PPT presentation

Number of Views:82
Avg rating:3.0/5.0
Slides: 30
Provided by: tempor
Category:
Tags: ls | magazine | murilo | nelson

less

Transcript and Presenter's Notes

Title: Nelson Murilo


1
  • Nelson Murilo

Nelson Murilo

locally checks for signs of a rootkit
locally checks for signs of a rootkit
2
Agenda
  • Perfil
  • Rootkits clássicos
  • Módulos de kernel maliciosos
  • Chkrootkit
  • - Origem do projeto
  • - Características
  • - Opções e funcionalidades
  • - Futuro

3
Perfil
  • Atuação na área de segurança desde 1992
  • Testes de intrusão (Bancos, órgãos militares,
    governo, de inteligência, instituições
    financeiras, companias aéreas, etc.)
  • Administrador do CTR/DPF
  • Investigação forense computacional
  • Projetos e implantação de políticas de segurança,
    em órgãos do governo, de inteligência e militares
  • Monitoramento de sites em tempo real
  • Desenvolvimento de ferramentas de segurança
  • Colaborador do Grupo de Segurança do Comitê
    Gestor/BR
  • Autor do livro Segurança Nacional Técnicas e
    ferramentas de ataque e defesa de rede de
    computadores

4
Escopo
  • Setting up for Forensics
  • July 2003
  • by Edward L. Haletky
  • ...
  • chkrootkit is a very nice tool that will detect
    whether a rootkit has been placed on your system.
  • ...

5
Rootkits
  • Pacotes de binários modificados e/ou módulos de
    kernel, construídos para ocultar e/ou permitir o
    retorno do atacante a máquina previamente
    comprometida
  • Não são, tradicionalmente, ferramentas para
    promover invasão. Apesar de alguns incluirem
    exploits (locais ou remotos).

6
Rootkits clássicos
http//www.cert.org/advisories/CA-1994-01.html
  • ...
  • 1) Trojan horse programs
  • The intruders have been found to replace one or
    more of the following programs with a Trojan
    horse version in conjunction with this attack
  • /usr/etc/in.telnetdand /bin/login ( Used to
    provide back-door access for the intruders to
    retrieve information)/bin/ps ( Used to disguise
    the network monitoring process )netstatifconfig
    sulsfinddudflibcsyncbinaries referred in
    /etc/inetd.conf
  • Because the intruders install Trojan horse
    variations of standard UNIX
  • ...

7
Rootkits clássicos
  • Substituição de binários
  • Arquivos de configuração para ocultamento de
    processos e usuários
  • ...
  • ls - Trojaned to hide specified files and dirs.
  • Defaults to /dev/ptyr.
  • netstat - Modified to remove tcp/udp/sockets from
    or to specified
  • addresses, uids and ports.
    Default data file /dev/ptyq.
  • ps - Modified to remove specified processes.
  • Default to /dev/ptyp.
  • ...

8
Rootkits clássicos
  • Exemplo /dev/ptyq (netstat)
  • 0 500 500
  • 1 128.31 from 128.31.X.X
  • 2 128.31.39.20 to 128.31.39.20
  • 3 8000 from port 8000
  • 4 6667 to port 6667
  • 5 .term/socket including the path
  • .term/socket

9
Rootkits clássicos
  • Sun rootkit
  • Linux rootkit I, II, II, IV, V e VI
  • Demonkit (Demon9/Route)

10
Rootkits clássicos
Conclusão
  • Limitados à troca de binários
  • Fáceis de detectar com mecanismos tradicionais
    (stat, md5, etc)
  • Arquivos de configuração com características
    recorrentes

11
Módulos de kernel maliciosos
  • IDGNow!
  • 10/06/2003 165435
  • Ferramentas para enganar perícias criminais,
    como o Loadable Kernel Modules (LKM), surgem no
    cenário hacker para atrapalhar investigações
    sobre crimes digitais

12
Módulos de kernel maliciosos
  • (nearly) Complete Linux Loadable Kernel Modules
  • -the definitive guide for hackers, virus coders
    and system administrators-
  • written by pragmatic / THC, version 1.0
  • released 03/1999...
  • IV. Some Better Ideas (for hackers)1. Tricks to
    beat admin LKMs2. Patching the whole kernel - or
    creating the Hacker-OS
  • 2.1 How to find kernel symbols in /dev/kmem
  • 2.2 The new 'insmod' working without kernel
    support3. Last words
  • V. The near future Kernel 2.21. Main
    Difference for LKM writer's
  • ...

13
Módulos de kernel maliciosos
  • Phrack Magazine Volume 8, Issue 52 January 26,
    1998, article 18 of 20
  • Weakening the Linux Kernel --------
  • plaguez
  • ...
  • ---- Writing a lkm
  • A lkm is easily written in C. It contains a
    chunk of defines, the body of the code, an
    initialization function called init_module(), and
    an unload function called cleanup_module().
  • ---- Kernel and system calls backdoors
  • The main idea behind this is pretty simple.
    We'll redirect those damn system calls to our own
    system calls in a lkm, which will enable us to
    force the kernel to react as we want it to. For
    example, we could hide a sniffer by patching the
    IOCTL system call and masking the PROMISC bit.
    Lame but efficient.

14
Módulos de kernel maliciosos
  • RUNTIME KERNEL KMEM PATCHING
  • Silvio Cesare - November
    1998
  • This paper documents runtime (on the fly)
    kernel patching on a running system under Linux
    using direct access to kernel memory. The same
    algorithms may equally be applicable to other
    systems. Examples of kernel patching for use by
    an attacker is provided showing patching of
    kernel structures to remove a lkm's visibility to
    lsmod and even the addition of kernel code ala
    loadable kernel modules (lkm) to a running system
    without native lkm support in the kernel.
    Discussion of rebuilding the appropriate sections
    of the system symbol map (System.map) is provided
    and implemented.

15
Módulos de kernel maliciosos
  • Começaram a ser encontrados em meados de 1999
  • Em 2000 tornaram-se populares, mas ainda eram
    faceis de detectar, comparando-se as saídas de
    programas como cat, ls, cd e echo
  • Cresce a sofisticação em meados de 2000
  • Chkrootkit 0.17 (setembro/2000) sai com teste
    específico para lkm (chkproc)

16
Chkrootkit
  • Motivação
  • Pré-requisitos do projeto
  • Características
  • Chkrootkit em ação
  • Evolução
  • Planos futuros

17
Chkrootkit
Motivação
  • Repetição de comandos e testes em máquinas
    invadidas
  • Ambientes heterôgeneos, e por vezes muito
    desatualizados, dificultavam uso de ferramentas
    complexas
  • Atacantes, em geral, não modificam os rootkits
    usados.

18
Chkrootkit
Pré-requisitos
  • Facilidades de uso
  • Maior portabilidade possível (sistemas
    operacionais e instalações)
  • Independente de pacotes, bibliotecas ou
    linguagens externas (perl, python, php, etc)
  • Partes complementares que pudessem ser usadas
    separadamente
  • Sistemas em funcionamento ou exame isolado do
    disco.

19
Chkrootkit
Pré-requisitos
  • Módulo principal em Bourne/Posix Shell
  • Módulos em C independentes

20
Chkrootkit
Histórico
  • Nasce em 1997 para ser incorporado ao pacote
    chkexploit, desenvolvido por
  • Klaus Steding-jessen
  • Pedro Vazquez
  • Nelson Murilo

21
Chkrootkit
Características
  • Análise de binários, arquivos de configuração e
    pseudo-dispositivos (kmem, etc).
  • Estado da interface de rede (Normal/Promíscuo)
  • Uso normal ou avançado
  • Possibilidade de realizar testes isolados

22
Chkrootkit
Componentes
23
Chkrootkit
Em ação
  • ifconfig eth0
  • eth0 Link encapEthernet HWaddr 000003XXBC45
  • UP BROADCAST RUNNING MULTICAST MTU1500
    Metric1
  • ...
  • ./chkrootkit ifconfig sniffer
  • Checking ifconfig'... INFECTED
  • eth0 is PROMISC
  • eth1 is not PROMISC

24
Chkrootkit
Em ação
  • ./chkrootkit lkm
  • You have 3 process for ps command
  • ./chkrootkit x lkm
  • PID 102 not in ps output
  • PID 103 not in ps output
  • PID 104 not in ps output
  • You have 3 process for ps command

25
Chkrootkit
Em ação
  • date
  • Sun Jul 27 183330 EDT 2003
  • mount o ro,loop img_disc1 /mnt
  • ./chkrootkit r /mnt/ grep INFECTED
  • Searching for Suckit rootkit... Warning
    /mnt/sbin/init INFECTED

26
Chkrootkit
Em ação
  • ./chkrootkit x r /mnt/ aliens
  • ...
  • /mnt/usr/share/locale/sk/.sk12/login
  • /mnt/usr/share/locale/sk/.sk12/sk
  • /mnt/usr/share/locale/sk/.sk12/.sniffer
  • ...

27
Chkrootkit
Evolução
  • Praticamente todos os sabores de Unix suportados
    (True-64, HPUX, etc)
  • Incorporados testes para worms (slapper, scalper,
    w55808, lion, ramen etc)
  • Nova versão a cada 2/3 meses

28
Chkrootkit
Planos futuros
  • Problema
  • Assinaturas e demais características dos
    rootkits/worms/etc estão no código
  • Solução
  • Implementar base de dados (xml?)
  • Problema
  • Código deve continuar independente de bibliotecas
    externas

29
  • Nelson Murilo

Nelson Murilo

locally checks for signs of a rootkit
locally checks for signs of a rootkit
Write a Comment
User Comments (0)
About PowerShow.com