Windows – CA-Zertifikate per Command Line importieren

Heute wieder etwas zum Thema Unattended Installation bei Windows. Ich habe die Notwendigkeit, eigene CA-Zertifikate ins Windows zu importieren. Unter anderem, damit mein WSUS mit SSL funktionert, da dessen Zertifikat von dieser eigenen CA stammt. Bei Windows (getestet ab 2008 R2) gibt es dazu das certutil.exe. Um Zertifikate in einen bestimmten Zertifikatspeicher beispielsweise zu importieren, muss man wissen, wie diese Speicher heißen.

User Certificates

User Certificates


Eine Möglichkeit ist certmgr.msc. Hier wird nur der Speicher des Users angezeigt, weshalb man sich mit mmc am Besten schnell etwas zusammenstellt. Natürlich kann certutil nichts mit den langen Namen anfangen, da hier die Kurznamen benötigt werden. In der Registry findet man schneller heraus. Dort sind ein Teil der Zertifikate für entsprechenden Benutzer bzw. den Computer in den jeweiligen Stores als BLOBS abgelegt:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\SystemCertificates
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates

Blobs in Registry

Blobs in Registry


Alternativ kann man sich einen Teil in der Console ausgeben lassen mit certutil -v -enumstore.

Die Anleitungen im Internet zeigen oft einen Import unter TrustedPublisher. Wer es in Trusted Root Certification Authorities importieren möchte, muss also ROOT eingeben.

certutil -addstore "ROOT" ownCA.p7b
ROOT "Trusted Root Certification Authorities"
Signature matches Public Key
Certificate "Own CA" added to store.
CertUtil: -addstore command completed successfully.

Dazu gibt es auch einen guten Artikel im Technet. Vielleicht hilfts euch?!

Shellshock Bug – Bash selbst kompilieren

shellshock_logo Hier ein Beitrag, wie man sein Bash-Binary selber neu erstellt, um es gegen den Shellshock Bug abzusichern. In meinem Beispiel habe ich das für SLES10SP2 gebaut zu einem frühen Zeitpunkt, als es von Suse noch keine passenden Updates zur Verfügung gestellt wurden. Jetzt ist das zum Glück anders aber vielleicht hat der eine oder andere ein altes System, zum es keine Updates in rpm- oder pkg-Format gibt. Der Ablauf sollte dann ähnlich sein. Eventuell muss die passende Bash-Version genutzt werden. Bis zur Version 2.05b gibt es Patches auf dem Ftp-Server.

Vorausetzung

  • wget
  • curl
  • tar
  • make
  • gcc compiler
  • passende Bash-Quelldateien inkl. Patches von GNU.org
  • sollte beim Kompilieren eine Fehlermeldung auf das Fehlen von yacc hinweisen, dann einfach das Paket bison nachinstallieren

Ablauf

(1) Check ob die Sicherheitslücke existent ist – mit Sicherheit 🙂

# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

(2) Welche Version von Bash ist installiert? Hier die Version 3.1

# rpm -qa|grep bash
bash-3.1-24.26.20
# bash --version
GNU bash, version 3.1.17(1)-release (x86_64-suse-linux)
Copyright (C) 2005 Free Software Foundation, Inc.

(3) Die Quelldateien für die Bash-Version 3.1 herunterladen und in einen Arbeitsordner entpacken

# mkdir /opt/bash-fix && cd /opt/bash-fix
# wget https://ftp.gnu.org/pub/gnu/bash/bash-3.1.tar.gz
# tar -xvzf bash-3.1.tar.gz
# cd bash-3.1/

(4) Patches herunterladen und in den Quellcode verbauen. Hier sollte man vorher kurz prüfen, wie viele Patch-Dateien vorrätig sind. Bei 3.1 sind es zum Zeitpunkt der Artikelerstellung 23, bei Version 3.2 sogar 57 Patchdateien. Das kann man mit curl und patch manuell für jede Datei einzeln machen….

testserver:/opt/bash-fix/bash-3.1 # curl http://ftp.gnu.org/pub/gnu/bash/bash-3.1-patches/bash31-001 |patch -p0
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2708  100  2708    0     0  11824      0 --:--:-- --:--:-- --:--:-- 2644k
patching file parse.y
patching file patchlevel.h

…oder mit zwei kleinen for-schleifen. Irgendwie war ich nicht im Stande, die Sache mit der führenden Null richtig zu verbauen, daher zwei Schleifen 🙁

