Com as últimas notícias sobre: Log4Shell (CVE-2021-44228) e as tentativas de exploração se espalharam, os MSPs e as equipes de TI têm trabalhado sem parar para avaliar sua exposição, verificar possíveis IoCs, aplicar atenuações e aplicar patches.
O problema é que, como essa vulnerabilidade afeta tantos aplicativos, e como nem todos os fornecedores conseguiram fornecer uma orientação clara sobre se seus produtos foram afetados ou não (note: A NinjaOne não é) – determinar quais sistemas são potencialmente vulneráveis é um grande desafio.
Esse problema levou vários pesquisadores de segurança e membros da comunidade a criar scripts e ferramentas que podem ser usados para verificar ambientes em busca de arquivos Log4j potencialmente vulneráveis e sinais de IoCs.
Os exemplos incluem:
- Testador de vulnerabilidade Huntress Log4Shell
- Script Detectando arquivos Log4j de Kelvin Tegelaar
- Ninja-Log4shell-Scanner de Jan Scholte
- get-log4jrcevulnerability.ps1 por Prejay Shah
- Ferramenta de enumeração, mitigação e detecção de ataques do Datto Log4Shell
- Log4j/Log4Shell PowerShell Scan projetado para uso com o Ninja da AshtonSolutions
- Rob Fuller’s CVE-2021-44228-Log4Shell-Hashes
- O log4shell-detector de Florian Roth (que detecta tentativas de exploração de aplicativos NÃO vulneráveis)
A decisão de utilizar qualquer um dos scripts disponíveis depende inteiramente de você (sempre teste e faça a devida diligência primeiro, é claro), mas se você encontrar um script que queira experimentar, esta postagem o guiará por um exemplo de como implantá-lo em sua rede, aproveitando os campos personalizados no NinjaOne.
Antes de começarmos, se você quiser se familiarizar com o Log4Shell, os recursos a seguir são excelentes:
- Fantástica explicação do Log4Shell por John Strand, da Black Hills Information Security
- Boa visão geral do Log4Shell com atualizações regulares da Huntress
- Orientação sobre vulnerabilidade do Log4j da CISA
Exemplo de como monitorar os arquivos Log4j usando o NinjaOne
Para configurar um monitor personalizado que detecte a presença de arquivos da biblioteca Log4J em pontos de extremidade no Ninja, você precisará:
- Um campo personalizado
- Um script para coletar e armazenar os dados (exemplo abaixo, ou você pode consultar outros exemplos citados acima)
- Uma condição personalizada para criar um alerta
- Um método para implantar o script de detecção
Configuração do campo personalizado
O campo personalizado será usado para armazenar os dados retornados pelo script de detecção.
1) Adicione um novo campo personalizado. Como estaremos monitorando o resultado do script em todos os pontos de extremidade, criaremos um campo personalizado global.
2) O campo personalizado terá o nome log4j e será definido como do tipo Multi-line. Usamos multilinha porque cada endpoint pode ter vários arquivos com vulnerabilidades. O uso de várias linhas tornará essas informações mais legíveis.
3) Em seguida, precisamos configurar o campo personalizado. Definiremos o script Script Access como Read / Write.
Observação: se o acesso ao script não estiver definido como “Write” ou “Read / Write”, você não poderá gravar nesse campo a partir de um script.
Isso é tudo o que é necessário para configurar o campo personalizado se estivermos configurando um campo personalizado global.
Criação de um script para extrair dados
Para fins ilustrativos, usaremos um script de exemplo abaixo, criado a partir do script de Kelvin Tegelaar fornecido no CyberDrain e no NinjaOne Community Dojo. A principal diferença do script do Kelvin é que ele usa uma ferramenta externa chamada “Everything”, que pode acelerar a execução.
Observe que há outros scripts em circulação que você também pode consultar e personalizar , inclusive:
- Jan Scholte’s Ninja-Log4shell-Scanner
- get-log4jrcevulnerability.ps1 por Prejay Shah
Eles podem fornecer resultados mais rápidos e eficientes.
*** Isenção de responsabilidade: O uso de qualquer um desses scripts na Ninja é feito a seu próprio critério e risco. ***
$array = @() $Drives = Get-PSDrive -PSProvider 'FileSystem'
foreach($Drive in $Drives) {
$drivePath = $Drive.name + “:”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
$array += gci $drivePath -rec -force -include *.jar -ea 0 | foreach {select-string “”JndiLookup.class”” $_} | select -exp Path”



