Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
linux-security-audit — Ferramenta automatizada de auditoria de segurança Linux que verifica mais de 130 itens do benchmark CIS para sistemas baseados em RHEL, gerando relatórios XML detalhados sobre configuração do sistema, políticas criptográficas e hardening de serviços. | Kitploit
Ferramentas/GitHubGitHub/password123456/linux-security-audit
Scanners de VulnerabilidadesAuditoria de Configuração
GitHubpassword123456/linux-security-audit

linux-security-audit

Ferramenta automatizada de auditoria de segurança Linux que verifica mais de 130 itens do benchmark CIS para sistemas baseados em RHEL, gerando relatórios XML detalhados sobre configuração do sistema, políticas criptográficas e hardening de serviços.

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
304há 1 anoRevisado pelo Kitploit

Ferramenta de Auditoria de Segurança Linux

made-with-python Python Versions Hits

  • Ferramenta de Auditoria de Segurança Linux baseada no CIS - Red Hat Enterprise Linux 8 Benchmark v3.0.0
  • Se achar útil, por favor, dê a "estrela"🌟 para apoiar melhorias futuras.

Índice

  • 1. Funcionalidades
  • 2. Pré-visualização
  • 3. Registo de Resultados
  • 4. SO Suportados
  • 5. Pré-requisitos
  • 6. Notas
    • 6.1. Porquê foi feito?
    • 6.2. Dicas de Utilização
    • E...

1. Funcionalidades

  • Realiza auditoria em cerca de 130 itens do CIS - Red Hat Enterprise Linux 8 Benchmark v3.0.0 (Não é o conjunto completo do Documento:).

itens:

root@kitploit:~
1. Configuração Inicial
 1.6 Configurar política criptográfica do sistema
  1.6.1 Garantir que a política criptográfica do sistema não está definida como legado
  1.6.2 Garantir que a política criptográfica do sistema desativa o suporte a hash sha1 e assinatura
  1.6.3 Garantir que a política criptográfica do sistema desativa o cbc para ssh
  1.6.4 Garantir que a política criptográfica do sistema desativa MACs com menos de 128 bits

 1.7 Configurar Banners de Aviso da Linha de Comando
  1.7.1 Garantir que a mensagem do dia está configurada corretamente
  1.7.2 Garantir que o banner de login local está configurado corretamente
  1.7.3 Garantir que o banner de login remoto está configurado corretamente
  1.7.4 Garantir que o acesso ao /etc/motd está configurado
  1.7.5 Garantir que o acesso ao /etc/issue está configurado
  1.7.6 Garantir que o acesso ao /etc/issue.net está configurado

2. Serviços
 2.1 Configurar Sincronização de Tempo
  2.1.1 Garantir que a sincronização de tempo está em uso
  2.1.2 Garantir que o chrony está configurado
  2.1.3 Garantir que o chrony não é executado como utilizador root

 2.2 Configurar Serviços com Fins Especiais
  2.2.1 Garantir que os serviços autofs não estão em uso
  2.2.2 Garantir que os serviços do daemon avahi não estão em uso
  2.2.3 Garantir que os serviços do servidor dhcp não estão em uso
  2.2.4 Garantir que os serviços do servidor dns não estão em uso
  2.2.5 Garantir que os serviços dnsmasq não estão em uso
  2.2.6 Garantir que os serviços do servidor de ficheiros samba não estão em uso
  2.2.7 Garantir que os serviços do servidor ftp não estão em uso
  2.2.8 Garantir que os serviços do servidor de acesso a mensagens não estão em uso
  2.2.9 Garantir que os serviços do sistema de ficheiros de rede não estão em uso
  2.2.10 Garantir que os serviços do servidor nis não estão em uso
  2.2.11 Garantir que os serviços do servidor de impressão não estão em uso
  2.2.12 Garantir que os serviços rpcbind não estão em uso
  2.2.13 Garantir que os serviços rsync não estão em uso
  2.2.14 Garantir que os serviços snmp não estão em uso
  2.2.15 Garantir que os serviços do servidor telnet não estão em uso
  2.2.16 Garantir que os serviços do servidor tftp não estão em uso
  2.2.17 Garantir que os serviços do servidor proxy web não estão em uso
  2.2.18 Garantir que os serviços do servidor web não estão em uso
  2.2.19 Garantir que os serviços xinetd não estão em uso
  2.2.20 Garantir que os serviços do servidor X window não estão em uso
  2.2.21 Garantir que os agentes de transferência de correio estão configurados para modo apenas local
  2.2.22 Garantir que apenas serviços aprovados estão à escuta numa interface de rede

