Copying sources and texts (also in parts) for publishing without our permission is NOT ALLOWED. We are fed up with finding our work on other sites (like stackoverflow).
Das Kopieren von Quellcode und Texten (auch in Auszügen) ist nicht erlaubt. Wir haben es gründlich satt, unsere Arbeit auf anderen Webseiten zu finden.

Copying for non-public usage is allowed.           Das private Kopieren und Benutzen ist natürlich erlaubt und erwünscht.

Kategorie "Sicherheit"

28. Nov
Teaser

Sicherheit: Verlorenes Passwort im Codiad Editor

Wenn Sie den Codiad WebEditor benutzen und Ihr Passwort vergessen haben, dann kann Ihnen diese Lösung helfen:

Öffnen Sie im codiad Verzeichnis die Datei “data/users.php”:

nano data/users.php
<?php
/*|[{"username":"john","password":"6bf7d9cab423e10349e3bd0389d11697e7080ba9","project":"\/home\/john\/public_html\/projects"}]|*/
?>

Setzen Sie vorübergehend das Passwort für John auf “login” indem Sie den Inhalt von “password” auf “93ceb7962cf40688f3c465ba57ff7286893fd19e” ändern:

<?php
/*|[{"username":"john","password":"93ceb7962cf40688f3c465ba57ff7286893fd19e","project":"\/home\/john\/public_html\/projects"}]|*/
?>

Beenden Sie nano durch “Strg + X” und speichern Sie die Änderungen ab.

Sie können sich nun in Codiad wieder anmelden. In diesem Beispiel mit Benutzer “john” und dem Passwort “login”.

Fertig.

Vergessen Sie bitte nicht, Ihr Passwort in Codiad wieder zu ändern. Gehen Sie dafür in das Menü auf der rechten Bildschirmseite, klicken Sie “Password” an und geben Sie ein neues, geheimes Passwort ein.

Wenn Sie gerne direkt ein eigenes und verschlüsseltes Passwort in die “users.php” eintragen möchten, dann können Sie den Passwort Hash mithilfe der folgenden PHP Datei selber erzeugen. Es ist recht einfach: Ihr Passwort wird zuerst per MD5 codiert und dann über dieses Ergebnis ein SHA1 laufen gelassen:

nano getCodiadPassword.php
<?php

echo sha1(md5("PASSWORD")) . "\n";
php getCodiadPassword.php
508b38590a90d32990aadd7350d160b795c3ab41

Das wäre der Hash für den Text “PASSWORD”.

22. Nov
Teaser

megaRAID: Alarm auf “silent” stellen

Wenn Sie ein “megaRAID” System benutzen und eine Festplatte einen Fehler hat … dann werden Sie erleben, was echter Alarm bedeutet. Eine Feuerwehrsirene direkt neben Ihnen ist ein Witz gegen den Alarm einiger RAID-Gehäuse.

Das kann und mag für einige Fälle (und fast taube Techniker) so gewünscht sein; häufig reicht auch ein aufmerksamer Administrator, richtig konfigurierte Warnmeldungen per E-Mail und ordentliche Vorbereitung.

Den Alarm können Sie mit folgendem Befehl ausschalten:

megacli -AdpSetProp AlarmSilence -aALL
Adapter 0: Set alarm to Silenced success.

Exit Code: 0x00

Für den Alarmzustand gibt es folgenden Optionen:

Leiser Alarm (Silence active alarm)

MegaCli -AdpSetProp AlarmSilence -aALL

Deaktivierter Alarm (Disable alarm)

MegaCli -AdpSetProp AlarmDsbl -aALL

Aktiver Alarm (Enable alarm)

MegaCli -AdpSetProp AlarmEnbl -aALL
22. Aug
Teaser

Komplette Webseite mit “wget” sichern

Der folgende Befehl erlaubt es, eine Webseite unter Linux komplett als Kopie lokal zu speichern:

wget -r http://www.domain-name.de

Dabei erstellt “wget” automatisch eine Verzeichnisstruktur im aktuellen Ordner und legt alle angerufenen Dateien dort ab.

21. Aug
Teaser

VirtualBox: Windows ohne Aktivierung umziehen (importieren)

Wenn Sie eine VirtualBox mit installiertem und aktiviertem Windows von einem Host auf einen anderen umziehen, dann fordert Windows beim nächsten Start eine neue Aktivierung.

Das können Sie durch folgenden “Trick” vermeiden:

Lassen Sie sich die Daten Ihrer VirtualBox auf dem Original-/Quell-Host in eine Datei (“vminfo.txt”) ausgeben:

vboxmanage showvminfo /path/to/Original.vbox > vminfo.txt

Öffnen Sie die Textdatei:

