Wie kann die Remotecodeausführung von einem Domänenmitgliedsserver verhindert werden?

Wie kann die Remotecodeausführung von einem Domänenmitgliedsserver verhindert werden?

Gibt es eine Möglichkeit, mithilfe einer Firewall, einer Gruppenrichtlinie oder einer anderen Steuerung zu verhindern, dass jemand, der bei einem Domänenmitglied angemeldet ist, Code auf einem Domänencontroller remote ausführen kann (auf den er sonst keinen Netzwerkzugriff hat), da er möglicherweise die Domänenadministrator-Anmeldeinformationen einer anderen Person gestohlen hat? Oder ist der Netzwerkzugriff, der für die routinemäßige AD-Mitgliedschaft benötigt wird, für immer und untrennbar derselbe wie der Netzwerkzugriff, der für die Remote-Ausführung benötigt wird, beispielsweise mitPsExecoder PowerShell?

Ein Beispiel:

  • Der Windows-Server „member1“ ist ein Domänenmitglied für eine einfache AD-Domäne
  • Die Windows-Server „dc1“ und „dc2“ sind die Domänencontroller für diese einfache Domäne.
  • Es gibt eine Hardware-Firewall zwischen Mitglied1 und den DCs, und nur dieseTCP- und UDP-Portsdie für die Domänenmitgliedschaft erforderlich sind, sind zwischen Mitglied1 und den DCs zulässig.
  • Der Benutzer „Jack“ ist ein Benutzer auf „Mitglied1“ und hat außer dem im vorherigen Punkt beschriebenen Zugriff keinen Netzwerkzugriff auf die DCs.
  • Jack ist schlau und kann durch einen Social-Engineering-Angriff oder eine andere Methode an die Anmeldeinformationen der Domänenadministratorin „Jill“ gelangen.
  • Jack erhält diese Anmeldeinformationen, meldet sich bei Mitglied1 an und kann Code auf dc1 oder dc2 remote ausführen, möglicherweise mithilfe vonPsExecoder PowerShell kann sogar einfach sein eigenes Dienstprogramm mit .NET erstellen, da der für die Domänenmitgliedschaft erforderliche Netzwerkzugriff auch den für die Durchführung von Remoteaufrufen wie diesen erforderlichen Netzwerkzugriff umfasst.

Ich möchte diesen Angriff stoppen, indem ich sicherstelle, dass Mitglied1 in der Domäne nur routinemäßige AD-Funktionen (Authentifizierung, Aktualisieren der Gruppenrichtlinie, Zeitsynchronisierung usw.) ausführen kann und andere Aktionen wie die Remoteausführung von Prozessen auf den DCs verhindert werden.

Antwort1

Dies ist nicht möglich. Wenn Sie einer Domäne beitreten, darf die Domäne Benutzer auf Ihrem Computer anmelden und GPOs darauf anwenden. GPOs können dazu führen, dass Software aus dem Netzwerk installiert wird und beliebige Registrierungseinträge geändert werden.

Die Verwendung eines RODC in der Enklave schützt die Domäne vor Ihrer Enklave, aber nicht die Enklave vor Ihrer Domäne. Sie können dies jedoch auch umgekehrt verwenden, um die Sicherheit zu erhöhen und alle Ihre verwalteten Computer nur mit RODCs kommunizieren zu lassen und nur anderen DCs den Zugriff auf die beschreibbaren DCs zu gestatten.

Wenn Sie sensible Computer in Ihrer Domäne vor einem Angriff schützen möchten, sollten Sie für diese Hosts eine separate Domäne (in einer separaten Gesamtstruktur) erstellen und sie separat verwalten. Dies ist sehr üblich, wenn sichere Enklaven erforderlich sind. Sie können auch erwägen, sie überhaupt nicht einer Domäne hinzuzufügen, insbesondere wenn es nur sehr wenige davon gibt.

Wenn ich mir Ihre Kommentare ansehe, bin ich mir nicht wirklich sicher, was Ihr Bedrohungsmodell ist.

Was Sie genau tun, hängt stark von Ihrem Bedrohungsmodell ab. Normalerweise können Domänenmitglieder und beliebige Benutzer jedoch keinen Code auf Domänencontrollern ausführen. Wenn Sie sich Sorgen über Exploits machen, ist Patchen eine gute Vorgehensweise. In beiden Fällen kann die Verwendung eines RODC dazu beitragen, die Auswirkungen zu begrenzen, da RODCs in der Domäne nichts ändern können.