4. Acesso, Autenticação e Autorização
 4.1 Configurar agendadores de tarefas
  4.1.1 Configurar cron.
   4.1.1.1 Garantir que o daemon cron está ativado e ativo
   4.1.1.2 Garantir que as permissões no /etc/crontab estão configuradas
   4.1.1.3 Garantir que as permissões no /etc/cron.hourly estão configuradas
   4.1.1.4 Garantir que as permissões no /etc/cron.daily estão configuradas
   4.1.1.5 Garantir que as permissões no /etc/cron.weekly estão configuradas
   4.1.1.6 Garantir que as permissões no /etc/cron.monthly estão configuradas
   4.1.1.7 Garantir que as permissões no /etc/cron.d estão configuradas
   4.1.1.8 Garantir que o crontab está restrito a utilizadores autorizados
  4.1.2 Configurar at
   4.1.2.1 Garantir que o at está restrito a utilizadores autorizados

 4.2 Configurar Servidor SSH
  4.2.1 Garantir que as permissões no /etc/ssh/sshd_config estão configuradas
  4.2.2 Garantir que as permissões nos ficheiros de chave privada do host SSH estão configuradas
  4.2.3 Garantir que as permissões nos ficheiros de chave pública do host SSH estão configuradas
  4.2.4 Garantir que o acesso ao sshd está configurado
  4.2.5 Garantir que o Banner do sshd está configurado
  4.2.6 Garantir que as Cifras do sshd estão configuradas
  4.2.7 Garantir que o ClientAliveInterval e ClientAliveCountMax do sshd estão configurados
  4.2.8 Garantir que o DisableForwarding do sshd está ativado
  4.2.9 Garantir que o HostbasedAuthentication do sshd está desativado
  4.2.10 Garantir que o IgnoreRhosts do sshd está ativado
  4.2.11 Garantir que os KexAlgorithms do sshd estão configurados
  4.2.12 Garantir que o LoginGraceTime do sshd está configurado
  4.2.13 Garantir que o LogLevel do sshd está configurado
  4.2.14 Garantir que os MACs do sshd estão configurados
  4.2.15 Garantir que o MaxAuthTries do sshd está configurado
  4.2.16 Garantir que o MaxSessions do sshd está configurado
  4.2.17 Garantir que o MaxStartups do sshd está configurado
  4.2.18 Garantir que o PermitEmptyPasswords do sshd está desativado
  4.2.19 Garantir que o PermitRootLogin do sshd está desativado
  4.2.20 Garantir que o PermitUserEnvironment do sshd está desativado
  4.2.21 Garantir que o UsePAM do sshd está ativado
  4.2.22 Garantir que o crypto_policy do sshd não está definido

 4.3 Configurar escalação de privilégios
  4.3.1 Garantir que o sudo está instalado
  4.3.2 Garantir que os comandos sudo usam pty
  4.3.3 Garantir que o ficheiro de log do sudo existe
  4.3.4 Garantir que os utilizadores devem fornecer palavra-passe para escalação
  4.3.5 Garantir que a reautenticação para escalação de privilégios não está desativada globalmente
  4.3.6 Garantir que o timeout de autenticação do sudo está configurado corretamente
  4.3.7 Garantir que o acesso ao comando su está restrito

 4.4 Configurar Módulos de Autenticação Plugáveis (PAM)
  4.4.2 Configurar authselect
   4.4.2.1 Garantir que o perfil authselect ativo inclui módulos pam
   4.4.2.2 Garantir que o módulo pam_faillock está ativado
   4.4.2.3 Garantir que o módulo pam_pwquality está ativado
   4.4.2.4 Garantir que o módulo pam_pwhistory está ativado
   4.4.2.5 Garantir que o módulo pam_unix está ativado
  4.4.3 Configurar argumentos do módulo plugável
   4.4.3.1.1 Garantir que o bloqueio por tentativas falhadas de palavra-passe está configurado
   4.4.3.1.2 Garantir que o tempo de desbloqueio de palavra-passe está configurado
   4.4.3.1.3 Garantir que o bloqueio por tentativas falhadas de palavra-passe inclui a conta root
   4.4.3.2.1 Garantir que o número de caracteres alterados na palavra-passe está configurado
   4.4.3.2.2 Garantir que o comprimento da palavra-passe está configurado
   4.4.3.2.3 Garantir que a complexidade da palavra-passe está configurada (Manual)
   4.4.3.2.4 Garantir que os mesmos caracteres consecutivos na palavra-passe estão configurados
   4.4.3.2.5 Garantir que o máximo de caracteres sequenciais na palavra-passe está configurado
   4.4.3.2.6 Garantir que a verificação do dicionário de palavras-passe está ativada
   4.4.3.2.7 Garantir que a qualidade da palavra-passe é aplicada ao utilizador root
   4.4.3.3.1 Garantir que a memória do histórico de palavras-passe está configurada
   4.4.3.3.2 Garantir que o histórico de palavras-passe é aplicado ao utilizador root
   4.4.3.3.3 Garantir que o pam_pwhistory inclui use_authtok
   4.4.3.4.1 Garantir que o pam_unix não inclui nullok
   4.4.3.4.2 Garantir que o pam_unix não inclui remember
   4.4.3.4.3 Garantir que o pam_unix inclui um algoritmo forte de hashing de palavra-passe
   4.4.3.4.4 Garantir que o pam_unix inclui use_authtok

