rt1970 10 Geschrieben 17. März 2021 Melden Teilen Geschrieben 17. März 2021 Hallo! Im Zusammenhang mit der Exchange-Katastrophe forscht man ja tiefer. Dabei fiel mir in der Ereignisanzeige auf, dass hin und wieder Powershell gestartet wurde. EventLog: Der Anbieter "Registry" ist Started. Details: ProviderName=Registry NewProviderState=Started SequenceNumber=1 HostName=ConsoleHost HostVersion=5.1.14393.3866 HostId=76d14a53-5841-4ccd-a07a-df1836051da0 HostApplication=C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive -NoLogo -File C:\Windows\TEMP\xfow3wj4.55h\script.ps1 EngineVersion= RunspaceId= PipelineId= CommandName= CommandType= ScriptName= CommandPath= CommandLine= Da sind mehrere Einträge. Erst Anbieter Registry, dann Alias, dann Invironment, dann FileSystem, dann Function, dann Variable und dann "Der Modulzustand wurde von None in Available geändert." Natürlich war die nicht mehr zu finden, so dass ich den Ordner überwachen lassen habe und sämtliche Dateien bei Erstellung in einen Ordner kopiert werden. In der script.ps1 steht dann: $ErrorActionPreference = 'Stop'; Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010; @(@(Get-MailboxDatabase | ?{$_.Server.ToString() -eq 'DC'}) | %{Get-Mailbox -Database $_ -ResultSize Unlimited -RecipientTypeDetails UserMailbox,LinkedMailbox,SharedMailbox,RoomMailbox,EquipmentMailbox}).Count ein anderes mal stand in einer anderen script.ps1: $ErrorActionPreference = 'Stop'; Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010; Set-StrictMode -Version Latest if ($args.Length -ne 2) { throw "Output file paths expected as a script arguments." } $outputFilePath = $args[0] $skippedFoldersFilePath = $args[1] $DeleteAllRight = [int][Microsoft.Exchange.Management.StoreTasks.MailboxFolderMemberRights]::DeleteAllItems $EditAllRight = [int][Microsoft.Exchange.Management.StoreTasks.MailboxFolderMemberRights]::EditAllItems $ReadAllRight = [int][Microsoft.Exchange.Management.StoreTasks.MailboxFolderMemberRights]::ReadItems $FolderVisibleRight = [int][Microsoft.Exchange.Management.StoreTasks.MailboxFolderMemberRights]::FolderVisible $RequiredRights = $DeleteAllRight -bor $EditAllRight -bor $ReadAllRight -bor $FolderVisibleRight # Ð”Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… паблик фолдеров вызов FindItems иногда приводит к иÑключению: # "The specified object was not found in the store". # Причем, например, еÑли положить в такой фолдер поÑÑ‚ и удалить его, то ошибка иÑчезает. # Иногда (но не вÑегда) Ñ‚Ð°ÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° возникает Ð´Ð»Ñ ÐºÐ¾Ñ€Ð½ÐµÐ²Ð¾Ð³Ð¾ фолдера IPM_SUBTREE. # ЕдинÑтвенное предположение, что EWS в завиÑимоÑти от каких-то уÑловий Ð´Ð»Ñ Ð¿ÑƒÑтого фолдера # в ответ на FindItems может вернуть либо пуÑтую коллекцию Ñлементов, либо приведенную выше ошибку. # ПоÑтому иÑключаем из ÑÐºÐ°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑƒÑтые каталоги. function IsNotEmpty($publicFolder) { $anyPublicFolderItemsExist = $(Get-PublicFolderStatistics $publicFolder).ItemCount -ne 0 if (! $anyPublicFolderItemsExist) { AppendEntryToFile $skippedFoldersFilePath $(FormatSkippedEntry $publicFolder "No items") } return $anyPublicFolderItemsExist } function HasValidUser($publicFolderPermission) { $publicFolderUserTypeName = $publicFolderPermission.User.GetType().Name if ($publicFolderUserTypeName -ne "MailboxFolderUserId") { Write-Host "WARNING: unexpected publicFolderUserTypeName: $publicFolderUserTypeName" return $false } return ($publicFolderPermission.User -ne $null) -and ($publicFolderPermission.User.ADRecipient -ne $null) } function ContainsRequiredRights($accessRights) { [int]$effectiveRights = 0 foreach ($right in $accessRights) { $effectiveRights = $effectiveRights -bor [int]$right } return ($effectiveRights -band $RequiredRights) -eq $RequiredRights } function GetUserWithRequiredRights($publicFolder) { $permission = Get-PublicFolderClientPermission $publicFolder | ? { $(HasValidUser $_) -and $(ContainsRequiredRights $_.AccessRights) } | Select -First 1 if($permission -eq $null) { AppendEntryToFile $skippedFoldersFilePath $(FormatSkippedEntry $publicFolder "Wrong permissions") } return $permission } function FormatSkippedEntry($publicFolder, $skipReason) { $fullPath = $publicFolder.FolderPath.ToString() $publicFolderMailbox = Get-Mailbox -PublicFolder $publicFolder.ContentMailboxGuid.ToString() $mailboxName = $publicFolderMailbox.PrimarySmtpAddress $storeName = $publicFolderMailbox.Database return "$fullPath`n$mailboxName`n$storeName`n$skipReason" } function GetEntry($publicFolderPermission) { $ownerSid = $publicFolderPermission.User.ADRecipient.Sid $publicFolder = Get-PublicFolder $publicFolderPermission.Identity $entryId = $publicFolder.EntryId $fullPath = $publicFolder.FolderPath.ToString() $publicFolderMailbox = Get-Mailbox -PublicFolder $publicFolder.ContentMailboxGuid.ToString() $mailboxName = $publicFolderMailbox.PrimarySmtpAddress $storeName = $publicFolderMailbox.Database return "$entryId`n$ownerSid`n$fullPath`n$mailboxName`n$storeName" } function AppendEntryToFile($outputFilePath, $entry) { [System.IO.File]::AppendAllText($outputFilePath, "$entry`n`n", [System.Text.Encoding]::Unicode) } New-Item -Force -ItemType file $outputFilePath $publicFolders = $null try { $publicFolders = Get-PublicFolder -Recurse } catch { if ($_.CategoryInfo.Reason -eq 'ObjectNotFoundException') { Write-Host "There are no public folder mailboxes." return } throw } $publicFolders | ? { IsNotEmpty $_ } | %{ GetUserWithRequiredRights $_ } | ? { $_ -ne $null } | %{ AppendEntryToFile $outputFilePath $(GetEntry $_) } Die merkwürdigen Kommentarzeilen machen mich stutzig. Sehen so CHINESISCH aus... Ich hab es bei google übersetzen lassen: Zitat # 脨 鈥 澝 惵 幻 懧? 脨 Lu 脨 潞 潞 潞 潞 焨 舥 毭 惵 戋 戋 偓 毭? €?潵 罵罵 焵 潵 焵 無 焨 樵 焵 焨 焨 焨 潵 焨 焨 焨 焨 潵 焨 焨 焨 惵 惵 惵 惵 惵 惵 惵 愨 愨 惵 惵 愨 惵 脨 脨 脨 脨 脨lu So finden Sie heraus, was zu tun ist? FindItems So suchen Sie lange? FindItems So suchen Sie lange? FindItems Bestechungsreparaturen # "Das angegebene Objekt wurde nicht im Store gefunden". # 脨 鄨 修 钪 惵 惵 惵 € : 惵 得 惵?脨 得 惵? Stimmt es, dass Sie es reparieren können? Sie können es für eine lange Zeit reparieren? Sie können es für eine lange Zeit reparieren? Es ist eine lange Zeit, um es zu reparieren. Es ist zu schwierig, den Esel zu reparieren. Wie man es repariert das Bestechungsgeld und reparieren es? Sie können es reparieren, und es ist eine Schande, dass Sie es reparieren können? Es ist eine Schande, dass Sie es reparieren können. Es ist eine Schande. €? # Ji Yun Ji Lu Ji töten Ji Lu Ji Lu Ji Gefangener (Ji Lu Ji töten Ji Lu Ji Lu Ji Krupp Reparatur Biji Lu Ji Lu Ji Lu Ji Gefangener) Reparatur Holmium Nuodie Bedauern Krawatte Gut Sterben Bedauern Nuo? Cu Schlachtreparatur Xiecu Bestechung Was ist der Unterschied zwischen dem Schlachten und dem Schlachten? Das Schlachten des Schlachtens und das Schlachten des Schlachtens und das Schlachten des Schlachtens, das Schlachten des Schlachtens, das Schlachten des Schlachtens, das Schlachten des Schlachtens, das Schlachten des Schlachten, das Schlachten des Schlachtens, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, Das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, das Schlachten, die Schrägreparatur für eine lange Zeit, die Illusion und die Fehler führen zu IPM_SUBTREE. # Ji holmium ⒚ Diecidiegai Die Jiaonuonijian € Nuodiecaidie Detiejiaodie Jiaodiejiudie? Culvxiukang Die war Tiecidieke Tiejiutiehuan Diejiudiedu Tiedetiejiao Was sollten Sie tun? Kouxiubixiu holmium Nuotie Jiutiechentie? Holmium Chidiejiutie reparieren Illusion und Frustration # 脨 脨 脨 reparieren 鈥 毭 惵 惵 惵 惵 鈥? 鈥? 脨 Lu 脨 FindItems erfassen Ich bin kein Dummkopf, ich bin kein Dummkopf, ich bin kein Dummkopf, ich bin kein Mann, ich ' Ich bin kein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann, ich bin ein Mann Sechseckiger Lack Lack Lack Lack Reparatur Moos. Was soll ich tun? Der Esel repariert die Reparaturen, die Reparaturen, die Reparaturen, die Reparaturen, die Reparaturen, die Schaufeln, die Reparaturen in Gefangenschaft, die Sorgen, die Sorgen und das Chaos für eine lange Zeit? Hat jemand eine Idee dazu? Kaspersky Endpoint, MSERT und Testproxylogon haben nichts auf dem System gefunden... script.ps1.txt Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 17. März 2021 Melden Teilen Geschrieben 17. März 2021 Moin, meine Idee: Das ist böse und das System gehört neu gemacht. Gruß, Nils 1 Zitieren Link zu diesem Kommentar
MrCocktail 192 Geschrieben 17. März 2021 Melden Teilen Geschrieben 17. März 2021 Das wird mindestens einen Exchange Neuaufbau bedeuten Zitieren Link zu diesem Kommentar
rt1970 10 Geschrieben 17. März 2021 Autor Melden Teilen Geschrieben 17. März 2021 @NilsK Die Idee klingt plausibel - aber... Hoffnung stirbt zuletzt, das System nicht neu zu installieren. Kann man raus bekommen, welcher Prozess/Datei die Datei erstellt? Oder gibt es einen Befehl, der ALLE Task´s ausliest? Was macht die script.ps1? Zitieren Link zu diesem Kommentar
mikro 67 Geschrieben 17. März 2021 Melden Teilen Geschrieben 17. März 2021 vor 3 Minuten schrieb rt1970: @NilsK Die Idee klingt plausibel - aber... Hoffnung stirbt zuletzt, das System nicht neu zu installieren. Kann man raus bekommen, welcher Prozess/Datei die Datei erstellt? Oder gibt es einen Befehl, der ALLE Task´s ausliest? Was macht die script.ps1? Hey, ganz ehrlich, selbst wenn Du Teile bereinigt bekommst, wirst Du bei jedem Fehler der demnächst auftritt MIsstrauisch sein und das schlimmste befürchten müssen. Tu Dir und deinen GF's den Gefallen einer /recoverserver Installation und gut ist. Es ist unverantwortlich so ein System noch länger bei Euch im Netz laufen zu lassen. Gruß mikro Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 17. März 2021 Melden Teilen Geschrieben 17. März 2021 Moin, vermutlich wird man noch weiter gehen müssen und nicht nur den Exchange-Server neu machen. Ihr habt ein echtes Problem in eurem Netzwerk und tut gut daran, euch jetzt von erfahrenen Incident Managern unterstützen zu lassen. Ein Forum ist jetzt nicht der Support, den ihr braucht. Gruß, Nils Zitieren Link zu diesem Kommentar
rt1970 10 Geschrieben 17. März 2021 Autor Melden Teilen Geschrieben 17. März 2021 Naja.... Soooo eindeutig ist das ja nicht (wie ich finde). Die Übersetzung kam ja NUR zustande, weil ich die .ps1 in Word geöffnet hatte und mit einer Sprache, die wie Chinesisch aus sah... Dann ab zum Google-Übersetzer. Ob der Kommentar in der .ps1 tatsächlich korrekt übersetzt ist weiß keiner. Ich finde auch keine weiteren Anomalien. Auch keine unklaren Aufgaben. Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 17. März 2021 Melden Teilen Geschrieben 17. März 2021 Moin, Die Kommentare sind nicht das Problem, sondern die Skripte. Exchange macht die nicht von selbst, da ist Malware aktiv. Aber bitte, du kannst das auch weiter ignorieren. Ist hierzulande ja ohnehin gerade en vogue. Gruß, Nils 2 Zitieren Link zu diesem Kommentar
rt1970 10 Geschrieben 17. März 2021 Autor Melden Teilen Geschrieben 17. März 2021 Sorry Nils, dass es so rüber kam. Bevor ich alles "Platt" machen muss brauche ich wenigstens 80%ige Gründe. Leider verstehe ich nicht, was das Script überhaupt macht. Kaspersky for Exchange ist ja auch noch aktiv und "tobt" sich in C:\Windows\Temp aus... Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 17. März 2021 Melden Teilen Geschrieben 17. März 2021 vor 1 Stunde schrieb rt1970: Bevor ich alles "Platt" machen muss brauche ich wenigstens 80%ige Gründe. Leider verstehe ich nicht, was das Script überhaupt macht. Lies dir doch bitte die beiden Zeilen noch ein paar Mal durch. Zitieren Link zu diesem Kommentar
rt1970 10 Geschrieben 17. März 2021 Autor Melden Teilen Geschrieben 17. März 2021 Und dann? Was willst Du mir damit sagen? Bis auf die fragwürdigen Kommentarzeilen sehe ich eine Abfrage des Exchange, was auch vom Kaspersky kommen könnte. Soll ich jetzt ein Auto verschrotten, nur weil eventuell ein Nagel im Reifen steckt? Zitieren Link zu diesem Kommentar
mwiederkehr 373 Geschrieben 18. März 2021 Melden Teilen Geschrieben 18. März 2021 vor 7 Stunden schrieb rt1970: Soll ich jetzt ein Auto verschrotten, nur weil eventuell ein Nagel im Reifen steckt? Das Problem ist nicht der Nagel. Das Problem ist das, was Du möglicherweise nicht siehst. Der Vergleich ist eher: Terrorist war eine Stunde unbemerkt an meinem Auto. Auf Anhieb finde ich keine Bombe. Fahre ich mit dem Auto? Wenn Malware mit SYSTEM-Rechten ausgeführt wird, kann sie sich so verstecken, damit Du sie als Admin nicht siehst. 1 Zitieren Link zu diesem Kommentar
cj_berlin 1.315 Geschrieben 18. März 2021 Melden Teilen Geschrieben 18. März 2021 Zusätzlich wäre anzumerken, dass, sofern der Server nicht Teil einer DAG ist, eine Recovery-Installation eher mit dem Ölwechsel zu vergleichen ist als mit dem Verschrotten. Oder, falls noch Thrid Party-Zeug auf dem Server läuft, vielleicht mit einem Auspufftausch. Klar hat man Respekt davor, wenn man es noch nie gemacht hat. Aber tatsächlich ist bei einem Standalone-Server nix großes dabei. Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 18. März 2021 Melden Teilen Geschrieben 18. März 2021 vor 9 Stunden schrieb rt1970: Und dann? Was willst Du mir damit sagen? Du hast geschrieben du verstehst das Script nicht und willst nicht neu installieren weil Du 80%ige Gründe brauchst. Du verstehst das Script zu 100% nicht. Und 100% sind 20% mehr als 80%. 1 Zitieren Link zu diesem Kommentar
rt1970 10 Geschrieben 18. März 2021 Autor Melden Teilen Geschrieben 18. März 2021 Danke für die Ausführungen. Eine Frage hätte ich noch: Was macht das Script? Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.