Hacking Linux
       Principios Básicos de Segurança
                       Bruna Griebeler




Sobre esta apresentação:
- Nível: Iniciante
- Escopo: Dicas básicas sobre como manter seu sistema seguro.
- Pré-requisitos: Conhecimento básico de comandos linux.
                          TcheLinux - Porto Alegre              1
Sobre esta apresentação


   Vulnerabilidades quando há acesso físico à
    máquina
   Como proteger-se?
   Como quebrar senhas fracas em desktops e
    servidores



                    TcheLinux - Porto Alegre     2
Ataques por acesso físico

Se há acesso físico ao hardware,
      não há segurança!!




            TcheLinux - Porto Alegre   3
Ataques por acesso físico




 Esqueceu a senha de root?
 Ou não conhece a senha de
nenhum usuário da máquina?


         TcheLinux - Porto Alegre   4
Obtendo acesso privilegiado através
                do GRUB
   Pressione a tecla ”e” para editar




                     TcheLinux - Porto Alegre   5
Obtendo acesso privilegiado através
                do GRUB
   Vá até a linha do kernel, pressione ”e”
    novamente




                      TcheLinux - Porto Alegre   6
Obtendo acesso privilegiado através
                do GRUB

   Altere o paramêtro ro para rw e logo após
    coloque um novo parâmetro: init=/bin/bash




                    TcheLinux - Porto Alegre    7
Obtendo acesso privilegiado através
                do GRUB

   Pressione enter e depois pressione a tecla b
    para prosseguir com o boot




                     TcheLinux - Porto Alegre      8
Obtendo acesso privilegiado através
                do GRUB
Após carregar o sistema perceba que aparece
um #, isso significa que você está em um terminal
com acesso de root!




                   TcheLinux - Porto Alegre     9
Obtendo acesso privilegiado através
                do GRUB

   Para mudar a senha de root basta usar o
    comando passwd
   Para mudar a senha de outros usuários basta
    digitar: passwd <nome do usuario>
   Ex: root@dell:~#passwd linus




                    TcheLinux - Porto Alegre      10
Como obter a lista dos usuários da
               máquina?

Para conhecer os usuários da máquina basta


acessar o arquivo /etc/passwd:
root@dell:~# cat /etc/passwd




root:x:0:0:root:/root:/bin/bash




daemon:x:1:1:daemon:/usr/sbin:/bin/sh




bin:x:2:2:bin:/bin:/bin/sh




sys:x:3:3:sys:/dev:/bin/sh




sync:x:4:65534:sync:/bin:/bin/sync




tux:x:1004:1012:,,,:/home/tux:/bin/bash




linus:x:1007:1013:,,,:/home/linus:/bin/bash


                             TcheLinux - Porto Alegre   11
Protegendo o GRUB




Posso impedir que terceiros façam
 isso em meu servidor/desktop??

           ”#comofas”

            TcheLinux - Porto Alegre   12
Protegendo o GRUB

   Digite, como root, o comando:
   root@dell:~# grub
   Ao entrar no comand line do grub:
   grub> md5crypt
   Será solicitado que você crie uma nova senha
   Encrypted:
    $1$L3T5RL$317N9A6pH5SMIaSsP8ENi9r3


                     TcheLinux - Porto Alegre      13
Protegendo o GRUB

   Coloque a senha criptografada no arquivo de
    configuração do grub
   root@dell:~# vi /boot/grub/menu.lst
   Descomente e edite a linha referente à senhas
   password --md5
    $1$L3T5RL$317N6pH5IaSsP8ENi9r3
   Pronto agora quem tentar editar o grub
    precisará conhecer a senha!

                     TcheLinux - Porto Alegre       14
Há como clonar o root?

       Cada usuário possui um UID.
       Esse UID é quem identifica o usuário.
       O username é apenas um facilitador para o
        login!
root@dell:~# cat /etc/passwd




