Obtenha informações sobre vulnerabilidades e exploits em seus sistemas através do Pompem

O Pompem é uma ferramenta de busca de informações sobre vulnerabilidades relacionadas a diversos sistemas de gestão de conteúdo e softwares de sistema e rede.
Escrito em Python, o programa foi desenvolvido para listar artigos em sites e informações de bancos de dados sobre falhas de segurança conhecidas.

Com base nestas informações, o administrador pode tomar as “medidas cabíveis” para resolver eventuais problemas relacionados à sua plataforma.

O usuário alvo deste tipo de aplicação é o pentester, ou seja, profissionais ligados à área de segurança, cuja atribuição é determinar a força da segurança de sistemas que estejam sob seus cuidados. Ou seja, trata-se de um perfil específico de usuário avançado.

Neste post, vou abordar a instalação mais simplificada, dentro do sistema operacional Debian 10.

Nesta distribuição do GNU/Linux, o Pompem, consta como um pacote na categoria pentest tools e é mantida pelo Debian Forensics.


apt show pompem

Package: pompem
Version: 0.2.0-3
Priority: optional
Section: utils
Maintainer: Debian Forensics 
Installed-Size: 51,2 kB
Depends: python3, python3-requests
Homepage: https://github.com/rfunix/Pompem
Download-Size: 9.928 B
APT-Sources: http://deb.debian.org/debian testing/main amd64 Packages
Description: Exploit and Vulnerability Finder
 Find exploit with a system of advanced search, designed to automate the search
 for Exploits and Vulnerability in the most important databases facilitating
 the work of pentesters, ethical hackers and forensics expert. Performs searches
 in databases: PacketStorm security, CXSecurity, ZeroDay, Vulners, National
 Vulnerability Database, WPScan Vulnerability Database. This tool is essential
 in the security of networks and systems.
 .
 The search results can be exported to HTML or text format.

Como você pode ver, o Pompem é essencial na busca e detecção de exploits e vulnerabilidades — bem como a obtenção de ajuda para solucionar os problemas — em várias categorias de sistemas.

Para iniciar a instalação, use o apt (de novo…):


sudo apt install pompem

Como usar o Pompem

O Pompem é uma forma rápida de obter informações sobre problemas de segurança, já disponibilizadas em sites especializados.
Se você administra um grande servidor ou um blog WordPress, pode obter rapidamente informações voltadas para a sua situação.
Abra um terminal, para fazer algumas experiências.
Use o recurso search (busca) para encontrar dados sobre uma determinada plataforma (Joomla, no exemplo abaixo):


pompem -s "joomla"


+Results joomla
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+Date            Description                                     Url                                    
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ 2018-06-18 | Joomla Jomres 9.11.2 Cross Site Request Forgery | https://packetstormsecurity.com/files/148223/Joomla-Jomres-9.11.2-Cross-Site-Request-Forgery.html 
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ 2018-06-14 | Joomla Ek Rishta 2.10 SQL Injection | https://packetstormsecurity.com/files/148189/Joomla-Ek-Rishta-2.10-SQL-Injection.html 
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

...

+ 2018-04-13 | Joomla Convert Forms 2.0.3 CSV Injection | https://cxsecurity.com/issue/WLB-2018040100 
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ 2018-04-09 | Joomla com_foxcontact Shell Upload Vulnerability E | https://cxsecurity.com/issue/WLB-2018040066 
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ 2018-06-14 | Joomla Ek Rishta 2.10 SQL Injection | https://packetstormsecurity.com/files/148189/Joomla-Ek-Rishta-2.10-SQL-Injection.html 
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Minha lista, acima, está com “algumas” linhas cortadas. Se prepare para obter uma relação bem mais extensa, aí.
Como você pode ver, o resultado compreende 3 colunas:

  1. Data da divulgação da vulnerabilidade
  2. Título do post
  3. URL do site, aonde você pode obter mais informações sobre o problema

Ter conhecimento (leitura) de inglês, neste caso, pode ajudar bastante.

Como extrair dados exif de arquivos de imagens para montar uma base de dados ou planilha.

O exiftool é uma ferramenta de nível avançado, desenvolvida por Phil Harvester (em linguagem Perl), desde 2003.
O utilitário tem desenvolvimento ativo e versões para Linux, MacOS e Windows.

