Windows Server sicherer machen

In diesem Artikel möchte der Autor einige gute Tipps zur Verwaltung von Windows-Servern geben, die ich aus irgendeinem Grund im Internet nicht finden konnte.

Nach diesen Grundsätzen sichern Sie Ihre Windows-basierten Server sowohl in lokalen als auch in öffentlichen Umgebungen.


1. Wir geben den Computer korrekt in AD ein


Verwenden Sie keine Benutzer mit Administratorrechten, um Computer in Active Directory einzutragen. Niemand garantiert, dass Keylogger noch nicht auf dem Computer des Mitarbeiters angezeigt wurde. Ein separates Konto haben. Ein Angreifer, der Anmeldeinformationen gestohlen hat, kann nur weitere Computer zu AD hinzufügen.

1.1. Erstellen Sie einen neuen Benutzer


Wechseln Sie dazu zu ADUC (Active Directory-Benutzer und -Computer). Klicken Sie auf eine leere Stelle im Ordner Benutzer und Computer und erstellen Sie einen Benutzer. Nennen wir es der Einfachheit halber JoinAdmin.

1.2. Autorität delegieren


Nachdem der Benutzer erstellt wurde, müssen ihm Berechtigungen zugewiesen werden. Klicken Sie dazu mit der rechten Maustaste auf den Ordner "Users" und wählen Sie "Delegate Control". Klicken Sie auf "Weiter" und wählen Sie unseren Administrator aus.


Wir möchten, dass der Benutzer nur eine Funktion ausführt, daher wählen wir die zweite Option.


Wählen Sie anschließend "Computerobjekte" und alle zugehörigen Unterelemente aus.



Verwenden Sie diesen Benutzer und machen Sie sich keine Sorgen, dass jemand dem Administrator das Kennwort stehlen könnte.

2. Kontrollierter Ordnerzugriff


Windows Server 2019 führte einen stark unterschätzten funktionsgesteuerten Ordnerzugriff ein. Sie verbietet den Zugriff auf die Aufzeichnung für Programme, die nicht in der Whitelist der ausgewählten Ordner oder Abschnitte enthalten sind.

Wenn Sie es aktivieren, werden die Daten vor Ransomware-Viren geschützt, auch wenn Ihr Server infiziert ist. Dies schützt Ihre Daten jedoch nicht vor Diebstahl, sie können gelesen werden.

Sie können die Funktion im Windows-Sicherheitscenter oder über Powershell aktivieren:

Set-MpPreference -EnableNetworkProtection Enabled 

Zulässige Programme hinzufügen:

Zulässige Programme können über das Windows-Sicherheitscenter hinzugefügt werden. In Powershell müssen Sie den vollständigen Pfad zu den ausführbaren Dateien durch Kommas trennen.

 Set-MpPreference -ControlledFolderAccessAllowedApplications "C:\Folder\File.exe"             . $ApplicationToAdd = "C:\Fodler\file.exe" $ExistingApplicationList = (Get-MpPreference).ControlledFolderAccessAllowedApplications $FullList = $ApplicationToAdd + $ExistingApplicationList Set-MpPreference -ControlledFolderAccessAllowedApplications $FullList 

Geschützte Ordner hinzufügen:

Ordner werden genauso wie Programme hinzugefügt. Mit diesem Befehl fügen wir beispielsweise das gesamte Laufwerk C: hinzu:

 Set-MpPreference -ControlledFolderAccessProtectedFolders "C:\" 

3. SYSWOW64 und SMB


Alle 32-Bit-Programme werden über die Kompatibilitätsebene - SYSWOW64 - mit 64-Bit ausgeführt. Durch Deaktivieren dieser Komponente wird die gesamte 32-Bit-Software, einschließlich Viren, inkompatibel.

32-Bit-Anwendungen sind an sich anfälliger, 64-Bit-Programme können nicht durch Pufferüberläufe angegriffen werden, und es ist viel schwieriger, Code auszuführen, der von diesen Programmen nicht bereitgestellt wird. Wenn nur eingebettete Komponenten oder nur 64-Bit-Programme auf dem Server ausgeführt werden, müssen Sie diese Komponente entfernen.

Erinnerst du dich an Wannacry, der durch SMB1 ging? Die erste Version von SMB ist immer noch eine Standardkomponente von Windows Server und wird standardmäßig in jeder Edition installiert.
Wannacry drang in die EternalBlue-Schwachstelle ein, die Schwachstelle wurde behoben, das Sediment blieb jedoch erhalten.
Dieser Befehl entfernt sowohl SMB1 als auch SYSWOW64:

 Remove-WindowsFeature WoW64-Support, FS-SMB1 


Es ist empfehlenswert, die Empfehlung nicht als Entschuldigung für das Entfernen dieser spezifischen Komponenten zu verstehen, sondern generell als Deaktivierung aller nicht verwendeten Komponenten.

4. Deaktivieren Sie Ping


Standardmäßig antwortet ein Windows-Computer nur im lokalen Netzwerk auf ICMP. Durch Deaktivieren von ICMP wird die Sicherheit Ihres Servers geringfügig erhöht. Dies liegt zum Teil an der Tatsache, dass es im Kulhacker und in anderen Skript-Kiddie-Foren Anleitungen gibt, wie man nach Zielen sucht, die roher Gewalt unterliegen können.

