Procurando rootkits no seu sistema
Posted by Hugo Doria | Filed under Arch Linux, Linux
Rootkits são ferramentas utilizadas, geralmente, com o objetivo de ocultar a presença de invasores nas máquinas. Com essas ferramentas alguém não-autorizado, mas que já conseguiu entrar na máquina, pode ter controle sobre a máquina e nem ser notado.
Muitos rootkits acompanham uma gama de binários (como o ls, ps, who, find etc) modificados para que os processos rodados pelo invasor não possam ser vistos pelo administrador da máquina. Além disso, muitos vírus atuais utilizam rootkits.
Existem dois aplicativos que podem te ajudar a detectar rootkits no seu sistema: rkhunter e chkrootkit. A seguir eu mostro como instalar e executar ambos.
Usando o rkhunter
Para instalar o rkhunter faça:
No Arch Linux:
# pacman -Sy rkhunter
No Ubuntu (e derivados):
# apt-get install rkhunter
Antes de checar o sistema com o rkhunter execute os dois comandos abaixo:
# rkhunter –propupd
# rkhunter –update
O primeiro comando atualiza a base com as propriedades dos arquivos e o seguindo atualiza a base do rkhunter.
NOTA: O wordpress anda convertendo os dois hífens para um só. Nos comandos acima são dois hífens, então preste atenção na hora de usá-los.
Depois de tudo atualizado você pode checar seu sistema com o comando:
# rkhunter -c
A saída do rkhunter é colorida e bem simples de se ler. Ele checa diversas coisas no sistema e sempre que um item estiver OK (ou Not found), ele marca em verde. Quando não, aparece um WARNING em vermelho.
Se você quiser que apenas os WARNINGs aparecem na tela faça
# rkhunter -c –rwo
No final de tudo o rkhunter mostrar um resumo do que aconteceu:
Todo o log da operação é armazenado, por padrão, em /var/log/rkhunter.log. Você pode sempre consultá-lo. Para mudar o arquivo do log use:
# rkhunter -c -l /caminho/para/seu/arquivo.log
Você pode, também, fazer com que o rkhunter te envie um email sempre que encontrar algum WARNING. Para isso abra o arquivo /etc/rkhunter.conf e procure a linha que começa com “#MAIL-ON-WARNING”. Descomente-a e atribua seu email a ela. Fica algo assim:
MAIL-ON-WARNING=fulano@empresa.com
Acho que isto é suficiente para que você possa rodar o rkhunter com sucesso. ;)
Recomendo que você dê uma olhada na man page. Lá, e no site do rkhunter,você pode encontrar estas e outras opções com mais detalhes:
$ man rkhunter
Usando o chkrootkit
Eu acho o chkrootkit um pouco mais limitado que o rkhunter, mas ele não deixa de ser útil. Para instalá-lo faça:
No Arch Linux:
# pacman -Sy chkrootkit
No Ubuntu (e derivados):
# apt-get install chkrootkit
Para scanear o sistema rode:
# chkrootkit
E para usá-lo em modo avançado:
# chkrootkit -x
Caso o chkrootkit encontre algo ele mostrará um INFECTED na linha correspondente.
Se quiser, você pode rodar o chkrookit em outro dispositivo:
# chkrootkit -p /media/dispositivo
Para maiores informações rode “chkrootkit -h” (sem aspas) e visite o site do projeto.
Ah! E caso você tenha um mínimo de suspeita que seu sistema esteja infectado, não é recomendado usar essas ferramentas a partir do próprio sistema. O melhor, neste caso, é montar a partição em uma máquina 100% limpa e rodar as ferramentas de lá.


