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}}