Um zu zeigen, dass Sie gewinnen, wenn Sie ICMP deaktivieren, wurden zwei Server erstellt. Auf beiden wurde RDP geöffnet, einer der Server reagierte jedoch nicht auf ICMP.

ICMP ist deaktiviert:


ICMP aktiviert:


Wie aus dem Screenshot hervorgeht, hat dies nicht alle aufgehalten, sondern viele. Um Daten darüber zu sammeln, wie sehr sie Sie hacken möchten, können Sie dieses Skript verwenden:

 function Get-Bruteforce {    $Last = 4    $Attempts = 10    #Getting date -one hour (default)    $DateTime = [DateTime]::Now.AddHours(-$Last)    $BruteEvents = Get-EventLog -LogName 'Security' -InstanceId 4625 -After $DateTime -ErrorAction SilentlyContinue | Select-Object @{n='IpAddress';e={$_.ReplacementStrings[-2]} }    $TopPunks = $BruteEvents | Group-Object -property IpAddress | Sort-Object Count    #Get bruteforsers that tried to login greated or equal than 4 times (default)    $GetPunks = $TopPunks | where {$_.Count -ge $attempts} | Select -property Name    Write-host Unique attackers IP: $GetPunks.Length -ForegroundColor Green    Write-Host Total bruteforce attempts: $BruteEvents.Length -ForegroundColor Green    #Output-punks    foreach ($i in $TopPunks | where {$_.Count -ge $attempts}) {    $PunkRdns = (Resolve-DnsName $i.Name -ErrorVariable ProcessError -ErrorAction SilentlyContinue).NameHost    if ($ShowRDNS) {        if ($PunkRdns) {            Write-Host "attempts": $i.count IP: $PunkRdns        }        else {            Write-Host "attempts": $i.count IP: $i.name        }    }    else {        Write-Host "attempts": $i.count IP: $i.name    }    }  } Get-Bruteforce 

Sie können Ihren Server weiterhin überwachen, indem Sie beispielsweise die Verfügbarkeit eines bestimmten Ports überprüfen:

 Test-NetConnection 192.168.0.1 -Port 3389 

5. Nicht alle Namen sind gleich gut


Verwenden Sie ein anderes Skript, um die beliebtesten Benutzernamen herauszufinden, die angegriffen wurden.

Wenn Sie Remotedesktopdienste installieren, wird dringend empfohlen, diese Namen zu vermeiden. In Kombination mit einem schwachen Passwort können Sie einen schnellen Hacking-Account garantieren.

Zur Vereinfachung wurde die Liste der "falschen" Namen in eine Tabelle umgeschrieben:
Hacking-VersucheKontoname
40IRINA
41Zuhause
42SKLAD
42sqlserver
42Sys
42KASSA2
43ADMIN1
43PC
45GAST
46Gastgeber
46Audit
49USER3
54TEST1
55BUH2
66USER
66MANAGER
75ADM
77.NET.v.4.5
80BUH1
86BACKUP
89Buh
90ADMIN
1001
116SERVER
122User2
128À نى È ي È ًٌٍ À ٍ Î ً
147TEST
219USER1
308USER
330Admin
9299ADMINISTRATOR
13972ADMINISTRATOR

Mit diesem Skript können Sie dieselbe Liste auf Ihrem Server abrufen:

 function Get-Badname {    $Last = 24    $Attempts = 40      $DateTime = [DateTime]::Now.AddHours(-$Last)    $BruteEvents = Get-EventLog -LogName 'Security' -InstanceId 4625 -After $DateTime -ErrorAction SilentlyContinue | Select-Object @{n='IpAddress';e={$_.ReplacementStrings[5]} }    $TopPunks = $BruteEvents | Group-Object -property IpAddress | Sort-Object Count      $GetPunks = $TopPunks | where {$_.Count -ge $attempts} | Select -property Name    Write-host Unique attackers IP: $GetPunks.Length -ForegroundColor Green    Write-Host Total bruteforce attempts: $BruteEvents.Length -ForegroundColor Green    #Output    foreach ($i in $TopPunks | where {$_.Count -ge $attempts}) {        Write-Host "Attempts": $i.count Username: $i.name    }  } Get-Badname 

6. Offensichtliche Dinge


Nun, wir beenden den Artikel mit den offensichtlichen Dingen:

  1. Erstellen eines Gateways - Um eine große Infrastruktur zu verwalten, ist es am besten, sich mit einem einzigen Einstiegspunkt abzusichern. Ausführlicher .
  2. Installieren Sie Updates. Insbesondere auf Kampfservern.
  3. Deaktivieren Sie Dienste, die Sie nicht verwenden - dies ist ein zusätzlicher Angriffsbereich.
  4. Verwenden Sie Server Core, es hat den geringsten Angriffsbereich und die geringste Anzahl von Neustarts bei der Installation von Updates
  5. Remote Desktop Server für mehrere Benutzer ist eine schlechte Idee. Halten Sie sich an das Prinzip einer Person oder eines Dienstes - eines Servers.
  6. Machen Sie Backups und testen Sie diese. Eine Sicherung, die nicht getestet wurde, ist keine Sicherung.

Wir hoffen, dass die ersten fünf Punkte für Sie nützlich und interessant waren.

Wir bieten einen aktualisierten UltraLite Windows VDS- Tarif für 99 Rubel mit installiertem Windows Server 2019 Core an.

Source: https://habr.com/ru/post/de484396/


All Articles