4.5 Contas de Utilizador e Ambiente
 4.5.1 Configurar parâmetros do conjunto de palavras-passe sombra
  4.5.1.1 Garantir que o algoritmo forte de hashing de palavra-passe está configurado
  4.5.1.2 Garantir que a política de expiração de palavra-passe é de 180 dias ou menos
  4.5.1.3 Garantir que os dias de aviso de expiração de palavra-passe são 7 ou mais
  4.5.1.4 Garantir que o bloqueio de palavra-passe inativa é de 30 dias ou menos
  4.5.1.5 Garantir que a data da última alteração de palavra-passe de todos os utilizadores está no passado
 4.5.2 Configurar contas root e de sistema e ambiente
  4.5.2.1 Garantir que o grupo padrão para a conta root é GID 0
  4.5.2.2 Garantir que o umask do utilizador root está configurado
  4.5.2.3 Garantir que as contas de sistema estão protegidas
  4.5.2.4 Garantir que a palavra-passe root está definida
 4.5.3 Configurar ambiente padrão do utilizador
  4.5.3.1 Garantir que o nologin não está listado no /etc/shells
  4.5.3.2 Garantir que o timeout da shell do utilizador padrão está configurado
  4.5.3.3 Garantir que o umask do utilizador padrão está configurado

5. Registo e Auditoria.
 5.1 Configurar Registo
  5.1.1 Configurar rsyslog
   5.1.1.1 Garantir que o rsyslog está instalado
   5.1.1.2 Garantir que o serviço rsyslog está ativado
   5.1.1.4 Garantir que as permissões de ficheiro padrão do rsyslog estão configuradas
   5.1.1.5 Garantir que o registo está configurado
   5.1.1.6 Garantir que o rsyslog está configurado para enviar logs para um host de log remoto
   5.1.1.7 Garantir que o rsyslog não está configurado para receber logs de um cliente remoto