nano vminfo.txt

Suchen Sie die “Hardware UUID” heraus (meist ist sie identisch zur Geräte “UUID”):

UUID:            8fd5972d-53fe-42c8-807c-d6dee4e222ed
Hardware UUID:   8fd5972d-53fe-42c8-807c-d6dee4e222ed

Sie können auch folgenden Befehl für das Auslesen benutzen:

vboxmanage showvminfo /path/to/Original.vbox | grep "Hardware UUID"
Hardware UUID:   8fd5972d-53fe-42c8-807c-d6dee4e222ed

Durch den Import auf den Ziel-Host wurden (meist) die UUID verändert. Korrigieren Sie die Hardware UUID durch folgenden Befehl und setzen Sie diese wieder auf den Wert des Original-Hosts:

vboxmanage modifyvm /path/to/New.vbox --hardwareuuid "8fd5972d-53fe-42c8-807c-d6dee4e222ed"

Wenn Sie jetzt die VirtualBox auf dem neuen Host starten, dann wird Windows keine erneute Aktivierung fordern.

08. Aug
Teaser

Sicherheit: Streamen der IP Kamera “HOSAFE-1MB6”

Die IP Kamera “1MB6” vom Hersteller Hosafe liefert auch einen IP-Video-Stream.

Allerdings nicht auf den üblichen Ports und den üblichen Pfaden, sondern etwas versteckt:

rtsp://12.34.56.78:5544/live0.264

Für openRTSP lautet der Befehl z.Bsp.:

openRTSP -D 10 -4 -Q -F "video" -d 30 -P 1800 -t -u admin admin -B 10000000 -b 10000000 rtsp://12.34.56.78:5544/live0.264

Die Angabe “12.34.56.78” ist durch die IP Adresse der Kamera zu ersetzen.

Opened URL "rtsp://12.34.56.78:5544/live0.264", returning a SDP description:
v=0
o=- 1062276890 1 IN IP4 12.34.56.78
s=Session Streamed by LIBZRTSP
i=live0.264
t=0 0
a=tool:LIBZRTSPD v1/0.3
m=video 0 RTP/AVP 96
c=IN IP4 12.34.56.78
b=AS:2
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=4D401F;sprop-parameter-sets=Z03AH5WrFAFuhACDAwAEAAADAHgy,aO22gA==
a=control:track1
m=audio 0 RTP/AVP 0
c=IN IP4 0.0.0.0
b=AS:64
a=rtpmap:0 PCMU/8000
a=control:track2

Created receiver for "video/H264" subsession (client ports 59974-59975)
Changed socket receive buffer size for the "video/H264" subsession from 212992 to 425984 bytes
Created receiver for "audio/PCMU" subsession (client ports 38420-38421)
Changed socket receive buffer size for the "audio/PCMU" subsession from 212992 to 425984 bytes
Sending request: SETUP rtsp://12.34.56.78:5544/live0.264/track1 RTSP/1.0
CSeq: 4
User-Agent: openRTSP (LIVE555 Streaming Media v2014.01.13)
Transport: RTP/AVP/TCP;unicast;interleaved=0-1

Received 219 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 4
Date: Aug 05 2017 19:05:08 GMT
Session: 26C0B3BC;timeout=60
Transport: RTP/AVP/TCP;unicast;destination=192.168.5.50;source=12.34.56.78;interleaved=0-1;mode=PLAY;
x-Dynamic-Rate: 1

Setup "video/H264" subsession (client ports 59974-59975)
Sending request: SETUP rtsp://12.34.56.78:5544/live0.264/track2 RTSP/1.0
CSeq: 5
User-Agent: openRTSP (LIVE555 Streaming Media v2014.01.13)
Transport: RTP/AVP/TCP;unicast;interleaved=2-3
Session: 26C0B3BC

Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 5
Date: Aug 05 2017 19:05:08 GMT
Session: 26C0B3BC;timeout=60
Transport: RTP/AVP/TCP;unicast;destination=11.22.33.44;source=12.34.56.78;interleaved=2-3;mode=PLAY;
x-Dynamic-Rate: 1

Setup "audio/PCMU" subsession (client ports 38420-38421)
Outputting to the file: "video.mp4"
Sending request: PLAY rtsp://12.34.56.78:5544/live0.264/ RTSP/1.0
CSeq: 6
User-Agent: openRTSP (LIVE555 Streaming Media v2014.01.13)
Session: 26C0B3BC
Range: npt=0.000-30.000

Received a complete PLAY response:
RTSP/1.0 200 OK
CSeq: 6
Date: Aug 05 2017 19:05:08 GMT
Range: npt=0.000-
Session: 26C0B3BC
RTP-Info: url=rtsp://12.34.56.78:5544/live0.264/track1;seq=0;rtptime=0,url=rtsp://12.34.56.78:5544/live0.264/track2;seq=0;rtptime=0