for j in {1..9}; do curl http://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-00$j| patch -p0; done
for j in {10..23}; do curl http://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-0$j| patch -p0; done

Continue Reading

Silent Installation von Control-M/Agent V8 Fix Pack 2

Nutzt jemand einen Control-M Agenten unter Windows? Falls man das Fixpack unattended installieren will – hier die Kurzanleitung. Herunterladen kann man die Dateien vom FTP-Server von BMC. Der ist weitaus übersichtlicher als über das Support-Menü. Dann die Exe-Datei entpacken mit

PAKAI.8.0.00.200_windows_x86_64.exe -e -d(Pfad-zum-Ordner)

bmc-fixpack-screenshot

Wichtig ist hier, dass beim Parameter „-d“ kein Leerzeichen ist. Ansonsten werden die Dateien nach %TEMP% geschoben. Hat man dies geschafft, kann man sich, entgegen der Info aus der Anleitung, mit der silent.bat behelfen.

LocalGPO Tool funktioniert nicht auf Windows Server 2012 R2

Hallo mal wieder. Ich schraube gerade intensiv an einer neuen Autoinstallation für Windows 2012 R2. Da alle Server später möglichst identisch aussehen sollen, egal ob sie nun in einer Domäne landen oder nicht, sind einige Schrauben zu drehen. Heute ist sind die Local Policy Settings dran und da gibt es ja seit einiger Zeit das Command Line Tool LocalGPO, welches im Security Compliance Manager (SCM) enthalten ist. Leider wurde bei Microsoft das Tool für das 2012er R2 noch nicht angepasst. Natürlich stellte ich dies erst fest, nachdem ich mit meiner Template-Erstellung durch war. Fehlermeldung LocalGPOtool auf 2012r2 Was kann man also machen? Richtig – das Skript modifzieren! Geht in den Ordner C:\Program Files (x86)\LocalGPO und dort die Datei LocalGPO.wsf mit dem Editor öffen. Zum Beispiel mit Notepad++. Im Abschnitt Main dann den Aufruf der Funktion ChkOSVersion auskommtieren. Also Call ChkOSVersion mit 'Call ChkOSVersion. Der saubere Weg ist natürlich, die Funktion Sub ChkOSVersion bearbeiten und dort die korrekte Version für 2012 R2 einfügen. Ist dies erledigt, funktioniert auch der Export wie erwartet.

C:\Program Files (x86)\LocalGPO>cscript LocalGPO.wsf /Path:C:\GPObackups /Export
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
Exporting Local Policy... this process can take a few moments.

Local Policy Exported to C:\GPObackups\{5BCD14CE-4D93-4C57-B43B-A253FBEA8CB5}
C:\Program Files (x86)\LocalGPO>

Will man die Local GPO-Settings später in ein 2012 R2 importieren, so ist die Änderung in der GPOPack.wsf zwingend notwendig.

If(Left(strOpVer,3) = "6.3") and (strProductType <> "1") then 
         strOS = "WS12"

LG G2 – TWRP installieren

LG G2 TWRP
Damit man auch auf dem LG G2 in den Genuss des erweiterten Recoverys kommt, gibt es verschiedene Wege auf das TWRP zu kommen. Ich habe mal das Vorgehen von den XDA-Jungs probiert.

Folgendes Vorgehen:

  1. Mein LG2 ist ein deutsches bzw. europäisches Gerät, daher habe ich die Rar-Datei D802 runtergeladen und entpackt.
  2. Command-Box aufmachen
  3. cd /D (Pfad-zum-Ordner)
  4. USB-Debugging im G2 aktivieren
  5. Prüfen mit adb devices -l ob das Gerät erkannt wurde
  6. flash-recovery.bat ausführen
  7. RSA Fingerprint akzeptieren, sofern noch nicht geschehen (auf dem Smartphone)
  8. Nach der Installation dann „y“ drücken und uns Recovery starten!

Der Vorteil ist hier, dass der Bootloader gleich entsperrt wird – Stichwort „loki“.

Install Recovery...

3305 KB/s (67688 bytes in 0.020s)
2181 KB/s (67020 bytes in 0.030s)
3351 KB/s (8853504 bytes in 2.580s)

2048+0 records in
2048+0 records out
1048576 bytes transferred in 0.072 secs (14563555 bytes/sec)

[+] loki_patch v2.1
[+] Detected target International LG G2 build D802b
[+] Original kernel address: 00008000
[+] Original ramdisk address: 05000000
[+] Writing device tree.
[+] Output file written to /data/local/tmp/recovery.lok

