Rootsh - Auditando/monitorando o root e demais usuários do GNU/Linux

Neste artigo, mostro como registrar tudo o que um usuário do GNU/Linux (inclusive o root) vê, digita e faz em seu terminal. Em outras palavras, quase uma funcionalidade de Keylogger, porém feito com o objetivo de ter uma auditoria, monitoramento e registro seguro do que cada usuário está realizando no terminal.

[ Hits: 14.473 ]

Por: Esli Silva em 16/07/2014 | Blog: https://esli.blog.br


Logs / Otras opções / Fontes



Logs

Para visualizar os logs, preferencialmente, use o tail ou head.
Linux: Rootsh - Auditando/monitorando o root e demais usuários do GNU/Linux

A diferença (e o ponto interessante) do Rootsh, é que ele grava os logs mesmo se o usuário limpar seu histórico (já que o Rootsh não "conversa" ou depende do mesmo) usando o comando history -c, ou até mesmo apagar ou limpar o arquivo bash_history dentro do home do root.

Cada arquivo de log contém o monitoramento a partir do login do usuário como root (pelo comando sudo rootsh) até o seu logoff. Do início ao fim de cada sessão.
Cada arquivo de log refere-se à uma sessão.

O nome do log contém um .closed no final, informando que aqueles logs são de uma sessão que o usuário já saiu (exit/logoff). Caso não tenha, significa que o usuário ainda está logado como root.

No diretório de log, ele cria um arquivo, cujo prefixo é o nome do usuário (no meu exemplo, o prefixo eslih. e root.), depois vem o timestamp de data e hora (AAAAMMDDHHMMSS - AnoMesDiaHoraMinutoSegundo), e o ID do processo. Caso o usuário já fechou a sessão, o nome do arquivo de log terminará com um .closed.

Após o timestamp, há 6 caracteres hexadecimais que indicam o ID do processo. No exemplo abaixo, o 03eca é o ID do processo do Rootsh que foi executado durante esta sessão.

Exemplo:

eslih.20140710225359.03eca.closed

O arquivo acima, tem os logs de uma sessão onde o usuário eslih logou-se em 10/07/2014 às 22:53.

Exemplo: abaixo, o usuário eslih logou-se como root (sendo monitorado pelo Rootsh). Criou um diretório teste na raiz do sistema, depois removeu este diretório. Após isto, apagou seus rastros.
Linux: Rootsh - Auditando/monitorando o root e demais usuários do GNU/Linux

Na próxima tela, estou visualizando os logs gerados pelo Rootsh. Onde mostra exatamente o que o usuário eslih fez logado como root na sessão da tela acima.
Linux: Rootsh - Auditando/monitorando o root e demais usuários do GNU/Linux

Outras opções

Após instalado e funcionando, você pode chamar o Rootsh usando determinadas flags, lembrando que para monitorar o root, sempre logue-se com o comando sudo rootsh.

Mas, pode-se chamá-lo como uma aplicação independente e registrar a sua própria sessão, por exemplo:

rootsh -i

Inicia o Shell com login.

# rootsh -u User

Inicia o Rootsh monitorando uma sessão de usuário especifico, por exemplo: rootsh -u eslih.
  • -f :: Use o -f caso queira um outro nome para os arquivos de log.
  • -d :: Use-o caso queira que a sessão que será iniciada o Rootsh grave os logs em outro diretório sem ser o padrão definido na compilação. (Usando junto com o -f, mude o nome também).
  • -no-logfile :: Desliga o log para esta sessão.
  • -no-syslog :: Desliga o syslog para esta sessão

Mais exemplos:

Iniciar um Shell de root:

sudo rootsh

Iniciar um Shell logado com o usuário eslih:

sudo rootsh-u eslih

Inicia um Shell de root monitorado, onde o aquivo de log será local com o nome mysessio.log e o envio para o syslog estará desabilitado:

rootsh -f mysession.log - no-syslog

Envia o comando apache stop para o Shell (bash) com o usuário eslih logado:

rootsh -i -u eslih apache stop


Fontes/referências


Página anterior    

Páginas do artigo
   1. Introdução
   2. Compilação / Configuração
   3. Logs / Otras opções / Fontes
Outros artigos deste autor

DHCP no GNU/Linux - Guia para ISC-DHCP Server

Certificados e OpenSSL - A Sopa de Letras

Guia SSD no Linux: tudo que você precisa saber e o que precisa esquecer!

Leitura recomendada

Teste de vulnerabilidades com OpenVAS 3.0

Monitorando redes utilizando Ntop

Protegendo seu servidor de e-mail Postfix

Snort avançado: Projetando um perímetro seguro

Um dia depois da inundação

  
Comentários
[1] Comentário enviado por lcavalheiro em 16/07/2014 - 12:43h

Interessantíssimo! Favoritado, chapa!

[2] Comentário enviado por Tacioandrade em 17/07/2014 - 20:29h