root:x:0:0:root:/root:/bin/bash




tux:x:1004:1012:,,,:/home/tux:/bin/bash




linus:x:1007:1013:,,,:/home/linus:/bin/bash





                            TcheLinux - Porto Alegre   15
Há como clonar o root?

   Logando-se como usuário tux:




                    TcheLinux - Porto Alegre   16
Há como clonar o root?

       Se eu alterar o UID do usuário tux para zero,
        quem será tux?
root@dell:~# cat /etc/passwd




root:x:0:0:root:/root:/bin/bash




tux:x:0:1012:,,,:/home/tux:/bin/bash




linus:x:1007:1013:,,,:/home/linus:/bin/bash





                            TcheLinux - Porto Alegre    17
Há como clonar o root?

   Usei a senha do usuário tux e não a senha
    do root.




                    TcheLinux - Porto Alegre    18
Então agora estou seguro?



Meu bootloader está configurado e
 possui senha, e não há nenhum
  usuário com UID 0 no passwd.
          Estou à salvo?

            TcheLinux - Porto Alegre   19
Obtendo acesso total aos arquivos
através de um Live CD ou pendrive

                             Tendo acesso físico à
                              máquina e acesso à
                              BIOS, posso ter
                              acesso à arquivos de
                              qualquer partição,
                              inclusive da partição
                              Windows, caso
                              exista!


            TcheLinux - Porto Alegre              20
Obtendo acesso total aos arquivos
     através de um Live CD ou pendrive

   Assegure-se que a
    ordem de boot na
    BIOS permite a
    inicialização de um
    liveCD!!
   Ao inicializar o
    sistema do liveCD,
    abra um terminal


                     TcheLinux - Porto Alegre   21
Obtendo acesso total aos arquivos
     através de um Live CD ou pendrive

   Use o comando abaixo para verificar todas as
    partições do seu hd:
   root@ubuntu:~# fdisk -l
   Crie uma pasta dentro do /mnt:
   root@ubuntu:~# mkdir /mnt/arquivos
   Monte a partição que deseja acessar:
   root@ubuntu:~# mount /dev/sda1
    /mnt/arquivos

                    TcheLinux - Porto Alegre       22
Obtendo acesso total aos arquivos
     através de um Live CD ou pendrive



   Agora que você montou a partição, que tal
    adonar-se dela??
   root@ubuntu:~# chroot /mnt/arquivos
   O comando chroot permite transformar um
    diretório no seu diretório raiz atual.


                    TcheLinux - Porto Alegre    23
Mudar a senha de root


Ok, agora que tenho acesso à
todos os arquivos da máquina,
como posso zerar a senha de
root ou de outros
usuários do sistema?



             TcheLinux - Porto Alegre   24
Mudar a senha de root

       root@ubuntu:~# vi /etc/passwd
       Na linha do root, apague o x que aparece na
        segunda coluna e salve o arquivo:
root@dell:~# cat /etc/passwd




root:x:0:0:root:/root:/bin/bash




tux:x:1004:1012:,,,:/home/tux:/bin/bash




linus:x:1007:1013:,,,:/home/linus:/bin/bash





                            TcheLinux - Porto Alegre   25
Mudar a senha de root

   Depois digite o comando passwd para criar
    uma nova senha de root
   root@ubuntu:~# passwd
   Porque usar essa estratégia?
   Muitas vezes ao trocar de senha será solicitada
    a senha antiga, antes que a nova senha possa
    ser atribuída.


                     TcheLinux - Porto Alegre     26
Quebrando senhas fracas

Hmm beleza, descobri
 como resetar a senha
de root e/ou de outros
      usuários.

Mas será que podem
  DESCOBRIR as
senhas dos usuários?

              TcheLinux - Porto Alegre   27
