{"id":208575,"date":"2024-01-26T13:41:28","date_gmt":"2024-01-26T13:41:28","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/wie-man-mit-powershell-eine-modifizierte-hosts-datei-ueberprueft\/"},"modified":"2024-03-26T16:18:26","modified_gmt":"2024-03-26T16:18:26","slug":"wie-man-mit-powershell-eine-modifizierte-hosts-datei-ueberprueft","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/de\/script-hub\/wie-man-mit-powershell-eine-modifizierte-hosts-datei-ueberprueft\/","title":{"rendered":"Wie man mit PowerShell eine modifizierte Hosts-Datei \u00fcberpr\u00fcft."},"content":{"rendered":"<p>In der weiten Welt der IT ist die Hosts-Datei ein stiller W\u00e4chter, der f\u00fcr eine reibungslose Netzwerkkommunikation sorgt. F\u00fcr diejenigen, die damit nicht vertraut sind: Die <a href=\"https:\/\/www.ninjaone.com\/blog\/what-is-a-hosts-file\/\">Hosts-Datei<\/a> ist eine Textdatei, die Hostnamen IP-Adressen zuordnet. Sie wird vom Betriebssystem verwendet, um Hostnamen in IP-Adressen aufzul\u00f6sen, wenn ein Computer versucht, eine Verbindung zu einer Netzwerkressource herzustellen. Aber was passiert, wenn die <strong>Hosts-Datei manipuliert oder ver\u00e4ndert wird<\/strong>? Wie k\u00f6nnen IT-Experten und Managed Service Provider (MSPs) die Integrit\u00e4t dieser wichtigen Datei sicherstellen? Hier kommt das Skript ins Spiel, das wir gleich erforschen werden.<\/p>\n<h2>Verstehen der Hosts-Datei<\/h2>\n<p>Die Hosts-Datei ist im Wesentlichen das Adressbuch des Computersystems. Sie spielt eine zentrale Rolle bei der Lenkung des Netzverkehrs und sorgt daf\u00fcr, dass die Benutzer:innen auf die richtigen Websites und Dienste gelangen. Ihre Bedeutung macht sie jedoch auch zu einem bevorzugten Ziel f\u00fcr b\u00f6swillige Akteure.<\/p>\n<h2>Die potenziellen Risiken nicht autorisierter \u00c4nderungen<\/h2>\n<p>Ein Angreifer mit b\u00f6sartigen Absichten k\u00f6nnte die Hosts-Datei so ver\u00e4ndern, dass der Datenverkehr zu einer b\u00f6sartigen Website oder einem Server umgeleitet wird. Solche Ver\u00e4nderungen k\u00f6nnen schlimme Folgen haben:<\/p>\n<ul>\n<li><strong>Stehlen von pers\u00f6nlichen Informationen<\/strong>: Indem sie Benutzer:innen auf gef\u00e4lschte Websites umleiten, k\u00f6nnen Angreifer pers\u00f6nliche Daten ergaunern, was zu Identit\u00e4tsdiebstahl f\u00fchrt.<\/li>\n<li><strong>Installation von Malware<\/strong>: Benutzer:innen k\u00f6nnen dazu verleitet werden, b\u00f6sartige Software herunterzuladen, weil sie denken, dass sie sich auf einer legitimen Website befinden.<\/li>\n<li><strong>Unterbrechung der Netzkommunikation<\/strong>: Wichtige Dienste k\u00f6nnen blockiert werden, was zu Betriebsunterbrechungen f\u00fchrt.<\/li>\n<\/ul>\n<p>In Anbetracht dieser Risiken ist es f\u00fcr IT-Experten und MSPs von gr\u00f6\u00dfter Bedeutung, \u00fcber Tools zu verf\u00fcgen, die nicht autorisierte \u00c4nderungen schnell erkennen k\u00f6nnen. An dieser Stelle kommt unser Drehbuch ins Spiel.<\/p>\n<h2>Das Skript<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Checks if the hosts file was modified from last run.\r\n.DESCRIPTION\r\n    Checks if the hosts file was modified from last run.\r\n    On first run this will not produce an error, but will create a cache file for later comparison.\r\n.EXAMPLE\r\n    No parameters needed.\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2016\r\n    Release Notes:\r\n    Initial Release\r\nBy using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https:\/\/www.ninjaone.com\/terms-of-use.\r\n    Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. \r\n    Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. \r\n    Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. \r\n    Warranty Disclaimer: The script is provided \u201cas is\u201d and \u201cas available\u201d, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. \r\n    Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. \r\n    Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. \r\n    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).\r\n#&gt;\r\n\r\n[CmdletBinding()]\r\nparam (\r\n    # Path and file of the hosts file\r\n    [string]\r\n    $HostsPath = \"C:WindowsSystem32driversetchosts\",\r\n    # Path and file where the cache file will be saved for comparison\r\n    [string]\r\n    $CachePath = \"C:ProgramDataNinjaRMMAgentscriptingTest-HostsFile.clixml\"\r\n)\r\n\r\nbegin {\r\n    function Test-IsElevated {\r\n        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()\r\n        $p = New-Object System.Security.Principal.WindowsPrincipal($id)\r\n        $p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)\r\n    }\r\n}\r\nprocess {\r\n    if (-not (Test-IsElevated)) {\r\n        Write-Error -Message \"Access Denied. Please run with Administrator privileges.\"\r\n        exit 1\r\n    }\r\n\r\n    # Check if hosts file exists\r\n    if ($(Test-Path -Path $HostsPath)) {\r\n        # Get content and create hash of hosts file\r\n        $HostsContent = Get-Content -Path $HostsPath\r\n        $HostsHash = Get-FileHash -Path $HostsPath -Algorithm SHA256\r\n\r\n        $Current = [PSCustomObject]@{\r\n            Content = $HostsContent\r\n            Hash    = $HostsHash\r\n        }\r\n\r\n        # Check if this is first run or not\r\n        if ($(Test-Path -Path $CachePath)) {\r\n            # Compare last content and hash\r\n            $Cache = Import-Clixml -Path $CachePath\r\n            $ContentDifference = Compare-Object -ReferenceObject $Cache.Content -DifferenceObject $Current.Content -CaseSensitive\r\n            $HashDifference = $Cache.Hash -like $Current.Hash\r\n            $Current | Export-Clixml -Path $CachePath -Force -Confirm:$false\r\n            if (-not $HashDifference) {\r\n                Write-Host \"Hosts file has changed since last run!\"\r\n                Write-Host \"\"\r\n                $ContentDifference | ForEach-Object {\r\n                    if ($_.SideIndicator -like '=&gt;') {\r\n                        Write-Host \"Added: $($_.InputObject)\"\r\n                    }\r\n                    elseif ($_.SideIndicator -like '&lt;=') {\r\n                        Write-Host \"Removed: $($_.InputObject)\"\r\n                    }\r\n                }\r\n                exit 1\r\n            }\r\n        }\r\n        else {\r\n            Write-Host \"First run, saving comparison cache file.\"\r\n            $Current | Export-Clixml -Path $CachePath -Force -Confirm:$false\r\n        }\r\n    }\r\n    else {\r\n        Write-Error \"Hosts file is missing!\"\r\n        exit 1\r\n    }\r\n    exit 0\r\n}\r\nend {}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p>Zugriff auf \u00fcber 300 Skripte im NinjaOne Dojo<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/de\/kostenlosetestversionformular\/\">Zugang erhalten<\/a><\/p>\n<\/div>\n<h2>Ein tiefer Einblick in das Drehbuch<\/h2>\n<p>Das mitgelieferte PowerShell-Skript soll pr\u00fcfen, ob die Hosts-Datei seit der letzten Ausf\u00fchrung ge\u00e4ndert wurde. Hier ist eine Aufschl\u00fcsselung der Funktionen:<\/p>\n<ol>\n<li><strong>Elevation-Check<\/strong>: Das Skript pr\u00fcft zun\u00e4chst, ob es mit Administratorrechten ausgef\u00fchrt wird. Dies ist wichtig, da jeder Versuch, Systemdateien zu lesen oder zu \u00e4ndern, erh\u00f6hte Berechtigungen erfordert.<\/li>\n<li><strong>\u00dcberpr\u00fcfung der Hosts-Datei<\/strong>: Anschlie\u00dfend wird das Vorhandensein der Hosts-Datei \u00fcberpr\u00fcft. Fehlt die Datei, meldet das Skript einen Fehler.<\/li>\n<li><strong>Hash-Vergleich<\/strong>: Das Skript berechnet einen Hash (SHA256) der aktuellen Hosts-Datei und vergleicht ihn mit einer zwischengespeicherten Version vom letzten Lauf. Eine Abweichung bedeutet, dass die Datei ge\u00e4ndert wurde.<\/li>\n<li><strong>Inhaltlicher Vergleich<\/strong>: Das Skript pr\u00fcft nicht nur den Hash, sondern vergleicht auch den Inhalt Zeile f\u00fcr Zeile und hebt etwaige Hinzuf\u00fcgungen oder Streichungen hervor.<\/li>\n<\/ol>\n<h2>Vorteile f\u00fcr IT-Fachleute und MSPs<\/h2>\n<ul>\n<li><strong>Proaktive \u00dcberwachung<\/strong>: Dieses Skript bietet einen proaktiven Ansatz zur \u00dcberwachung der Hosts-Datei, der ihre Integrit\u00e4t sicherstellt und Administratoren \u00fcber alle nicht autorisierten \u00c4nderungen informiert.<\/li>\n<li><strong>Detaillierte Einblicke<\/strong>: Durch den Vergleich von Inhaltsunterschieden k\u00f6nnen IT-Teams schnell feststellen, was hinzugef\u00fcgt oder entfernt wurde, und so f\u00fcr eine rasche Behebung sorgen.<\/li>\n<li><strong>Automatisierungsf\u00e4hig<\/strong>: Das Skript ist so konzipiert, dass es in automatisierte Arbeitsabl\u00e4ufe integriert werden kann, so dass regelm\u00e4\u00dfige Kontrollen ohne manuelles Eingreifen m\u00f6glich sind.<\/li>\n<\/ul>\n<h2>Die St\u00e4rke von NinjaOne<\/h2>\n<p>NinjaOne ist mehr als nur eine IT-Management-L\u00f6sung. Es handelt sich um eine umfassende Plattform, die IT-Experten und MSPs in die Lage versetzt, potenziellen Bedrohungen einen Schritt voraus zu sein. Durch die Integration unseres Skripts zur \u00dcberpr\u00fcfung von Hosts-Dateien in NinjaOne:<\/p>\n<ul>\n<li><strong>Zentralisierte Warnungen<\/strong>: Erhalten Sie Warnungen direkt auf dem NinjaOne Dashboard, wenn die Hosts-Datei ge\u00e4ndert wird. Diese sofortige Benachrichtigung stellt sicher, dass Sie schnell handeln k\u00f6nnen, um Ihre Systeme vor potenziellen Angriffen zu sch\u00fctzen.<\/li>\n<li><strong>Geplante \u00dcberpr\u00fcfungen<\/strong>: Automatisieren Sie die Ausf\u00fchrung des Skripts in bestimmten Intervallen, um eine kontinuierliche \u00dcberwachung zu gew\u00e4hrleisten.<\/li>\n<li><strong>Detaillierte Berichterstattung<\/strong>: Kombinieren Sie die Erkenntnisse aus dem Skript mit den Berichtsfunktionen von NinjaOne, um einen ganzheitlichen \u00dcberblick \u00fcber Ihre IT-Umgebung zu erhalten.<\/li>\n<\/ul>\n<p>Zusammenfassend l\u00e4sst sich sagen, dass die Hosts-Datei, obwohl sie oft \u00fcbersehen wird, ein Eckpfeiler der Netzwerkkommunikation ist. Die Gew\u00e4hrleistung ihrer Integrit\u00e4t ist von gr\u00f6\u00dfter Bedeutung. Unser Skript, insbesondere in Kombination mit der Leistungsf\u00e4higkeit von NinjaOne, gibt IT-Teams die Tools an die Hand, die sie ben\u00f6tigen, um <a href=\"https:\/\/www.ninjaone.com\/de\/endpunkt-verwaltung\/fernsteuerung-und-alarmierung\">unautorisierte \u00c4nderungen zu \u00fcberwachen, zu erkennen und dagegen vorzugehen und so eine sichere und reibungslose IT-Umgebung zu gew\u00e4hrleisten.<\/a><\/p>\n","protected":false},"author":35,"featured_media":207020,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"operating_system":[4212],"use_cases":[4307],"class_list":["post-208575","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows","use_cases-allgemeine-konfiguration"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/script_hub\/208575","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/comments?post=208575"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media\/207020"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media?parent=208575"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/operating_system?post=208575"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/use_cases?post=208575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}