[+] loki_flash v2.0
[+] Loki validation passed, flashing image.
[+] Loki flashing complete!

Press any key to Reboot into recovery or disconnect USB cable from PC now...

Das war es auch schon. Eine Alternative ist hier Flashify, allerdings gehen da die Erfahrungen leicht in die negative Richtung.

Das WSUS-Update braucht ein Update

UTIL LOGO
Heute war der Tag der Updates für den WSUS-Server. Lief alles wie gewohnt durch. Es kam auch ein Update für den WSUS-Dienst mit – die Version 3.2.7600.251. Danach stellte ich dann fest, dass ein Sync mit dem Microsoft-Server nicht mehr funktionierte. Dolle Wurst. Egal wie, es ging nicht. Stattdessen wurde eine nichtssagende Meldung ausgespuckt.

WebException: The request failed with the error message:
--
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="%2fmicrosoftupdate%2fv6%2ferrorinformation.aspx%3ferror%3d15">here</a>.</h2>
</body></html>

--.
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Microsoft.UpdateServices.ServerSyncWebServices.ServerSync.ServerSyncProxy.GetAuthConfig()
   at Microsoft.UpdateServices.ServerSync.ServerSyncLib.InternetGetServerAuthConfig(ServerSyncProxy proxy, WebServiceCommunicationHelper webServiceHelper)
   at Microsoft.UpdateServices.ServerSync.ServerSyncLib.Authenticate(AuthorizationManager authorizationManager, Boolean checkExpiration, ServerSyncProxy proxy, Cookie cookie, WebServiceCommunicationHelper webServiceHelper)
   at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.SyncConfigUpdatesFromUSS()
   at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.ExecuteSyncProtocol(Boolean allowRedirect)

Continue Reading

URLs für das Funktionieren des Microsoft KMS (Proxyfreischaltung)

Key Logo
KMS, KMS – was ist das jetzt wieder? Und dann auch noch von Microsoft?! KMS ist schlicht die Abkürzung für den Microsoft Key Management Service der ab Windows Vista für die Produktaktivierung benötigt wird. Der Heimanwender kommt damit über Internet in Berührung, wenn er sein Windows oder sein Office Produkt online aktiviert. Für Unternehmen, die oft hunderte bis tausende Desktops, Server oder Office Produkte von Microsoft einsetzen gibt es die Möglichkeit, einen einen eigenen KMS im LAN aufzusetzen. Benötigt wird dazu ein Volumenvertrag mit dem Hersteller und der oder die dazugehörigen Keys. Das ist sinnvoll, wenn man nicht gewillt ist, alle Systeme ins Internet routen zu lassen, um sich initial oder alle 180 Tage zu (re)aktivieren. Dafür verbindet sich einzig der KMS-Server stellvertretend für die übrigen Systeme mit Microsoft. Machmal erfordert es dich interne IT-Sicherheit, dass der KMS-Server nicht komplett ins Netz darf, sondern nur mit dedizierten URLs kommunizieren darf. Also muss der Netzwerker einige Adressen am Proxy freischalten. Continue Reading

USB-Installstick von MacOS X erstellen – ohne AppStore

Einen USB-Stick für die Installation von MacOS X erstellen. Laut tausender Internetseiten an sich kein Problem. Man geht in der Regel wie folgt vor: * App Store aufrufen * Purchased bzw Gekauft auswählen. * Alt+Klick auf OS X Lion Man wird eine Warnung bekommen, dass man die App bereits installiert hätte. Trotzdem per ALT+Klick bestätigen. Letztendlich die herunter geladene InstallESD.dmg beispielsweise mit dem Festplatten-Dienstprogramm auf einen Stick brezeln und fertig. Cashy hat das noch etwas ausformulierter dargestellt. Jetzt das „Aber“ – dieses Vorgehen funktioniert aber nur, wenn MacOSX im AppStore jemals gekauft wurde. Es gibt jedoch auch Anwender, die das Betriebssystem bereits vorinstalliert gekauft haben und nur über die Recovery-Partition verfügen. Bei denen geht der AppStore-Trick nämlich nicht! Da ist man einzig auf die Recovery-Umgebung angewiesen, welche die Datei aus dem Internet saugt, auf die gewählte lokale Platte installiert und final die Datei wieder löscht. Bei langsamer Internetverbindung und ohne USB2LAN-Adapter reicht die Zeit durchaus um ein lecker Stück Fleisch auf den Grill zu werfen…

Continue Reading