Links para download, ao final do artigo.
Este post não vai mostrar como desenvolver o banco de dados ou a planilha, em si… mas apenas como obter a base de dados, em texto, que você precisa para analisar suas imagens dentro de uma planilha completa ou dentro de um banco de dados de verdade.

O exiftool permite verificar imagens recursivamente em um diretório (pasta) e oferece suporte a aproximadamente 200 tipos de arquivos.
Dentre estes, a ferramenta é capaz de ler dados EXIF de arquivos JPEG e RAW de diversas marcas e modelos de câmeras.
Nos meus exemplos, vou mostrar predominantemente o uso do utilitário em arquivos .CR2 (um dos formatos RAW da Canon).

Se você tiver dúvidas, leia outros artigos sobre o exiftool, neste mesmo site.

Como usar o exiftool recursivamente

Abra um terminal e vamos à diversão! 😉
Em outros posts, mostrei como rodar o utilitário sobre um único arquivo.

exiftool nome-do-arquivo

Também mostrei como usar o find para executar o programa sobre uma grande quantidade de arquivos, recursivamente, espalhados por vários subdiretórios.
Desta vez, vamos dispensar o find — mas o comando grep ainda será usado para refinar nossos resultados.

Para rodar o exiftool recursivamente, a partir do diretório atual, use a opção -r seguida do nome do diretório ou (no Linux e no MacOS) use um ‘./’:


exiftool -r ./ 

A depender da quantidade de arquivos presentes, a execução pode ser um pouco demorada.

Como refinar as buscas para obter resultados mais enxutos

Como você deve ter notado, o aplicativo possui vários campos, dentro dos quais escreve as informações obtidas dos arquivos.

Você pode fazer uma filtragem dos resultados por strings (usando o grep ou não) ou pelas tags (etiqueta) para ser encontrada e exibida.
Os meus exemplos estão aí para serem editados, alterados para atender às suas necessidades.

Como restringir a busca a um tipo de arquivo (cr2, no meu caso) dentro de um diretório (Imagens/junho) recursivamente (-r):


exiftool -ext cr2 -r Imagens/junho/

Veja como restringir a sua busca a apenas um tipo de lente:


exiftool -ext cr2 -T -r ./ | grep "18.0 - 55.0"

Se você usa câmeras Canon, pode obter listagens com o formato padrão da marca, acrescentando ‘-l -canon’ à linha de comando:


exiftool -ext cr2 -l -canon -r 05/

No exemplo, acima, ’05/’ é o nome da pasta em que a busca está sendo feita.


exiftool -T -aperture -ext cr2 -r 05/

Você pode ignorar os outros campos de dados EXIF e listar apenas os nomes dos arquivos que satisfaçam alguma condição:


exiftool '-*EF75-300mm*' -r 05/

Como passar os resultados para uma planilha

Os resultados podem ser formatados, de maneira bem básica, com as opções -T ou -t e serem gravadas em um arquivo. Para gravar o resultado da sua consulta em um arquivo, basta acrescentar ‘> nome-do-arquivo.txt’ ao final da linha de comando.
Este arquivo poderá ser aberto por qualquer aplicativo de planilhas, posteriormente.


exiftool -ext cr2 -t -l -canon -r 05/ > maio2018.txt

Se preferir, use ‘-common’ para restringir o resultado às meta informações mais comuns:


exiftool -ext cr2 -t -common -r 05/ > maio2018.txt

… ou use ‘-T’ (em maiúscula) no lugar de ‘-t’, para obter uma separação dos dados em tabela. Acho esta formatação melhor para trabalhar em planilhas — para determinar a média de abertura que uso, quantas vezes usei uma determinada lente etc.
planiha libreoffice calc

Com um script (na sua linguagem preferida) também é possível iniciar e continuar alimentando um banco de dados com os dados EXIF das suas fotos.

referências

Usuários Linux já têm o exiftool instalado, na maioria das grandes distribuições.
Quem usa MacOS e Windows, pode baixar do site oficial: https://www.sno.phy.queensu.ca/~phil/exiftool/.

Use o exiftool para descobrir como você fotografa

O exiftool é uma ferramenta CLI voltada para a obtenção de informações EXIF ou meta tags de arquivos diversos.
Se você usa MacOS ou Windows, baixe sua cópia do programa no site oficial (link ao final do artigo).

