Con noticias de última hora: Log4Shell (CVE-2021-44228) y los intentos de explotación se generalizaron, los MSP y los equipos de TI trabajaron sin parar para evaluar la exposición, buscar posibles IoC, aplicar mitigaciones y parchear.
El problema es que, dado que esta vulnerabilidad afecta a tantas aplicaciones, y que no todos los proveedores pueden brindar un asesoramiento claro sobre si los productos se ven afectados o no (nota: NinjaOne no lo está): determinar qué sistemas son potencialmente vulnerables es un gran desafío.
Ese problema ha llevado a bastantes investigadores de seguridad y miembros de la comunidad a crear scripts y herramientas que se pueden usar para escanear entornos en busca de archivos Log4j potencialmente vulnerables y señales de IoC.
Aquí tienes algunos ejemplos:
- Probador de vulnerabilidades Huntress Log4Shell
- Detección de script de archivos Log4j de Kelvin Tegelaar
- Escáner Ninja-Log4shell de Jan Scholte
- get-log4jrcevulnerability.ps1 por Prejay Shah
- Herramienta de detección de ataques, mitigación y enumeración Log4Shell de Datto
- Log4j/Log4Shell PowerShell Scan diseñado para usar con Ninja de AshtonSolutions
- CVE-2021-44228-Log4Shell-Hashes de Rob Fuller
- Log4shell-detector de Florian Roth (que detecta intentos de explotación, NO aplicaciones vulnerables
Decidir utilizar cualquiera de los scripts disponibles es totalmente tu elección (aunque, por supuesto, siempre debes probarlos y realizar la debida diligencia previamente). No obstante, si encuentras un script que quieras probar, esta publicación te guiará a través de un ejemplo de cómo desplegarlo en tu red aprovechando los campos personalizados en NinjaOne.
Antes de empezar, si quieres ponerte al día con Log4Shell, los siguientes son excelentes recursos:
- Fantástica explicación de Log4Shell por John Strand en Black Hills Information Security
- Buena descripción general de Log4Shell con actualizaciones periódicas de Huntress
- Guía de vulnerabilidad Log4j del CISA
Ejemplo de cómo monitorear archivos Log4j con NinjaOne
Para configurar un monitor personalizado que detecte la presencia de archivos de la biblioteca Log4J en endpoints en NinjaOne, necesitarás:
- Un campo personalizado
- Un script para recopilar y almacenar los datos (ejemplo a continuación, o consulta otros ejemplos citados anteriormente)
- Una condición personalizada para crear una alerta
- Un método para desplegar el script de detección
Configuración del campo personalizado
El campo personalizado se utilizará para almacenar los datos devueltos por el script de detección.
1) Añade un nuevo campo personalizado. Como monitoreamos el resultado del script en todos los endpoints, crearemos un campo personalizado global.
2) El campo personalizado se llamará log4j y se configurará para escribir Multilínea. Usamos varias líneas ya que es posible que cada endpoint tenga varios archivos con vulnerabilidades. Las líneas múltiples harán que la información sea más legible.
3) Luego necesitamos configurar el campo personalizado. Estableceremos el script Script Access en Leer / Escribir.
Nota: si el acceso al script no está configurado en «Escribir» o «Leer/Escribir», no podrás escribir en el campo a partir de un script.
A continuación, se presenta todo lo que se requiere para configurar el campo personalizado si configuramos un campo personalizado global.
Creación de un script para extraer datos
Para fines ilustrativos, usaremos un script de ejemplo a continuación creado a partir del script de Kelvin Tegelaar provisto en CyberDrain y en la comunidad Dojo de NinjaOne. La diferencia principal con el script de Kelvin es que utiliza una herramienta externa llamada “todo” que acelera la ejecución.
Ten en cuenta que circulan scripts adicionales que también puedes consultar y personalizar , que incluyen:
Es posible que provean resultados más rápidos y eficientes.
*** Aviso legal: El uso de cualquiera de estos scripts en NinjaOne se realiza a tu propia discreción y bajo tu exclusiva responsabilidad. ***
$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»