Wenn Sie sich Sorgen darüber machen, dass Benutzer Befehle remote ausführen oder sich beim Domänencontroller anmelden (wodurch sie keine Rechte zum Bereitstellen von Software in der Domäne hätten, ohne dass sie gleichzeitig eine Art Privilegienerweiterungs-Exploit oder Ähnliches verwenden), können Sie diese per Gruppenrichtlinie daran hindern, sich bei den DCs anzumelden.

Die Einstellungen hierfür finden Sie in der Gruppenrichtlinie, die für die DCs gilt, unter Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment..., falls Sie dies versuchen.

Benutzer (und andere Sicherheitsprinzipale) sind an die Domäne oder an den Computer gebunden, aber nicht an beides. Sie können nicht wirklich Dinge wie Domänenadministratorrechte verweigern, basierend darauf, von welchem ​​Computer aus sie sich in AD verbinden. Sie können jedoch den Netzwerkzugriff auf DCs beschränken, die keine RODCs sind, und dies sollte wahrscheinlich ausreichen (abhängig von Ihrem Bedrohungsmodell), um Verwaltungsaktionen von zufälligen Benutzerarbeitsplätzen aus zu verhindern. Wenn Sie verhindern möchten, dass Benutzer RODCs als Drehpunkte verwenden (ist es das, was Sie tun möchten?), könnten Sie ihnen vermutlich alle Anmelderechte verweigern, aber das würde die Verwaltung ziemlich schwierig machen – stattdessen würde ich empfehlen, nur die DS-Replikationsports auf einer Firewall zwischen dem RODC und anderen DCs zuzulassen.

Die Ports, die Sie öffnen müssen, sind diejenigen, die in der Dokumentation zur RODC-Bereitstellung angegeben sind; siehe den Abschnitt „Erforderliche Kommunikationsports“ unterhttps://technet.microsoft.com/library/dd728028%28v=ws.10%29.aspx. Aber leider muss RPC zugelassen werden, und so funktioniert psexec. Damit können Sie nur die Anmeldung durch Dinge wie RDP verbieten.

Um das Ganze abzurunden und die Verwendung von psexec mit gestohlenen Anmeldeinformationen zu verhindern, können Sie Domänenadministratoren immer von der Batch-Job-Anmeldung über die oben erwähnte GPO auf den beschreibbaren Domänencontrollern ausschließen. Dies wird die Verwaltbarkeit etwas einschränken, aber es ist eine Entscheidung, die Sie treffen können. Es gibt ein wirklich gutes Dokument dazu und zu anderen Tipps zur Sicherheit von Domänenadministratorkonten unterhttps://technet.microsoft.com/en-us/library/dn487454.aspx. Die Verwendung des delegierten Zugriffs, bei dem Administratorkonten durch Delegation bestimmte Administratorrechte anstelle der pauschalen Domänenadministration gewährt werden, könnte für Sie ebenfalls eine Option sein.

Antwort2

Worauf müssen Sie vom Domänencontroller aus zugreifen? Da Sie zwischen Mitglied1 und dem Domänencontroller eine Firewall haben, können Sie sämtliche Zugriffe auf dc1 und dc2 blockieren und dann außerhalb der Firewall etwas wie einen schreibgeschützten Domänencontroller oder ein Web-Frontend platzieren, auf das Mitglied1 zugreifen kann.

Antwort3

Sie können dieses Problem auch von einer anderen Seite angehen, indem Sie einfach alle ausführbaren Dateien (exe, bat, ps1 usw.) mit SRP oder AppLocker daran hindern, auf Ihren DCs ausgeführt zu werden, mit Ausnahme derer, die Sie zuvor genehmigt haben. Auf diese Weise würden sie, selbst wenn sie Zugriff erhalten, ernsthaft behindert.

Aber vorausgesetzt, jemand verfügt über Administratorrechte, kann er von den meisten Computern aus mit Ihrer Domäne machen, was er will – der DC dient hauptsächlich der Authentifizierung …

Und wie Todd sagte: Wenn Sie Jill nicht vertrauen können, entziehen Sie ihr lieber ihre Rechte …

Antwort4

Einfach ausgedrückt kann ein Domänenadministrator tun, was er will (daher Domänenadministrator!). Es gibt keine Möglichkeit, jemanden zu blockieren, der die Anmeldeinformationen eines Domänenadministrators gestohlen hat. Er kann alle von Ihnen eingerichteten Sicherheitsmaßnahmen außer Kraft setzen.

verwandte Informationen