Engraçado que passei um bom tempo pesquisando uma solução para fazer exatamente isso a mais de 6 meses atrás, porem por correrias tive que parar e essa semana, na terça feira um colega me indicou um artigo sobre a ferramenta e apareceu essa sua postagem.

Estava vendo esse programa e é uma pena ele estar abandonado a tanto tempo e não possuir pacotes .deb e .rpm, pois instalar em 1 ou 2 computadores manualmente é simples, porem instalar em 50 ou mais já se torna uma tarefa complexa. =(

[3] Comentário enviado por eslih em 18/07/2014 - 12:29h


[2] Comentário enviado por Tacioandrade em 17/07/2014 - 20:29h:
...
Estava vendo esse programa e é uma pena ele estar abandonado a tanto tempo e não possuir pacotes .deb e .rpm, pois instalar em 1 ou 2 computadores manualmente é simples, porem instalar em 50 ou mais já se torna uma tarefa complexa. =(


Olá @Tacioandrade, estou com alguns projetos em andamento, mas ao finaliza-los vou desenvolver os pacotes .deb e rpm e posto novamente. Ou melhor até, além do pacote padrão .deb, coloco o caminho das pedras para você criar o seu próprio porém já deixando dentro do .deb as configurações para enviar ao seu syslog, já que mesmo criando um .deb para melhorar o tempo de instalação, de toda forma teria que personalizar as configurações para o seu servidor de logs centralizado (mais que algumas maquinas seria absurdo deixar os logs em cada uma delas)....

Obrigado a você e o @lcavalheiro pelos comentários e a todos que visitaram este artigo.

[4] Comentário enviado por Tacioandrade em 18/07/2014 - 16:38h


[3] Comentário enviado por eslih em 18/07/2014 - 12:29h:
Olá @Tacioandrade, estou com alguns projetos em andamento, mas ao finaliza-los vou desenvolver os pacotes .deb e rpm e posto novamente. Ou melhor até, além do pacote padrão .deb, coloco o caminho das pedras para você criar o seu próprio porém já deixando dentro do .deb as configurações para enviar ao seu syslog, já que mesmo criando um .deb para melhorar o tempo de instalação, de toda forma teria que personalizar as configurações para o seu servidor de logs centralizado (mais que algumas maquinas seria absurdo deixar os logs em cada uma delas)....

Obrigado a você e o @lcavalheiro pelos comentários e a todos que visitaram este artigo.


Realmente não tinha pensado nisso de criar meu próprio .deb já com as configurações do syslog, ótima ideia mesmo caro amigo, uma vez a muito tempo criei meu pacote .deb, porem foi para uma aplicação que não tinha nenhum requisito, só desempacotava no diretório correto porem acho que da para criar meu próprio .deb mesmo. =D

Sobre o Syslog, você utiliza em algum local? Se sim, qual o sistema que você usa (syslog-ng ou rsyslg) e qual interface de gerenciamento, pois testei o logalizer, porem achei muito fraca. =(

Um forte abraço.

[5] Comentário enviado por Eslih em 19/07/2014 - 13:07h


[4] Comentário enviado por Tacioandrade em 18/07/2014 - 16:38h:

Realmente não tinha pensado nisso de criar meu próprio .deb já com as configurações do syslog, ótima ideia mesmo caro amigo, uma vez a muito tempo criei meu pacote .deb, porem foi para uma aplicação que não tinha nenhum requisito, só desempacotava no diretório correto porem acho que da para criar meu próprio .deb mesmo. =D

Sobre o Syslog, você utiliza em algum local? Se sim, qual o sistema que você usa (syslog-ng ou rsyslg) e qual interface de gerenciamento, pois testei o logalizer, porem achei muito fraca. =(

Um forte abraço.


Olá novamente @tacioandrade ;-)
Se no seu caso o hardware e o sistema for padronizado, pode-se facilitar tudo com o checkinstall (que na hora da compilação vai gerar o .deb, mas se instalar em outra maquina pode ter problemas)...
Tenho mais facilidade/afinidade com o syslog-ng (não que seja melhor ou pior que o rsyslog)... Agora sobre interface para logs (falando não só do rootsh, mas de qualquer log centralizado), creio que uma das melhores combinações seja usar o Logstash + Kibana + Elasticsearch, hoje trabalho uma multinacional que é um AS (Sistema autonomo de internet) e cuja infra há centenas de servidores e clusters GNU/linux e pra complicar um pouco, diversos routers e um range /24 de IP's válidos... Um projeto que em breve será feito é este trio (Logstach+Kibana e ElasticSearch), não conhecia muito sobre, mas quando fui estudar a fundo o que pode ser feito com isto, realmente é impressionante.

[6] Comentário enviado por marlonpso em 05/08/2014 - 22:00h

Ola .. antes de mais nada ...parabens pelo artigo .. muito bom mesmo ...
e agora sobre o rootsh ele parece ser mto bom mesmo .. mais e o sudosh2 alguem ja viu ?? ele é mesmo o que veio para substituir esse rootsh ??

desde ja muito obrigado ! =D


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts