eJPT · Fundamentals
Windows Fundamentals
Difficoltà: Beginner Time to Master: 2h Prerequisiti: 03-Linux-Fundamentals.md Lab: INE PTS, Windows Fundamentals
Obiettivo
Se vieni dal mondo Linux, preparati a un cambio di paradigma: qui non ci sono /etc/passwd e permessi ottali, ma SAM, LSASS e una gerarchia di gruppi che decide chi controlla cosa. La maggior parte degli host che incontri in un lab eJPTv2 è Windows, spesso agganciato a un dominio Active Directory, e senza questi concetti di base l’enumeration e la privilege escalation restano una sequenza di comandi che copi senza capire cosa stai davvero guardando.
Concetti chiave
Utenti e gruppi: locali vs dominio
| Tipo | Ambito | Esempio |
|---|---|---|
| Utente locale | valido solo su quella macchina | .\Administrator |
| Utente di dominio | valido su tutta la Active Directory | DOMAIN\jsmith |
| Gruppo locale importante | Administrators, Users, Remote Desktop Users | controlla i privilegi locali |
| Gruppo di dominio importante | Domain Admins, Enterprise Admins | controllo totale sul dominio se compromesso |
Active Directory: concetti base
| Concetto | Significato |
|---|---|
| Domain Controller (DC) | server che gestisce autenticazione/autorizzazione del dominio (esegue AD DS) |
| Domain | confine logico di gestione di utenti/computer/policy |
| OU (Organizational Unit) | contenitore per organizzare oggetti AD e applicare GPO |
| GPO (Group Policy Object) | regole applicate centralmente a utenti/computer |
| Trust | relazione che permette autenticazione tra domini diversi |
| Kerberos | protocollo di autenticazione di default in AD (ticket-based) |
File credenziali chiave
| File/DB | Contenuto | Dove si trova |
|---|---|---|
| SAM (Security Account Manager) | hash NTLM degli utenti locali | C:\Windows\System32\config\SAM, accessibile solo con privilegi elevati/offline |
| NTDS.dit | database degli account dell’intero dominio | solo sui Domain Controller |
| LSASS | processo di memoria che gestisce credenziali in sessione | target tipico di Mimikatz |
CMD vs PowerShell essenziali
| Task | CMD | PowerShell |
|---|---|---|
| Lista utenti locali | net user |
Get-LocalUser |
| Lista processi | tasklist |
Get-Process |
| Info sistema | systeminfo |
Get-ComputerInfo |
| Rete/IP | ipconfig /all |
Get-NetIPAddress |
| Servizi | sc query |
Get-Service |
| Task pianificati | schtasks /query |
Get-ScheduledTask |
Registry essenziale
HKLM\SYSTEM,HKLM\SAM: configurazione di sistema e account (accesso ristretto)HKCU\...\Run: chiavi di autorun tipiche per persistenza- Accesso da riga di comando:
reg query HKLM\Software\...
Strumenti
| Tool | Comando base | Output | Note |
|---|---|---|---|
| net.exe | net user, net localgroup administrators |
utenti/gruppi locali | disponibile su ogni Windows |
| PowerShell | Get-LocalUser, whoami /priv |
info dettagliate utente/privilegi | più potente di cmd, spesso monitorato |
| wmic (legacy) | wmic qfe list |
patch/hotfix installati | deprecato nelle build recenti ma ancora comune |
| whoami | whoami /all |
utente, gruppi, privilegi correnti | primo comando dopo ogni shell ottenuta |
Payload / Esempi
Esempio 1: enumerazione rapida post-shell
whoami /all
Get-LocalUser
Get-LocalGroupMember Administrators
systeminfo
Spiegazione: i primi comandi da lanciare dopo aver ottenuto accesso: chi sono, che privilegi ho, chi altro c’è sulla macchina, che versione/patch level ha il sistema (utile per cercare exploit di privesc noti).
Esempio 2: verificare i privilegi correnti per privesc
whoami /priv
Output atteso:
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= =============================== ========
SeImpersonatePrivilege Impersonate a client... Enabled
Spiegazione: SeImpersonatePrivilege abilitato è il prerequisito classico per tecniche di privesc come i “potato exploit” (vedi 08-Exploitation-PostEx/03-Privilege-Escalation-Windows.md).
Common Mistakes
- Confondere un utente locale amministratore con “Domain Admin”: privilegi completamente diversi
- Ignorare
whoami /priv: molte privesc Windows dipendono da privilegi specifici abilitati, non solo dal gruppo - Dimenticare che PowerShell può essere loggato/monitorato (AMSI, transcript): rilevante per capire perché un payload “funziona in lab ma non in produzione”
Link Utili
Connessioni
- Prerequisito: 03-Linux-Fundamentals.md
- Prossimo Step: 05-Cryptography-Basics.md
- Combinazione con: 08-Exploitation-PostEx/03-Privilege-Escalation-Windows.md
Checklist di padronanza
- So la differenza tra utente locale e utente di dominio
- Conosco il ruolo di SAM, NTDS.dit e LSASS
- So enumerare utenti/gruppi/privilegi con cmd e PowerShell
- Capisco cosa sono OU e GPO in Active Directory