Se você usa Linux (que nem eu!), ele provavelmente já estará instalado aí, com suporte a aproximadamente 200 tipos de arquivos.

Neste universo de possibilidades, a ferramenta suporta a leitura de dados contidos em arquivos de imagens JPEG, bem como, em arquivos RAW de vários fabricantes.

O próprio Flickr usa o exiftools para manipular e analisar as informações das imagens de suas comunidades.

Neste post, vou mostrar como usar o programa para obter informações, de dentro dos arquivos. Vou, ainda, mostrar como associar o utilitário aos comandos grep e find, para refinar a sua busca e obter apenas resultados relevantes para o seu contexto.

Se você já tem dezenas de milhares de fotos e já usou várias lentes para produzir suas imagens, com estas ferramentas é possível montar algumas estatísticas sobre os seus hábitos ao fotografar.

Este tipo de informação pode ser muito útil para quem pensa em comprar uma nova lente, mas se encontra em dúvida sobre se o investimento irá ser realmente útil ou não.

Em outras palavras, faz sentido conhecer a distância focal que você prefere usar — mesmo nas lentes de zoom — antes de começar a analisar as opções disponíveis nas lojas.

Por exemplo, se você já se encontra há um ano usando uma das lentes que costuma vir com os kits de câmera e está pensando em qual poderia ser a próxima aquisição, seria muito interessante saber como você prefere trabalhar antes de tirar a carteira do bolso.

As lentes do kit costumam ser lentes de zoom, com distâncias focais variando entre 18-55mm, 55-250mm ou 75-300mmm (pelo menos, no caso da Canon).
Dentro da distância focal da lente do seu kit, você deve estar usando uma ou outra com predominância.

Isto quer dizer que, se você costuma fotografar frequentemente a aproximadamente 40mm, esta poderia ser a lente prime a ser sondada, na próxima compra.

As ferramentas descritas neste texto já foram abordadas com maior profundidade em outros posts, caso você queira saber um pouco mais sobre cada uma delas:

  1. O comando grep
  2. O comando find
  3. O comando exiftool

Execute o exiftool diretamente no arquivo

A ferramenta pode ser simplesmente aplicada a um ou vários arquivos de um diretório:


exiftool minhasfotos/img_2365.cr2

Para analisar todas os arquivos do diretório (ou da pasta), use-a assim:


