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

Samsung Galaxy S4 rooten ohne Knox zu triggern

Heute Android … gestern hatte ich ein Samsung Galaxy S4 (I9505)in den Fingern, dass ich rooten sollte bzw. wollte. Früher beim S2 und S3 gab es einen Counter, der anzeigte, ob und wie viele Roms geflasht wurden. Findige Frickler haben damals so einen USB-JIG entwickelt, der den Counter zurücksetzte. Mit dem Galaxy S4 und dem Update auf Android 4.4.2 gibt es Knox. Ansich kein schlechtes Konzept, was dahinter steht. Meiner Meinung nach aber nicht so ausgreift. Interessante Nebenerscheinung – Knox hat auch einen Counter. Bei Geräten, die noch nie eine (alternative) Rom oder ein CWM gesehen haben, steht der standardmässig auf 0x0. Installiert man sich nun eine Custom Rom oder ein CWM zeigt das Ding 0x1 an. Was ist daran doof? Der Counter lässt sich nicht mehr zurücksetzen, man bekommt, sofern man zurück auf die StockRom geht, die Knox-Software nie wieder zum laufen, es gibt keine Updates mehr von Samsung über OTA und – der geschickteste Schachzug vom Samsung – die Garantie erlischt damit. Dolle Wurscht.

Samsung KNOX-Counter

Nun gibt es aber dennoch Mittel und Wege zum Samsung mit Root und der Counter bei 0x0 bleibt. Zuerst gab es da Towelroot, die eine Schwachstelle im Kernel nutzte. Diese kleine App funktionierte solange, bis die Hersteller – in diesem Fall also Samsung – den Bug gefixt haben. Towelroot funktioniert(e) also noch bis zur Firmware mit GNF1 am Ende. Als was „darüber“ ist, wird von Towelroot mit unsupportet quittiert. Findige Leute in den Foren haben sich eines Tricks bedient, um in neueren Versionen dennoch Root-Zugriff zu bekommen ohne das Knox auf 0x1 umschaltet. Sie fanden heraus, dass man den älteren GNF1-Kernel kurzzeitig benutzt um die neue Version ebenfalls root-fähig zu machen. Soviel zum Hintergrund. Ich habe das Ganze nach folgender Anleitung gemacht.

Voraussetzungen

  • Only Root – keine Installation eines CWM oder TWRP StockRom
  • Keine CustomRom – also beispielweise auch kein Cyanogenmod
  • Samsung Android 4.4.2 in aktuellster Version (hier GN8)
  • Den Kernel von GNF1 – von hier bzw. von hier
  • Den Kernel von GNG8 – auch von hier
  • Die Towelroot App
  • Odin 3.09
  • Ein USB-Kabel
  • Treiber
  • SIM-Karte mit der man ins Internet kann
  • Temporär deaktiverte Windows-Firewall

Continue Reading

Speedport W724V blockt Zugang zu smtp-Server

Bei mir hat sich der Internet-Anbieter geändert. Ich bin jetzt wieder bei der Telekom. Da ich mit meiner Fritzbox am Annex-J und jetzt am Annex-B Probleme hatte bzw immer noch habe, orderte ich mir nachträglich einen Miet-Speedport vom Anbieter. Daheim versende ich viel Mails über die WebGUI und selten mit einem Mobile Device. Bei meiner Frau ist das genau anders und sie beschwerte sich, dass Mails nicht „raus gehen“, wenn sie im heimischen WLAN unterwegs ist. Nach ein paar Tests stellte ich fest, dass ich tatsächlich nicht auf 587/tcp auf meinen Mailserver beim Provider kam. Lange Rede – kurze Lösung. Der Speedport selbst blockt die Kommunikation. Kann man sich kaum vorstellen, da die Konfigurationsoberfläche eine Beleidigung für jeden Admin ist und ausgerechnet hier baut man noch so einen Käse ein.

Dank der Suchmaschine fand ich recht schnell den passenden Foreneintrag. Folgende Kurzanleitung schafft Abhilfe:

  1. In Speedport einloggen 😉
  2. Punkt „Internet“ anwählen
  3. Links „Liste der sicheren Email-Server“ anklicken
  4. Unten „Weiteren E-Mail-Server eintragen“
  5. Schritt wiederholen, sofern es mehrere Server sind.

Bereits vorhandene Einträge werden selbstständig erkannt – immerhin!

Mit biosdevnames eth0 zurück holen

Vor einiger Zeit schrieb ich etwas über SLES11 auf Dell-Servern und davon, dass die bekannte, erste Netzwerkkarte nicht mehr eth0 heißt. Nun bin ich mit kurz dazu gekommen, mich mit Redhat7 zu befassen und hier gibt es standardmässig auch so etwas zu finden. Dabei muss es nicht einmal ein Server von Dell sein, es reicht schon eine virtuelle Maschine unter VMware um beispielsweise mit ip addr show eine en01877732 oder ähnlich angezeigt zu bekommen.

Nun gibt es auch hier mehrere Möglichkeiten dieses neue Naming zu unterbinden, welches (wenn man die ganze Geschichte im Detail betrachtet) eigentlich nur bei Servern mit vielen Netzwerkports Sinn macht oder wenn man diese 10GbE-Adapter verbaut hat, die sich partitionieren lassen.

Variante 1 – Bei der Installation

Wie bereits beschrieben in der Zeile mit dem append ... initrd.img ein biosdevname=0 einfügen. In der Kickstart-Datei selbst soll auch -biosdevname funktionieren. Das habe ich nicht ausprobiert.

