Tento dokument definuje záväzné bezpečnostné nastavenia pre operačný systém Windows 11, ktoré musia byť implementované na všetkých pracovných staniciach a notebookoch v rámci organizácie MHITE s.r.o. Cieľom je vytvoriť jednotný, bezpečný a auditovateľný základ pre všetky koncové zariadenia.
| Rola | Zodpovednosť |
|---|---|
| IT Administrátor | Implementácia a údržba nastavení, monitoring compliance |
| Security Officer | Audit, schvaľovanie výnimiek, incident response |
| Helpdesk | Základná diagnostika, eskalácia problémov |
| Management | Schvaľovanie politík, alokovanie zdrojov |
Tento dokument vychádza z nasledujúcich medzinárodne uznávaných bezpečnostných štandardov a best practices:
| Štandard | Verzia | Popis | Použitie v dokumente |
|---|---|---|---|
| CIS Benchmark | Windows 11 v3.0.0 | Center for Internet Security – komplexný hardening guide | Základný framework pre všetky nastavenia |
| Microsoft Security Baseline | Windows 11 24H2 | Oficiálny Microsoft hardening guide | GPO nastavenia, Defender konfigurácia |
| NIST SP 800-53 | Rev. 5 | Security and Privacy Controls | Kontrolné mechanizmy, audit |
| ISO 27001:2022 | 2022 | Information Security Management | Rizikový framework, dokumentácia |
| MITRE ATT&CK | v14 | Adversarial Tactics, Techniques | Mapovanie hrozieb na ochranné opatrenia |
CIS X.Y.Z kde X = kategória, Y = podkategória, Z = konkrétne nastavenie.
Pravidelné a riadené aktualizácie systému Windows 11 sú kritickým prvkom zabezpečenia. Microsoft vydáva bezpečnostné aktualizácie každý druhý utorok v mesiaci ("Patch Tuesday"), ale kritické opravy (out-of-band updates) môžu byť vydané kedykoľvek.
| CVE | Názov | CVSS | Typ útoku | MITRE ATT&CK |
|---|---|---|---|---|
| CVE-2024-38063 | TCP/IP RCE | 9.8 | Remote Code Execution bez autentifikácie | T1190 - Exploit Public-Facing Application |
| CVE-2021-34527 | PrintNightmare | 8.8 | RCE cez Print Spooler | T1210 - Exploitation of Remote Services |
| CVE-2020-1472 | Zerologon | 10.0 | Domain Controller takeover | T1068 - Exploitation for Privilege Escalation |
| CVE-2017-0144 | EternalBlue | 9.8 | SMBv1 RCE (WannaCry, NotPetya) | T1210 - Exploitation of Remote Services |
Popis: Útočník skenuje internet na systémy so zraniteľnosťou (napr. EternalBlue).
Po identifikácii zraniteľného systému spúšťa exploit a nasadzuje ransomware.
Priebeh:
1. Masscan/Shodan sken na port 445
2. Identifikácia systémov bez patchov (SMBv1 enabled)
3. Exploit cez EternalBlue (MS17-010)
4. Payload: ransomware (WannaCry, Ryuk)
5. Šifrovanie súborov, požiadavka výkupného
Mitigácia: Okamžitá inštalácia security updates, disable SMBv1
MITRE ATT&CK: T1210 - Exploitation of Remote Services
Popis: Útočník s obmedzeným prístupom využíva neopravenú lokálnu zraniteľnosť
na získanie SYSTEM privilégií.
Priebeh:
1. Útočník má user-level prístup (phishing, slabé heslo)
2. Identifikuje chýbajúce patchy (systeminfo, Windows Exploit Suggester)
3. Spúšťa exploit pre lokálnu privilege escalation
4. Získava SYSTEM/Administrator práva
5. Perzistencia, credential dumping, lateral movement
Mitigácia: Pravidelné quality updates, principle of least privilege
MITRE ATT&CK: T1068 - Exploitation for Privilege Escalation
| Nastavenie | Hodnota | Risk Level | CIS Ref | Popis |
|---|---|---|---|---|
| Automatické aktualizácie | Zapnuté | Critical | 18.9.102.1 | Automatické sťahovanie a inštalácia bezpečnostných aktualizácií |
| Aktualizácie pre iné produkty MS | Zapnuté | High | 18.9.102.2 | Aktualizácie pre Office, Edge, .NET a ďalšie MS produkty |
| Odloženie feature updates | 180 dní | Medium | 18.9.102.4 | Oddialenie veľkých aktualizácií pre testovanie kompatibility |
| Odloženie quality updates | 0–7 dní | Low | 18.9.102.5 | Bezpečnostné opravy inštalovať čo najskôr |
| Reštart po aktualizácii | Plánovaný | Medium | 18.9.102.6 | Vyžadovať reštart v definovanom maintenance window |
# Windows Update GPO nastavenia
# Cesta: Computer Configuration > Administrative Templates > Windows Components > Windows Update
# Konfigurácia automatických aktualizácií
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" `
-Name "NoAutoUpdate" -Type DWord -Value 0
# Plánovaná inštalácia – každý deň o 3:00
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" `
-Name "AUOptions" -Type DWord -Value 4
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" `
-Name "ScheduledInstallDay" -Type DWord -Value 0
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" `
-Name "ScheduledInstallTime" -Type DWord -Value 3
# Aktualizácie pre iné MS produkty
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" `
-Name "AllowMUUpdateService" -Type DWord -Value 1
Settings > Windows UpdateGet-HotFix | Sort-Object InstalledOn -Descending | Select -First 10Microsoft Defender Antivirus je integrované antivírusové riešenie, ktoré poskytuje real-time ochranu proti malvéru, ransomvéru a ďalším hrozbám. V kombinácii s cloudovou ochranou dosahuje detection rate porovnateľnú s komerčnými riešeniami.
| Nastavenie | Hodnota | Risk | CIS | Detailný popis |
|---|---|---|---|---|
| Real-time protection | On | Critical | 18.9.47.4.1 |
Neustále monitoruje všetky pristupované súbory, procesy a sieťovú komunikáciu.
Okamžite blokuje pokusy o spustenie škodlivého kódu.
MITRE: T1059 (Command and Scripting Interpreter) |
| Cloud-delivered protection | On | Critical | 18.9.47.4.2 |
Využíva Microsoft Intelligent Security Graph pre okamžitú detekciu nových hrozieb.
Umožňuje detekciu zero-day malvéru do 10 sekúnd od prvého výskytu.
MITRE: T1204 (User Execution) |
| Automatic sample submission | On | High | 18.9.47.4.3 |
Automaticky odosiela podozrivé súbory do Microsoftu na analýzu.
Pomáha zlepšovať globálnu detekciu hrozieb.
Poznámka: Možnosť nastaviť "Send safe samples automatically" |
| Tamper Protection | On | Critical | 18.9.47.4.4 |
Zabraňuje malvéru a útočníkom vypnúť alebo zmeniť nastavenia Defendera.
Chráni aj pred legitímnymi admin nástrojmi zneužitými útočníkom.
MITRE: T1562.001 (Impair Defenses: Disable or Modify Tools) |
| Controlled Folder Access | On | High | 18.9.47.4.5 |
Ochrana proti ransomvéru – blokuje neautorizované zmeny v chránených priečinkoch
(Documents, Pictures, Desktop atď.).
MITRE: T1486 (Data Encrypted for Impact) |
| Network Protection | On | High | 18.9.47.4.6 |
Blokuje pripojenia na známe škodlivé domény a IP adresy.
Integrované s Microsoft Defender SmartScreen.
MITRE: T1071 (Application Layer Protocol) |
Popis: Útočník posiela phishing email s Word dokumentom obsahujúcim škodlivé makro.
Po otvorení a povolení makier sa spustí PowerShell downloader.
Priebeh:
1. Email s prílohou "Faktura.docm"
2. Používateľ otvorí dokument a klikne "Enable Content"
3. Makro spustí powershell.exe -enc [base64_payload]
4. Stiahne sa Emotet/TrickBot loader
5. Malvér kradne credentials, šíri sa sieťou
Ochrana: ASR pravidlo "Block Office applications from creating executable content"
MITRE ATT&CK: T1566.001 - Phishing: Spearphishing Attachment
Popis: Ransomware (LockBit, BlackCat) šifruje súbory a požaduje výkupné.
Controlled Folder Access blokuje neautorizovaný prístup k dokumentom.
Priebeh bez ochrany:
1. Ransomware sa spustí (phishing, RDP brute-force, exploit)
2. Enumerácia súborov (Documents, Desktop, Network shares)
3. Šifrovanie súborov s vlastnou príponou (.lockbit, .blackcat)
4. Vymazanie VSS snapshotov
5. Ransom note s platobným požiadavkom
Ochrana: Controlled Folder Access, real-time protection, cloud protection
MITRE ATT&CK: T1486 - Data Encrypted for Impact
Popis: Malvér sa pokúša vypnúť Defender pred spustením hlavného payloadu.
Tamper Protection blokuje všetky pokusy o modifikáciu nastavení.
Pokus o bypass:
1. Set-MpPreference -DisableRealtimeMonitoring $true - BLOKOVANÉ
2. sc stop WinDefend - BLOKOVANÉ
3. Registry úprava nastavení - BLOKOVANÉ
4. GPO zmena - BLOKOVANÉ
Ochrana: Tamper Protection (vyžaduje Microsoft Defender for Endpoint alebo Windows Security app)
MITRE ATT&CK: T1562.001 - Impair Defenses: Disable or Modify Tools
# Overenie aktuálneho stavu Defendera
Get-MpComputerStatus | Select-Object `
AntivirusEnabled, `
RealTimeProtectionEnabled, `
IoavProtectionEnabled, `
AntispywareEnabled, `
BehaviorMonitorEnabled, `
OnAccessProtectionEnabled
# Zapnutie všetkých ochranných funkcií
Set-MpPreference -DisableRealtimeMonitoring $false
Set-MpPreference -MAPSReporting Advanced
Set-MpPreference -SubmitSamplesConsent SendAllSamples
Set-MpPreference -EnableControlledFolderAccess Enabled
Set-MpPreference -EnableNetworkProtection Enabled
Set-MpPreference -PUAProtection Enabled
# Nastavenie plánovaných scanov
Set-MpPreference -ScanScheduleDay Everyday
Set-MpPreference -ScanScheduleTime 12:00:00
Set-MpPreference -ScanParameters FullScan
# Aktualizácia definícií
Update-MpSignature
Virtualization-based Security (VBS) využíva hardvérovú virtualizáciu na vytvorenie izolovaného pamäťového regiónu oddeleného od normálneho operačného systému. Tento "secure kernel" chráni kritické systémové procesy a credentials pred kompromitovaným hlavným OS.
| Komponent | Hodnota | Risk | CIS | Detailný popis a scenár útoku |
|---|---|---|---|---|
| Memory Integrity (HVCI) | On | Critical | 18.9.5.1 |
Čo robí: Všetky ovládače a kernel kód musia byť podpísané a overené pred spustením.
Zabraňuje injekcii škodlivého kódu do kernel priestoru. Scenár útoku: Útočník zneužije zraniteľný ovládač (BYOVD – Bring Your Own Vulnerable Driver) na spustenie kernel-level malvéru. HVCI toto blokuje. MITRE: T1068 (Exploitation for Privilege Escalation) |
| Credential Guard | On | Critical | 18.9.5.2 |
Čo robí: Izoluje NTLM hashe, Kerberos tickets a ďalšie credentials v zabezpečenom kontajneri.
Ani administrátor s full kernel access nemôže získať credentials. Scenár útoku: Mimikatz a podobné nástroje NEDOKÁŽU extrahovať credentials z pamäte. MITRE: T1003 (OS Credential Dumping) |
| LSA Protection | On | Critical | 18.9.5.3 |
Čo robí: Spúšťa LSASS proces ako Protected Process Light (PPL).
Blokuje injection a memory read z neautorizovaných procesov. Scenár útoku: Útočník sa pokúša o process injection do LSASS – PPL to zablokuje. MITRE: T1055 (Process Injection) |
| Kernel DMA Protection | On | High | 18.9.5.4 |
Čo robí: Blokuje DMA útoky cez externé porty (Thunderbolt, PCIe).
Vyžaduje IOMMU/VT-d podporu. Scenár útoku: Fyzický prístup s PCILeech/DMA útočným zariadením – blokované. MITRE: T1200 (Hardware Additions) |
| Vulnerable Driver Blocklist | On | High | 18.9.5.5 |
Čo robí: Blokuje známe zraniteľné ovládače, ktoré útočníci zneužívajú.
Zoznam je automaticky aktualizovaný cez Windows Update. Scenár útoku: BYOVD útok s ovládačom ako gdrv.sys, capcom.sys – blokované. MITRE: T1068 (Exploitation for Privilege Escalation) |
# ===== OVERENIE AKTUÁLNEHO STAVU VBS =====
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard | `
Select-Object -Property SecurityServicesRunning, VirtualizationBasedSecurityStatus
# ===== ZAPNUTIE MEMORY INTEGRITY (HVCI) =====
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" `
-Name "Enabled" -Type DWord -Value 1
# ===== ZAPNUTIE CREDENTIAL GUARD =====
# Vyžaduje reštart systému
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
-Name "LsaCfgFlags" -Type DWord -Value 1
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard" `
-Name "EnableVirtualizationBasedSecurity" -Type DWord -Value 1
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard" `
-Name "LsaCfgFlags" -Type DWord -Value 1
# ===== ZAPNUTIE LSA PROTECTION (PPL) =====
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
-Name "RunAsPPL" -Type DWord -Value 1
# ===== ZAPNUTIE VULNERABLE DRIVER BLOCKLIST =====
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CI\Config" `
-Name "VulnerableDriverBlocklistEnable" -Type DWord -Value 1
# ===== VERIFIKÁCIA PO REŠTARTE =====
# Spustite po reštarte systému
msinfo32 # Pozrite sekciu "Virtualization-based security"
Get-ComputerInfo | Select-Object DeviceGuard*
Windows Defender Firewall je stavový firewall integrovaný do Windows 11. Poskytuje ochranu pred neoprávneným sieťovým prístupom a umožňuje granulárnu kontrolu prichádzajúcej a odchádzajúcej komunikácie.
| Profil | Stav | Inbound | Outbound | Logovanie | Použitie |
|---|---|---|---|---|---|
| Domain | Zapnutý | Block | Allow | Áno (dropped) | Zariadenie pripojené do AD domény |
| Private | Zapnutý | Block | Allow | Áno (dropped) | Domáca/firemná sieť označená ako trusted |
| Public | Zapnutý | Block | Allow | Áno (all) | Verejná Wi-Fi, hotely, letiská |
Server Message Block (SMB) je protokol pre zdieľanie súborov a tlačiarní. SMBv1 je zastaraný a má kritické zraniteľnosti (WannaCry, NotPetya).
Popis: Útočník v sieti zachytáva LLMNR broadcast dotazy a odpovedá ako
požadovaný server, čím získava NTLMv2 hashe prihlásených používateľov.
Priebeh:
1. Útočník spúšťa Responder na svojom stroji
2. Používateľ zadá \\srevr\share (preklep)
3. Windows vysiela LLMNR broadcast "kto je srevr?"
4. Responder odpovie a zachytí NTLMv2 hash
5. Offline cracking alebo relay útok
Mitigácia: EnableMulticast = 0, NetBIOS off
MITRE ATT&CK: T1557.001 - LLMNR/NBT-NS Poisoning
Popis: Útočník presmeruje NTLM autentifikáciu od obete na iný server,
získavajúc prístup s oprávneniami obete bez znalosti hesla.
Priebeh:
1. Útočník zachytí NTLM auth (Responder, phishing link)
2. Relay na SMB port cieľového servera
3. Autentifikácia prebehne s credentials obete
4. Útočník získa prístup k súborom/admin share
Mitigácia: SMB Signing Required, EPA (Extended Protection for Auth)
MITRE ATT&CK: T1557.001 - LLMNR/NBT-NS Poisoning and SMB Relay
Popis: Zneužitie kritickej zraniteľnosti v SMBv1 pre remote code execution
bez autentifikácie. Použité v najväčších ransomware útokoch (WannaCry, NotPetya).
Priebeh:
1. Sken siete na port 445 s povoleným SMBv1
2. Exploit MS17-010 (buffer overflow)
3. Payload: Meterpreter, ransomware, backdoor
4. SYSTEM privilégiá bez autentifikácie
Mitigácia: Disable SMBv1, patch MS17-010
MITRE ATT&CK: T1210 - Exploitation of Remote Services
# ===== KONFIGURÁCIA FIREWALL PROFILOV =====
# Zapnutie firewallu pre všetky profily
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
# Nastavenie default akcie - blokovať prichádzajúce, povoliť odchádzajúce
Set-NetFirewallProfile -Profile Domain,Public,Private `
-DefaultInboundAction Block `
-DefaultOutboundAction Allow
# Zapnutie logovania pre všetky profily
Set-NetFirewallProfile -Profile Domain,Public,Private `
-LogFileName "%SystemRoot%\System32\LogFiles\Firewall\pfirewall.log" `
-LogMaxSizeKilobytes 32767 `
-LogBlocked True `
-LogAllowed False
# ===== SMB HARDENING =====
# Zakázanie SMBv1 (KRITICKÉ!)
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
# Overenie stavu SMBv1
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol
# Zakázanie SMB Guest logons
Set-SmbClientConfiguration -EnableSecuritySignature $true -Force
Set-SmbServerConfiguration -EnableSecuritySignature $true -Force
Set-SmbServerConfiguration -RequireSecuritySignature $true -Force
# ===== ZAKÁZANIE LLMNR A NETBIOS =====
# Zakázanie LLMNR (Link-Local Multicast Name Resolution)
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" `
-Name "EnableMulticast" -Type DWord -Value 0
# ===== VERIFIKÁCIA FIREWALL STAVU =====
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction
Get-NetFirewallRule | Where-Object {$_.Enabled -eq 'True'} | `
Select-Object DisplayName, Direction, Action | Format-Table
Auditné politiky sú základom pre detekciu bezpečnostných incidentov, forenznú analýzu a compliance reporting. Bez správne nastavených audit politík nie je možné efektívne detegovať alebo vyšetrovať bezpečnostné udalosti.
| Kategória | Success | Failure | Event IDs | MITRE | Popis detekcie |
|---|---|---|---|---|---|
| Credential Validation | Áno | Áno | 4774, 4775, 4776 | T1110 | Detekcia brute-force a password spray útokov |
| User Account Management | Áno | Áno | 4720, 4722, 4725, 4726 | T1136 | Vytváranie nových účtov (perzistencia) |
| Security Group Management | Áno | Nie | 4727, 4728, 4729, 4730 | T1078 | Zmeny v členstvách skupín (privilege escalation) |
| Logon Events | Áno | Áno | 4624, 4625, 4634, 4647 | T1078 | Všetky prihlásenia a odhlásenia |
| Process Creation | Áno | Nie | 4688 | T1059 | Spúšťané procesy (kritické pre threat hunting) |
| Sensitive Privilege Use | Áno | Áno | 4673, 4674 | T1134 | Použitie SeDebug, SeBackup a ďalších citlivých privilégií |
| System Integrity | Áno | Áno | 4612, 4615, 4618 | T1014 | Rootkit detekcia, manipulácia so systémom |
Popis: Útočník sa pokúša uhádnuť heslo opakovanými prihlasovacími pokusmi.
Detekcia:
• Event ID 4625 (Failed Logon) - veľké množstvo za krátky čas
• Event ID 4776 (Credential Validation) - NTLM auth failures
• Pattern: 5+ neúspešných pokusov z rovnakej IP za 10 minút
SIEM pravidlo: Alert ak count(4625) > 5 per source IP per 10min
MITRE ATT&CK: T1110 - Brute Force
Popis: Útočník sa šíri v sieti pomocou ukradnutých credentials.
Detekcia:
• Event ID 4624 Type 3 (Network Logon) - z nezvyčajných zdrojov
• Event ID 4648 (Explicit Credential Logon) - runas, PsExec
• Pattern: Admin účet sa prihlasuje na viacero serverov v krátkom čase
IOC: Jeden účet prihlásený na 10+ serverov za hodinu
MITRE ATT&CK: T1021 - Remote Services
Popis: Útočník vytvára backdoor účet pre trvalý prístup.
Detekcia:
• Event ID 4720 (User Account Created)
• Event ID 4728 (Member Added to Security-Enabled Group)
• Pattern: Nový účet pridaný do Administrators mimo pracovnej doby
Alert: Akákoľvek zmena v Domain Admins/Enterprise Admins
MITRE ATT&CK: T1136 - Create Account
# ===== ZOBRAZENIE AKTUÁLNEJ AUDIT KONFIGURÁCIE =====
auditpol /get /category:*
# ===== NASTAVENIE AUDIT POLITÍK =====
# Account Logon
auditpol /set /subcategory:"Credential Validation" /success:enable /failure:enable
auditpol /set /subcategory:"Kerberos Authentication Service" /success:enable /failure:enable
auditpol /set /subcategory:"Kerberos Service Ticket Operations" /success:enable /failure:enable
# Account Management
auditpol /set /subcategory:"User Account Management" /success:enable /failure:enable
auditpol /set /subcategory:"Security Group Management" /success:enable /failure:enable
auditpol /set /subcategory:"Computer Account Management" /success:enable /failure:enable
# Logon/Logoff
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Logoff" /success:enable /failure:disable
auditpol /set /subcategory:"Special Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Account Lockout" /success:enable /failure:enable
# Process Tracking (KRITICKÉ pre threat hunting)
auditpol /set /subcategory:"Process Creation" /success:enable /failure:enable
auditpol /set /subcategory:"Process Termination" /success:enable /failure:disable
# Privilege Use
auditpol /set /subcategory:"Sensitive Privilege Use" /success:enable /failure:enable
# System Events
auditpol /set /subcategory:"Security State Change" /success:enable /failure:enable
auditpol /set /subcategory:"Security System Extension" /success:enable /failure:enable
auditpol /set /subcategory:"System Integrity" /success:enable /failure:enable
# ===== ZAPNUTIE COMMAND LINE V PROCESS CREATION EVENTOCH =====
# Kritické pre detekciu škodlivých príkazov!
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit" `
-Name "ProcessCreationIncludeCmdLine_Enabled" -Type DWord -Value 1
# ===== NASTAVENIE VEĽKOSTI SECURITY LOGU =====
wevtutil sl Security /ms:1073741824 # 1 GB
# ===== VERIFIKÁCIA NASTAVENÍ =====
auditpol /get /category:* | findstr /i "success failure"
Get-WinEvent -LogName Security -MaxEvents 10 | Format-List
Interaktívne prihlásenie je často cieľom útokov zameraných na odcudzenie credentials. Správna konfigurácia minimalizuje riziko credential theft a session hijacking.
| Nastavenie | Hodnota | Risk | Popis a zdôvodnenie |
|---|---|---|---|
| Require CTRL+ALT+DEL | Enabled | High | Zabraňuje credential spoofing útokom, kde malvér zobrazuje falošné prihlasovacie okno. CTRL+ALT+DEL je "Secure Attention Sequence", ktorý môže zachytiť iba Windows. |
| Don't display last username | Enabled | Medium | Útočník nezíska informáciu o platných používateľských menách. Sťažuje username enumeration. |
| Machine inactivity timeout | 900 sekúnd | High | Automatické uzamknutie po 15 minútach nečinnosti. Chráni pred fyzickým prístupom k neuzamknutému zariadeniu. |
| Cached logons count | 3 | Medium | Počet domain credentials uložených lokálne pre offline prihlásenie. Nižšia hodnota = menšie riziko offline credential attacks. |
Popis: Malvér zobrazí falošné prihlasovacie okno Windows, ktoré vyzerá identicky
ako pravé. Používateľ zadá credentials, ktoré sú zachytené útočníkom.
Priebeh:
1. Malvér čaká na uzamknutie alebo odhlásenie
2. Zobrazí fullscreen fake login prompt
3. Používateľ zadá meno a heslo
4. Credentials odoslané útočníkovi
5. Malvér zobrazí chybu a presmeruje na pravé prihlásenie
Mitigácia: CTRL+ALT+DEL Required - túto sekvenciu nemôže malvér zachytiť
MITRE ATT&CK: T1056.002 - GUI Input Capture
Popis: Fyzický útok, kde útočník sleduje zadávanie hesla a čaká na chvíľu,
keď používateľ odíde od neuzamknutého počítača.
Priebeh:
1. Útočník sleduje zadanie hesla (shoulder surfing)
2. Čaká, kým používateľ odíde bez uzamknutia
3. Prístup k systému, inštalácia backdoor
4. Exfiltrácia dát, eskalácia privilégií
Mitigácia: Inactivity timeout (≤15 min), security awareness training
MITRE ATT&CK: T1078 - Valid Accounts
Popis: Útočník ukradne laptop a extrahuje cached domain credentials
pre offline brute-force útok.
Priebeh:
1. Krádež laptopu alebo HDD
2. Boot z live Linux/offline attack tool
3. Extrakcia SECURITY hive (cached credentials)
4. Offline cracking pomocou hashcat/john
5. Získané heslo = prístup do domény
Mitigácia: CachedLogonsCount = 3 alebo menej, BitLocker encryption
MITRE ATT&CK: T1003.005 - Cached Domain Credentials
# ===== VYŽADOVANIE CTRL+ALT+DEL =====
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
-Name "DisableCAD" -Type DWord -Value 0
# ===== NEZOBRAZOVAŤ POSLEDNÉ MENO POUŽÍVATEĽA =====
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
-Name "DontDisplayLastUserName" -Type DWord -Value 1
# ===== NASTAVENIE MACHINE INACTIVITY TIMEOUT (15 minút = 900 sekúnd) =====
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
-Name "InactivityTimeoutSecs" -Type DWord -Value 900
# ===== POČET CACHED LOGONS (Odporúčané: 3) =====
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" `
-Name "CachedLogonsCount" -Type String -Value "3"
# ===== LEGAL NOTICE (Varovné hlásenie pred prihlásením) =====
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
-Name "LegalNoticeCaption" -Type String -Value "POZOR - Súkromný systém"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
-Name "LegalNoticeText" -Type String -Value "Tento systém je určený len pre autorizovaných používateľov. Všetky aktivity sú monitorované a zaznamenávané."
# ===== ZAKÁZANIE SMART CARD REMOVAL BEHAVIOR =====
# 1 = Lock Workstation (odporúčané)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" `
-Name "ScRemoveOption" -Type String -Value "1"
# ===== VERIFIKÁCIA NASTAVENÍ =====
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" | `
Select-Object DisableCAD, DontDisplayLastUserName, InactivityTimeoutSecs
Nastavenia sieťového prístupu kontrolujú, ako Windows zdieľa zdroje a umožňuje prístup cez sieť. Nesprávna konfigurácia môže umožniť útočníkom enumerovať používateľov, zdieľania a citlivé informácie bez autentifikácie.
| Nastavenie | Hodnota | MITRE ATT&CK | Popis útoku, ktorý blokuje |
|---|---|---|---|
| EveryoneIncludesAnonymous = 0 | Disabled | T1087 - Account Discovery | Anonymní používatelia nemôžu pristupovať k zdrojom s Everyone permissions |
| RestrictAnonymous = 1 | Enabled | T1087.002 - Domain Account | Blokuje anonymnú enumeráciu SAM účtov a zdieľaní |
| NullSessionShares = empty | Empty | T1021.002 - SMB/Windows Admin Shares | Žiadne zdieľania nie sú prístupné bez autentifikácie |
| NullSessionPipes = empty | Empty | T1021.002 - SMB/Windows Admin Shares | Žiadne named pipes nie sú prístupné bez autentifikácie |
Popis: Útočník využíva null session (prázdne credentials) na enumeráciu
používateľov, skupín a zdieľaní bez akejkoľvek autentifikácie.
Priebeh:
1. net use \\target\IPC$ "" /user:"" (null session)
2. enum4linux -a target alebo rpcclient -U ""
3. Enumerácia: zoznam používateľov, skupín, shares, password policy
4. Identifikácia admin účtov, slabých hesiel
5. Cielený brute-force alebo password spray
Mitigácia: RestrictAnonymous = 1, NullSessionShares/Pipes = empty
MITRE ATT&CK: T1087 - Account Discovery
Popis: Útočník diaľkovo enumeruje lokálne používateľské účty
cez SAM (Security Account Manager) bez prístupu na systém.
Priebeh:
1. Pripojenie cez SMB s akýmikoľvek credentials
2. Dotaz na SAM databázu cez SAMR protokol
3. Získanie zoznamu lokálnych účtov (vrátane admin)
4. Password spraying na získané účty
Mitigácia: RestrictRemoteSAM registry hodnota
MITRE ATT&CK: T1087.001 - Local Account Discovery
Popis: Útočník zneužíva named pipes na impersonáciu klientov,
ktorí sa pripájajú k serveru.
Priebeh:
1. Útočník vytvorí named pipe s atraktívnym názvom
2. Legitimný proces sa pripojí na pipe
3. Útočník volá ImpersonateNamedPipeClient()
4. Získava token klienta (potenciálne SYSTEM)
Mitigácia: NullSessionPipes = empty, SMB signing
MITRE ATT&CK: T1134.001 - Token Impersonation/Theft
# ===== ZAKÁZANIE ANONYMOUS ACCESS =====
# Everyone skupina nebude zahŕňať Anonymous
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
-Name "EveryoneIncludesAnonymous" -Type DWord -Value 0
# Obmedzenie anonymného prístupu
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
-Name "RestrictAnonymous" -Type DWord -Value 1
# Zakázanie anonymnej enumerácie SAM účtov
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
-Name "RestrictAnonymousSAM" -Type DWord -Value 1
# ===== VYČISTENIE NULL SESSION SHARES A PIPES =====
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" `
-Name "NullSessionShares" -Type MultiString -Value @()
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" `
-Name "NullSessionPipes" -Type MultiString -Value @()
# ===== ZAKÁZANIE REMOTE SAM ENUMERATION =====
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
-Name "RestrictRemoteSAM" -Type String `
-Value "O:BAG:BAD:(A;;RC;;;BA)"
# ===== SIEŤOVÝ PRÍSTUP - SHARING MODEL =====
# 0 = Classic model (odporúčané pre enterprise)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
-Name "ForceGuest" -Type DWord -Value 0
# ===== VERIFIKÁCIA NASTAVENÍ =====
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" | `
Select-Object EveryoneIncludesAnonymous, RestrictAnonymous, RestrictAnonymousSAM
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" | `
Select-Object NullSessionShares, NullSessionPipes
Konfigurácia Shutdown Policy je často prehliadaným, ale dôležitým aspektom fyzickej bezpečnosti systému. Predvolené nastavenie Windows umožňuje komukoľvek s fyzickým prístupom k zariadeniu vypnúť alebo reštartovať systém bez nutnosti autentifikácie – stačí kliknúť na tlačidlo napájania na prihlasovacej obrazovke.
Zakázanie vypnutia systému z prihlasovacej obrazovky chráni pred nasledujúcimi hrozbami:
| Hrozba | Risk | Scenár útoku | MITRE ATT&CK |
|---|---|---|---|
| Denial of Service (DoS) | High | Útočník s fyzickým prístupom opakovane vypína kritický server alebo pracovnú stanicu, čím spôsobuje výpadky služieb. V prípade serverov s databázami môže náhle vypnutie spôsobiť poškodenie dát. | T1529 (System Shutdown/Reboot) |
| BitLocker bypass | Critical | Útočník vypne systém, bootuje z USB (ak nie je zabezpečený BIOS), a pokúša sa o offline útoky na BitLocker kľúče. Pri systémoch s TPM-only konfiguráciou (bez PIN) môže cold boot attack extrahovať šifrovacie kľúče z RAM. | T1542.003 (Bootkit) |
| Boot médium útok | Critical | Po vypnutí útočník bootuje z live USB/CD, mountuje NTFS partície a modifikuje systémové súbory, pridáva backdoor účty (offline SAM editing), alebo inštaluje rootkit do boot sektora. | T1200 (Hardware Additions) |
| Sabotáž dostupnosti | Medium | Nespokojný zamestnanec alebo insider threat vypína produkčné systémy pred odchodom z firmy. V kombinácii s fyzickým poškodením môže spôsobiť významné finančné straty. | T1485 (Data Destruction) |
| Prerušenie security procesov | High | Útočník vypne systém počas bežiaceho antivírusového skenu, forenznnej analýzy, alebo zálohovania. Po reštarte môže byť malvér už aktívny predtým, než sa spustí security software. | T1562 (Impair Defenses) |
| Manipulácia s boot procesom | High | Vypnutie systému umožňuje útočníkovi vstúpiť do BIOS/UEFI (ak nie je chránený heslom), zmeniť boot poradie, zakázať Secure Boot, alebo modifikovať boot parametre. | T1542 (Pre-OS Boot) |
| Nastavenie | Hodnota | Risk | CIS Ref | Popis |
|---|---|---|---|---|
| ShutdownWithoutLogon | 0 (Disabled) | High | 2.3.13.1 | Zakáže tlačidlo "Shut down" na prihlasovacej obrazovke. Používatelia musia byť najprv prihlásení, aby mohli vypnúť systém. |
| ClearPageFileAtShutdown | 1 (Enabled) | Medium | 2.3.11.2 | Vymaže obsah pagefile.sys pri vypnutí. Zabraňuje extrakcii citlivých dát (heslá, šifrovacie kľúče) z pagefile po offline prístupe k disku. |
| ForceShutdown (GPO) | Restricted | Medium | 2.2.21 | Obmedzuje právo "Force shutdown from a remote system" len na Administrators. Zabraňuje vzdialenému vypnutiu systému neautorizovanými používateľmi. |
Fáza 1: Útočník získa fyzický prístup k notebooku s BitLocker šifrovaním (TPM-only, bez PIN).
Fáza 2: Notebook je v sleep mode, útočník ho prebudí na login screen.
Fáza 3: Klikne na "Shut down" → systém sa vypne, ale RAM stále drží šifrovacie kľúče (niekoľko sekúnd).
Fáza 4: Útočník okamžite bootuje z USB s cold boot attack toolom.
Fáza 5: Extrahuje BitLocker kľúče z RAM a dešifruje disk offline.
Mitigácia: Zakázanie shutdown bez prihlásenia + BitLocker s PIN + kratší RAM decay čas (DDR4/DDR5 pomáha).
# ===== ZAKÁZANIE SHUTDOWN BEZ PRIHLÁSENIA =====
# Zakázanie shutdown tlačidla na login screen
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
-Name "ShutdownWithoutLogon" -Type DWord -Value 0
# ===== VYČISTENIE VIRTUAL MEMORY PAGEFILE PRI SHUTDOWN =====
# Zvyšuje bezpečnosť - zabraňuje extrakcii dát z pagefile
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" `
-Name "ClearPageFileAtShutdown" -Type DWord -Value 1
# ===== ZAKÁZANIE HIBERNATE (Ochrana pred hibernation file attacks) =====
# Hibernation file môže obsahovať citlivé dáta vrátane šifrovacích kľúčov
powercfg /hibernate off
# ===== KONFIGURÁCIA POWER BUTTON BEHAVIOR =====
# Zakáže fyzické tlačidlo napájania (ak je systém zamknutý)
# 0 = Do nothing, 1 = Sleep, 2 = Hibernate, 3 = Shut down
powercfg /setacvalueindex SCHEME_CURRENT SUB_BUTTONS PBUTTONACTION 0
powercfg /setdcvalueindex SCHEME_CURRENT SUB_BUTTONS PBUTTONACTION 0
powercfg /setactive SCHEME_CURRENT
# ===== OBMEDZENIE PRÁVA NA REMOTE SHUTDOWN =====
# Toto vyžaduje secedit, ukážka pre audit:
# secedit /export /cfg C:\secpol.cfg
# Upravte "SeRemoteShutdownPrivilege" na obsahovanie len Administrators
# ===== ZAKÁZANIE FAST STARTUP =====
# Fast Startup môže ponechať citlivé dáta v hibernation file
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" `
-Name "HiberbootEnabled" -Type DWord -Value 0
# ===== KERNEL CRASH DUMP KONFIGURÁCIA =====
# Obmedzenie crash dump na minimum (zabraňuje extrakcii credentials)
# 0 = None, 1 = Complete, 2 = Kernel, 3 = Small, 7 = Automatic
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl" `
-Name "CrashDumpEnabled" -Type DWord -Value 3
# ===== VERIFIKÁCIA NASTAVENÍ =====
Write-Host "=== Shutdown Policy Verifikácia ===" -ForegroundColor Cyan
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" | `
Select-Object ShutdownWithoutLogon
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" | `
Select-Object ClearPageFileAtShutdown
powercfg /hibernate | Write-Host
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" | `
Select-Object HiberbootEnabled
gpedit.msc → Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options → Shutdown: Allow system to be shut down without having to log onpowercfg /availablesleepstateswmic pagefile list /format:listSystémové objekty sú interné štruktúry Windows kernel-u, ktoré umožňujú komunikáciu medzi procesmi a synchronizáciu. Patria sem named pipes, semafory, mutexy, eventy, shared memory sections a handles. Tieto objekty sú kritické pre fungovanie systému, ale pri nesprávnej konfigurácii môžu byť zneužité na privilege escalation alebo inter-process attacks.
| Typ objektu | Popis | Riziko pri neochránení | MITRE ATT&CK |
|---|---|---|---|
| Named Pipes | Komunikačný kanál medzi procesmi (lokálne aj sieťovo). Používané mnohými službami (SQL Server, Exchange, atď.) | Útočník môže odpočúvať komunikáciu, injektovať dáta, alebo vykonať impersonation attack (získať token iného používateľa) | T1570 (Lateral Tool Transfer) |
| Mutex (Mutant) | Synchronizačný objekt zabezpečujúci exkluzívny prístup k zdroju. Často používaný na zabránenie viacnásobného spustenia aplikácie. | Malvér môže "ukradnúť" mutex legitímnej aplikácie a zabrániť jej spusteniu, alebo detegovať prítomnosť security nástrojov | T1480 (Execution Guardrails) |
| Semaphore | Synchronizačný objekt limitujúci počet súčasných prístupov k zdroju. | Resource exhaustion attacks – útočník vyčerpá semafory a spôsobí DoS | T1499 (Endpoint DoS) |
| Event | Signalizačný objekt pre koordináciu medzi procesmi/vláknami. | Manipulácia s event objektami môže narušiť synchronizáciu kritických procesov | T1055 (Process Injection) |
| Section (Shared Memory) | Zdieľaná pamäťová oblasť medzi procesmi. | Útočník môže čítať citlivé dáta z pamäte iných procesov alebo injektovať škodlivý kód do zdieľanej sekcie | T1055.001 (DLL Injection) |
| File Handles | Referencie na otvorené súbory, sockets, registry kľúče. | Handle inheritance attack – child proces zdedí handles rodiča vrátane privilegovaných prístupov | T1134 (Access Token Manipulation) |
| Desktop/Window Station | Objekty reprezentujúce používateľské prostredie (desktops, clipboardy). | Shatter attack – zasielanie window messages do privilegovaných procesov na vykonanie kódu | T1185 (Browser Session Hijacking) |
Popis: Útočník vytvorí named pipe s názvom, ktorý legitímna služba očakáva.
Keď sa privilegovaný proces pripojí, útočník použije ImpersonateNamedPipeClient()
na získanie security tokenu klienta.
Príklad: Služba beží ako SYSTEM a pripojí sa na pipe \\.\pipe\evilpipe.
Útočník získa SYSTEM token a môže spúšťať príkazy s najvyššími oprávneniami.
Nástroje: Metasploit getsystem, PrintSpoofer, Juicy Potato
Mitigácia: ProtectionMode = 1, audit pipe permissions, network segmentation
Popis: Útočník identifikuje shared memory sekciu používanú legitímnym procesom.
Ak má sekcia slabé oprávnenia, útočník môže zapísať shellcode do zdieľanej pamäte
a počkať, kým cieľový proces kód vykoná.
Príklad: Antivírus používa shared memory pre komunikáciu medzi GUI a službou.
Útočník prepíše dáta v sekcii škodlivým kódom.
Mitigácia: ProtectionMode = 1, CFG (Control Flow Guard), ACG (Arbitrary Code Guard)
Popis: Útočník s debug privileges môže duplikovať handle z iného procesu
pomocou DuplicateHandle(). Ak získa handle na privilegovaný objekt
(napr. process handle na LSASS), môže extrahovať credentials.
Mitigácia: Obmedziť SeDebugPrivilege, LSA Protection (PPL), Credential Guard
| Nastavenie | Hodnota | Risk | CIS Ref | Popis |
|---|---|---|---|---|
| ProtectionMode | 1 (Enabled) | High | 2.3.15.1 | Posilňuje predvolené oprávnenia pre systémové objekty. Zabraňuje nízko-privilegovaným procesom pristupovať k objektom vytvorených systémovými službami. |
| ObCaseInsensitive | 1 (Enabled) | Medium | 2.3.15.2 | Vynucuje case-insensitive porovnávanie názvov objektov. Zabraňuje obchádzaniu ACL pomocou rôznych veľkostí písmen. |
| GlobalFlag | Configured | Medium | N/A | Heap protection flags (heap verification, stack traces). Pomáha detegovať heap corruption exploits. |
| FilterAdministratorToken | 1 (Enabled) | High | 2.3.17.1 | Filtruje admin token aj pre built-in Administrator účet. Zabraňuje privilege escalation cez UAC bypass. |
| EnableSecureUIAPath | 1 (Enabled) | Medium | 2.3.17.4 | Vyžaduje, aby UIA aplikácie boli spustené zo secure locations. Mitiguje UI automation attacks. |
# ===== ZAPNUTIE PROTECTION MODE PRE SYSTÉMOVÉ OBJEKTY =====
# Posilňuje predvolené ACL pre všetky systémové objekty
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" `
-Name "ProtectionMode" -Type DWord -Value 1
# ===== CASE-INSENSITIVE OBJECT NAMES =====
# Zabraňuje obchádzaniu ACL pomocou rôznych veľkostí písmen
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\kernel" `
-Name "ObCaseInsensitive" -Type DWord -Value 1
# ===== FILTER ADMINISTRATOR TOKEN =====
# Aplikuje UAC filtrovanie aj na built-in Administrator
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
-Name "FilterAdministratorToken" -Type DWord -Value 1
# ===== SECURE UIA PATH =====
# Vyžaduje spustenie UIA aplikácií zo secure locations
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
-Name "EnableSecureUIAPaths" -Type DWord -Value 1
# ===== ZAKÁZANIE ANONYMOUS PIPE ACCESS =====
# Obmedzuje anonymný prístup k named pipes
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" `
-Name "RestrictNullSessAccess" -Type DWord -Value 1
# ===== HEAP PROTECTION (GlobalFlag) =====
# Zapnutie heap verification pre detekciu corruption
# POZOR: Môže ovplyvniť výkon, používajte len pre debugging
# Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" `
# -Name "GlobalFlag" -Type DWord -Value 0x02000000
# ===== MANDATORY ASLR =====
# Vynúti ASLR pre všetky procesy (Windows 10+)
Set-ProcessMitigation -System -Enable ForceRelocateImages
# ===== AUDIT OBJECT ACCESS =====
# Zapnutie auditovania prístupu k objektom
auditpol /set /subcategory:"Kernel Object" /success:enable /failure:enable
auditpol /set /subcategory:"Handle Manipulation" /success:enable /failure:enable
# ===== VERIFIKÁCIA NASTAVENÍ =====
Write-Host "=== System Objects Protection Verifikácia ===" -ForegroundColor Cyan
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" | `
Select-Object ProtectionMode
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" | `
Select-Object FilterAdministratorToken, EnableSecureUIAPaths
# Zobrazenie process mitigation nastavení
Get-ProcessMitigation -System | Format-List
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v ProtectionModeGet-ProcessMitigation -SystemWindows Defender Firewall je stavový (stateful) firewall integrovaný do Windows od verzie Vista. Poskytuje filtráciu sieťovej prevádzky na vrstvách 3 a 4 (IP a TCP/UDP), s podporou pre aplikačné pravidlá a IPsec integráciu. Na rozdiel od perimetrových firewallov, Windows Firewall chráni endpoint priamo, čo je kritické v moderných "zero trust" architektúrach.
Windows Firewall používa tri profily, ktoré sa automaticky aktivujú podľa typu siete. Každý profil môže mať vlastné nastavenia pravidiel a logovania.
| Profil | Aktivácia | Odporúčaná politika | Typické použitie |
|---|---|---|---|
| Domain | Automaticky keď je PC pripojený do AD domény a môže kontaktovať DC |
Inbound: Block Outbound: Allow |
Firemná sieť, kancelária, VPN do corporate |
| Private | Používateľ manuálne označí sieť ako "Private/Home" |
Inbound: Block Outbound: Allow |
Domáca sieť, dôveryhodné prostredie |
| Public | Default pre nové siete, verejné Wi-Fi |
Inbound: Block (strict) Outbound: Allow |
Kaviarne, letiská, hotely, nedôveryhodné siete |
Nasledujúce porty sú najčastejšie cieľom útokov a mali by byť striktne kontrolované:
| Port | Služba | Risk | Známe útoky/CVE | Odporúčanie |
|---|---|---|---|---|
| 445/TCP | SMB (Server Message Block) | Critical | EternalBlue (CVE-2017-0144), WannaCry, NotPetya, SMBGhost (CVE-2020-0796) | Blokovať na Public, obmedziť na Domain/Private |
| 3389/TCP | RDP (Remote Desktop) | Critical | BlueKeep (CVE-2019-0708), brute-force, credential stuffing | Blokovať na Public, NLA required, MFA |
| 137-139 | NetBIOS | High | Name spoofing, session hijacking, enumeration | Blokovať všade, zakázať NetBIOS over TCP/IP |
| 5985-5986 | WinRM (PowerShell Remoting) | High | Lateral movement, remote code execution | Blokovať na Public, JEA na Domain |
| 135/TCP | RPC Endpoint Mapper | High | DCOM exploits, WMI lateral movement | Blokovať na Public |
| 1433/TCP | MS SQL Server | High | SQL injection, brute-force SA account | Blokovať všade okrem potrebných serverov |
| 23/TCP | Telnet | Critical | Clear-text credentials, MitM | Blokovať všade, používať SSH |
| 21/TCP | FTP | High | Clear-text credentials, bounce attacks | Blokovať, používať SFTP/FTPS |
Útok: Útočník kompromituje jednu pracovnú stanicu (napr. cez phishing).
Pomocou SMB exploitu alebo pass-the-hash sa pokúša šíriť na ďalšie zariadenia v sieti.
Bez firewallu: Útočník sa voľne šíri po celej internej sieti.
S firewallom: SMB je blokovaný medzi workstations, útočník je izolovaný.
MITRE ATT&CK: T1021.002 (SMB/Windows Admin Shares)
Pravidlo: Blokovať SMB (445) medzi workstations, povoliť len na file servery
Útok: Automatizované nástroje skenujú internet na otvorený port 3389.
Po nájdení vykonávajú brute-force útoky na bežné používateľské mená.
Štatistika: Priemerný Windows server s RDP na internete dostane 150,000+
pokusov o prihlásenie denne.
MITRE ATT&CK: T1110 (Brute Force)
Pravidlo: Blokovať RDP na Public profile, používať VPN alebo RD Gateway
Útok: Malvér na infikovanom PC sa pokúša nadviazať spojenie s C2 serverom
na neštandardných portoch (4444, 8080, 443 na podozrivé domény).
Ochrana: Outbound filtering na povolené porty a aplikácie, DNS filtering.
MITRE ATT&CK: T1071 (Application Layer Protocol)
Pravidlo: Blokovať outbound na nepovolené porty, monitorovať anomálie
| Nastavenie | Domain | Private | Public | CIS Ref |
|---|---|---|---|---|
| Firewall State | On | On | On | 9.1.1, 9.2.1, 9.3.1 |
| Inbound Connections | Block | Block | Block (All) | 9.1.2, 9.2.2, 9.3.2 |
| Outbound Connections | Allow | Allow | Allow* | 9.1.3, 9.2.3, 9.3.3 |
| Log Dropped Packets | Yes | Yes | Yes | 9.1.7, 9.2.7, 9.3.7 |
| Log Successful Connections | Optional | Optional | Yes | 9.1.8, 9.2.8, 9.3.8 |
| Log File Size | 16384 KB | 16384 KB | 32767 KB | 9.1.6, 9.2.6, 9.3.6 |
| Display Notification | No | No | No | 9.1.4, 9.2.4, 9.3.4 |
| Apply Local Rules | Yes (GPO) | Yes | No | 9.1.5, 9.2.5, 9.3.5 |
* Pre high-security prostredia zvážte outbound filtering (default deny) s explicitným povolením aplikácií.
Windows Firewall môže vyžadovať IPsec autentifikáciu pre vybrané spojenia, čím sa pridáva ďalšia vrstva zabezpečenia (authentication + encryption).
| Scenár | Popis | Použitie |
|---|---|---|
| Server Isolation | Servery akceptujú len IPsec-authenticated spojenia | Kritické servery (DC, SQL, File) |
| Domain Isolation | Všetky domain-joined PC musia používať IPsec | High-security enterprise siete |
| Connection Security Rules | Vyžaduje autentifikáciu pre špecifické porty/IP | Selektívna ochrana kritických služieb |
# ===== ZAPNUTIE FIREWALLU PRE VŠETKY PROFILY =====
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
# ===== NASTAVENIE DEFAULT AKCIE =====
Set-NetFirewallProfile -Profile Domain,Public,Private `
-DefaultInboundAction Block `
-DefaultOutboundAction Allow `
-NotifyOnListen False `
-AllowUnicastResponseToMulticast False
# ===== PRÍSNEJŠIE NASTAVENIA PRE PUBLIC PROFIL =====
Set-NetFirewallProfile -Profile Public `
-AllowLocalFirewallRules False `
-AllowLocalIPsecRules False
# ===== ZAPNUTIE LOGOVANIA PRE VŠETKY PROFILY =====
Set-NetFirewallProfile -Profile Domain `
-LogFileName "%SystemRoot%\System32\LogFiles\Firewall\domain.log" `
-LogMaxSizeKilobytes 16384 `
-LogBlocked True `
-LogAllowed False
Set-NetFirewallProfile -Profile Private `
-LogFileName "%SystemRoot%\System32\LogFiles\Firewall\private.log" `
-LogMaxSizeKilobytes 16384 `
-LogBlocked True `
-LogAllowed False
Set-NetFirewallProfile -Profile Public `
-LogFileName "%SystemRoot%\System32\LogFiles\Firewall\public.log" `
-LogMaxSizeKilobytes 32767 `
-LogBlocked True `
-LogAllowed True
# ===== BLOKOVANIE KRITICKÝCH PORTOV NA PUBLIC =====
# SMB (445) - EternalBlue, WannaCry
New-NetFirewallRule -DisplayName "Block SMB Inbound Public" `
-Direction Inbound -Protocol TCP -LocalPort 445 `
-Action Block -Profile Public -Enabled True
# RDP (3389) - BlueKeep, brute-force
New-NetFirewallRule -DisplayName "Block RDP Inbound Public" `
-Direction Inbound -Protocol TCP -LocalPort 3389 `
-Action Block -Profile Public -Enabled True
# NetBIOS (137-139) - enumeration, spoofing
New-NetFirewallRule -DisplayName "Block NetBIOS TCP Public" `
-Direction Inbound -Protocol TCP -LocalPort 137-139 `
-Action Block -Profile Public -Enabled True
New-NetFirewallRule -DisplayName "Block NetBIOS UDP Public" `
-Direction Inbound -Protocol UDP -LocalPort 137-139 `
-Action Block -Profile Public -Enabled True
# WinRM (5985-5986) - lateral movement
New-NetFirewallRule -DisplayName "Block WinRM Public" `
-Direction Inbound -Protocol TCP -LocalPort 5985,5986 `
-Action Block -Profile Public -Enabled True
# RPC (135) - DCOM exploits
New-NetFirewallRule -DisplayName "Block RPC Public" `
-Direction Inbound -Protocol TCP -LocalPort 135 `
-Action Block -Profile Public -Enabled True
# ===== BLOKOVANIE LATERAL MOVEMENT NA DOMAIN/PRIVATE =====
# Blokuje SMB medzi workstations (povoľte výnimky pre file servery)
New-NetFirewallRule -DisplayName "Block Workstation SMB" `
-Direction Inbound -Protocol TCP -LocalPort 445 `
-Action Block -Profile Domain,Private `
-RemoteAddress 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 `
-Enabled False # Zapnite po testovaní a pridaní výnimiek
# ===== POVOLENIE POTREBNÝCH SLUŽIEB =====
# RDP len z admin VLAN
New-NetFirewallRule -DisplayName "Allow RDP from Admin VLAN" `
-Direction Inbound -Protocol TCP -LocalPort 3389 `
-Action Allow -Profile Domain,Private `
-RemoteAddress 10.10.10.0/24 -Enabled True
# Príklad: Povolenie ICMP ping pre diagnostiku
New-NetFirewallRule -DisplayName "Allow ICMPv4 Echo Request" `
-Direction Inbound -Protocol ICMPv4 -IcmpType 8 `
-Action Allow -Profile Domain,Private -Enabled True
# ===== OUTBOUND RULES (VOLITEĽNÉ - HIGH SECURITY) =====
# Blokuje C2 na bežných portoch ak nie je legitímna aplikácia
# New-NetFirewallRule -DisplayName "Block Outbound 4444" `
# -Direction Outbound -Protocol TCP -RemotePort 4444 `
# -Action Block -Profile Domain,Private,Public -Enabled True
# ===== IPSEC CONNECTION SECURITY RULE (ADVANCED) =====
# Vyžaduje autentifikáciu pre SMB pripojenia
# New-NetIPsecRule -DisplayName "Require Auth for SMB" `
# -InboundSecurity Require -OutboundSecurity Request `
# -Protocol TCP -LocalPort 445
# ===== VERIFIKÁCIA KONFIGURÁCIE =====
Write-Host "=== Firewall Profile Status ===" -ForegroundColor Cyan
Get-NetFirewallProfile | Format-Table Name, Enabled, DefaultInboundAction, DefaultOutboundAction, LogFileName
Write-Host "`n=== Active Inbound Rules (Block) ===" -ForegroundColor Cyan
Get-NetFirewallRule | Where-Object {$_.Enabled -eq 'True' -and $_.Direction -eq 'Inbound' -and $_.Action -eq 'Block'} | `
Select-Object DisplayName, Profile | Format-Table
Write-Host "`n=== Listening Ports ===" -ForegroundColor Cyan
Get-NetTCPConnection -State Listen | Select-Object LocalPort, OwningProcess | Sort-Object LocalPort -Unique
Get-NetFirewallProfile | Format-Table Name, EnabledGet-Content "$env:SystemRoot\System32\LogFiles\Firewall\pfirewall.log" -Tail 50Test-NetConnection -ComputerName localhost -Port 445Get-NetFirewallRule | Where-Object Enabled -eq True | Measure-Objectwf.msc (Windows Firewall with Advanced Security) pre GUI prehľad%SystemRoot%\System32\LogFiles\Firewall\Group Policy Administrative Templates (ADMX/ADML) sú najsilnejším nástrojom pre centralizovanú správu a hardening Windows systémov. Umožňujú konfigurovať stovky bezpečnostných nastavení prostredníctvom registry hodnôt bez nutnosti manuálnej úpravy.
| Kategória | Počet nastavení | Hlavná hrozba | MITRE ATT&CK | Priorita |
|---|---|---|---|---|
| Privacy/Telemetria | 15+ | Data exfiltration, surveillance | T1119 - Automated Collection | Medium |
| Autentifikácia | 20+ | Credential theft, unauthorized access | T1003 - OS Credential Dumping | Critical |
| TCP/IP Stack | 10+ | Network attacks, MITM, spoofing | T1557 - Adversary-in-the-Middle | High |
| DLL Search Order | 5+ | Code injection, privilege escalation | T1574.001 - DLL Search Order Hijacking | Critical |
| Name Resolution | 5+ | Poisoning attacks, credential relay | T1557.001 - LLMNR/NBT-NS Poisoning | Critical |
| Nastavenie | Hodnota | Risk | Zdôvodnenie |
|---|---|---|---|
| NoLockScreenCamera | 1 | Medium | Zabraňuje neautorizovanému prístupu ku kamere z lock screen |
| NoLockScreenSlideshow | 1 | Low | Predchádza úniku obrazových informácií na lock screen |
| AllowOnlineSpeechRecognition | 0 | Medium | Žiadne audio dáta neodchádzajú do cloudu |
| Nastavenie | Hodnota | Risk | CVE/Útok |
|---|---|---|---|
| SMB1 = 0 | Disabled | Critical | CVE-2017-0144 (EternalBlue), WannaCry |
| UseLogonCredential (WDigest) = 0 | Disabled | Critical | Mimikatz clear-text credential extraction |
| AutoAdminLogon = 0 | Disabled | High | Credentials uložené v registry v clear text |
| Parameter | Hodnota | Útok, ktorý mitiguje |
|---|---|---|
| DisableIPSourceRouting | 2 (Highest) | IP source routing spoofing attacks |
| EnableICMPRedirect | 0 | ICMP redirect attacks na manipuláciu routing tables |
| SafeDllSearchMode | 1 | DLL search order hijacking |
| EnableMulticast (DNS) | 0 | LLMNR/mDNS poisoning (Responder attacks) |
# ===== PRIVACY A TELEMETRIA =====
# Zakázanie kamery na lock screen
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" `
-Name "NoLockScreenCamera" -Type DWord -Value 1
# Zakázanie slideshow na lock screen
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" `
-Name "NoLockScreenSlideshow" -Type DWord -Value 1
# Zakázanie online rozpoznávania reči
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization" `
-Name "AllowInputPersonalization" -Type DWord -Value 0
# ===== PROTOKOLY A AUTENTIFIKÁCIA =====
# Zakázanie WDigest (clear-text credentials)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" `
-Name "UseLogonCredential" -Type DWord -Value 0
# Zakázanie automatického prihlásenia
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" `
-Name "AutoAdminLogon" -Type String -Value "0"
# ===== TCP/IP STACK HARDENING =====
# Zakázanie IP Source Routing
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" `
-Name "DisableIPSourceRouting" -Type DWord -Value 2
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" `
-Name "DisableIPSourceRouting" -Type DWord -Value 2
# Zakázanie ICMP Redirect
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" `
-Name "EnableICMPRedirect" -Type DWord -Value 0
# Safe DLL Search Mode
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" `
-Name "SafeDllSearchMode" -Type DWord -Value 1
# Zakázanie LLMNR
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" `
-Name "EnableMulticast" -Type DWord -Value 0
# Zakázanie NetBIOS over TCP/IP (pre všetky sieťové adaptéry)
$adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.IPEnabled}
foreach ($adapter in $adapters) {
$adapter.SetTcpipNetbios(2) # 2 = Disabled
}
# ===== VERIFIKÁCIA NASTAVENÍ =====
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" | `
Select-Object UseLogonCredential
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" | `
Select-Object DisableIPSourceRouting, EnableICMPRedirect
Popis: Útočník v sieti spúšťa nástroj Responder, ktorý odpovedá na LLMNR a NetBIOS broadcast
dotazy. Keď používateľ zadá neexistujúci hostname, systém ho vysiela ako broadcast a útočník odpovie
ako legitímny server, zachytávajúc pritom NTLM credentials.
Priebeh útoku:
1. Útočník spúšťa responder -I eth0 -wrf na svojom stroji v sieti
2. Používateľ omylom zadá \\servr\share (preklep)
3. Windows vysiela LLMNR dotaz "kto je servr?"
4. Responder odpovie "ja som servr"
5. Windows pošle NTLMv2 hash útočníkovi
6. Útočník crackuje hash offline pomocou hashcat
Mitigácia: EnableMulticast = 0 (LLMNR), NetBIOS disabled
MITRE ATT&CK: T1557.001 - LLMNR/NBT-NS Poisoning and SMB Relay
Popis: Útočník umiestni škodlivú DLL do adresára, ktorý je v search path pred
legitímnym systémovým adresárom. Keď aplikácia načíta DLL bez špecifikácie plnej cesty,
načíta sa škodlivá verzia namiesto legitímnej.
Príklad útoku:
1. Útočník identifikuje aplikáciu, ktorá načíta version.dll
2. Umiestni škodlivú version.dll do adresára aplikácie
3. Aplikácia hľadá DLL: (1) adresár aplikácie, (2) system32, (3) system, (4) windows, (5) PATH
4. Bez SafeDllSearchMode sa current directory prehľadáva pred systémovými adresármi
5. Škodlivá DLL sa načíta s privilégiami aplikácie
Mitigácia: SafeDllSearchMode = 1
MITRE ATT&CK: T1574.001 - Hijack Execution Flow: DLL Search Order Hijacking
Popis: Útočník posiela falošné ICMP redirect pakety, ktoré manipulujú routing tabuľky
obete a presmerúvajú sieťovú prevádzku cez útočníkov stroj.
Priebeh:
1. Útočník identifikuje default gateway obete (napr. 192.168.1.1)
2. Posiela ICMP Type 5 (Redirect) pakety predstierajúc, že je gateway
3. Pakety hovoria: "pre cieľ X.X.X.X použi ako gateway môj stroj"
4. Obeť aktualizuje routing tabuľku
5. Všetka prevádzka pre daný cieľ ide cez útočníka
Mitigácia: EnableICMPRedirect = 0
MITRE ATT&CK: T1557 - Adversary-in-the-Middle
Popis: Ak je WDigest povolený, heslo používateľa je uložené v pamäti LSASS v reverzibilnej
forme. Útočník s admin prístupom môže použiť Mimikatz na extrahovanie hesiel v čitateľnej forme.
Priebeh:
1. Útočník získa lokálny admin prístup (phishing, exploit)
2. Spúšťa mimikatz.exe "privilege::debug" "sekurlsa::wdigest"
3. Mimikatz číta pamäť LSASS procesu
4. Ak UseLogonCredential = 1, heslá sú v čitateľnej forme
5. Útočník má clear-text credentials všetkých prihlásených používateľov
Mitigácia: UseLogonCredential = 0
MITRE ATT&CK: T1003.001 - OS Credential Dumping: LSASS Memory
| Nastavenie | CIS Control ID | Level | Popis |
|---|---|---|---|
| WDigest UseLogonCredential | 18.3.6 | L1 | WDigest Authentication (disabling may require KB2871997) |
| SafeDllSearchMode | 18.4.9 | L1 | MSS: SafeDllSearchMode Enable Safe DLL search mode |
| DisableIPSourceRouting | 18.4.5 | L1 | MSS: DisableIPSourceRouting IP source routing protection |
| EnableICMPRedirect | 18.4.6 | L1 | MSS: EnableICMPRedirect Allow ICMP redirects |
| EnableMulticast (LLMNR) | 18.5.4.1 | L1 | Turn off multicast name resolution (LLMNR) |
| NoLockScreenCamera | 18.9.12.1 | L1 | Prevent enabling lock screen camera |
| NoLockScreenSlideshow | 18.9.12.2 | L1 | Prevent enabling lock screen slide show |
| Kategória | Nastavenie | GPO Cesta | Hodnota | Účel |
|---|---|---|---|---|
| Credentials | Restricted Admin Mode | Computer\Administrative Templates\System\Credentials Delegation | Enabled | Pass-the-Hash mitigation pre RDP |
| Credentials | Remote host allows delegation | Computer\Administrative Templates\System\Credentials Delegation | Require Remote Credential Guard | Credential isolation pre RDP |
| Windows Search | Allow indexing of encrypted files | Computer\Administrative Templates\Windows Components\Search | Disabled | Prevencia úniku dát z encrypted files |
| Cloud Content | Turn off cloud consumer features | Computer\Administrative Templates\Windows Components\Cloud Content | Enabled | Zníženie attack surface, privacy |
| OneDrive | Prevent OneDrive usage for file storage | Computer\Administrative Templates\Windows Components\OneDrive | Enabled | Prevencia data leakage do cloudu |
| BitLocker | Require additional authentication at startup | Computer\Administrative Templates\Windows Components\BitLocker | Enabled (Require TPM + PIN) | Cold boot attack prevention |
# ===== GPO DIAGNOSTIKA A VERIFIKÁCIA =====
# Zobrazenie všetkých aplikovaných GPO
gpresult /r
# Detailný report do HTML
gpresult /h C:\GPOReport.html
# Kontrola konkrétnych registry hodnôt
# Privacy
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -ErrorAction SilentlyContinue
# LLMNR
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name "EnableMulticast" -ErrorAction SilentlyContinue
# TCP/IP Hardening
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" | `
Select-Object DisableIPSourceRouting, EnableICMPRedirect, PerformRouterDiscovery
# WDigest
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" -Name "UseLogonCredential"
# DLL Search Mode
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name "SafeDllSearchMode"
# NetBIOS stav pre všetky adaptéry
Get-WmiObject Win32_NetworkAdapterConfiguration |
Where-Object {$_.IPEnabled} |
Select-Object Description, TcpipNetbiosOptions
# ===== FORCE GPO UPDATE =====
gpupdate /force
# ===== COMPLIANCE AUDIT =====
# Export všetkých relevantných nastavení
$auditPath = "C:\SecurityAudit"
New-Item -Path $auditPath -ItemType Directory -Force
# Export registry hodnôt
$regPaths = @(
"HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization",
"HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient",
"HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters",
"HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest",
"HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager"
)
foreach ($path in $regPaths) {
$name = $path -replace '.*\\', ''
reg export $path.Replace("HKLM:\", "HKLM\") "$auditPath\$name.reg" /y 2>$null
}
Write-Host "Audit export dokončený do: $auditPath" -ForegroundColor Green
Remote Desktop Protocol (RDP) je jedným z najčastejšie atakovaných služieb na Windows systémoch. Podľa štatistík je RDP vstupným bodom pre viac ako 50% ransomvérových útokov. Správna konfigurácia RDP a ochrana credentials sú preto kritické pre bezpečnosť organizácie.
| CVE | Názov | CVSS | Popis | Mitigácia |
|---|---|---|---|---|
| CVE-2019-0708 | BlueKeep | 9.8 | Pre-auth RCE, wormable, nevyžaduje používateľskú interakciu | Patch, NLA, firewall |
| CVE-2019-1181/1182 | DejaBlue | 9.8 | Podobné BlueKeep, postihuje aj novšie Windows verzie | Patch, NLA |
| CVE-2012-0002 | MS12-020 | 9.3 | Remote code execution v RDP | Patch, NLA |
| N/A | Brute-force | High | Automatizované hádanie hesiel, credential stuffing | Account lockout, MFA, VPN |
| N/A | Pass-the-Hash | Critical | Použitie ukradnutých NTLM hashov pre RDP autentifikáciu | Credential Guard, NLA |
RDP podporuje viacero bezpečnostných vrstiev. Vždy používajte najvyššiu dostupnú úroveň:
| Security Layer | Hodnota | Popis | Odporúčanie |
|---|---|---|---|
| RDP Security Layer | 0 | Natívne RDP šifrovanie (slabé, zastaralé) | Nepoužívať |
| Negotiate | 1 | Vyjednáva najlepšiu metódu medzi klientom a serverom | Akceptovateľné |
| TLS 1.2 | 2 | Moderné TLS šifrovanie, overenie certifikátom | Odporúčané |
Popis: Útočník používa nástroje ako Hydra, NLBrute alebo Crowbar na automatizované
hádanie hesiel. Kombinuje slovníkové útoky s credential stuffing (použitie leaked passwords).
Priebeh:
1. Sken internetu na port 3389 (Shodan, Masscan)
2. Identifikácia platných používateľských mien
3. Brute-force s top 1000 passwords + leaked credentials
4. Úspešné prihlásenie → ransomvér deployment
MITRE ATT&CK: T1110.001 (Brute Force: Password Guessing)
Mitigácia: Account lockout, MFA, VPN, fail2ban ekvivalent
Popis: Útočník získa NTLM hash (napr. cez Mimikatz, dump SAM) a použije ho
na RDP prihlásenie bez znalosti hesla v čistom texte.
Nástroje: xfreerdp s /pth, Mimikatz sekurlsa::pth
MITRE ATT&CK: T1550.002 (Pass the Hash)
Mitigácia: Credential Guard, Restricted Admin Mode, Remote Credential Guard
Popis: Útočník s SYSTEM privileges na serveri môže prevziať aktívnu alebo
odpojenú RDP session iného používateľa bez znalosti jeho hesla.
Príkaz: tscon [session_id] /dest:console
MITRE ATT&CK: T1563.002 (RDP Hijacking)
Mitigácia: Logovať session zmeny, okamžite ukončovať odpojené sessions
Popis: Wormable zraniteľnosť umožňujúca vzdialené spustenie kódu bez autentifikácie.
Útočník pošle špeciálne vytvorený packet na port 3389 a získa SYSTEM privileges.
Postihnuté systémy: Windows XP, 7, Server 2003, 2008, 2008 R2
MITRE ATT&CK: T1210 (Exploitation of Remote Services)
Mitigácia: Patch KB4499175, NLA (čiastočná), firewall blokovanie
| Mechanizmus | Popis | Ochrana proti | Požiadavky |
|---|---|---|---|
| Credential Guard | Izoluje NTLM hashe a Kerberos tickets vo VBS kontajneri | Mimikatz, Pass-the-Hash, Pass-the-Ticket | VBS, TPM 2.0, UEFI |
| Remote Credential Guard | Credentials nikdy neopustia klientsky počítač pri RDP | Credential theft na RDP serveri | Windows 10+, Kerberos |
| Restricted Admin Mode | RDP prihlásenie bez odoslania credentials na server | Credential theft, ale umožňuje PtH | Windows 8.1+ |
| LSA Protection (PPL) | Chráni LSASS proces pred injection a memory dump | Mimikatz, procdump na LSASS | Windows 8.1+ |
| Windows Hello for Business | Passwordless autentifikácia pomocou PKI/biometrie | Password-based útoky | Azure AD alebo on-prem PKI |
| Nastavenie | Hodnota | Risk | CIS Ref | Popis |
|---|---|---|---|---|
| Network Level Authentication | Enabled | Critical | 18.9.65.3.9.1 | Vyžaduje autentifikáciu pred RDP session |
| Security Layer | TLS (2) | High | 18.9.65.3.9.2 | Používať TLS 1.2 pre šifrovanie |
| Encryption Level | High (3) | High | 18.9.65.3.9.3 | 128-bit šifrovanie pre RDP session |
| Idle Session Timeout | 15 minút | Medium | 18.9.65.3.10.1 | Automatické odpojenie neaktívnej session |
| Disconnected Session Timeout | 1 hodina | Medium | 18.9.65.3.10.2 | Ukončenie odpojenej session |
| Disable Password Saving | Enabled | High | 18.9.65.3.3.1 | Zabraňuje ukladaniu hesiel v RDP klientovi |
| Disable Drive Redirection | Enabled | Medium | 18.9.65.3.3.2 | Blokuje mapovanie lokálnych diskov cez RDP |
# ===== ZAPNUTIE NETWORK LEVEL AUTHENTICATION (NLA) =====
# KRITICKÉ - chráni pred BlueKeep a podobnými exploitmi
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
-Name "UserAuthentication" -Type DWord -Value 1
# ===== VYŽADOVANIE TLS 1.2 PRE RDP =====
# 0 = RDP Security (slabé), 1 = Negotiate, 2 = TLS (odporúčané)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
-Name "SecurityLayer" -Type DWord -Value 2
# ===== NASTAVENIE ŠIFROVACEJ ÚROVNE =====
# 1 = Low, 2 = Client Compatible, 3 = High (odporúčané), 4 = FIPS
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
-Name "MinEncryptionLevel" -Type DWord -Value 3
# ===== SESSION TIMEOUT NASTAVENIA =====
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Force
# Odpojenie neaktívnej session po 15 minútach (900000 ms)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" `
-Name "MaxIdleTime" -Type DWord -Value 900000
# Ukončenie odpojenej session po 1 hodine (3600000 ms)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" `
-Name "MaxDisconnectionTime" -Type DWord -Value 3600000
# ===== ZAKÁZANIE UKLADANIA HESIEL =====
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" `
-Name "DisablePasswordSaving" -Type DWord -Value 1
# ===== ZAKÁZANIE DRIVE REDIRECTION =====
# Zabraňuje mapovaniu lokálnych diskov cez RDP (data exfiltration prevention)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" `
-Name "fDisableCdm" -Type DWord -Value 1
# ===== ZAKÁZANIE CLIPBOARD REDIRECTION (Voliteľné - vysoká bezpečnosť) =====
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" `
# -Name "fDisableClip" -Type DWord -Value 1
# ===== REMOTE CREDENTIAL GUARD =====
# Credentials nikdy neopustia klientsky PC
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
-Name "DisableRestrictedAdmin" -Type DWord -Value 0
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation" `
-Name "RestrictedRemoteAdministration" -Type DWord -Value 1
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation" `
-Name "RestrictedRemoteAdministrationType" -Type DWord -Value 2 # 2 = Require Remote Credential Guard
# ===== CREDENTIAL GUARD (VBS) =====
# Izoluje credentials vo virtualizovanom kontajneri
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
-Name "LsaCfgFlags" -Type DWord -Value 1
# ===== LSA PROTECTION =====
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
-Name "RunAsPPL" -Type DWord -Value 1
# ===== ZAKÁZANIE WDIGEST (Clear-text credentials v pamäti) =====
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" `
-Name "UseLogonCredential" -Type DWord -Value 0
# ===== ACCOUNT LOCKOUT POLICY =====
# Nastavenie cez net accounts (lokálne) alebo GPO (doménové)
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30
# ===== RDP PORT ZMENA (Security through obscurity - voliteľné) =====
# Zmena default portu z 3389 na iný (napr. 33890)
# Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
# -Name "PortNumber" -Type DWord -Value 33890
# ===== VERIFIKÁCIA RDP NASTAVENÍ =====
Write-Host "=== RDP Security Configuration ===" -ForegroundColor Cyan
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" | `
Select-Object UserAuthentication, SecurityLayer, MinEncryptionLevel, PortNumber | Format-List
Write-Host "`n=== Credential Protection Status ===" -ForegroundColor Cyan
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" | `
Select-Object LsaCfgFlags, RunAsPPL | Format-List
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" | `
Select-Object UseLogonCredential | Format-List
Write-Host "`n=== Active RDP Sessions ===" -ForegroundColor Cyan
qwinsta
Write-Host "`n=== RDP Listening Status ===" -ForegroundColor Cyan
Get-NetTCPConnection -LocalPort 3389 -ErrorAction SilentlyContinue | Format-Table
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthenticationAutoRun a AutoPlay sú funkcie Windows, ktoré automaticky spúšťajú programy alebo zobrazujú dialógy pri vložení removable médií (USB, CD/DVD). Tieto funkcie boli historicky jedným z najväčších vektorov šírenia malvéru a sú zodpovedné za niektoré z najväčších kybernetických útokov v histórii.
| Funkcia | Popis | Riziko | Odporúčanie |
|---|---|---|---|
| AutoRun |
Automatické spustenie programu definovaného v autorun.inf
na root disku. Pôvodne pre CD-ROM inštalátory.
|
Critical | Vždy zakázať |
| AutoPlay | Zobrazí dialóg s možnosťami (otvoriť priečinok, prehrať médiá, atď.) pri vložení média. Bezpečnejšie ako AutoRun. | Medium | Zakázať pre USB |
| autorun.inf | Konfiguračný súbor na root médiu, ktorý definuje akciu pri vložení. Môže špecifikovať spustiteľný súbor, ikonu, label. | Critical | Ignorovať vždy |
| Typ útoku | Popis | MITRE ATT&CK | Príklad |
|---|---|---|---|
| USB Malware Drop | Infikované USB obsahuje malvér, ktorý sa spustí cez AutoRun | T1091 (Replication Through Removable Media) | Conficker, Stuxnet |
| BadUSB | USB zariadenie sa tvári ako klávesnica a vykonáva príkazy | T1200 (Hardware Additions) | Rubber Ducky, Bash Bunny |
| USB Killer | Fyzické poškodenie PC pomocou elektrického výboja cez USB | T1485 (Data Destruction) | USB Killer v3 |
| Data Exfiltration | Krádež citlivých dát na removable médiá | T1052 (Exfiltration Over Physical Medium) | Insider threat |
| LNK/Shortcut Exploit | Škodlivé .lnk súbory exploitujú zraniteľnosti pri zobrazení ikony | T1204.002 (User Execution: Malicious File) | CVE-2010-2568 (Stuxnet) |
| USB Drop Attack | Útočník "zabudne" infikované USB na parkovisku/v lobby | T1566.001 (Phishing: Spearphishing Attachment) | Social engineering |
Priebeh útoku:
1. Útočník vytvorí infikované USB s autorun.inf a malvérom
2. USB je vložené do air-gapped systému (napr. priemyselný počítač)
3. AutoRun automaticky spustí malvér bez interakcie používateľa
4. Malvér sa šíri na ďalšie USB zariadenia pripojené k systému
5. Infikované USB je prenesené do iných sietí
Dopad: Stuxnet takto prenikol do iránskych jadrových zariadení a zničil centrifúgy
Mitigácia: Zakázanie AutoRun, USB device control, application whitelisting
Priebeh útoku:
1. Útočník použije USB zariadenie, ktoré sa tvári ako HID (klávesnica)
2. Po vložení do PC začne "písať" príkazy (PowerShell, CMD)
3. Za 2-5 sekúnd stiahne a spustí payload z internetu
4. Útočník získa reverse shell alebo nainštaluje backdoor
Poznámka: Tento útok NEFUNGUJE cez AutoRun – vyžaduje HID emulation
Mitigácia: USB device control (whitelist), Group Policy na blokovanie nových zariadení
Priebeh útoku:
1. Útočník položí USB s lákavým popisom ("Platy 2024", "Dôverné") na parkovisku
2. Zamestnanec nájde USB a pripojí ho k firemnému PC
3. AutoRun spustí malvér alebo používateľ otvorí "dokument" (v skutočnosti .exe)
4. Útočník získa prístup do firemnej siete
Štatistika: V testoch 45-98% nájdených USB kľúčov bolo pripojených k PC
Mitigácia: Security awareness training, zakázanie USB portov, AutoRun disabled
Register hodnota NoDriveTypeAutoRun je bitmask, ktorý určuje, pre ktoré typy diskov je AutoRun zakázaný:
| Bit | Hodnota | Typ disku | Popis |
|---|---|---|---|
| 0 | 0x01 | DRIVE_UNKNOWN | Neznámy typ disku |
| 1 | 0x02 | DRIVE_NO_ROOT_DIR | Disk bez root directory |
| 2 | 0x04 | DRIVE_REMOVABLE | USB flash disky, SD karty |
| 3 | 0x08 | DRIVE_FIXED | Pevné disky (HDD, SSD) |
| 4 | 0x10 | DRIVE_REMOTE | Sieťové disky |
| 5 | 0x20 | DRIVE_CDROM | CD/DVD/Blu-ray mechaniky |
| 6 | 0x40 | DRIVE_RAMDISK | RAM disky |
| 7 | 0x80 | Reserved | Budúce použitie |
| Všetky | 0xFF (255) | Všetky typy | Odporúčaná hodnota - zakáže AutoRun všade |
| Nastavenie | Hodnota | Risk | CIS Ref | Popis |
|---|---|---|---|---|
| NoDriveTypeAutoRun | 255 (0xFF) | Critical | 18.9.8.3 | Zakázanie AutoRun pre všetky typy diskov |
| NoAutorun | 1 | Critical | 18.9.8.2 | Úplné zakázanie AutoRun funkcionality |
| HonorAutorunSetting | 1 | High | 18.9.8.1 | Vynúti rešpektovanie AutoRun nastavení |
| DisableAutoplay | 1 | Medium | 18.9.8.4 | Zakáže AutoPlay dialóg pre removable médiá |
| NoAutoplayfornonVolume | 1 | Medium | 18.9.8.5 | Zakáže AutoPlay pre non-volume zariadenia (MTP) |
# ===== KOMPLETNÉ ZAKÁZANIE AUTORUN PRE VŠETKY TYPY MÉDIÍ =====
# HKLM - platí pre všetkých používateľov na systéme
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force -ErrorAction SilentlyContinue
# NoDriveTypeAutoRun = 255 (0xFF) zakáže AutoRun pre všetky typy diskov
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" `
-Name "NoDriveTypeAutoRun" -Type DWord -Value 255
# NoAutorun = 1 dodatočne zabezpečí úplné zakázanie
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" `
-Name "NoAutorun" -Type DWord -Value 1
# HonorAutorunSetting - vynúti rešpektovanie nastavení
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" `
-Name "HonorAutorunSetting" -Type DWord -Value 1
# ===== ZAKÁZANIE AUTOPLAY V GROUP POLICY =====
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Force -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" `
-Name "NoAutoplayfornonVolume" -Type DWord -Value 1
# ===== ZAKÁZANIE PRE AKTUÁLNEHO POUŽÍVATEĽA (HKCU) =====
New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" `
-Name "NoDriveTypeAutoRun" -Type DWord -Value 255
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" `
-Name "NoAutorun" -Type DWord -Value 1
# ===== ZAKÁZANIE AUTOPLAY HANDLEROV =====
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" -Force -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" `
-Name "DisableAutoplay" -Type DWord -Value 1
# ===== ZAKÁZANIE AUTORUN CEZ GROUP POLICY (GPO equivalent) =====
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" `
-Name "NoDriveAutoRun" -Type DWord -Value 67108863 # 0x3FFFFFF - všetky disky
# ===== DODATOČNÉ: ZAKÁZANIE ZÁPISU NA REMOVABLE DISKY (Voliteľné - vysoká bezpečnosť) =====
# Zabraňuje data exfiltration cez USB
# New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies" -Force
# Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies" `
# -Name "WriteProtect" -Type DWord -Value 1
# ===== ZAKÁZANIE INŠTALÁCIE NOVÝCH USB STORAGE ZARIADENÍ (Voliteľné) =====
# Blokuje pripojenie nových USB storage zariadení
# Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\USBSTOR" `
# -Name "Start" -Type DWord -Value 4 # 4 = Disabled
# ===== VERIFIKÁCIA NASTAVENÍ =====
Write-Host "=== AutoRun/AutoPlay Configuration ===" -ForegroundColor Cyan
Write-Host "`n[HKLM Policy]" -ForegroundColor Yellow
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -ErrorAction SilentlyContinue | `
Select-Object NoDriveTypeAutoRun, NoAutorun, HonorAutorunSetting | Format-List
Write-Host "[HKCU Policy]" -ForegroundColor Yellow
Get-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -ErrorAction SilentlyContinue | `
Select-Object NoDriveTypeAutoRun, NoAutorun | Format-List
Write-Host "[AutoPlay Handlers]" -ForegroundColor Yellow
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" -ErrorAction SilentlyContinue | `
Select-Object DisableAutoplay | Format-List
# Overenie hodnoty - mala by byť 255
$value = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "NoDriveTypeAutoRun" -ErrorAction SilentlyContinue).NoDriveTypeAutoRun
if ($value -eq 255) {
Write-Host "✓ NoDriveTypeAutoRun = 255 (všetky typy diskov zakázané)" -ForegroundColor Green
} else {
Write-Host "✗ NoDriveTypeAutoRun = $value (očakávané: 255)" -ForegroundColor Red
}
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoDriveTypeAutoRungpedit.msc → Computer Configuration → Administrative Templates → Windows Components → AutoPlay PoliciesComputer Configuration → Administrative Templates → Windows Components → AutoPlay Policies → Turn off Autoplay → Enabled, All drivesComputer Configuration → Administrative Templates → Windows Components → AutoPlay Policies → Set the default behavior for AutoRun → Do not execute any autorun commandsComputer Configuration → Administrative Templates → System → Removable Storage Access → Deny all access (voliteľné)#Requires -RunAsAdministrator
# ============================================================================
# WINDOWS 11 KOMPLETNÝ SECURITY HARDENING SCRIPT
# Verzia: 2.0 | MHITE s.r.o.
# Dátum: 2024
# ============================================================================
# Tento skript implementuje bezpečnostné odporúčania podľa:
# - CIS Windows 11 Benchmark
# - Microsoft Security Baseline
# - NIST SP 800-53
# ============================================================================
$ErrorActionPreference = "SilentlyContinue"
$StartTime = Get-Date
Write-Host "╔══════════════════════════════════════════════════════════════════╗" -ForegroundColor Cyan
Write-Host "║ WINDOWS 11 KOMPLETNÝ SECURITY HARDENING SCRIPT v2.0 ║" -ForegroundColor Cyan
Write-Host "║ MHITE s.r.o. ║" -ForegroundColor Cyan
Write-Host "╚══════════════════════════════════════════════════════════════════╝" -ForegroundColor Cyan
Write-Host "`nČas spustenia: $StartTime" -ForegroundColor Gray
Write-Host "Začínam konfiguráciu bezpečnostných nastavení...`n" -ForegroundColor Yellow
# ============================================================================
# [1/15] MICROSOFT DEFENDER ANTIVIRUS
# ============================================================================
Write-Host "[1/15] Konfigurácia Microsoft Defender Antivirus..." -ForegroundColor Green
# Základná ochrana
Set-MpPreference -DisableRealtimeMonitoring $false
Set-MpPreference -DisableBehaviorMonitoring $false
Set-MpPreference -DisableIOAVProtection $false
Set-MpPreference -DisablePrivacyMode $false
# Cloud-based Protection
Set-MpPreference -MAPSReporting Advanced
Set-MpPreference -SubmitSamplesConsent SendAllSamples
Set-MpPreference -CloudBlockLevel High
Set-MpPreference -CloudExtendedTimeout 50
# Ďalšie ochranné funkcie
Set-MpPreference -EnableControlledFolderAccess Enabled
Set-MpPreference -EnableNetworkProtection Enabled
Set-MpPreference -PUAProtection Enabled
# Skenovanie
Set-MpPreference -DisableArchiveScanning $false
Set-MpPreference -DisableRemovableDriveScanning $false
Set-MpPreference -DisableEmailScanning $false
Write-Host " ✓ Defender nakonfigurovaný" -ForegroundColor DarkGreen
# ============================================================================
# [2/15] ATTACK SURFACE REDUCTION (ASR) RULES
# ============================================================================
Write-Host "[2/15] Konfigurácia Attack Surface Reduction pravidiel..." -ForegroundColor Green
# ASR pravidlá (1 = Block, 2 = Audit)
$ASRRules = @{
"BE9BA2D9-53EA-4CDC-84E5-9B1EEEE46550" = 1 # Block executable content from email
"D4F940AB-401B-4EFC-AADC-AD5F3C50688A" = 1 # Block Office apps from creating child processes
"3B576869-A4EC-4529-8536-B80A7769E899" = 1 # Block Office apps from creating executable content
"75668C1F-73B5-4CF0-BB93-3ECF5CB7CC84" = 1 # Block Office apps from injecting into other processes
"D3E037E1-3EB8-44C8-A917-57927947596D" = 1 # Block JavaScript/VBScript from launching downloaded content
"5BEB7EFE-FD9A-4556-801D-275E5FFC04CC" = 1 # Block execution of potentially obfuscated scripts
"92E97FA1-2EDF-4476-BDD6-9DD0B4DDDC7B" = 1 # Block Win32 API calls from Office macro
"01443614-CD74-433A-B99E-2ECDC07BFC25" = 1 # Block executable files unless they meet criteria
"C1DB55AB-C21A-4637-BB3F-A12568109D35" = 1 # Block use of copied or impersonated system tools
"9E6C4E1F-7D60-472F-BA1A-A39EF669E4B2" = 1 # Block credential stealing from LSASS
"D1E49AAC-8F56-4280-B9BA-993A6D77406C" = 1 # Block process creations from PSExec and WMI
"B2B3F03D-6A65-4F7B-A9C7-1C7EF74A9BA4" = 1 # Block untrusted/unsigned processes from USB
"26190899-1602-49E8-8B27-EB1D0A1CE869" = 1 # Block Office communication apps from creating child processes
"7674BA52-37EB-4A4F-A9A1-F0F9A1619A2C" = 1 # Block Adobe Reader from creating child processes
"E6DB77E5-3DF2-4CF1-B95A-636979351E5B" = 1 # Block persistence through WMI event subscription
"56A863A9-875E-4185-98A7-B882C64B5CE5" = 1 # Block abuse of exploited vulnerable signed drivers
}
foreach ($rule in $ASRRules.GetEnumerator()) {
Add-MpPreference -AttackSurfaceReductionRules_Ids $rule.Key -AttackSurfaceReductionRules_Actions $rule.Value
}
Write-Host " ✓ ASR pravidlá nakonfigurované (16 pravidiel)" -ForegroundColor DarkGreen
# ============================================================================
# [3/15] CORE ISOLATION / VIRTUALIZATION-BASED SECURITY (VBS)
# ============================================================================
Write-Host "[3/15] Konfigurácia Core Isolation (VBS)..." -ForegroundColor Green
# Memory Integrity (HVCI)
$HVCIPath = "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity"
if (!(Test-Path $HVCIPath)) { New-Item -Path $HVCIPath -Force | Out-Null }
Set-ItemProperty -Path $HVCIPath -Name "Enabled" -Type DWord -Value 1
# Credential Guard
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "LsaCfgFlags" -Type DWord -Value 1
# LSA Protection (PPL)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RunAsPPL" -Type DWord -Value 1
# Device Guard
$DGPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard"
if (!(Test-Path $DGPath)) { New-Item -Path $DGPath -Force | Out-Null }
Set-ItemProperty -Path $DGPath -Name "EnableVirtualizationBasedSecurity" -Type DWord -Value 1
Set-ItemProperty -Path $DGPath -Name "RequirePlatformSecurityFeatures" -Type DWord -Value 3
Set-ItemProperty -Path $DGPath -Name "LsaCfgFlags" -Type DWord -Value 1
# Vulnerable Driver Blocklist
$CIPath = "HKLM:\SYSTEM\CurrentControlSet\Control\CI\Config"
if (!(Test-Path $CIPath)) { New-Item -Path $CIPath -Force | Out-Null }
Set-ItemProperty -Path $CIPath -Name "VulnerableDriverBlocklistEnable" -Type DWord -Value 1
Write-Host " ✓ Core Isolation nakonfigurovaná" -ForegroundColor DarkGreen
# ============================================================================
# [4/15] WINDOWS FIREWALL
# ============================================================================
Write-Host "[4/15] Konfigurácia Windows Firewall..." -ForegroundColor Green
# Zapnutie firewallu pre všetky profily
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
# Default akcie
Set-NetFirewallProfile -Profile Domain,Public,Private `
-DefaultInboundAction Block `
-DefaultOutboundAction Allow `
-NotifyOnListen False `
-AllowUnicastResponseToMulticast False
# Prísnejšie nastavenia pre Public profil
Set-NetFirewallProfile -Profile Public `
-AllowLocalFirewallRules False `
-AllowLocalIPsecRules False
# Logovanie
Set-NetFirewallProfile -Profile Domain `
-LogFileName "%SystemRoot%\System32\LogFiles\Firewall\domain.log" `
-LogMaxSizeKilobytes 16384 -LogBlocked True -LogAllowed False
Set-NetFirewallProfile -Profile Private `
-LogFileName "%SystemRoot%\System32\LogFiles\Firewall\private.log" `
-LogMaxSizeKilobytes 16384 -LogBlocked True -LogAllowed False
Set-NetFirewallProfile -Profile Public `
-LogFileName "%SystemRoot%\System32\LogFiles\Firewall\public.log" `
-LogMaxSizeKilobytes 32767 -LogBlocked True -LogAllowed True
# Blokovanie kritických portov na Public profile
$BlockRules = @(
@{Name="Block SMB"; Port=445; Protocol="TCP"},
@{Name="Block RDP"; Port=3389; Protocol="TCP"},
@{Name="Block NetBIOS TCP"; Port="137-139"; Protocol="TCP"},
@{Name="Block NetBIOS UDP"; Port="137-139"; Protocol="UDP"},
@{Name="Block WinRM"; Port="5985,5986"; Protocol="TCP"},
@{Name="Block RPC"; Port=135; Protocol="TCP"}
)
foreach ($rule in $BlockRules) {
New-NetFirewallRule -DisplayName "$($rule.Name) Public" -Direction Inbound `
-Protocol $rule.Protocol -LocalPort $rule.Port -Action Block -Profile Public -Enabled True | Out-Null
}
Write-Host " ✓ Firewall nakonfigurovaný" -ForegroundColor DarkGreen
# ============================================================================
# [5/15] SMB HARDENING
# ============================================================================
Write-Host "[5/15] SMB Hardening..." -ForegroundColor Green
# Zakázanie SMBv1
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart -ErrorAction SilentlyContinue | Out-Null
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
# SMB Signing
Set-SmbServerConfiguration -EnableSecuritySignature $true -Force
Set-SmbServerConfiguration -RequireSecuritySignature $true -Force
Set-SmbClientConfiguration -EnableSecuritySignature $true -Force
Set-SmbClientConfiguration -RequireSecuritySignature $true -Force
# SMB Encryption (pre SMB 3.0+)
Set-SmbServerConfiguration -EncryptData $true -Force -ErrorAction SilentlyContinue
Write-Host " ✓ SMB hardening dokončený" -ForegroundColor DarkGreen
# ============================================================================
# [6/15] NETWORK SECURITY
# ============================================================================
Write-Host "[6/15] Konfigurácia Network Security..." -ForegroundColor Green
# Zakázanie LLMNR
$DNSClientPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient"
if (!(Test-Path $DNSClientPath)) { New-Item -Path $DNSClientPath -Force | Out-Null }
Set-ItemProperty -Path $DNSClientPath -Name "EnableMulticast" -Type DWord -Value 0
# TCP/IP Stack Hardening
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -Name "DisableIPSourceRouting" -Type DWord -Value 2
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" -Name "DisableIPSourceRouting" -Type DWord -Value 2
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -Name "EnableICMPRedirect" -Type DWord -Value 0
# Network Access
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "EveryoneIncludesAnonymous" -Type DWord -Value 0
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RestrictAnonymous" -Type DWord -Value 1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RestrictAnonymousSAM" -Type DWord -Value 1
# Null Session
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" -Name "RestrictNullSessAccess" -Type DWord -Value 1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" -Name "NullSessionShares" -Type MultiString -Value @()
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" -Name "NullSessionPipes" -Type MultiString -Value @()
Write-Host " ✓ Network security nakonfigurovaná" -ForegroundColor DarkGreen
# ============================================================================
# [7/15] AUDIT POLICY
# ============================================================================
Write-Host "[7/15] Konfigurácia Audit Policy..." -ForegroundColor Green
# Account Logon
auditpol /set /subcategory:"Credential Validation" /success:enable /failure:enable | Out-Null
auditpol /set /subcategory:"Kerberos Authentication Service" /success:enable /failure:enable | Out-Null
auditpol /set /subcategory:"Kerberos Service Ticket Operations" /success:enable /failure:enable | Out-Null
# Account Management
auditpol /set /subcategory:"User Account Management" /success:enable /failure:enable | Out-Null
auditpol /set /subcategory:"Security Group Management" /success:enable /failure:enable | Out-Null
auditpol /set /subcategory:"Computer Account Management" /success:enable /failure:enable | Out-Null
# Logon/Logoff
auditpol /set /subcategory:"Logon" /success:enable /failure:enable | Out-Null
auditpol /set /subcategory:"Logoff" /success:enable /failure:disable | Out-Null
auditpol /set /subcategory:"Special Logon" /success:enable /failure:enable | Out-Null
auditpol /set /subcategory:"Account Lockout" /success:enable /failure:enable | Out-Null
# Process Tracking
auditpol /set /subcategory:"Process Creation" /success:enable /failure:enable | Out-Null
auditpol /set /subcategory:"Process Termination" /success:enable /failure:disable | Out-Null
# Privilege Use
auditpol /set /subcategory:"Sensitive Privilege Use" /success:enable /failure:enable | Out-Null
# System Events
auditpol /set /subcategory:"Security State Change" /success:enable /failure:enable | Out-Null
auditpol /set /subcategory:"Security System Extension" /success:enable /failure:enable | Out-Null
auditpol /set /subcategory:"System Integrity" /success:enable /failure:enable | Out-Null
# Object Access
auditpol /set /subcategory:"Kernel Object" /success:enable /failure:enable | Out-Null
auditpol /set /subcategory:"Handle Manipulation" /success:enable /failure:enable | Out-Null
# Command Line v Process Creation eventoch
$AuditPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit"
if (!(Test-Path $AuditPath)) { New-Item -Path $AuditPath -Force | Out-Null }
Set-ItemProperty -Path $AuditPath -Name "ProcessCreationIncludeCmdLine_Enabled" -Type DWord -Value 1
# Security Log Size
wevtutil sl Security /ms:1073741824 | Out-Null
Write-Host " ✓ Audit policy nakonfigurovaná" -ForegroundColor DarkGreen
# ============================================================================
# [8/15] INTERACTIVE LOGON
# ============================================================================
Write-Host "[8/15] Konfigurácia Interactive Logon..." -ForegroundColor Green
$SystemPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
# CTRL+ALT+DEL vyžadovaný
Set-ItemProperty -Path $SystemPath -Name "DisableCAD" -Type DWord -Value 0
# Nezobrazovať posledné meno
Set-ItemProperty -Path $SystemPath -Name "DontDisplayLastUserName" -Type DWord -Value 1
# Inactivity timeout (15 minút)
Set-ItemProperty -Path $SystemPath -Name "InactivityTimeoutSecs" -Type DWord -Value 900
# Legal Notice
Set-ItemProperty -Path $SystemPath -Name "LegalNoticeCaption" -Type String -Value "POZOR - Súkromný systém"
Set-ItemProperty -Path $SystemPath -Name "LegalNoticeText" -Type String -Value "Tento systém je určený len pre autorizovaných používateľov. Všetky aktivity sú monitorované a zaznamenávané. Neautorizovaný prístup je zakázaný a bude právne stíhaný."
# Cached Logons
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name "CachedLogonsCount" -Type String -Value "3"
Write-Host " ✓ Interactive Logon nakonfigurovaný" -ForegroundColor DarkGreen
# ============================================================================
# [9/15] SHUTDOWN POLICY
# ============================================================================
Write-Host "[9/15] Konfigurácia Shutdown Policy..." -ForegroundColor Green
# Zakázanie shutdown bez prihlásenia
Set-ItemProperty -Path $SystemPath -Name "ShutdownWithoutLogon" -Type DWord -Value 0
# Clear Pagefile pri shutdown
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name "ClearPageFileAtShutdown" -Type DWord -Value 1
# Zakázanie Fast Startup
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -Type DWord -Value 0
# Zakázanie Hibernate
powercfg /hibernate off 2>$null
# Kernel Crash Dump - Small (zabraňuje credential extraction)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl" -Name "CrashDumpEnabled" -Type DWord -Value 3
Write-Host " ✓ Shutdown Policy nakonfigurovaná" -ForegroundColor DarkGreen
# ============================================================================
# [10/15] SYSTEM OBJECTS PROTECTION
# ============================================================================
Write-Host "[10/15] Konfigurácia System Objects Protection..." -ForegroundColor Green
# Protection Mode
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name "ProtectionMode" -Type DWord -Value 1
# Safe DLL Search Mode
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name "SafeDllSearchMode" -Type DWord -Value 1
# Filter Administrator Token
Set-ItemProperty -Path $SystemPath -Name "FilterAdministratorToken" -Type DWord -Value 1
# Secure UIA Path
Set-ItemProperty -Path $SystemPath -Name "EnableSecureUIAPaths" -Type DWord -Value 1
# Mandatory ASLR
Set-ProcessMitigation -System -Enable ForceRelocateImages -ErrorAction SilentlyContinue
Write-Host " ✓ System Objects Protection nakonfigurovaná" -ForegroundColor DarkGreen
# ============================================================================
# [11/15] CREDENTIALS PROTECTION
# ============================================================================
Write-Host "[11/15] Konfigurácia Credentials Protection..." -ForegroundColor Green
# Zakázanie WDigest
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" -Name "UseLogonCredential" -Type DWord -Value 0
# Zakázanie automatického prihlásenia
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name "AutoAdminLogon" -Type String -Value "0"
# Remote Credential Guard
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "DisableRestrictedAdmin" -Type DWord -Value 0
$CredDelegPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation"
if (!(Test-Path $CredDelegPath)) { New-Item -Path $CredDelegPath -Force | Out-Null }
Set-ItemProperty -Path $CredDelegPath -Name "RestrictedRemoteAdministration" -Type DWord -Value 1
Set-ItemProperty -Path $CredDelegPath -Name "RestrictedRemoteAdministrationType" -Type DWord -Value 2
Write-Host " ✓ Credentials Protection nakonfigurovaná" -ForegroundColor DarkGreen
# ============================================================================
# [12/15] RDP HARDENING
# ============================================================================
Write-Host "[12/15] Konfigurácia RDP Security..." -ForegroundColor Green
$RDPPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
# Network Level Authentication (NLA)
Set-ItemProperty -Path $RDPPath -Name "UserAuthentication" -Type DWord -Value 1
# Security Layer (TLS)
Set-ItemProperty -Path $RDPPath -Name "SecurityLayer" -Type DWord -Value 2
# Encryption Level (High)
Set-ItemProperty -Path $RDPPath -Name "MinEncryptionLevel" -Type DWord -Value 3
# Session Timeouts
$TSPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services"
if (!(Test-Path $TSPath)) { New-Item -Path $TSPath -Force | Out-Null }
Set-ItemProperty -Path $TSPath -Name "MaxIdleTime" -Type DWord -Value 900000
Set-ItemProperty -Path $TSPath -Name "MaxDisconnectionTime" -Type DWord -Value 3600000
Set-ItemProperty -Path $TSPath -Name "DisablePasswordSaving" -Type DWord -Value 1
Set-ItemProperty -Path $TSPath -Name "fDisableCdm" -Type DWord -Value 1
# Account Lockout
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30 2>$null | Out-Null
Write-Host " ✓ RDP Security nakonfigurovaná" -ForegroundColor DarkGreen
# ============================================================================
# [13/15] AUTORUN / AUTOPLAY
# ============================================================================
Write-Host "[13/15] Zakázanie AutoRun/AutoPlay..." -ForegroundColor Green
$ExplorerPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer"
if (!(Test-Path $ExplorerPath)) { New-Item -Path $ExplorerPath -Force | Out-Null }
# NoDriveTypeAutoRun = 255 (všetky typy diskov)
Set-ItemProperty -Path $ExplorerPath -Name "NoDriveTypeAutoRun" -Type DWord -Value 255
Set-ItemProperty -Path $ExplorerPath -Name "NoAutorun" -Type DWord -Value 1
Set-ItemProperty -Path $ExplorerPath -Name "HonorAutorunSetting" -Type DWord -Value 1
Set-ItemProperty -Path $ExplorerPath -Name "NoDriveAutoRun" -Type DWord -Value 67108863
# AutoPlay Handlers
$AutoplayPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers"
if (!(Test-Path $AutoplayPath)) { New-Item -Path $AutoplayPath -Force | Out-Null }
Set-ItemProperty -Path $AutoplayPath -Name "DisableAutoplay" -Type DWord -Value 1
# Non-Volume AutoPlay
$WinExplorerPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer"
if (!(Test-Path $WinExplorerPath)) { New-Item -Path $WinExplorerPath -Force | Out-Null }
Set-ItemProperty -Path $WinExplorerPath -Name "NoAutoplayfornonVolume" -Type DWord -Value 1
# HKCU nastavenia
$HKCUExplorerPath = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer"
if (!(Test-Path $HKCUExplorerPath)) { New-Item -Path $HKCUExplorerPath -Force | Out-Null }
Set-ItemProperty -Path $HKCUExplorerPath -Name "NoDriveTypeAutoRun" -Type DWord -Value 255
Set-ItemProperty -Path $HKCUExplorerPath -Name "NoAutorun" -Type DWord -Value 1
Write-Host " ✓ AutoRun/AutoPlay zakázané" -ForegroundColor DarkGreen
# ============================================================================
# [14/15] GPO ADMINISTRATIVE TEMPLATES
# ============================================================================
Write-Host "[14/15] Konfigurácia GPO Administrative Templates..." -ForegroundColor Green
# Privacy - Lock Screen
$PersonalizationPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization"
if (!(Test-Path $PersonalizationPath)) { New-Item -Path $PersonalizationPath -Force | Out-Null }
Set-ItemProperty -Path $PersonalizationPath -Name "NoLockScreenCamera" -Type DWord -Value 1
Set-ItemProperty -Path $PersonalizationPath -Name "NoLockScreenSlideshow" -Type DWord -Value 1
# Input Personalization
$InputPath = "HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization"
if (!(Test-Path $InputPath)) { New-Item -Path $InputPath -Force | Out-Null }
Set-ItemProperty -Path $InputPath -Name "AllowInputPersonalization" -Type DWord -Value 0
# Windows Search
$SearchPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search"
if (!(Test-Path $SearchPath)) { New-Item -Path $SearchPath -Force | Out-Null }
Set-ItemProperty -Path $SearchPath -Name "AllowCortana" -Type DWord -Value 0
Set-ItemProperty -Path $SearchPath -Name "AllowSearchToUseLocation" -Type DWord -Value 0
Set-ItemProperty -Path $SearchPath -Name "DisableWebSearch" -Type DWord -Value 1
# Telemetry (Enterprise: 0=Security, 1=Basic, 2=Enhanced, 3=Full)
$DataCollectionPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection"
if (!(Test-Path $DataCollectionPath)) { New-Item -Path $DataCollectionPath -Force | Out-Null }
Set-ItemProperty -Path $DataCollectionPath -Name "AllowTelemetry" -Type DWord -Value 1
Write-Host " ✓ GPO Templates nakonfigurované" -ForegroundColor DarkGreen
# ============================================================================
# [15/15] FINALIZÁCIA
# ============================================================================
Write-Host "[15/15] Finalizácia a verifikácia..." -ForegroundColor Green
$EndTime = Get-Date
$Duration = $EndTime - $StartTime
Write-Host "`n╔══════════════════════════════════════════════════════════════════╗" -ForegroundColor Green
Write-Host "║ HARDENING DOKONČENÝ ║" -ForegroundColor Green
Write-Host "╚══════════════════════════════════════════════════════════════════╝" -ForegroundColor Green
Write-Host "`nČas dokončenia: $EndTime" -ForegroundColor Gray
Write-Host "Celkový čas: $($Duration.TotalSeconds) sekúnd" -ForegroundColor Gray
Write-Host "`n=== ZHRNUTIE APLIKOVANÝCH NASTAVENÍ ===" -ForegroundColor Cyan
Write-Host " [✓] Microsoft Defender - Real-time, Cloud, Network Protection"
Write-Host " [✓] ASR Rules - 16 pravidiel v Block mode"
Write-Host " [✓] Core Isolation - HVCI, Credential Guard, LSA Protection"
Write-Host " [✓] Windows Firewall - 3 profily, logovanie, blokované porty"
Write-Host " [✓] SMB Hardening - SMBv1 zakázané, signing povinný"
Write-Host " [✓] Network Security - LLMNR zakázané, TCP/IP hardening"
Write-Host " [✓] Audit Policy - Komplexné logovanie"
Write-Host " [✓] Interactive Logon - CTRL+ALT+DEL, timeout, legal notice"
Write-Host " [✓] Shutdown Policy - Pagefile clearing, Fast Startup off"
Write-Host " [✓] System Objects - Protection Mode, Safe DLL Search"
Write-Host " [✓] Credentials Protection - WDigest off, Credential Guard"
Write-Host " [✓] RDP Security - NLA, TLS, session timeouts"
Write-Host " [✓] AutoRun/AutoPlay - Úplne zakázané"
Write-Host " [✓] GPO Templates - Privacy, telemetria"
Write-Host "`n╔══════════════════════════════════════════════════════════════════╗" -ForegroundColor Yellow
Write-Host "║ DÔLEŽITÉ: REŠTARTUJTE SYSTÉM PRE APLIKOVANIE VŠETKÝCH ZMIEN! ║" -ForegroundColor Yellow
Write-Host "╚══════════════════════════════════════════════════════════════════╝" -ForegroundColor Yellow
Write-Host "`n=== VERIFIKAČNÉ PRÍKAZY ===" -ForegroundColor Cyan
Write-Host " msinfo32 - VBS/Credential Guard status"
Write-Host " Get-MpComputerStatus - Defender status"
Write-Host " Get-MpPreference - ASR rules"
Write-Host " Get-NetFirewallProfile - Firewall status"
Write-Host " Get-SmbServerConfiguration - SMB config"
Write-Host " auditpol /get /category:* - Audit policy"
Write-Host " gpresult /h report.html - Applied GPO settings"
msinfo32 → "Virtualization-based security"Get-MpComputerStatus | Select RealTimeProtectionEnabled, AntivirusEnabled(Get-MpPreference).AttackSurfaceReductionRules_Ids.Count - malo by byť 16Get-NetFirewallProfile | Select Name, Enabled, DefaultInboundActionauditpol /get /category:* | findstr /i "success failure"| # | Oblasť | Kľúčové nastavenia | Priorita | MITRE ATT&CK |
|---|---|---|---|---|
| 1 | Úvod a rozsah | Dokumentácia, scope definícia | Info | - |
| 2 | Referenčné štandardy | CIS, NIST, Microsoft Baseline | Info | - |
| 3 | Windows Update | Automatické aktualizácie, ASAP patching | Critical | T1190 - Exploit Public-Facing |
| 4 | Microsoft Defender | Real-time, Tamper Protection, 16 ASR pravidiel | Critical | T1059 - Command Execution |
| 5 | Core Isolation (VBS) | HVCI, Credential Guard, LSA Protection (PPL) | Critical | T1003 - Credential Dumping |
| 6 | Sieťová bezpečnosť | SMBv1 off, SMB signing, LLMNR off, NetBIOS off | Critical | T1557 - Adversary-in-the-Middle |
| 7 | Audit Policy | Auditpol, command line logging, ScriptBlockLogging | High | T1070 - Indicator Removal |
| 8 | Interactive Logon | CTRL+ALT+DEL, timeout, legal notice | Medium | T1078 - Valid Accounts |
| 9 | MS Network Server | SMB signing, idle disconnect, SPN validation | High | T1557.001 - LLMNR Poisoning |
| 10 | Shutdown Policy | Pagefile clearing, hibernate off, shutdown rights | Medium | T1005 - Data from Local System |
| 11 | System Objects | Default permissions, case sensitivity | Medium | T1134 - Access Token Manipulation |
| 12 | Windows Firewall | 3 profily enabled, port blocking, logging | High | T1046 - Network Discovery |
| 13 | GPO Templates | Privacy, WDigest off, TCP/IP hardening, DLL safe mode | High | T1574 - Hijack Execution Flow |
| 14 | RDP & Credentials | NLA, TLS 1.2, Remote Credential Guard, timeouts | Critical | T1021.001 - Remote Desktop |
| 15 | AutoRun/AutoPlay | NoDriveTypeAutoRun=255, AutoPlay disabled | High | T1091 - Replication via Media |
| Priorita | Sekcie | Zdôvodnenie | Riziko bez implementácie |
|---|---|---|---|
| P1 – Critical | 3, 4, 5, 6, 14 | Základná ochrana pred najčastejšími útokmi (ransomware, credential theft) | Vysoká pravdepodobnosť kompromitácie |
| P2 – High | 7, 9, 12, 13, 15 | Detekcia, network hardening, lateral movement prevention | Sťažená detekcia, šírenie útoku v sieti |
| P3 – Medium | 8, 10, 11 | Defense in depth, compliance, data protection | Compliance issues, data leakage |
| P4 – Info | 1, 2, 16, 17 | Dokumentácia, referencie, sumár | - |
# ===== KOMPLETNÁ VERIFIKÁCIA VŠETKÝCH NASTAVENÍ =====
Write-Host "═══════════════════════════════════════════════════════════════" -ForegroundColor Cyan
Write-Host " WINDOWS 11 SECURITY HARDENING AUDIT " -ForegroundColor Cyan
Write-Host "═══════════════════════════════════════════════════════════════" -ForegroundColor Cyan
# [3] Windows Update
Write-Host "`n[3] WINDOWS UPDATE:" -ForegroundColor Yellow
Get-Service wuauserv | Select-Object Status, StartType
# [4] Microsoft Defender
Write-Host "`n[4] MICROSOFT DEFENDER:" -ForegroundColor Yellow
Get-MpPreference | Select-Object DisableRealtimeMonitoring, EnableControlledFolderAccess, EnableNetworkProtection
Get-MpComputerStatus | Select-Object RealTimeProtectionEnabled, IsTamperProtected
# [5] Core Isolation / VBS
Write-Host "`n[5] CORE ISOLATION (VBS):" -ForegroundColor Yellow
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard |
Select-Object VirtualizationBasedSecurityStatus, SecurityServicesRunning
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RunAsPPL" -ErrorAction SilentlyContinue
# [6] Sieťová bezpečnosť
Write-Host "`n[6] SIEŤOVÁ BEZPEČNOSŤ:" -ForegroundColor Yellow
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol, RequireSecuritySignature, EnableSecuritySignature
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name "EnableMulticast" -EA SilentlyContinue
# [7] Audit Policy
Write-Host "`n[7] AUDIT POLICY:" -ForegroundColor Yellow
auditpol /get /category:* | Select-String "Success|Failure" | Select-Object -First 10
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit" -EA SilentlyContinue
# [12] Windows Firewall
Write-Host "`n[12] WINDOWS FIREWALL:" -ForegroundColor Yellow
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction
# [13] GPO - WDigest, DLL
Write-Host "`n[13] GPO NASTAVENIA:" -ForegroundColor Yellow
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" -Name "UseLogonCredential" -EA SilentlyContinue
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name "SafeDllSearchMode" -EA SilentlyContinue
# [14] RDP
Write-Host "`n[14] RDP KONFIGURÁCIA:" -ForegroundColor Yellow
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" |
Select-Object UserAuthentication, SecurityLayer, MinEncryptionLevel
# [15] AutoRun
Write-Host "`n[15] AUTORUN/AUTOPLAY:" -ForegroundColor Yellow
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "NoDriveTypeAutoRun" -EA SilentlyContinue
Write-Host "`n═══════════════════════════════════════════════════════════════" -ForegroundColor Green
Write-Host " AUDIT DOKONČENÝ " -ForegroundColor Green
Write-Host "═══════════════════════════════════════════════════════════════" -ForegroundColor Green
| Pojem | Anglický názov | Vysvetlenie |
|---|---|---|
| ASR | Attack Surface Reduction | Sada 16 pravidiel v Microsoft Defender na blokovanie bežných attack vektorov (makrá, skripty, credential stealing) |
| Credential Guard | - | VBS funkcia izolujúca NTLM hashes a Kerberos tickets v zabezpečenom kontajneri mimo dosahu malware |
| HVCI | Hypervisor-protected Code Integrity | Memory Integrity v Core Isolation - blokuje spúšťanie nepodpísaného kódu v kernel mode |
| LSA Protection | Local Security Authority Protection | Ochrana LSASS procesu pomocou PPL (Protected Process Light) pred injection útokmi |
| NLA | Network Level Authentication | Pre-autentifikácia pred vytvorením RDP session - blokuje pre-auth exploity ako BlueKeep |
| PPL | Protected Process Light | Windows mechanizmus ochrany kritických procesov pred injection a memory dump útokmi |
| VBS | Virtualization-based Security | Bezpečnostné funkcie využívajúce hardvérovú virtualizáciu (Hyper-V) na izoláciu citlivých dát |
| Remote Credential Guard | - | Ochrana credentials pri RDP - credentials nikdy neopúšťajú klientsky počítač |
| Tamper Protection | - | Funkcia Defender brániaca malware vypnúť antivírusovú ochranu |
| Pojem | Port/Protokol | Vysvetlenie |
|---|---|---|
| SMB | TCP 445 | Server Message Block – protokol pre zdieľanie súborov a tlačiarní. SMBv1 je zastaraný a zraniteľný (EternalBlue) |
| RDP | TCP 3389 | Remote Desktop Protocol – vzdialený prístup k pracovnej ploche, častý cieľ útokov |
| LLMNR | UDP 5355 | Link-Local Multicast Name Resolution – protokol zneužívaný pre credential theft (Responder attacks) |
| NetBIOS | UDP 137-138, TCP 139 | Network Basic Input/Output System – zastaraný protokol zneužívaný pre poisoning útoky |
| WDigest | - | Zastaraný autentifikačný protokol ukladajúci credentials v reverzibilnej forme (čitateľné Mimikatz) |
| NTLM | - | NT LAN Manager – autentifikačný protokol, hashované credentials sú cieľom Pass-the-Hash útokov |
| Kerberos | TCP/UDP 88 | Bezpečnejší autentifikačný protokol používaný v Active Directory prostrediach |
| Pojem | Proces/Súbor | Vysvetlenie |
|---|---|---|
| LSASS | lsass.exe | Local Security Authority Subsystem Service – proces spravujúci autentifikáciu, obsahuje credentials |
| AMSI | amsi.dll | Antimalware Scan Interface – rozhranie pre skenovanie skriptov pred spustením |
| ETW | - | Event Tracing for Windows – systém pre diagnostiku a audit logging |
| SAM | - | Security Account Manager – databáza lokálnych používateľských účtov a hashov |
| GPO | gpedit.msc | Group Policy Object – centralizovaná správa nastavení Windows v doménovom prostredí |
| Pojem | Organizácia | Vysvetlenie |
|---|---|---|
| CIS | Center for Internet Security | Nezisková organizácia publikujúca bezpečnostné benchmarky pre operačné systémy a aplikácie |
| NIST | National Institute of Standards | Americký vládny inštitút vydávajúci SP 800-53 a ďalšie bezpečnostné štandardy |
| MITRE ATT&CK | MITRE Corporation | Znalostná báza techník a taktík používaných útočníkmi, štandard pre threat modeling |
| STIG | DISA (DoD) | Security Technical Implementation Guide – bezpečnostné konfiguračné štandardy amerického ministerstva obrany |
| CVE | MITRE/NVD | Common Vulnerabilities and Exposures – štandardizované ID pre zraniteľnosti (napr. CVE-2019-0708) |
| CVSS | FIRST | Common Vulnerability Scoring System – číselné hodnotenie závažnosti zraniteľností (0-10) |
| Pojem | MITRE ID | Vysvetlenie |
|---|---|---|
| Pass-the-Hash | T1550.002 | Použitie ukradnutého NTLM hashu pre autentifikáciu bez znalosti hesla |
| BYOVD | T1068 | Bring Your Own Vulnerable Driver – útočník prináša legitímny ale zraniteľný kernel driver |
| Credential Dumping | T1003 | Extrakcia credentials z pamäte, registry alebo súborov (Mimikatz) |
| DLL Hijacking | T1574.001 | Umiestnenie škodlivej DLL do search path pred legitímnu knižnicu |
| Lateral Movement | TA0008 | Šírenie útočníka v sieti z kompromitovaného systému na ďalšie |
| Responder Attack | T1557.001 | LLMNR/NBT-NS poisoning pre zachytávanie NTLM credentials v sieti |
| Cold Boot Attack | T1005 | Extrahovanie dát z RAM po reštarte pomocou chladenej pamäte |
| USB Drop Attack | T1091 | Úmyselné zanechanie infikovaných USB zariadení na verejných miestach |
| Nástroj | Typ | Použitie |
|---|---|---|
| Mimikatz | Offensive/Red Team | Extrakcia credentials z pamäte LSASS, Pass-the-Hash, Golden Ticket |
| Responder | Offensive/Red Team | LLMNR/NBT-NS/MDNS poisoner pre zachytávanie NTLM hashov |
| Sysinternals | Defensive/Admin | Sada nástrojov Microsoft pre diagnostiku (Process Monitor, Autoruns, Handle) |
| auditpol | Built-in | Príkaz pre konfiguráciu Windows Audit Policy |
| gpresult | Built-in | Zobrazenie aplikovaných Group Policy nastavení |
| msinfo32 | Built-in | System Information - overenie VBS/HVCI stavu |