Hugo Dória é pai, músico, desenvolvedor oficial e empacotador do Arch Linux, sysadmin e trabalha com instalação e configuração de servidores Linux. :)
June 5th, 2008 at 4:52 pm
Então Hugo, como já tinha comentado com você esse post seria e foi muito bom, pena que essas ferramentas trabalham com base em assinaturas conhecidas e crackers ou hackers, sei lá como definir isso, utilizam cada vez mais ferramentas próprias considerada por eles priv8, private, ou simplesmente privadas o que torna mais ardua a detecção dos rootkits. Mas valeu mesmo por esse post muito didático.
Parabéns mano…
June 5th, 2008 at 6:52 pm
Não conhecia esse rkhunter, muito bom, muito bom mesmo.
Grato pela dica.
June 6th, 2008 at 12:46 am
Olá o que faço quanto encontrar warnings segue o exemplo:
Scanning for hidden files… [ Warning! ]
—————
/etc/.pwd.lock /dev/.static
/dev/.udev
/dev/.initramfs
/dev/.initramfs-tools
—————
Please inspect: /dev/.static (directory) /dev/.udev (directory) /dev/.initramfs (directory)
Obrigado
June 6th, 2008 at 1:11 am
[root@infotec corvolino]# rkhunter -propupd
Invalid option specified: -propupd
[root@infotec corvolino]# rkhunter -update
Invalid option specified: -update
????
e agora? x)
e o rkhunter -c não aconteceu nada! xP
June 6th, 2008 at 6:57 am
@Corvolino,
Os comandos são:
rkhunter - -propupd e rkhunter - -update (com os dois - juntos)
O wordpress está com um problema. Ele concatena os dois –. Tenta aí e me avisa.
June 7th, 2008 at 1:20 am
hdoria, eu scaniei e durante o processo apareceu alguns warning, e no final do processo o rkhunter me mostrou isto:
File properties checks…
Files checked: 116
Suspect files: 3
Rootkit checks…
Rootkits checked : 114
Possible rootkits: 0
_____________________________________
Ta suspeito de 3 arquivos/pasta infectado/vuneravel e em rootkit tem 0, não entendi. Outra, como faço para resolver esses 3 arquivos suspeitos?
valeu!
June 7th, 2008 at 12:39 pm
Opa
Uma outra forma é verificar as portas que estão abertas e qual daemon abriu com o comando
netstat -vantup
Ótimo post !!
June 7th, 2008 at 1:26 pm
O problema que esta acontecendo eh que o comando:
# rkhunter –propupd
so fuciona na versao 1.3.0, quem instalou direto provavelmente ta usando a versao 1.2.9.
Por isso nao ta funcionando.
June 7th, 2008 at 1:55 pm
idem ao que o corvolino disse
tbm tenho uns warnings , mais coo tratar disso ??
ou tem avisos que pode ser ignorado ?
no artigo não fala ..
June 7th, 2008 at 2:56 pm
Gostei pacas do rkhunter, e já encontrou três warnings nos diretórios e arquivos ocultos, pena que nem posso deletar nenhum deles já que são programas fundamentais do Ubuntu, nem são necessariamente arquivos malwares, mas eu acho estranho o fato do Ubuntu deixar arquivos e diretórios na pasta /etc ocultas
June 8th, 2008 at 4:28 am
seria no /etc/groups ?
=P
June 8th, 2008 at 9:43 am
Obrigado pela dica.
Mas como faz para colocat um atalho para o rkhunter no gnome?
June 8th, 2008 at 8:25 pm
[...] http://hdoria.archlinux-br.org/blog/2008/06/05/procurando-rootkits-no-seu-sistema/ [...]
June 9th, 2008 at 10:03 am
Opa pessoal,
Antes de se preocuparem, vejam o log do rkhunter/chkrootkit.
Lá vocês podem obter maiores informações sobre o WARNING. Em muitos dos casos estes warnings não são motivos de preocupação.
Pelo log vocês poderão ver o tipo de WARNING. Ele avisa, por exemplo, o acesso do root via ssh está liberado. Neste caso você tem que abrir o arquivo de configuração do ssh e desabilitar o acesso do root por ssh. Não existe uma receita. Abra o arquivo de log, veja o warning e toma uma ação baseado nele.
Se ele achar rootkit, minha sugestão é: Faça backup de arquivos pessoais e formate a máquina. É a maneira mais eficiente.
June 11th, 2008 at 11:10 pm
Se ele achar rootkit, minha sugestão é: Faça backup de arquivos pessoais e formate a máquina. É a maneira mais eficiente.
______________________________________
uso linux para não escutar isso como resposta, me desculpe hdoria mas deve ter alguma outra alternativa porque senão vou ter que ficar instalando toda hora e no caso do arch é complicado pelo fato dos arquivos serem baixados e nem todos tem internet de alta velocidade e tempo disponível para tal. ;)
porém obrigado pela resposta, abraço!
June 12th, 2008 at 8:38 am
Opa Corvolino,
Infelizmente esta é a melhor solução, neste caso. É algo bem diferente de quando dá algum problema no sistema, hardware, módulo ou algo do tipo. Em situações como essa é possível resolver o problema apenas consertando algo aqui e ali, sem precisar formatar a máquina.
Invasão é algo bem além disso. Você não tem como saber o que o invasor fez na sua máquina ou o que foi infectado se você não tiver ferramentas adequadas. Só passar o anti-rookit não é suficiente, ainda mais se você estive usando-o da própria máquina infectada. O melhor jeito de evitar formatar (e situações do tipo) é usar uma série de ferramentas como tripwire, iptables, snort, analisador de logs, anti-rootkit, backups etc. Mas convenhamos: se você já usa corretamente boa parte delas, dificilmente você foi invadido.
Imagina você deixar um servidor de produção importantíssimo da sua empresa com vários rootkits. Simplesmente não dá. O melhor é, como falei, usar todas as ferramentas e ter uma política de backup. No dia que achar algum rootkit, se tem um backup de um momento imediatamente anterior para restaurar o sistema. E aí sim, você pode descobrir o que pode ter afetado sua segurança, restaurar o backup e consertar todos os problemas no sistema limpo. Enquanto isso sua empresa agradece.
June 13th, 2008 at 2:27 am
Esse tutorial é de autoria sua?
June 13th, 2008 at 8:23 am
@Roberto
Sim, é de minha autoria. Tem alguma dúvida sobre o tema?
June 25th, 2008 at 1:17 am
Ótimo post, o chkrootkit eu já conhecia, mas esse rkhunte realmente é bem mais funcional, e essa dica do e-mail aí foi muito boa. Valeu.
August 21st, 2008 at 5:30 pm
Boa tarde Hugo.
Uso o Kurumin NG 8.06.
Segui todo o tutorial. Rodei o rkhunter, apareceu um warning e então tentei ver o arquivo .log mas ele está vazio.
Alguma idéia qual o motivo? Já rodei duas vezes para conferir e o .log continua vazio.
September 3rd, 2008 at 6:47 am
Cara que exelente post, parabéns!!
Valeu!
September 18th, 2008 at 5:51 pm
[...] Se você preferir instalar o Lynis, é só baixar o rpm para sua distribuição (ele fica no sub-diretório noarch), ou o deb, e instalá-lo usando o gerenciador de pacotes. NOTA: O Lynis foi criado pelo mesmo autor do rkhunter (um anti-rootkit que eu já demonstrei como usar) [...]
September 24th, 2008 at 6:10 pm
[...] Site: http://www.rootkit.nl/ Tutorial: http://hdoria.archlinux-br.org/blog/2008/06/05/procurando-rootkits-no-seu-sistema/pt/ [...]