Living Off the Land
Windows Sysinternals
¿Qué es Windows Sysinternals?
Windows Sysinternals es un conjunto de herramientas y utilidades avanzadas del sistema desarrolladas para ayudar a los profesionales de TI a administrar, solucionar problemas y diagnosticar el sistema operativo Windows en diversos temas avanzados.
Sysinternals Suite se divide en varias categorías, que incluyen:
Gestión de discos
Gestión de proceso
Herramientas de red
Información del sistema
Herramientas de seguridad
Para utilizar las herramientas de Windows Sysinternals, debemos aceptar el acuerdo de licencia de Microsoft de estas herramientas. Podemos hacer esto pasando el argumento -accepteula
en el símbolo del sistema o mediante la GUI durante la ejecución de la herramienta.
Las siguientes son algunas herramientas populares de Windows Sysinternals:
Ayuda a los administradores del sistema a comprobar el acceso especificado a archivos, directorios, claves de registro, objetos globales y servicios de Windows .
Una herramienta que ejecuta programas en un sistema remoto .
Una herramienta avanzada de Active Directory que ayuda a ver y administrar fácilmente la base de datos de AD.
Supervisa los procesos en ejecución para detectar picos de CPU y la capacidad de volcar memoria para análisis posteriores.
Una herramienta esencial para el seguimiento de procesos .
Una herramienta que enumera todas las conexiones TCP y UDP.
La primera herramienta diseñada en la suite Sysinternals para ayudar a enumerar información detallada.
Supervisa y muestra toda la actividad de los puertos serie y paralelo en un sistema.
Proporciona información para un nombre de dominio o dirección IP específicos.
Sysinternals en vivo
Una de las grandes características de Windows Sysinternals es que no requiere instalación . Microsoft proporciona un servicio Windows Sysinternals, Sysinternals live, con varias formas de usar y ejecutar las herramientas. Podemos acceder a ellos y utilizarlos a través de:
Compartir Windows
símbolo del sistema
Para utilizar estas herramientas, puede descargarlas o ingresar la ruta de Sysinternal Live \\live.sysinternals.com\tools
en el Explorador de Windows.
Tenga en cuenta que, dado que la máquina virtual adjunta no tiene acceso a Internet, descargamos previamente las herramientas Sysinternal en C:\Tools\ .
Si está interesado en obtener más información sobre Windows Sysinternals, le sugerimos que se familiarice con los siguientes recursos adicionales :
Utilización y beneficios del Red Team
Las herramientas integradas y Sysinternals son útiles para los administradores de sistemas; estas herramientas también son utilizadas por piratas informáticos, malware y pentesters debido a la confianza inherente que tienen dentro del sistema operativo. Esta confianza es beneficiosa para los miembros del Red Team, que no quieren ser detectados ni atrapados por ningún control de seguridad en el sistema de destino. Por lo tanto, estas herramientas se han utilizado para evadir la detección y otros controles del equipo azul.
Recuerde que debido al aumento de adversarios y creadores de malware que utilizan estas herramientas hoy en día, el equipo azul está consciente del uso malicioso y ha implementado controles defensivos contra la mayoría de ellos.
LOLBAS Project
¿Qué es LOLBÁS?
LOLBAS significa L iving Of the L and B inaries And Scripts , el objetivo principal principal de un proyecto es recopilar y documentar las herramientas integradas y firmadas por Microsoft utilizadas como técnicas de Living Off the Land, incluidos binarios, scripts y bibliotecas.
El sitio web de LOLBAS proporciona una cómoda barra de búsqueda para consultar todos los datos disponibles. Es sencillo buscar un binario; incluir el nombre binario mostrará el resultado. Sin embargo, si queremos buscar una función específica, debemos proporcionar un / antes del nombre de la función. Por ejemplo, si buscamos todas las funciones de ejecución, deberíamos usar /execute . De manera similar, para buscar según los tipos, debemos usar el símbolo # seguido del nombre del tipo. Los siguientes son los tipos incluidos en el proyecto:
Guion
Binario
Bibliotecas
OtrosMSBinarios
Criterios de herramientas (Tools Criteria)
Se requieren criterios específicos para que una herramienta sea una técnica de "Living Off the Land" y sea aceptada como parte del proyecto LOLBAS:
Archivo firmado por Microsoft nativo del sistema operativo o descargado de Microsoft.
Tener funciones adicionales interesantes no deseadas que no están cubiertas por casos de uso conocidos.
Beneficia una APT (amenaza persistente avanzada) o la participación del equipo rojo.
Funcionalidades interesantes
El proyecto LOLBAS acepta envíos de herramientas que se ajusten a una de las siguientes funcionalidades:
Ejecución de código arbitrario
Operaciones de archivos, incluida la descarga, carga y copia de archivos.
Compilando código
Persistencia, incluida la ocultación de datos en flujos de datos alternativos (ADS) o la ejecución al iniciar sesión.
derivación de UAC
Memoria del proceso de volcado
inyección de DLL
File Operations
Esta tarea muestra herramientas de uso común basadas en funcionalidades y actividades de malware observadas en el mundo real, así como en las interacciones del equipo rojo.
Esta tarea resaltará algunas técnicas interesantes de "Vivir de la tierra" que pretenden usarse en una operación de archivos, incluida la descarga, carga y codificación.
Certutil
Para ilustrar esto con un ejemplo, podemos usar certutil.exe para descargar un archivo del servidor web de un atacante y almacenarlo en la carpeta temporal de Windows, usando el siguiente comando. Tenga en cuenta que utilizamos los parámetros -urlcache y -split -f para hacer que la herramienta descargue desde la URL proporcionada utilizando la técnica de división.
-urlcache
para mostrar la URL, habilita la opción de URL para usar en el comando -split -f
para dividir y forzar la recuperación de archivos desde la URL proporcionada.
Símbolo del sistema
Introducir el contenido del contenedor de la terminal (revisit)
/Transfer
para usar la opción de transferencia
/Download
, especificamos la transferencia usando el tipo de descarga
/Priority
, configuramos la prioridad del trabajo que se ejecutará en primer plano
FindStr
Sin embargo, se encontró una forma no deseada al usar findstr.exe para descargar archivos remotos de carpetas compartidas SMB dentro de la red de la siguiente manera :
/V
para imprimir las líneas que no contienen la cadena proporcionada. dummystring
del texto a buscar; en este caso, proporcionamos una cadena que no debe encontrarse en un archivo.
> c:\Windows\Temp\test.exe
redirige la salida a un archivo en la máquina de destino.
File Execution
Esta tarea muestra varias formas de ejecutar un binario dentro del sistema operativo. El caso típico de ejecutar un binario involucra varios métodos conocidos como usar la línea de comando cmd.exe
o desde el escritorio. Sin embargo, existen otras formas de lograr la ejecución de la carga útil abusando de otros binarios del sistema, una de las cuales es ocultar o reforzar el proceso de la carga útil. Basada en el marco MITRE ATT&CK, esta técnica se llama ejecución de proxy binario firmado o ejecución de comando indirecto , donde el atacante aprovecha otras herramientas del sistema para generar cargas útiles maliciosas. Esta técnica también ayuda a evadir los controles defensivos.
Explorador de archivos
File Explorer es un administrador de archivos y un componente del sistema para Windows. La gente descubrió que usar el binario del explorador de archivos puede ejecutar otros archivos .exe
. Esta técnica se llama Ejecución de comandos indirectos , donde se puede usar y abusar de la herramienta explorer.exe
para iniciar scripts o ejecutables maliciosos desde un proceso principal confiable.
El binario explorer.exe
se encuentra en:
Para crear un proceso hijo del padre explorer.exe , podemos ejecutar el siguiente comando:
Como resultado del comando anterior, colocamos la calculadora en el escritorio.
WMIC
El comando WMIC
anterior crea un nuevo proceso de un binario de nuestra elección, que en este caso calc.exe
Rundll32
El binario rundll32.exe
se encuentra en:
Ahora intentemos ejecutar un binario calc.exe
como prueba de concepto usando el binario rundll32.exe
:
En el comando anterior, utilizamos el binario rundll32.exe
que incorpora un componente de JavaScript, eval() , para ejecutar el binario calc.exe , una calculadora de Microsoft.
Como mencionamos anteriormente, también podemos ejecutar scripts de PowerShell usando rundll32.exe . El siguiente comando ejecuta JavaScript que ejecuta un script de PowerShell para descargar desde un sitio web remoto usando rundll32.exe .
Símbolo del sistema
Como resultado de la ejecución anterior, se descarga una copia del script.ps1 en la memoria de la máquina de destino
Application Whitelisting Bypasses
Omitir la lista blanca de aplicaciones(Bypassing Application Whitelisting)
La lista blanca de aplicaciones es una característica de seguridad de endpoints de Microsoft que evita que programas maliciosos y no autorizados se ejecuten en tiempo real. La lista blanca de aplicaciones se basa en reglas, donde especifica una lista de aplicaciones aprobadas o archivos ejecutables que pueden estar presentes y ejecutarse en un sistema operativo. Esta tarea se centra en ejemplos de LOLBAS que se utilizan para omitir la lista blanca de aplicaciones de Windows.
Regsvr32
Regsvr32 es una herramienta de línea de comandos de Microsoft para registrar y cancelar el registro de bibliotecas de vínculos dinámicos (DLL) en el Registro de Windows. El binario regsvr.exe se encuentra en:
Intentemos aplicar esta técnica en la vida real. Primero, necesitamos crear un archivo DLL
malicioso usando msvenom y configurar nuestro oyente Metasploit para recibir un shell inverso. Tenga en cuenta que crearemos un archivo malicioso que funciona para sistemas operativos de 32 bits. Usaremos la técnica de omisión de lista blanca de aplicaciones regsvr32.exe
para ejecutar un comando en un sistema de destino.
Tenga en cuenta que especificamos el tipo de salida como DLL
usando el argumento -f
. Una vez que se genera el archivo DLL
malicioso, debemos entregar la carga útil a la máquina víctima. Haremos esto usando un servidor web para servir el archivo DLL en nuestra máquina atacante de la siguiente manera:
Desde la máquina víctima, visite el servidor web de la máquina atacante en el puerto 1337
que especificamos. ¡Tenga en cuenta que este puerto se puede cambiar según su elección!
En la máquina víctima, una vez descargado el archivo DLL, lo ejecutamos usando regsvr32.exe
de la siguiente manera:
Con la segunda opción, que es un comando más avanzado, le indicamos al regsvr32.exe
que se ejecute:
/s
: en modo silencioso (sin mostrar mensajes)/n
: para no llamar al servidor de registro DLL/i
: : para usar otro servidor ya que usamos /n/u
: para ejecutar con el método de cancelación del registro
En la máquina atacante, deberíamos recibir un caparazón inverso.
Tenga en cuenta que si queremos crear una versión DLL
de 64 bits , debemos especificarla en el comando msfvenom
y ejecutarla desde la máquina víctima usando la versión de 64 bits de regsvr32.exe
en C:\Windows\SysWOW64\regsvr32.exe
Bourne Again Shell (Bash)
Tenga en cuenta que debe habilitar e instalar el subsistema de Windows para Linux en Windows 10 para usar el binario bash.exe . Además, la máquina virtual adjunta no tiene habilitado el subsistema Linux debido a restricciones de virtualización anidadas.
Other Techniques
Esta sección destaca un par de técnicas interesantes utilizadas, ya sea para acceso inicial o persistencia. Las siguientes técnicas pertenecen al grupo Living Off the Land ya que pueden usarse como parte de las utilidades del entorno Windows.
Shortcuts
Para utilizar la técnica de modificación de accesos directos, podemos configurar la sección de destino para ejecutar archivos usando:
Rundll32
Potencia Shell
legal fr32
Ejecutable en disco
No PowerShell!
En 2019, Red Canary publicó un informe de detección de amenazas que afirmaba que PowerShell es la técnica más utilizada para actividades maliciosas. Por lo tanto, las organizaciones comenzaron a monitorear o bloquear la ejecución de powershell.exe . Como resultado, los adversarios encuentran otras formas de ejecutar código PowerShell sin generarlo.
PowerLessShell es una herramienta basada en Python que genera código malicioso para ejecutarse en una máquina de destino sin mostrar una instancia del proceso de PowerShell. PowerLessShell se basa en el abuso de Microsoft Build Engine (MSBuild), una plataforma para crear aplicaciones de Windows, para ejecutar código remoto.
Primero, descarguemos una copia del proyecto desde el repositorio de GitHub en AttackBox:
Uno de los requisitos del proyecto es obtener una carga útil de PowerShell para que sea adecuado para trabajar con MSBuild. En AttackBox, necesitamos generar una carga útil de PowerShell usando msfvenom de la siguiente manera:
Además, necesitamos ejecutar el marco Metasploit para escuchar y esperar el shell inverso.
Ahora que tenemos la carga útil lista, cambie al proyecto del directorio PowerLessShell para convertir la carga útil para que sea compatible con la herramienta MSBuild. Luego ejecute la herramienta PowerLessShell y configure el archivo fuente como el que creamos con msfvenom
de la siguiente manera:
Una vez que el comando se ejecuta correctamente, debemos transferir el archivo de salida a la máquina con Windows. Puede hacer esto usando el comando SCP o configurar un servidor web para alojar el archivo en AttackBox ( python3 -m http.server 1337
) y descargar el archivo usando el navegador.
Finalmente, en la máquina Windows de destino, cree el archivo .csproj y espere el shell inverso.
Una vez que ejecutemos el comando MSBuild, espere un par de segundos hasta que recibamos un shell inverso. Tenga en cuenta que no se estará ejecutando ningún proceso powershell.exe .
Última actualización