spring4shell : vulnerability scanner

Nach log4j kommt spring4shell , langsam nervt das ;(

Ein Kollege hat hier einen vulnerability scanner geschrieben um verdächtige Klassen auf einem System zu finden. z.G. ist das Tool in GO geschrieben und kann für jede Plattform kompiliert werden. Nachdem ich das jetzt bereits ausgiebig im Einsatz habe, kann ich sagen, das macht das Leben leichter.
https://github.com/hillu/local-spring-vuln-scanner

MSSQL : Backup erstellen mit Powershell

Ich hatte die Anforderung das Backups eines MSSQL Servers erstellt werden müssen. Das vorhandene Powershell Script war "suboptimal". Aus diesem Grund habe ich mir mal 2 Stunden Zeit genommen und habe selbst eins erstellt.

Getestet hab ich es mit MSSQL 2017 / 2019 sollte aber grundsätzlich auf jedem MSSQL Server laufen auf dem SQLPS zur Verfügung steht.

Hier gehts zum Skript : https://github.com/Mokkujin/powershell/tree/main/server/mssql

Windows : pslogrotate.ps1 um Logfiles zu rotieren

Wir haben hier einige Anwendungen unter Windows im Einsatz die unsere Platten zuschreiben mit Logfiles. Aus meinen Linux Systemen kenne ich logrotate und pslogrotate ist eine light Version von diesem.

pslogrotate baut auf powershell 5 auf und ist mit einem json einfach zu configurieren. Definieren kann mal die Vorhaltezeit der Logs in Tagen und ob die Logs komprimiert werden sollen. Auch der Dienst kann auf restart gesetzt werden. Das bedeutet mein Script beendet den Dienst roliert das Logfile und startet den Dienst wieder.

Gerne bin ich für Feature Requests offen , diese dann bitte in Github direkt stellen.

Hier gehts zu pslogrotate.ps1 : https://github.com/Mokkujin/powershell/tree/main/pslogrotate

Powershell : New-SmbShare "no mapping between account and sid"

Ich musste heute in einem größeren Skript mehrere Folder anlegen und diese auf AD Gruppen berechtigen.
Die NTFS Rechte waren kein Problem jedoch die Rechte auf die Freigabe haben leider nicht geklappt.
Ich hab immer nur diese Fehlermeldung erhalten.

no mapping between account names and security IDs was done

Wenn ich jedoch den Befehl direkt in der Powershell eingegeben hat alles geklappt.
New-SmbShare -Path D:\DEMO_PFAD -Name Demo -ChangeAccess Group1,Group2,Group3,Group4 -FullAccess AdminGroup
also kann ja hier nur ein Problem mit der Bulk Verarbeitung vorliegen. Nach etwas basteln bin ich dann auf diese Lösung gekommen.
# create Share
$smbpath = 'D:\DEMO_PFAD'
$smbname = 'DEMO'
New-SmbShare -Path $smbpath -Name $smbname -FullAccess AdminGroup
$Groups = @()
$Groups += 'Group1'
$Groups += 'Group2'
$Groups += 'Group3'
$Groups += 'Group4'
# grant change permission on share
foreach ($Group in $Groups)
{
    Grant-SmbShareAccess -Name $smbname -AccountName $Group -AccessRight Change -Force
}


Quelle :
https://docs.microsoft.com/en-us/powershell/module/smbshare/new-smbshare?view=windowsserver2019-ps
https://docs.microsoft.com/en-us/powershell/module/smbshare/grant-smbshareaccess?view=windowsserver2019-ps

Windows: Server hängt mit "System wird vorbereitet. Schalten Sie den Computer nicht aus"

Problem:
Nach der Installation von mehreren Microsoft Patches auf einem Server musste ich diesen neu starten. Diese blieb jedoch bei der Meldung hängen und ich habe fast 20 Minuten gewartet, ohne das sich etwas tut:

Ich wollte den Server nicht einfach "hart" ausschalten...

Lösung:
Von einem anderen Server aus konnte ich mir die Dienste anzeigen lassen. Hier war der Dienst "Windows Modules Installer" im Status "wird beendet" und wurde aber nie beendet. Also müssen wir diesen remote beenden. Dazu habe ich das Windows-eigene Tool "Taskkill" genommen und den Installer-Dienst remote mit folgendem Befehl beendet:
taskkill /S hostname /IM trustedinstaller.exe
Nach wenigen Sekunden war der Dienst beendet und der Neustart wurde problemlos durchgeführt.
Man kann das auch mit PSEXEC von dne Sysinternals Tools machen.

Windows Server: Fehlermeldung ERROR_INVALID_PRINTER_NAME, wenn man einen Windows-Druckserver über einen DNS Alias (CNAME) anspricht

Problem:
Damit ich nicht immer die Drucker mit einem anderen Servernamen verbinden muss, habe ich mir gedacht, dass ich einen DNS-Alias (CNAME) für meinen Microsoft Windows Druckserver erstelle und den eigentlichen Druckserver dahinter "verstecke". Leider habe ich dann ständig Fehlermeldungen erhalten, wenn ich die Drucker verbinden wollte: ERROR_INVALID_PRINTER_NAME

Lösung:
Es gibt tatsächlich eine Lösung dafür. Man muss folgenden Registry-Key auf dem Druckserver erstellen und nach einem Neustart lässt dich der Druckserver über den DNS-Alias (CNAME) problemlos ansprechen.
Folgenden Key bitte setzen:

[HKLM\SYSTEM\CurrentControlSet\Control\Print]
"DnsOnWire"=dword:00000001


Danach bitte den Spooler-Dienst auf dem Server neu starten, damit die Einstellung wirksam wird.

Quelle:
Microsoft DOCS: Error message when you try to connect to a printer by using an alias (CNAME) resource record: Windows couldn't connect to the printer
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)