exiftool minhasfotos/*.cr2

Altere os meus exemplos à sua realidade, aí.
Este segundo comando pode ser modificado para mostrar resultados mais específicos.
Veja como obter os valores das aberturas (aperture) usadas nas fotografias desta mesma pasta:


exiftool minhasfotos/*.cr2 | grep "Aperture" 

Note que os arquivos .cr2 correspondem aos “arquivos crus” das câmeras Canon. Se você tem arquivos com extensões diferentes, adeque o comando ao seu caso.
A tag (ou etiqueta) “Aperture” também pode variar em função das preferências do fabricante.
Se você fotografa sempre em JPEG, estas informações também estarão lá.
Fique atento.
Decida qual a meta tag mais importante para você e faça a sua busca.

O comando find pode ser usado para serviço mais pesado. No exemplo que segue, todas as pastas serão vasculhadas, recursivamente, a partir do diretório atual.

Neste caso, o resultado pode demorar bastante — vai depender da quantidade de imagens que você tem aí.
No meu caso, são milhares de imagens, dentro do diretório ‘Imagens’, espalhadas em vários subdiretórios. Decidi por todas as referências a abertura (Aperture) em um arquivo aberturas.txt — para verificar posteriormente, em separado. Ficou assim:


find ./ -name '*.cr2' -exec /usr/bin/exiftool {} \; | grep "Aperture" > aberturas.txt

O arquivo ficou com aproximadamente 8 mil linhas, embora sejam apenas 1564 arquivos de imagens RAW — mas a palavra “aperture” aparece, em média, mais de 4 vezes no resultado do exiftool de cada um.

Para saber quantas vezes usei a abertura 1.8, posso recorrer novamente ao grep:


cat aberturas.txt | grep "Aperture                        : 1.8"| wc -l

456

Este resultado mostra que o valor é usado em quase 1/3 das fotos.

Como descobrir a distância focal favorita nas suas fotos

Este é um dado bastante interessante, para quem pretende comprar uma lente nova — principalmente se for uma fixa (ou prime).
Saber qual a distância focal (ou focal length) que você mais usa nas suas sessões, pode ajudar determinar qual lente seria mais útil para você.
Para encontrar o meu resultado, novamente usei aqueles 3 comandos:


find ./ -name '*.cr2' -exec /usr/bin/exiftool {} \; | grep "Focal Length                    :" > distfocal.txt

No meu caso, o campo “Focal Length” se repete para cada foto em uma linha em que é dada uma distância focal equivalente. Para excluir esta redundãncia, acrescentei um “grep -v” ao final da linha de comando:


find ./ -name '*.cr2' -exec /usr/bin/exiftool {} \; | grep "Focal Length                    :" | grep -v "equivalent" > distfocal.txt

Desta forma, consigo obter um arquivo distfocal.txt com exatamente 1564 linhas — número igual ao de arquivos de imagens RAW .cr2.

Uso muito a lente do kit 75-300mm, e creio que seria interessante saber, exatamente, qual a distância focal mais usada dentro destes limites.
Esta informação pode ajudar a determinar qual lente prime seria mais útil para o meu caso: 85mm, 100mm, 135mm etc.

Conclusão

Por um lado, acredito que 1564 fotos pode ser um número muito pequeno para ser analisado, com o objetivo de determinar qual a sua distância focal favorita.
Isto varia de pessoa para pessoa.
Neste momento, acho os meus dados insuficientes para determinar “a minha maneira favorita” de fotografar.

Levar os dados obtidos para dentro de uma planilha é uma alternativa mais eficiente para obter informações sobre a maneira como você usa seu equipamento.

Eu prefiro sair para uma sessão de fotos, com apenas uma lente de zoom e brincar bastante.
Ao voltar, transfiro minhas imagens para o computador. Em seguida, rodo o exiftool, combinado com o grep, na pasta das fotos e observo as minhas estatísticas.

Me conte se você já descobriu qual a sua maneira favorita de fotografar e qual a sua lente ou distância focal preferida 😉

Link para o site oficial de downloads e documentação: https://sno.phy.queensu.ca/~phil/exiftool/.

Leia também meus outros artigos sobre o exiftool.

Como resolver o erro 1698 de acesso negado no MySQL e MariaDB

Se você obteve a mensagem ERROR 1698 ACCESS DENIED FOR USER ao tentar acessar o seu banco de dados MySQL ou MariaDB, este passo a passo pode ajudar a resolver o problema.
Abra um terminal e autentique-se no sistema como superusuário.
Agora, siga o procedimento:

  1. Autentique-se como administrador no servidor de banco de dados:
    
    mysql -u root
    

    e acesse o ‘mysql’:

    
    use mysql
    
  2. Faça a seguinte edição:
    
    update user set plugin='' where User='root';
    
  3. Por fim, “refresque” o cache e saia do servidor:
    
    flush privileges;
    exit
    

Estes 3 passos devem resolver o problema.

ERROR 1698 (28000): Access denied for user 'root'@'localhost'
ERROR 1698 (28000): Access denied for user ‘root’@’localhost’

Referências

https://superuser.com/questions/957708/mysql-mariadb-error-1698-28000-access-denied-for-user-rootlocalhost.
https://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html#error_er_access_denied_no_password_error.

Teste o seu servidor para saber se ele suporta as últimas versões do WordPress

O sistema de gestão de conteúdo WordPress não é dos mais exigentes, em termos de recursos de hardware e software, mas para ter um desempenho melhor há algumas recomendações mínimas que o seu host precisa satisfazer.
Embora o hardware e a largura de banda disponível para o tráfego sejam fundamentais para o desempenho do WordPress, como CMS (Content Management System ou sistema de gestão de conteúdo), neste post vou me ater aos requisitos de software no servidor.
Se tiver dúvidas, em algum ponto, clique nos links ou nas tags no texto para obter maiores especificidades sobre algum tema.

O que você precisa ter para poder testar o seu servidor

Servidores podem ser testados à distância, online ou através de sites especializados neste tipo de tarefa.
Por questões de segurança, contudo, muitos administradores procuram esconder informações sobre as versões dos softwares instalados nos seus sistemas.
Entretanto, um dos requisitos para instalar o WordPress é ter acesso SSH ao servidor — a menos que você vá realizar todos os procedimentos em uma máquina local.
Portanto, neste texto, partimos do pressuposto de que você tem acesso SSH (Secure SHell) ao seu servidor, que é o suficiente para obter as informações de que necessita.

O sistema operacional

Você pode instalar tudo o que precisa, para dar suporte ao WordPress em uma máquina Windows, MacOS, UNIX (FreeBSD) etc.
O sistema operacional Linux, contudo é o mais usado — pelo baixo custo e pela confiabilidade.
Há alguns testes propostos neste artigo, que levam em conta uma instalação Linux.
Estes testes pode ser realizados em outros sistemas operacionais, com pouca ou nenhuma edição.

Em outras palavras, para o fim deste artigo, o sistema operacional que você tem aí, não é tão relevante.

Os requisitos de sistema

Localmente, você pode instalar, por conta própria, um servidor LAMP (acrônimo que corresponde a Linux, Apache, MySQL/MariaDB e PHP).
Se tiver interesse em montar um servidor deste tipo, veja alguns artigos que podem te ajudar:

De maneira resumida, Para rodar a versão mais atual do WordPress, com segurança e máximo desempenho, você precisa ter suporte aos seguintes softwares (e versões):

  • Servidor web Apache ou Nginx.
  • PHP na versão 7 ou superior.
  • Um destes 2 bancos de dados:
    • MySQL 5.6 ou superior
    • MariaDB 10.0 ou superior
  • suporte a HTTPS (não é obrigatório, mas é bom ter).

É possível usar outros servidores web (com suporte a PHP e MySQL/MariaDB), tal como o Lighttpd. Além disto, versões atuais do WordPress (na data deste post) ainda funcionam em versões anteriores do PHP.
Contudo, a melhor relação entre alta performance e segurança, só serão obtidos sob aqueles requisitos listados acima.
Vale ressaltar que as versões mais antigas do PHP e do MySQL já atingiram seus tempos de vida e já não recebem atualizações de segurança — o que pode expôr o seu site a vulnerabilidades e a ataques de crackers.
Por último – e não menos importante – este site usa e recomenda o DreamHost, como provedor de hospedagem.
O DreamHost faz uso das versões mais atuais dos softwares requeridos, tem suporte a HTTPS e dispõe de instalação automática do WordPress (one-click install), o que pode te poupar muito tempo.

Como verificar se as versões dos softwares requeridos estão presentes

Acesse o servidor localmente (com um terminal) ou remotamente (via SSH) e siga os procedimentos abaixo.
Para verificar o PHP e sua versão:


php --version

PHP 7.0.19-1 (cli) (built: May 11 2017 14:04:47) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.19-1, Copyright (c) 1999-2017, by Zend Technologies

Para verificar se o MySQL está presente e sua versão:


mysql --version

mysql  Ver 15.1 Distrib 10.1.23-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Acima, note que o comando ‘mysql’ exibe a versão do MariaDB.
Isto ocorre, por que é este último que se encontra instalado e não o MySQL.
Ainda assim, pelo motivo de facilitar a transição, o comando mysql ainda funciona em instalações de bancos de dados (exclusivamente) MariaDB.
Para conferir o MariaDB:


mariadb --version

mariadb  Ver 15.1 Distrib 10.1.23-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Por fim, em sistemas Linux atuais (com o systemd) é possível conferir o status do Apache, como este comando:


systemctl status apache2

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: 
   Active: active (running) since Mon 2017-07-24 09:58:25 -03; 3 days ago
  Process: 16914 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/
 Main PID: 597 (apache2)
    Tasks: 7 (limit: 4915)
   CGroup: /system.slice/apache2.service
           ├─  597 /usr/sbin/apache2 -k start
           ├─16930 /usr/sbin/apache2 -k start
           ├─16931 /usr/sbin/apache2 -k start
           ├─16932 /usr/sbin/apache2 -k start
           ├─16933 /usr/sbin/apache2 -k start
           ├─16934 /usr/sbin/apache2 -k start
           └─17106 /usr/sbin/apache2 -k start

Outra forma de verificar a versão do Apache, está descrita neste post.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências