Ossec – Trabalhando com agents linux – HIDS parte 2
Fala galera.. como prometido aqui vai mais um post pra série HIDS Ossec, hoje iremos ver um pouco mais sobre a parte de agentes linux, como instalar um agente, como adicionar ele no Ossec server, ver suas principais funcionalidades funcionando e mais algumas coisas.
Bom como falei no último post, o agente do Ossec é bem simples e funciona basicamente como um encaminhador de logs para o server fazer a análise e correlacionamento, por isso ele quase não consome recursos do servidor. Para fazer a instalação do agente do Ossec é bem simples, é o mesmo passo a passo de instalação do server como é mostrado abaixo. Iremos baixar a versão atual que é a 2.8.3, descompactar e instalar:
# wget https://bintray.com/artifact/download/ossec/ossec-hids/ossec-hids-2.8.3.tar.gz # tar -xvzf ossec-hids-2.8.3.tar.gz # cd ossec-hids-2.8.3 # ./install.sh
Quando o wizard questionar o tipo de instalação é só você selecionar “agent” como é mostrado abaixo:
1- What kind of installation do you want (server, agent, local, hybrid or help)? agent
Em seguida você terá que escolher o local de instalação do Ossec, recomendo deixar no padrão mesmo:
- Choose where to install the OSSEC HIDS [/var/ossec]: /var/ossec
Depois você terá que informar o endereço IP do servidor Ossec:
3.1- What's the IP Address or hostname of the OSSEC HIDS server?: 192.168.0.101
Habilite o check de integridade:
3.2- Do you want to run the integrity check daemon? (y/n) [y]: y
Habilite a engine de detecção de rootkit:
3.3- Do you want to run the rootkit detection engine? (y/n) [y]: y
Habilite a resposta ativa:
3.4 - Do you want to enable active response? (y/n) [y]: y
Agora é só esperar terminar de compilar o Ossec. Depois de concluir a instalação vá no Ossec server para adicionar o agente.Selecione a opção A para adicionar o novo agente e depois siga o passo a passo abaixo:
# /var/ossec/bin/manage_agents
**************************************** * OSSEC HIDS v2.8.3 Agent manager. * * The following options are available: * **************************************** (A)dd an agent (A). (E)xtract key for an agent (E). (L)ist already added agents (L). (R)emove an agent (R). (Q)uit. Choose your action: A,E,L,R or Q: A
Aqui você precisa definir um nome para o novo agente, aqui irei chamar de “Apache_Server”, depois informe o endereço IP do agente e em seguida defina um ID para o agente:
- Adding a new agent (use '\q' to return to the main menu). Please provide the following: * A name for the new agent: Apache_Server * The IP Address of the new agent: 192.168.0.35 * An ID for the new agent[001]: 100 Agent information: ID:100 Name:Apache_Server IP Address:192.168.0.35 Confirm adding it?(y/n): y Agent added.
Depois de adicionar o agente no servidor precisamos extrair a chave dele para adicionar no agente, esse passo também é extremamente simples, basta executar o comando abaixo e selecionar a opção E, depois informar o ID do agente que deseja extrair a chave:
# /var/ossec/bin/manage_agents
**************************************** * OSSEC HIDS v2.8.3 Agent manager. * * The following options are available: * **************************************** (A)dd an agent (A). (E)xtract key for an agent (E). (L)ist already added agents (L). (R)emove an agent (R). (Q)uit. Choose your action: A,E,L,R or Q: E Available agents: ID: 100, Name: Apache_Server, IP: 192.168.0.35 Provide the ID of the agent to extract the key (or '\q' to quit): 100 Agent key information for '100' is: MTAwIEFwYWNoZV9TZXJ2ZXIgMTkyLjE2OC4wLjM1IGM2YmJkYzkyMmU1ZDI1YmU1YTllY2M5N2RhNzQ2NzFkMWI1YWI3MzE3NGVjNDVlMGMwNzliZGJiMD E4OGY0OTA=
Como esse é o primeiro agente que estamos adicionando no nosso Ossec server precisamos reiniciá-lo para que ele fique ouvindo na porta 1514 que é a porta que os agentes utilizam para se comunicar com ele:
# /var/ossec/bin/ossec-control restart
Agora no servidor onde o agente do Ossec se encontra precisamos importar a chave que acabamos de extrair, basta executar o comando abaixo e selecionar a opção I para importar e depois colar a chave:
# /var/ossec/bin/manage_agents
**************************************** * OSSEC HIDS v2.8.3 Agent manager. * * The following options are available: * **************************************** (I)mport key from the server (I). (Q)uit. Choose your action: I or Q: I * Provide the Key generated by the server. * The best approach is to cut and paste it. *** OBS: Do not include spaces or new lines. Paste it here (or '\q' to quit): MTAwIEFwYWNoZV9TZXJ2ZXIgMTkyLjE2OC4wLjM1IGM2YmJkYzkyMmU1ZDI1YmU1YTllY2M5N2RhNzQ2NzFkM WI1YWI3MzE3NGVjNDVlMGMwNzliZGJiMDE4OGY0OTA= Agent information: ID:100 Name:Apache_Server IP Address:192.168.0.35 Confirm adding it?(y/n): y Added.
Depois de importar a chave precisamos iniciar o nosso agente:
# /var/ossec/bin/ossec-control start
Depois de iniciar o serviço é importante checar o arquivo de log para ver se o agente conseguiu se comunicar com o server perfeitamente, rode o comando abaixo para ver o arquivo de log do agente e procure pela entrada que está em negrito:
# tail -f /var/ossec/logs/ossec.log
2017/04/29 18:40:24 ossec-logcollector(1950): INFO: Analyzing file: '/var/log/syslog'. 2017/04/29 18:40:24 ossec-logcollector(1950): INFO: Analyzing file: '/var/log/dpkg.log'. 2017/04/29 18:40:24 ossec-logcollector: INFO: Monitoring output of command(360): df -h 2017/04/29 18:40:24 ossec-logcollector: INFO: Monitoring full output of command(360): netstat -tan |grep LISTEN |grep -v 127.0.0.1 | sort 2017/04/29 18:40:24 ossec-logcollector: INFO: Monitoring full output of command(360): last -n 5 2017/04/29 18:40:24 ossec-logcollector: INFO: Started (pid: 4309). 2017/04/29 18:40:26 ossec-logcollector: WARN: Process locked. Waiting for permission... 2017/04/29 18:40:40 ossec-agentd(4102): INFO: Connected to the server (192.168.0.101:1514). 2017/04/29 18:40:41 ossec-logcollector: INFO: Lock free. Continuing... 2017/04/29 18:41:24 ossec-syscheckd: INFO: Starting syscheck scan (forwarding database). 2017/04/29 18:41:24 ossec-syscheckd: INFO: Starting syscheck database (pre-scan).
Você também pode verificar se o agente conseguiu se conectar ao Ossec server executando o comando abaixo no server, como podemos ver o agent está ativo:
# /var/ossec/bin/agent_control -l
OSSEC HIDS agent_control. List of available agents: ID: 000, Name: Galaxy (server), IP: 127.0.0.1, Active/Local ID: 100, Name: Apache_Server, IP: 192.168.0.35, Active
Depois de alguns minutos o nosso novo agente já vai ter concluído a primeira verificação de integridade de arquivos e de rootkit, para você ver quando foi a última verificação de um agente específico, além de ver outras informações do agente basta executar:
# /var/ossec/bin/agent_control -i 100
OSSEC HIDS agent_control. Agent information: Agent ID: 100 Agent Name: Apache_Server IP address: 192.168.0.35 Status: Active Operating system: Linux ubuntu 4.8.0-22-generic #24-Ubuntu SMP Sat Oct.. Client version: OSSEC HIDS v2.8.3 Last keep alive: Sat Apr 29 19:10:40 2017 Syscheck last started at: Sat Apr 29 18:41:24 2017 Rootcheck last started at: Sat Apr 29 18:48:39 2017
O binário “agent_control” é bastante útil no dia a dia, pois é com ele que nós podemos controlar nossos agentes remotamente. Utilizando esse binário é possível reiniciar um agente, forçar uma verificação de integridade de arquivos, detecção de rootkit, bloquear endereços IP em um agente e etc.
Antes de encerrar esse post vamos ver um pequeno exemplo de um alerta sendo gerado, como vocês devem lembrar o Ossec server concentra todos os logs e alertas dos agentes, então vamos ficar monitorando o log do alerts e ver o que acontece quando alguém logar no nosso agente via SSH por exemplo:
# tail -f /var/ossec/logs/alerts/alerts.log
** Alert 1493505448.317738: mail - syslog,fts,authentication_success 2017 Apr 29 19:37:28 (Apache_Server) 192.168.0.35->/var/log/auth.log Rule: 10100 (level 4) -> 'First time user logged in.' Src IP: 192.168.0.101 User: ricardo Apr 29 19:37:27 ubuntu sshd[5379]: Accepted password for ricardo from 192.168.0.101 port 58584 ssh2 ** Alert 1493505448.318068: - pam,syslog,authentication_success, 2017 Apr 29 19:37:28 (Apache_Server) 192.168.0.35->/var/log/auth.log Rule: 5501 (level 3) -> 'Login session opened.' Apr 29 19:37:27 ubuntu sshd[5379]: pam_unix(sshd:session): session opened for user ricardo by (uid=0)
Como vocês podem ver o Ossec alertou que o usuário ricardo se logou via ssh e está com uma sessão aberta. Se vocês fizerem outras ações no host do agent vocês irão ver diversos outros alertas que o Ossec irá gerar.
Bem pessoal é isso ai, espero que tenham curtido. Em breve irei postar outros artigos sobre o Ossec mostrando configurações mais avançadas. Não esqueçam de curtir nossas páginas nas redes sociais, Facebook, G+ e seguir o Guia do Ti no Twitter. Compartilhem e comentem esse artigo, isso é muito importante para divulgação do nosso trabalho.
- Metasploit Framework de cabo a rabo – Parte 6 - 4 de junho de 2018
- Metasploit Framework de cabo a rabo – Parte 5 - 28 de maio de 2018
- CEH – Scanning Networks – Parte 2 - 24 de maio de 2018