Conhecendo o Shadow!

           O /etc/shadow é o arquivo
            onde ficam registradas as
            senhas de todos os
            usuários do Linux
           Apenas o root tem acesso
            à esse arquivo
           Mas isso significa que o
            root pode ”ler” as senhas
            de qualquer um??

       TcheLinux - Porto Alegre         28
Conhecendo o Shadow!

 As senhas estão criptografadas em
               MD5!
root@dell:~# vi /etc/shadow

root:$1$r4dJFjfaQPaAh$wg/BlPzRpVib0N:14138:0:99999:7:::
daemon:*:13801:0:99999:7:::
bin:*:13801:0:99999:7:::
sys:*:13801:0:99999:7:::
sync:*:13801:0:99999:7:::
games:*:13801:0:99999:7:::
tux:$1$D9SAvk428D9IP2xhDP$IaC2VW7gYi1.:14153:0:99999:7:::
linus:$1$m5Mg9xKe9St3$NbslqRxXnFYE3e70w.:14168:0:99999:7:::


                         TcheLinux - Porto Alegre         29
Bruteforce




   Instalar o John the Ripper
   root@dell:~# apt-get install john
   Não está mais disponível por default nos repositórios do Debian

                           TcheLinux - Porto Alegre              30
Bruteforce


Executando o John:
root@dell:~# john /etc/shadow

Loaded 3 passwords with 3 different salts
  (FreeBSD MD5 [32/32])
god          (root)
12345        (linus)
guesses: 2 time: 0:00:03:12 68% (2) c/s: 4454


                   TcheLinux - Porto Alegre     31
Nessus

   Nessus é um programa que procura por
    vulnerabilidades (falhas de segurança) em um
    desktop ou servidor.
   root@dell:~# apt-get install nessus nessusd




                    TcheLinux - Porto Alegre       32
Nessus

   Adicionando um usuário ao Nessus
   #nessus-adduser
   Deixe o daemon nessusd rodando no servidor
   #nessusd
   Chame o nessus client para fazer a varredura:
   #nessus



                     TcheLinux - Porto Alegre       33
Nessus




TcheLinux - Porto Alegre   34
Nessus

   Também possibilita testes de Bruteforce em
    serviços como ftp, vnc, telnet, pop3, imap, etc.
   Os testes de Bruteforce foram adaptadas da
    ferramenta Hydra.
   Utiliza as ténicas de port scan do Nmap.




                      TcheLinux - Porto Alegre         35
Dicas de Segurança

   Sempre use senhas fortes, contendo
    números, letras e caracteres especiais para
    todos os usuários!
   Coloque senha no seu gerenciador de boot
   Desabilite o boot via cdrom, USB ou floppy e
    coloque senha na BIOS!
   Mantenha seu servidor trancado, caso
    contrário pode-se tirar a bateria da placa-mãe,
    resetando assim as configurações da BIOS.
                     TcheLinux - Porto Alegre         36
Dicas de Segurança

   Mantenha os serviços sempre atualizados,
    principalmente os mais vulneráveis como
    apache, sendmail, postfix, qmail, etc




                    TcheLinux - Porto Alegre   37
Sites Oficiais

   John the Ripper
   http://www.openwall.com/john/
   Nessus
   http://nessus.org/
   Nmap
   http://nmap.org/
   Hydra
   http://thc.org/thc-hydra/
                         TcheLinux - Porto Alegre   38
Bibliografia recomendada:

   BS7799 – Da Tática à Prática em Servidores
    Linux
   Sandro Melo, César Domingos, Lucas Correia, Tiago
    Maruyama
   Alta Books - ISBN 857608126-1
   Teoria Forense Computacional – Teoria e
    Prática Aplicada
   Dan Farmer, Wietse Venema
   Pearson – ISBN 857605128-1


                         TcheLinux - Porto Alegre       39
Perguntas
    ?

      TcheLinux - Porto Alegre   40
about:me



   bruna@mozillabrasil.org
     www.griebeler.com

  Quer contribuir com SL?