Variante 2 – Nach der Installation

Hier ist etwas mehr zu tun. Hier muss man eine Zeile im Grub2 erweitern. Dazu in /etc/default/grub gehen und in der Zeile GRUB_CMDLINE_LINUX folgende Parameter ergänzen:

net.ifnames=0 biosdevname=0

Dabei ist auf zwei Sachen zu achten. Erstmal müssen die Parameter inhalb der Anführungszeichen sein und zweitens muss die neue Konfiguration mit grub2-mkconfig -o /boot/grub2/grub.cfg neu geschrieben werden. Als nächstes ist unter den Netzwerk-Skripten die alte ifcfg-Datei umzubennen. Das geht am Besten mit:

cd /etc/sysconfig/network-scripts/ && mv ifcfg-en01877732 ifcfg-eth0

Zur Sicherheit ist noch in den udev-Regeln unter /etc/udev/rules.d/60-net.rules zu schauen, ob die MAC-Adresse der Netzwerkkarte irgendwo eingetragen hat. Wenn dem so ist, einfach die ganze Zeile löschen. Beim Reboot des Systems (der dann nötig ist) wird der Inhalt der Datei dann neu mit „eth0“ geschrieben.

In den Tiefen des Internets gibt es noch Admins, die das entsprechende Paket noch deinstallieren – musste ich jetzt nicht – yum remove biosdevname Ansonsten ist es dann soweit fertig. Zum Abschluss noch ein shutdown -r now.

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"

KMS für Server 2012 rekonfiguieren

So, nun kommt auch bei mir der Server 2012 in den Fokus. Besser spät als nie. Immerhin gibt es schon die R2. So gesehen, war die Wartezeit doch ganz gut. Mein KMS läuft auf einem Windows Server 2008 R2 und muss nun ready gemacht werden, damit der Volume-KMS-Key für Server 2012 R2 eingespielt werden kann. Soweit so gut. Die Arbeit oberflächlich betrachtet sieht als so aus, dass man auf dem KMS-Server einen Patch einspielt, damit der neue Key erkannt wird. Danach wird der neue Volume-Key eingestellt und aktiviert. Zuletzt testet man noch mit einem weiteren System, welches „Client“ am KMS-Server ist, ob er sich wie gewohnt oder endlich mal aktivieren kann. Die Arbeit mit dem KMS findet hauptsächlich über die Eingabeaufforderung statt. Wichtigstes Tool ist hier slmgr.vbs. Versucht man den Key ohne Patch einzuspielen, gibt es eine Fehlermeldung.
01-2014-1
In diesem Fall ist die Fehlermeldung recht eindeutig. Allerdings ist dies nicht immer so. Oft gibt es nur eine Hex-Nummer, die man sich mit dem Tool slui.exe übersetzen lassen muss.

Slui.exe 0x2a ErrorCode

Also muss der Patch her. Gesagt getan. Allerdings lies sich der Patch bei mir nicht installieren.
Continue Reading

Vodafone-Rechnung per Video

Vodafone-rechnung

Hey, was wird denen noch alles einfallen? Sowas von unnötig. Warum investiert man nicht einfach in sinnvolle Dinge, wie zum Beispiel der Versand von Rechnungen in PDF-Format oder ein intuitives Kundenmenü, bei dem man nicht immer umständlich durch die Gegend klicken muss.

Ohne weitere Worte…

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.

Silent Uninstall bei einem BMC Control-M Agent

Heute mal etwas Spezielles. Ab und an muss man auch eine Software deinstallieren, weil man sie nicht gescheit updaten kann. In der Herstelleranleitung steht es nicht drin aber man kann den Agenten auch „silent“ deinstallieren. Dazu empfiehlt es sich, zuerst das eventuell installierte Fixpack zu entfernen.
Hier mal am Beispiel der alten 6er Version. Leider kann man nicht direkt die Datei im Verzeichnis anwählen, weshalb man erst reinspringen, ausführen und wieder den Ordner verlassen muss. Nicht so toll aber man kann es gut skripten:

cd /D "C:\Program Files\BMC Software\CONTROL-M Agent\Default\install\PANDN.6.3.01.400\"
wscript.exe RunUninstallHidden.vbs -s

Dann ein paar Sekunden warten und weiter mit der Hauptinstallation

cd /D "C:\Program Files\BMC Software\CONTROL-M Agent\Default\EXE\"
Remove.exe Default silent

Das „silent“ ist wichtig in diesem Fall. Nicht vergessen, wieder aus dem Verzeichnis raus zu gehen.

cd /D "C:\Program Files\"

Noch ein weiterer Hinweis. Die Deinstallation braucht etwas Zeit. Am Besten man baut sich einen Sleep ein. Im Normalfall reicht eine Minute. In einer Batch-Datei kann man das richtig oldschool mit einem Ping auf localhost machen.

ping -n 60 127.0.0.1 > NUL

Natürlich gibt es dann noch ein paar Reste. Nicht jede Deinstallationsroutine putzt unter Windows alles weg. Daher muss man noch etwas nachhelfen.

rmdir /S /Q "C:\Program Files\BMC Software" > NUL
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\ctmag" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\ctmat" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\ctmar_service" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\ctmfw_service" /f
ping -n 3 127.0.0.1 > NUL 

So, das war es auch schon. All das lässt sich in ein Batchfile verpacken.

Link ins BMC-Forum

PS: Wer immer bei BMC für die Installationsroutinen des Control-M-Agenten verantwortlich ist … bitte geh‘ auf Schulung oder hol dir Hilfe!