6. Manutenção do Sistema
 6.1 Permissões de Ficheiros do Sistema
  6.1.1 Garantir que as permissões no /etc/passwd estão configuradas
  6.1.2 Garantir que as permissões no /etc/passwd- estão configuradas
  6.1.3 Garantir que as permissões no /etc/opasswd estão configuradas
  6.1.4 Garantir que as permissões no /etc/group estão configuradas
  6.1.5 Garantir que as permissões no /etc/group- estão configuradas
  6.1.6 Garantir que as permissões no /etc/shadow estão configuradas
  6.1.7 Garantir que as permissões no /etc/shadow- estão configuradas
  6.1.8 Garantir que as permissões no /etc/gshadow estão configuradas
  6.1.9 Garantir que as permissões no /etc/gshadow- estão configuradas
  6.1.10 Garantir que as permissões no /etc/shells estão configuradas
  6.1.11 Garantir que ficheiros e diretórios graváveis por todos estão protegidos
  6.1.12 Garantir que não existem ficheiros ou diretórios sem proprietário ou sem grupo
  6.1.13 Garantir que os ficheiros SUID e SGID são revistos
  6.1.14 Auditar permissões de ficheiros do sistema

6.2 Configurações de Utilizadores e Grupos Locais
  6.2.1 Garantir que as contas no /etc/passwd usam palavras-passe sombra
  6.2.2 Garantir que os campos de palavra-passe do /etc/shadow não estão vazios
  6.2.3 Garantir que todos os grupos no /etc/passwd existem no /etc/group
  6.2.4 Garantir que não existem UIDs duplicados
  6.2.5 Garantir que não existem GIDs duplicados
  6.2.6 Garantir que não existem nomes de utilizador duplicados
  6.2.7 Garantir que não existem nomes de grupo duplicados
  6.2.8 Garantir a integridade do caminho root
  6.2.9 Garantir que root é a única conta com UID 0
  6.2.10 Garantir que os diretórios home dos utilizadores interativos locais estão configurados
  6.2.11 Garantir que o acesso aos ficheiros de ponto dos utilizadores interativos locais está configurado

2. Pré-visualização

preview

root@kitploit:~
$ date
Tue Aug  6 04:00:37 UTC 2024

$ python3 -V
Python 3.6.8

$ sudo python3 main.py
===========================================================
		Ferramenta de Auditoria de Segurança Linux 1.0.1 (2024.08.06)
				por password123456
 ===========================================================

[+][2024-08-06 04:01:14] Iniciar Auditoria de Segurança.
---------------------------------------------------------

 Nome do Host: buddy2
 SO: Rocky Linux 8.8 (Green Obsidian)
 Endereço IP: [ens192] 172.16.13.51
 Endereço MAC: [ens192] 00:50:56:a6:76:b8

[+] 1.Configuração Inicial
---------------------------------------------------------
 1.6.Configurar política criptográfica do sistema
  [passou]  1.6.1 : Garantir que a política criptográfica do sistema não está definida como legado
  [falha] 1.6.2 : Garantir que a política criptográfica do sistema desativa o suporte a hash sha1 e assinatura
  [passou]  1.6.3 : Garantir que a política criptográfica do sistema desativa o cbc para ssh
  [manual] 1.6.4 : Garantir que a política criptográfica do sistema desativa MACs com menos de 128 bits

 1.7.Configurar Banners de Aviso da Linha de Comando
  [passou]  1.7.1 : Garantir que a mensagem do dia está configurada corretamente
  [falha] 1.7.2 : Garantir que o banner de login local está configurado corretamente
  [passou]  1.7.3 : Garantir que o banner de login remoto está configurado corretamente
  [passou]  1.7.4 : Garantir que o acesso ao /etc/motd está configurado
  [passou]  1.7.5 : Garantir que o acesso ao /etc/issue está configurado
  [passou]  1.7.6 : Garantir que o acesso ao /etc/issue.net está configurado

...

[*] RESULTADO
---------------------------------------------------------
output=/home/buddy/1722884474_buddy2_audit.xml
---------------------------------------------------------