Started playing session
Receiving streamed data (for up to 30.000000 seconds)...
07. Aug
Teaser

Linux: PHP ohne Apache Webserver installieren

Wenn man PHP installieren möchte und dafür den üblichen Befehl unter Debian benutzt:

apt-get install php5

… dann wird angezeigt, dass auch apache2 usw. usf. installiert werden sollen:

The following extra packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0
  libonig2 libperl4-corelibs-perl libqdbm14 lsof php5-cli php5-common php5-json php5-readline ssl-cert

Lösung:
Wenn man jedoch keinen Webserver (oder Apache im Besonderen nicht) installieren möchte, dann hilft:

apt-get install php5-cgi php5
05. Aug
Teaser

WordPress: Die readme.html Datei blocken

WordPress hat schon lange die unbeachtete Sicherheitslücke mit der eigenen “readme.html” Datei.

Das wird bei den Veröffentlichungen (Updates) wohl auch keiner vom WordPress Team mehr lernen: Solche Details geben Angreifern wertvolle Informationen über das eingesetzte System, die eingesetzte Version (denn auch die readme Datei ändert sich von Zeit zu Zeit) und somit mehr Möglichkeiten des Angriffes. Der Inhalt solcher Dateien ist für den Webseitenbetreiber ggf. interessant; jeden anderen gehen solche Details nichts an.

Lösung:
Sperren Sie selbst in der .htaccess Datei den Zugriff auf diese Datei:

RewriteCond %{THE_REQUEST} /readme\.html[?/\s] [NC]
RewriteRule ^ - [R=404,L]

Danach wird dem Benutzer für diese Datei ein 404 Fehler (“Datei nicht gefunden”) angezeigt.

13. Jul
Teaser

Sicherheit: SSL für Authentifizierung erzwingen (Apache erlaubt non-SSL redirect)

Wenn Sie auf Ihrem Webserver Verzeichnisse per “.htaccess” schützen und SSL für eine verschlüsselte und sichere Übertragung der Benutzerdaten benutzen möchten, dann kennen Sie wahrscheinlich das Problem:

Der Benutzer ruft die Webseite ohne SSL (“http://” und nicht “https://”) auf und die Passwortabfrage erscheint noch vor der Weiterleitung auf die SSL geschützte Seite. Das heißt, dass die Benutzerdaten (Benutzername und Passwort zur Identifizierung) unverschlüsselt an den Server übertragen werden und erst nach der Akzeptanz dieser Zugangsdaten eine Weiterleitung auf die SSL geschützte Webseite erfolgt. Nicht wirklich sicher und nicht wirklich der gewünschte Ablauf, denn gerade solche Daten sollten bei der Übertragung geschützt werden.

Lösung: Ergänzen Sie Ihre “.htaccess” Datei nach dem folgenden Muster und der Apache-Server wird erkennen, dass der Benutzer ohne SSL zugreift. Zuerst erfolgt dann eine Weiterleitung auf den SSL Kanal und erst danach, auf Basis der SSL Verschlüsselung, erfolgt die Abfrage der Benutzerdaten (in diesem Beispiel gegen die “.htpasswd”).

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

<If "%{HTTPS} == 'on'">
AuthUserFile "/path/to/.htpasswd"
AuthType Basic
AuthName "Enter your password with SSL protection"
require valid-user
</If>
27. Jun
Teaser

Sicherheit: access.log analysen (Browser, IP Adressen, …)

Um aus der “accedd_log” (oder “access.log”) die Anzahl der unterschiedlichen Browser zu filtern, nutzen Sie folgenden Befehl:

awk -F\" '{print $6}' /var/log/access_log | sort | uniq -c | sort -fnr

Die 50 häufigsten IP Adressen von Zugriffen zu erhalten:

awk '{print $1}' /var/log/access_log | sort | uniq -c | sort -rn | head -50

Bei beiden Beispielen muss natürlich der Pfad zum gewünschten Log angepasst werden.

02. Jun
Teaser

mySQL: Using a password on the command line interface can be insecure

Über die “Sicherheit”, ein Passwort im Klartext gleich neben den SQL Befehl zu schreiben, möchten wir Sie nicht aufklären. Das wird Ihnen selbstverständlich bewußt sein und Sie suchen wahrscheinlich nur eine Lösung um solche Befehle weiterhin nutzen zu können.

Geben Sie das Passwort über die Bash gleich mit an. Hier ein Script-Beispiel:

export MYSQL_PWD=MeinPasswort;mysql -u root -e "CREATE DATABASE example;"