Windows Server ist ein von [[Microsoft]] entwickeltes [[Betriebssystem]] für Server.
=====Download=====
* [[https://www.microsoft.com/de-de/evalcenter/download-windows-server-2012-r2|Windows Server 2012 R2]]
* [[https://www.microsoft.com/de-de/evalcenter/download-windows-server-2016|Windows Server 2016]]
* [[https://www.microsoft.com/de-de/evalcenter/download-windows-server-2019|Windows Server 2019]]
* [[https://www.microsoft.com/de-de/evalcenter/download-windows-server-2022|Windows Server 2022]]
=====First Run=====
sconfig
=====Auditing=====
auditpol /get /category:*
=====Cluster=====
Windows Server hat ein Failover Feature. Failover Cluster Feature (nicht Rolle) installieren.
[[https://www.youtube.com/watch?v=OGIs5M_gqAU|Windows Server 2012 Failover Feature]], Fileserver Failover [[https://www.youtube.com/watch?v=wmM38A3nJn8|Part 1 Installation]] [[https://www.youtube.com/watch?v=uJFGMITt7NE|Part 2 Configuration]]
====Event IDs====
Wichtige Event IDs sind
* 1069: Diese ID zeigt an, dass eine Cluster-Ressource nicht verfügbar ist, was typischerweise ein Failover auslöst
* 1146: Diese ID zeigt an, dass eine Cluster-Gruppe fehlerhaft ist und ein Failover erforderlich ist
* 1254: Diese ID zeigt an, dass eine Cluster-Gruppe erfolgreich zu einem anderen Knoten verschoben wurde, was oft das Ergebnis eines Failovers ist
* 1153: Diese ID zeigt an, dass die Cluster-Ressourcengruppe erfolgreich auf einen anderen Knoten verschoben wurde (Failover)
* 1641: Diese ID zeigt an, wenn eine Clusterrolle von einem Node auf einen anderen verschoben wurde.
=====Remote Desktop Services=====
Die Bereitstellung kann auf verschiedene Arten erfolgen (z. B. Session Host, RemoteApp, Virtual Desktop Infrastructure).
=====DNS=====
//installieren
Install-WindowsFeature -Name DNS -IncludeManagementTools
//check
Get-DnsServer
//Analyze DNS Service
dcdiag /test:dns
====DNS Zonen====
//dns zone erstellen
$zoneName = "example.com" # Geben Sie den Namen Ihrer Zone ein
$zoneFile = "C:\DNS\example.com.dns" # Geben Sie den Pfad und den Dateinamen für die Zonendatei ein
Add-DnsServerPrimaryZone -Name $zoneName -ZoneFile $zoneFile
//zone löschen
$zoneName = "example.com" # Geben Sie den Namen der zu entfernenden Zone ein
Remove-DnsServerZone -Name $zoneName -Force
====DNS Records====
//einträge hinzufügen
$recordName = "host1" # Geben Sie den Namen des DNS-Eintrags ein
$recordType = "A" # Geben Sie den Typ des DNS-Eintrags ein (z.B. A, CNAME, MX, etc.)
$recordData = "192.168.1.10" # Geben Sie die entsprechenden Daten für den DNS-Eintrag ein
$zoneName = "example.com" # Geben Sie den Namen Ihrer Zone ein
Add-DnsServerResourceRecordA -Name $recordName -IPv4Address $recordData -ZoneName $zoneName
// bearbeiten
$zoneName = "example.com" # Name der Zone
$recordName = "www" # Name des DNS-Eintrags
$recordType = "CNAME" # Typ des DNS-Eintrags
$recordData = "host1.example.com" # Daten des DNS-Eintrags
$ttl = 3600 # TTL-Wert (Time to Live)
Set-DnsServerResourceRecord -ZoneName $zoneName -Name $recordName -OldType $recordType -NewType $recordType -TargetName $recordData -TimeToLive $ttl
// einträge löschen
$recordName = "host1" # Geben Sie den Namen des zu entfernenden DNS-Eintrags ein
$recordType = "A" # Geben Sie den Typ des DNS-Eintrags ein
$zoneName = "example.com" # Geben Sie den Namen der Zone ein
Remove-DnsServerResourceRecord -Name $recordName -RecordType $recordType -ZoneName $zoneName
Get-DnsServerResourceRecord
$zoneName = "example.com" # Geben Sie den Namen der Zone ein
Get-DnsServerResourceRecord -ZoneName $zoneName
$recordType = "A" # Geben Sie den gewünschten DNS-Eintragstyp ein
Get-DnsServerResourceRecord -RecordType $recordType
$hostname = "host1" # Geben Sie den gewünschten Hostnamen ein
Get-DnsServerResourceRecord -Name $hostname
====Delegation====
//delegation
$forwarderIPs = "8.8.8.8", "8.8.4.4" # Geben Sie die IP-Adressen der DNS-Weiterleitungen ein
Set-DnsServerForwarder -IPAddress $forwarderIPs
====Logging====
Man kann das Logging für den DNS Server aktivieren indem man im DNS Manager in der linken Spalte einen Rechtsklick auf deinen DNS Server macht und die Eigenschaften öffnet. Im Reiter "Debug Logging" kann man konfigurieren was geloggt werden soll und eine Datei angeben wo sie gespeichert werden sollen.
{{dns-logging.png}}
Message logging key (for packets - other items use a subset of these fields):
Field # Information Values
------- ----------- ------
1 Date
2 Time
3 Thread ID
4 Context
5 Internal packet identifier
6 UDP/TCP indicator
7 Send/Receive indicator
8 Remote IP
9 Xid (hex)
10 Query/Response R = Response
blank = Query
11 Opcode Q = Standard Query
N = Notify
U = Update
? = Unknown
12 [ Flags (hex)
13 Flags (char codes) A = Authoritative Answer
T = Truncated Response
D = Recursion Desired
R = Recursion Available
14 ResponseCode ]
15 Question Type
16 Question Name
=====DHCP=====
Install-WindowsFeature -Name DHCP -IncludeManagementTools
Enable-DhcpServer
Get-DhcpServerv4Scope
====Pool====
// create pool
$subnet = "192.168.1.0/24" # Geben Sie das Subnetz für den DHCP-Bereich ein
$rangeStart = "192.168.1.100" # Geben Sie die Start-IP-Adresse für den DHCP-Bereich ein
$rangeEnd = "192.168.1.200" # Geben Sie die End-IP-Adresse für den DHCP-Bereich ein
$router = "192.168.1.1" # Geben Sie die IP-Adresse des Standardgateways ein
$dnsServer = "192.168.1.10" # Geben Sie die IP-Adresse des DNS-Servers ein
Add-DhcpServerv4Scope -Name "MyScope" -StartRange $rangeStart -EndRange $rangeEnd -SubnetMask $subnet -Router $router -DnsServer $dnsServer
//modify pool
Set-DhcpServerv4Scope -ScopeId -Name -StartRange -EndRange -SubnetMask -LeaseDuration
//delete pool
Remove-DhcpServerv4Scope -ScopeId 192.168.1.0 -Force
====Reservierungen====
Get-DhcpServerv4Reservation
$reservationIP = "192.168.1.150" # Geben Sie die IP-Adresse der Reservierung ein
$reservationMAC = "00-11-22-33-44-55" # Geben Sie die MAC-Adresse der Reservierung ein
$reservationName = "MyReservation" # Geben Sie einen Namen für die Reservierung ein
$reservationDescription = "This is a reserved IP for a specific device" # Geben Sie eine optionale Beschreibung ein
Add-DhcpServerv4Reservation -IPAddress $reservationIP -ClientId $reservationMAC -Name $reservationName -Description $reservationDescription
$reservationIP = "192.168.1.150" # Geben Sie die IP-Adresse der Reservierung ein
$newReservationName = "UpdatedReservation" # Geben Sie den aktualisierten Namen ein
Set-DhcpServerv4Reservation -IPAddress $reservationIP -Name $newReservationName
$reservationIP = "192.168.1.150" # Geben Sie die IP-Adresse der Reservierung ein
Remove-DhcpServerv4Reservation -IPAddress $reservationIP
=====Netzwerkdrucker=====
====Einrichten====
# Druckport erstellen
$portName = "IP_" + ""
Add-PrinterPort -Name $portName -PrinterHostAddress ""
# Druckertreiber installieren
$driverName = ""
$infPath = ""
Add-PrinterDriver -Name $driverName -InfPath $infPath
====Druckerfreigaben====
# Drucker erstellen und konfigurieren
$printerName = ""
$shared = $true # Setzen Sie auf $false, wenn der Drucker nicht freigegeben werden soll
$shareName = ""
Add-Printer -Name $printerName -DriverName $driverName -PortName $portName -Shared $shared -ShareName $shareName
# Druckerfreigabe aktivieren
$printerName = ""
Set-Printer -Name $printerName -Shared $true
# Berechtigungen festlegen (Beispiel: Jeder hat Druckberechtigung)
$ace = New-Object System.Security.AccessControl.PrinterAccessControlEntry("Everyone", [System.Security.AccessControl.PrinterRights]::Print, [System.Security.AccessControl.AccessControlType]::Allow)
Set-Printer -Name $printerName -PermissionSddl $ace.Sddl
====Druckerzuordnung====
$gpo = New-GPO -Name "Druckerzuordnung"
$ou = ""
New-GPLink -Name "Druckerzuordnung" -Target $ou
$printerName = ""
$gpoGuid = $gpo.Id
$policyPath = "MACHINE\Preferences\Printers\Printers\"
$policyName = "Druckerzuordnung"
$policyValue = @"
Update
\\servername\printername
"@
Set-GPRegistryValue -Guid $gpoGuid -Key $policyPath -ValueName $policyName -Type String -Value $policyValue
Invoke-GPUpdate -Force
=====Active Directory=====
Siehe [[active_directory|Active Directory]] oder [[coding:powershell#active_directory|Powershell]].
====NTDS Datenbank====
Mit secretsdump.py kann man Hashes aus der NTDS.DIT Datei extrahieren. Mit [[vssadmin]] kann man eine Kopie der Datei NTDS.DIT erstellen.
cd /usr/share/doc/python3-impacket/examples
python3 secretsdump.py -debug -ntds /home/kali/ntds.dit -system /home/kali/system.save -security /home/kali/security.save LOCAL -outputfile dump.txt
ll
-rw-r--r-- 1 root root 1052 Jun 17 09:53 dump.txt.cached
-rw-r--r-- 1 root root 3017 Jun 17 09:53 dump.txt.ntds
-rw-r--r-- 1 root root 0 Jun 17 09:53 dump.txt.ntds.cleartext
-rw-r--r-- 1 root root 0 Jun 17 09:53 dump.txt.ntds.kerberos
-rw-r--r-- 1 root root 872 Jun 17 09:53 dump.txt.secrets
=====Links=====
* {{server22_handbook.pdf|Server 2022 Handbuch}}