”Pergunte-me como” ou acesse:
    www.mozillabrasil.org



        TcheLinux - Porto Alegre   41

Hacking Linux: Princípios Básicos de Segurança - Bruna Griebeler

  • 1.
    Hacking Linux Principios Básicos de Segurança Bruna Griebeler Sobre esta apresentação: - Nível: Iniciante - Escopo: Dicas básicas sobre como manter seu sistema seguro. - Pré-requisitos: Conhecimento básico de comandos linux. TcheLinux - Porto Alegre 1
  • 2.
    Sobre esta apresentação  Vulnerabilidades quando há acesso físico à máquina  Como proteger-se?  Como quebrar senhas fracas em desktops e servidores TcheLinux - Porto Alegre 2
  • 3.
    Ataques por acessofísico Se há acesso físico ao hardware, não há segurança!! TcheLinux - Porto Alegre 3
  • 4.
    Ataques por acessofísico Esqueceu a senha de root? Ou não conhece a senha de nenhum usuário da máquina? TcheLinux - Porto Alegre 4
  • 5.
    Obtendo acesso privilegiadoatravés do GRUB  Pressione a tecla ”e” para editar TcheLinux - Porto Alegre 5
  • 6.
    Obtendo acesso privilegiadoatravés do GRUB  Vá até a linha do kernel, pressione ”e” novamente TcheLinux - Porto Alegre 6
  • 7.
    Obtendo acesso privilegiadoatravés do GRUB  Altere o paramêtro ro para rw e logo após coloque um novo parâmetro: init=/bin/bash TcheLinux - Porto Alegre 7
  • 8.
    Obtendo acesso privilegiadoatravés do GRUB  Pressione enter e depois pressione a tecla b para prosseguir com o boot TcheLinux - Porto Alegre 8
  • 9.
    Obtendo acesso privilegiadoatravés do GRUB Após carregar o sistema perceba que aparece um #, isso significa que você está em um terminal com acesso de root! TcheLinux - Porto Alegre 9
  • 10.
    Obtendo acesso privilegiadoatravés do GRUB  Para mudar a senha de root basta usar o comando passwd  Para mudar a senha de outros usuários basta digitar: passwd <nome do usuario>  Ex: root@dell:~#passwd linus TcheLinux - Porto Alegre 10
  • 11.
    Como obter alista dos usuários da máquina? Para conhecer os usuários da máquina basta  acessar o arquivo /etc/passwd: root@dell:~# cat /etc/passwd  root:x:0:0:root:/root:/bin/bash  daemon:x:1:1:daemon:/usr/sbin:/bin/sh  bin:x:2:2:bin:/bin:/bin/sh  sys:x:3:3:sys:/dev:/bin/sh  sync:x:4:65534:sync:/bin:/bin/sync  tux:x:1004:1012:,,,:/home/tux:/bin/bash  linus:x:1007:1013:,,,:/home/linus:/bin/bash  TcheLinux - Porto Alegre 11
  • 12.
    Protegendo o GRUB Possoimpedir que terceiros façam isso em meu servidor/desktop?? ”#comofas” TcheLinux - Porto Alegre 12
  • 13.
    Protegendo o GRUB  Digite, como root, o comando:  root@dell:~# grub  Ao entrar no comand line do grub:  grub> md5crypt  Será solicitado que você crie uma nova senha  Encrypted: $1$L3T5RL$317N9A6pH5SMIaSsP8ENi9r3 TcheLinux - Porto Alegre 13
  • 14.
    Protegendo o GRUB  Coloque a senha criptografada no arquivo de configuração do grub  root@dell:~# vi /boot/grub/menu.lst  Descomente e edite a linha referente à senhas  password --md5 $1$L3T5RL$317N6pH5IaSsP8ENi9r3  Pronto agora quem tentar editar o grub precisará conhecer a senha! TcheLinux - Porto Alegre 14
  • 15.
    Há como clonaro root?  Cada usuário possui um UID.  Esse UID é quem identifica o usuário.  O username é apenas um facilitador para o login! root@dell:~# cat /etc/passwd  root:x:0:0:root:/root:/bin/bash  tux:x:1004:1012:,,,:/home/tux:/bin/bash  linus:x:1007:1013:,,,:/home/linus:/bin/bash  TcheLinux - Porto Alegre 15
  • 16.
    Há como clonaro root?  Logando-se como usuário tux: TcheLinux - Porto Alegre 16
  • 17.
    Há como clonaro root?  Se eu alterar o UID do usuário tux para zero, quem será tux? root@dell:~# cat /etc/passwd  root:x:0:0:root:/root:/bin/bash  tux:x:0:1012:,,,:/home/tux:/bin/bash  linus:x:1007:1013:,,,:/home/linus:/bin/bash  TcheLinux - Porto Alegre 17
  • 18.
    Há como clonaro root?  Usei a senha do usuário tux e não a senha do root. TcheLinux - Porto Alegre 18
  • 19.
    Então agora estouseguro? Meu bootloader está configurado e possui senha, e não há nenhum usuário com UID 0 no passwd. Estou à salvo? TcheLinux - Porto Alegre 19
  • 20.
    Obtendo acesso totalaos arquivos através de um Live CD ou pendrive  Tendo acesso físico à máquina e acesso à BIOS, posso ter acesso à arquivos de qualquer partição, inclusive da partição Windows, caso exista! TcheLinux - Porto Alegre 20
  • 21.
    Obtendo acesso totalaos arquivos através de um Live CD ou pendrive  Assegure-se que a ordem de boot na BIOS permite a inicialização de um liveCD!!  Ao inicializar o sistema do liveCD, abra um terminal TcheLinux - Porto Alegre 21
  • 22.
    Obtendo acesso totalaos arquivos através de um Live CD ou pendrive  Use o comando abaixo para verificar todas as partições do seu hd:  root@ubuntu:~# fdisk -l  Crie uma pasta dentro do /mnt:  root@ubuntu:~# mkdir /mnt/arquivos  Monte a partição que deseja acessar:  root@ubuntu:~# mount /dev/sda1 /mnt/arquivos TcheLinux - Porto Alegre 22
  • 23.
    Obtendo acesso totalaos arquivos através de um Live CD ou pendrive  Agora que você montou a partição, que tal adonar-se dela??  root@ubuntu:~# chroot /mnt/arquivos  O comando chroot permite transformar um diretório no seu diretório raiz atual. TcheLinux - Porto Alegre 23
  • 24.
    Mudar a senhade root Ok, agora que tenho acesso à todos os arquivos da máquina, como posso zerar a senha de root ou de outros usuários do sistema? TcheLinux - Porto Alegre 24
  • 25.
    Mudar a senhade root  root@ubuntu:~# vi /etc/passwd  Na linha do root, apague o x que aparece na segunda coluna e salve o arquivo: root@dell:~# cat /etc/passwd  root:x:0:0:root:/root:/bin/bash  tux:x:1004:1012:,,,:/home/tux:/bin/bash  linus:x:1007:1013:,,,:/home/linus:/bin/bash  TcheLinux - Porto Alegre 25
  • 26.
    Mudar a senhade root  Depois digite o comando passwd para criar uma nova senha de root  root@ubuntu:~# passwd  Porque usar essa estratégia?  Muitas vezes ao trocar de senha será solicitada a senha antiga, antes que a nova senha possa ser atribuída. TcheLinux - Porto Alegre 26
  • 27.
    Quebrando senhas fracas Hmmbeleza, descobri como resetar a senha de root e/ou de outros usuários. Mas será que podem DESCOBRIR as senhas dos usuários? TcheLinux - Porto Alegre 27
  • 28.
    Conhecendo o Shadow!  O /etc/shadow é o arquivo onde ficam registradas as senhas de todos os usuários do Linux  Apenas o root tem acesso à esse arquivo  Mas isso significa que o root pode ”ler” as senhas de qualquer um?? TcheLinux - Porto Alegre 28
  • 29.
    Conhecendo o Shadow! As senhas estão criptografadas em MD5! root@dell:~# vi /etc/shadow root:$1$r4dJFjfaQPaAh$wg/BlPzRpVib0N:14138:0:99999:7::: daemon:*:13801:0:99999:7::: bin:*:13801:0:99999:7::: sys:*:13801:0:99999:7::: sync:*:13801:0:99999:7::: games:*:13801:0:99999:7::: tux:$1$D9SAvk428D9IP2xhDP$IaC2VW7gYi1.:14153:0:99999:7::: linus:$1$m5Mg9xKe9St3$NbslqRxXnFYE3e70w.:14168:0:99999:7::: TcheLinux - Porto Alegre 29
  • 30.
    Bruteforce  Instalar o John the Ripper  root@dell:~# apt-get install john  Não está mais disponível por default nos repositórios do Debian TcheLinux - Porto Alegre 30
  • 31.
    Bruteforce Executando o John: root@dell:~#john /etc/shadow Loaded 3 passwords with 3 different salts (FreeBSD MD5 [32/32]) god (root) 12345 (linus) guesses: 2 time: 0:00:03:12 68% (2) c/s: 4454 TcheLinux - Porto Alegre 31
  • 32.
    Nessus  Nessus é um programa que procura por vulnerabilidades (falhas de segurança) em um desktop ou servidor.  root@dell:~# apt-get install nessus nessusd TcheLinux - Porto Alegre 32
  • 33.
    Nessus  Adicionando um usuário ao Nessus  #nessus-adduser  Deixe o daemon nessusd rodando no servidor  #nessusd  Chame o nessus client para fazer a varredura:  #nessus TcheLinux - Porto Alegre 33
  • 34.
  • 35.
    Nessus  Também possibilita testes de Bruteforce em serviços como ftp, vnc, telnet, pop3, imap, etc.  Os testes de Bruteforce foram adaptadas da ferramenta Hydra.  Utiliza as ténicas de port scan do Nmap. TcheLinux - Porto Alegre 35
  • 36.
    Dicas de Segurança  Sempre use senhas fortes, contendo números, letras e caracteres especiais para todos os usuários!  Coloque senha no seu gerenciador de boot  Desabilite o boot via cdrom, USB ou floppy e coloque senha na BIOS!  Mantenha seu servidor trancado, caso contrário pode-se tirar a bateria da placa-mãe, resetando assim as configurações da BIOS. TcheLinux - Porto Alegre 36
  • 37.
    Dicas de Segurança  Mantenha os serviços sempre atualizados, principalmente os mais vulneráveis como apache, sendmail, postfix, qmail, etc TcheLinux - Porto Alegre 37
  • 38.
    Sites Oficiais  John the Ripper  http://www.openwall.com/john/  Nessus  http://nessus.org/  Nmap  http://nmap.org/  Hydra  http://thc.org/thc-hydra/ TcheLinux - Porto Alegre 38
  • 39.
    Bibliografia recomendada:  BS7799 – Da Tática à Prática em Servidores Linux  Sandro Melo, César Domingos, Lucas Correia, Tiago Maruyama  Alta Books - ISBN 857608126-1  Teoria Forense Computacional – Teoria e Prática Aplicada  Dan Farmer, Wietse Venema  Pearson – ISBN 857605128-1 TcheLinux - Porto Alegre 39
  • 40.
    Perguntas ? TcheLinux - Porto Alegre 40
  • 41.
    about:me bruna@mozillabrasil.org www.griebeler.com Quer contribuir com SL? ”Pergunte-me como” ou acesse: www.mozillabrasil.org TcheLinux - Porto Alegre 41