[+][2024-08-06 04:01:57] Fim da Auditoria de Segurança.

3. Registo de Resultados

  • Gera dados brutos de auditoria detalhados em formato XML para cada item de auditoria e verificação
  • os dados brutos de auditoria são concebidos para mostrar saídas de log muito detalhadas para demonstrar o formato e o conteúdo dos logs de auditoria.
root@kitploit:~
$ cat 1722884474_buddy2_audit.xml
root@kitploit:~
<?xml version="1.0" encoding="UTF-8"?>
<results>
  <items>
	<status>ok</status>
	<datetime>2024-08-06 04:01:14</datetime>
	<auditor>password123456</auditor>
	<target>buddy2</target>
	<os_name>Rocky Linux 8.8 (Green Obsidian)</os_name>
	<os_version>8.8</os_version>
	<os_id>rocky</os_id>
	<os_architecture>x86_64</os_architecture>
	<ip_address>[ens192] 172.16.13.51</ip_address>
	<mac_address>[ens192] 00:50:56:a6:76:b8</mac_address>
	<item_no>1.6.1</item_no>
	<item_title>Garantir que a política criptográfica do sistema não está definida como legado</item_title>
	<result>passou</result>
	<result_code>0</result_code>
	<raw_data>
	  <![CDATA[
[ok] Não encontrado: /etc/crypto-policies/config --> ^[ \t]*(\bLEGACY\b)

# cat /etc/crypto-policies/config
...
DEFAULT
	  ]]>
	</raw_data>
  </items>
  <items>
	<status>ok</status>
	<datetime>2024-08-06 04:01:14</datetime>
	<auditor>password123456</auditor>
	<target>buddy2</target>
	<os_name>Rocky Linux 8.8 (Green Obsidian)</os_name>
	<os_version>8.8</os_version>
	<os_id>rocky</os_id>
	<os_architecture>x86_64</os_architecture>
	<ip_address>[ens192] 172.16.13.51</ip_address>
	<mac_address>[ens192] 00:50:56:a6:76:b8</mac_address>
	<item_no>1.6.2</item_no>
	<item_title>Garantir que a política criptográfica do sistema desativa o suporte a hash sha1 e assinatura</item_title>
	<result>falha</result>
	<result_code>1</result_code>
	<raw_data>
	  <![CDATA[
[vul] Encontrado: /etc/crypto-policies/state/CURRENT.pol
- encontrado: ^[ \t]*(hash|sign)[ \t]*=[ \t]*([^\n\r#]+)?-sha1\b --> `ECDSA-SHA1,RSA-PSS-SHA1,RSA-SHA1` perto da linha: 13

# cat /etc/crypto-policies/state/CURRENT.pol
...
11: mac = AEAD HMAC-SHA2-256 HMAC-SHA1 UMAC-128 HMAC-SHA2-384 HMAC-SHA2-512
12: protocol =
13: sign = ECDSA-SHA3-256 ECDSA-SHA2-256 ECDSA-SHA3-384 ECDSA-SHA2-384 ECDSA-SHA3-512 ECDSA-SHA2-512 EDDSA-ED25519 EDDSA-ED448 RSA-PSS-SHA2-
256 RSA-PSS-SHA2-384 RSA-PSS-SHA2-512 RSA-SHA3-256 RSA-SHA2-256 RSA-SHA3-384 RSA-SHA2-384 RSA-SHA3-512 RSA-SHA2-512 ECDSA-SHA2-224 RSA-PSS-S
HA2-224 RSA-SHA2-224 ECDSA-SHA1 RSA-PSS-SHA1 RSA-SHA1
14: arbitrary_dh_groups = 1
15: min_dh_size = 2048


[vul] Encontrado: /etc/crypto-policies/state/CURRENT.pol
- encontrado: ^[ \t]*sha1_in_certs[ \t]*=[ \t]*(0|1)$ --> `1` perto da linha: 18

# cat /etc/crypto-policies/state/CURRENT.pol
...
16: min_dsa_size = 2048
17: min_rsa_size = 2048
18: sha1_in_certs = 1
19: ssh_certs = 1
20: ssh_etm = 1
	  ]]>
	</raw_data>
  </items>
    
 ...
    
  <items>
        <status>ok</status>
        <datetime>2024-08-06 04:01:38</datetime>
        <auditor>password123456</auditor>
        <target>buddy2</target>
        <os_name>Rocky Linux 8.7 (Green Obsidian)</os_name>
        <os_version>8.7</os_version>
        <os_id>rocky</os_id>
        <os_architecture>x86_64</os_architecture>
        <ip_address>[ens192] 172.16.13.51</ip_address>
        <mac_address>[ens192] 00:50:56:a6:4a:80</mac_address>
        <item_no>6.1.10</item_no>
        <item_title>Garantir que as permissões no /etc/shells estão configuradas</item_title>
        <result>passou</result>
        <result_code>0</result_code>
        <raw_data>
          <![CDATA[
[ok] -rw-r--r-- 1 root root 44 Sep 10 20:51 /etc/shells
- permissões: 644
- proprietário:grupo: root:root          
          ]]>
        </raw_data>
  </items>    
</results>

4. SO Suportados

  • Distribuições Linux baseadas em RHEL
    • CentOS
    • RHEL
    • Rocky Linux
  • Embora o script seja principalmente projetado para sistemas baseados em RHEL, deve funcionar em todos os derivados do RHEL com ajustes mínimos.
  • A ferramenta pode ser personalizada e estendida conforme necessário.

5. Pré-requisitos

  • Python 3.6+ (sem dependências externas necessárias).
  • Utiliza um punhado de comandos shell principais (usados seletivamente para eficiência em certos itens de auditoria).

6. Notas

6.1. Porquê foi feito?

  • As ferramentas de auditoria de segurança são frequentemente desenvolvidas usando scripting SHELL devido à sua simplicidade e acesso direto aos comandos do sistema.
  • Embora as ferramentas baseadas em Scripts SHELL sejam comuns, há uma falta de ferramentas desenvolvidas noutras linguagens.
  • Esta ferramenta visa implementar usando Python, uma linguagem nativamente suportada na maioria das distribuições Linux modernas.
  • Em sistemas Linux que não estão em fim de vida (EOL), o Python 3.6+ está incluído por padrão.

A missão era implementar esta ferramenta usando código Python quase 100% puro. No entanto, houve casos específicos onde o uso de comandos shell foi inevitável.

Casos Inevitáveis:

  • Quando a funcionalidade necessária não está disponível nas bibliotecas padrão do Python.
  • Quando operações como procurar ficheiros e diretórios são significativamente mais rápidas com comandos como find do que com código Python nativo.

Este script evita o padrão comum de Código Python > subprocess para executar comandos shell > analisar saída sempre que possível, e é construído com mais de 90% de código Python puro.

6.2. Dicas de Utilização

  • Em ambientes de grande escala (milhares ou dezenas de milhares de servidores), o python pode ser implantado, executado e os logs de auditoria recuperados usando ferramentas de execução remota como Ansible, ou outros sistemas
  • Os resultados podem ser analisados e visualizados usando ferramentas de agregação de logs que conseguem analisar XML, ou construindo uma aplicação web personalizada para análise de XML.
  • Os logs incluem tanto os resultados da auditoria (passou, falha, manual, erro) como os dados brutos do sistema para verificação.
  • Não há necessidade de aceder diretamente aos servidores; os logs brutos contêm dados suficientes para validar as descobertas e detetar falsos positivos.
  • Também pode comparar logs de auditorias iniciais com os posteriores à remediação para acompanhar alterações e melhorias.

E...

  • Os dados brutos de auditoria nos logs podem parecer confusos, dependendo da sua perspetiva.
  • Sinta-se à vontade para rever a base de código e adaptá-la aos seus requisitos específicos.
Baixar ferramenta