Inhaltsverzeichnis

Windows Server ist ein von Microsoft entwickeltes Betriebssystem für Server.

Download

First Run

sconfig

Auditing

auditpol /get /category:*

Cluster

Windows Server hat ein Failover Feature. Failover Cluster Feature (nicht Rolle) installieren.

Windows Server 2012 Failover Feature, Fileserver Failover Part 1 Installation Part 2 Configuration

Event IDs

Wichtige Event IDs sind

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.

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 <ScopeId> -Name <NewName> -StartRange <NewStartRange> -EndRange <NewEndRange> -SubnetMask <NewSubnetMask> -LeaseDuration <NewLeaseDuration>
 
//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_" + "<IP-Adresse des Druckers>"
Add-PrinterPort -Name $portName -PrinterHostAddress "<IP-Adresse des Druckers>"
 
# Druckertreiber installieren
$driverName = "<Druckertreiber-Name>"
$infPath = "<Pfad zur INF-Datei des Druckertreibers>"
Add-PrinterDriver -Name $driverName -InfPath $infPath

Druckerfreigaben

# Drucker erstellen und konfigurieren
$printerName = "<Name des Druckers>"
$shared = $true  # Setzen Sie auf $false, wenn der Drucker nicht freigegeben werden soll
$shareName = "<Freigabe-Name des Druckers>"
Add-Printer -Name $printerName -DriverName $driverName -PortName $portName -Shared $shared -ShareName $shareName
 
 
# Druckerfreigabe aktivieren
$printerName = "<Name des Druckers>"
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 = "<OU-Pfad>"
New-GPLink -Name "Druckerzuordnung" -Target $ou
 
$printerName = "<Druckername>"
$gpoGuid = $gpo.Id
$policyPath = "MACHINE\Preferences\Printers\Printers\"
$policyName = "Druckerzuordnung"
$policyValue = @"
<Printers clsid="{1F577DEB-8CDB-47CC-AFF9-1DDE2AD3E96E}">
  <DefaultPrinter clsid="{5C5CEC71-045D-40D4-824D-285D9A06E6DE}">
    <Action>Update</Action>
    <Path>\\servername\printername</Path>
  </DefaultPrinter>
</Printers>
"@
 
Set-GPRegistryValue -Guid $gpoGuid -Key $policyPath -ValueName $policyName -Type String -Value $policyValue
 
Invoke-GPUpdate -Force

Active Directory

Siehe Active Directory oder 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