Die Kunst der Täuschung (Risikofaktor Mensch) von Kevin Mitnick

Die Kunst der Täuschung (Risikofaktor Mensch)
Die Kunst der Täuschung (Risikofaktor Mensch)
Das Buch die “Kunst der Täuschung”, von Kevin Mitnick, wurde 2002 in englischer Sprache veröffentlicht. Darin beschreibt der ehemalige Hacker wie Social Engineering funktioniert, um mit Hilfe von Täuschung an geheime Informationen zu gelangen.
Im Jahre 2006 wurde ich auf das Buch aufmerksam. Da ich den Klappentext vielversprechend fand, habe ich mir sofort ein Exemplar besorgt und begann gespannt mit dem Lesen des Buches. Die ersten paar Kapitel waren spannend und auch lehrreich. Mit der Zeit aber lies die Spannung nach und die Geschichten wiederholten sich, was dazu führte, dass es richtig langweilig wurde. Nach etwa 100 Seiten gab ich das Lesen auf und legte das Buch auf die Seite. Im Sommer 2011 startete ich den zweiten Versuch das Buch doch noch zu Ende zu lesen.

Mein Fazit:
Die verschiedenen Kapitel umfassen immer eine Geschichte, welche verdeutlicht wie der Social Engineer an Informationen gelangt und diese gezielt einsetzt, um an weitere wichtige Informationen zu gelangen. Am Schluss der Geschichten gibt es eine Trickanalyse bei der beschrieben wird, warum das es so funktionieren kann. Auch gibt der Autor Tipps wie man sich und die Firma vor solchen Tricks schützen kann. Viele dieser Methoden, um an Informationen zu gelangen, werden heute wohl kaum mehr so einfach funktionieren, denn in den 80er Jahren war die Kenntnis über sensible Daten noch geringer als heute. (Ok, nicht überall!) Trotzdem gibt das Buch einen guten Überblick wie Social Engineering funktionieren kann.

Wenn man viel Zeit und die Motivation hat dieses Buch zu lesen, sich dabei mehr auf die kleinen Details in den Geschichten konzentriert, dann erfährt man als Leser einiges zum Thema Social Engineering. Und nein, man muss das Buch nicht am Stück lesen. Am einfachsten borgt man sich das Buch aus, liest soweit man Lust hat und blättert noch bis zum Schluss. Die Kapitel 15, 16 und 17 dürften vor allem diejenigen interessieren, die in einem Unternehmen zuständig für die Sicherheitsrichtlinien sind.

Wikipedia: Kevin Mitnick

pfSense – Squid proxy cache in der Konsole löschen

Sollte es einmal nötig werden, den “Squid Proxy Cache” von Hand zu löschen, kann dies in der Konsole erledigt werden.

Dazu muss die Ausführung von Squid zuerst gestoppt werden:
[cc lang=”bash”]/usr/local/etc/rc.d/squid.sh stop[/cc]

Dann wird das Verzeichnis “/var/squid/cache”, mit sämtlichen Unterverzeichnisse und Dateien, gelöscht:
[cc lang=”bash”]rm -rf /var/squid/cache/[/cc]

Verzeichnis “/var/squid/cache” wieder erstellen. Den Eigentümer und die Gruppe festlegen, sowie die Berechtigung für das Verzeichnis setzen:
[cc lang=”bash”]
mkdir -p /var/squid/cache/
chown squid:squid /var/squid/cache/
chmod 770 /var/squid/cache/
[/cc]

Da die gesamte Cache-Verzeichnisstruktur gelöscht wurde, muss diese nun wieder neu erstellt werden:
[cc lang=”bash”]squid -z[/cc]

Und zum Schluss kann Squid wieder gestartet werden:
[cc lang=”bash”]/usr/local/etc/rc.d/squid.sh start[/cc]

Nach dem Start sollte der Zugriff über den Proxy wieder funktionieren.

Zur Erinnerung: Die maximale Grösse, welche Squid für den Proxy-Cache verwenden soll, kann mit dem Webgui festgelegt werden:

pfSense - Squid Proxy Cache Size

Kostenloses StartSSL Serverzertifikat einrichten beim NGINX Webserver

Achtung:
Mozilla und Google haben der Zertifizierungsstelle das Vertrauen entzogen, somit werden die meisten StartSSL-Zertifikate nicht mehr als vertrauenswürdig anerkannt. Als eine gute und freie Alternative kann Let’s Encrypt eingesetzt werden.

Zum Installieren eines kostenloses StartSSL-Zertifikates auf einem NGINX Webserver, braucht es folgende Schritte:

  1. Ein Zertifikat bei StartSSL erstellen
  2. Den neu erstellten privaten Schlüssel mit “Copy & Paste” in eine Datei, mit den Namen ssl.key, speichern
  3. Die Datei ssl.key mit einem geeigneten Tool, beispielsweise WinSCP für Windows Benutzer, auf den Webserver kopieren
  4. Mit Hilfe von OpenSSL muss der private Schlüssel, auf dem Server, entschlüsselt gespeichert werden: openssl rsa -in ssl.key -out server.key
    (Hinweis zur Passworteingabe bei verwendung von Putty: Möchte man nicht die >= 32 Stellige “PEM pass phrase” von Hand abtippen, kann diese mit “shift+Ins” eingefügt werden.)
  5. Wenn das Webseiten-Zertifikat durch StartSSL erstellt wurde, erhält man eine Benachrichtigung und kann das Zertifikat unter: Control Panel-> Tool Box-> Retrieve Certificate beziehen. Dazu wieder mit “Copy & Paste” in eine Datei namens ssl.cert speichern und zum Webserver kopieren
  6. Nach diesem Schritt muss noch ein Gesamtpaket mit den Hilfszertifikaten von StartSSL und dem Webseiten-Zertifikat erstellt werden, da beim NGINX Webserver diese Zertifikate nicht einzeln in der Konfiguration angegeben werden. Die Hilfszertifikate können bei StartSSL heruntergeladen werden. Um das Gesamtpaket zu erstellen, braucht es für die kostenlosen Zertifikate die Dateien ca.pem und sub.class1.server.ca.pem. Mit dem Befehl:
    cat ssl.cert ca.pem sub.class1.server.ca.pem > server.pem
    werden alle Dateien in die Datei server.pem zusammengefasst.
  7. Nun die Dateien “server.pem” und “server.key” in das gewünschte Verzeichnis kopieren. Hier in diesem Beispiel nach “/etc/nginx/cert/”.
  8. Jetzt muss noch die NGINX Konfiguration angepasst werden:
    server {
        listen   443;
        ssl on;
        ssl_certificate /etc/nginx/cert/server.pem;
        ssl_certificate_key /etc/nginx/cert/server.key;
        server_name  www.example.org;
        root /var/www/example;
        location / {
            index  index.html;
        }
    }
  9. Zum Abschluss wird noch ein Neustart von NGINX durchgeführt.(/etc/init.d/nginx restart) Wenn beim Neustart keine Fehlermeldung in der Konsole erscheint, ist das Zertifikat erfolgreich installiert worden.

Hinweis: Sollte NGINX nicht mehr starten und eine ähnliche Fehlermeldung wie:

[emerg]: SSL_CTX_use_certificate_chain_file("/etc/nginx/cert/server.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory error:20074002:BIO routines:FILE_CTRL:system lib error:140DC002:SSL routines:SSL_CTX_use_certificate_chain_file:system lib)
configuration file /etc/nginx/nginx.conf test failed

in der Konsole angezeigt werden, dann deutet dies auf einen fehlenden Zeilenumbruch in der Datei server.pem hin.

NGINX - Fehler in der server.pem Datei
Fehlender Zeilenumbruch in der .PEM Datei
Einfach den Zeilenumbruch korrigieren und die Datei speichern. Nach der Korrektur sollte NGINX wieder erfolgreich starten.
Zeilenumbruch korrigiert
Zeilenumbruch korrigiert

Dateien zippen mit Hilfe von Python

Um mit Hilfe des Moduls “zipfile” eine Zipdatei zu erstellen und eine Datei hinzuzufügen, braucht es nur 4 Zeilen Python Code.


import zipfile
zipper = zipfile.ZipFile(zipfilename, 'w')
zipper.write(filename,filenameArchive,zipfile.ZIP_DEFLATED)
zipper.close()

Erklärung zu den Codezeilen:

  1. Importieren des zip Moduls
  2. Es wird ein Objekt zipper erstellt, welches auf die Zipdatei “zipfilename” zeigt. Mit dem Flag ‘w’ wird die Datei im Schreibmodus geöffnet
  3. Der Zipdatei wird die Datei “filename” hinzugefügt und mit dem Namen “filenameArchive” abgelegt. Die Konstante ‘zipfile.ZIP_DEFLATED’ sorgt dafür, dass die Datei komprimiert gespeichert wird
  4. Wenn alle Dateien hinzugefügt wurden, muss die Methode .close() aufgerufen werden. Ansonsten werden nicht alle wichtigen Informationen in die Datei geschrieben und die Zipdatei wird nicht lesbar sein

Soll einer vorhandenen Zipdatei eine weitere Datei hinzugefügt werden, ändert sich nur das Flag in Zeile 2 von ‘w’ nach ‘a’. (w = write, a = append)

Work with ZIP archives – Python Doc

Error Code: 0x800F0A12 – Fehler beim installieren des Service Pack 1 für Windows 7

windows-7-sp1-errorWer beim Versuch das Service Pack 1 für Windows 7 (x64) zu installieren, auf den Error Code: 0x800F0A12 stösst, dürfte am Anfang ziemlich ratlos sein. Den dieser Error Code gehört zu den “Unbekannten Fehlern” und die Windows Hilfe bringt keine nützlichen Hinweise.

Wenn man im Web nach einer möglichen Lösung sucht, findet man die unterschiedlichsten Ursachen:

Beim System, das ich aktualisieren wollte, war das Problem der Punkt 3. Das System hatte 2 Harddisks installiert. Auf der ersten HD war ein Linux mit dem Bootmanager Grub und auf der zweiten HD war Windows 7 x64 installiert. (2 Partitionen – 100 MB System-Partition und eine Partition mit dem “c:\” Laufwerk)

Die Lösung war eigentlich ganz einfach: Den Stecker der Boot-HD (Grub / Linux) entfernen und von der Windows-HD booten. Damit man nicht irgendwelche Partitionen auf aktiv setzen oder die Bootreihenfolge im BIOS ändern muss, gibt es eine praktische Boot CD, mit dem Namen Super Grub Disk. System mit eingelegter CD starten, dann im Bootmenü “Detect any OS” wählen. Bei der Auflistung der gefundenen Betriebsysteme, den Windows Bootmanager auswählen und schon wird Windows gestartet. 🙂

windows-7-sp1-installation-startDanach funktionierte es mit der Installation des Service Pack 1 und das Setup konnte gestartet und durchgeführt werden.

Live!Zilla – Freeware Live Support System

Update: Seit dem 24.10.2011 ist die neue Version 4.x von Live!Zilla erhältlich. Ab Version 4.x ist Live!Zilla nicht mehr kostenlos erhältlich. Begründung des Herstellers
Durch diesen unerwarteten Schritt, wird wohl manch “Premium Options” Besitzer, sich verraten fühlen. Neu sind die Preise pro Operator! Diskussion im Live!Zilla Forum

livezilla - Freeware Live Support System
livezilla - Freeware Live Support System
Live!Zilla ist ein modernes und fast kostenloses “Live Support System”. Von Besuchermonitoring über Echtzeit Support bis offline Nachrichten, bietet die kostenlose Version von Live!Zilla eine grosse Menge an Funktionen. Mit der Unterstützung von Live!Zilla ist es möglich, Webseiten und Online-Shops mit einer Online-Beratung auszustatten und die Besucher auf Schritt und Tritt zu begleiten.
Kostenpflichtige Zusatzmodule
Die kostenlose Grundversion kann durch so genannte “Premium Options” ergänzt werden. Diese werden mit Hilfe einer kostenpflichtigen Lizenz freigeschaltet. Dabei handelt es sich um folgende Erweiterungen:

  • LiveZilla Statistik & Berichte: Erweiterung zur dauerhaften Analyse und statistischen Auswertung von Webseiten-Besuchern und Support-Aktivitäten.
  • LiveZilla Backlinks: Zum Entfernen des Backlink / Copyright-Link aus dem LiveZilla Chat Fenster (Kundenseite) sowie aus allen von LiveZilla versandten E-Mails.
  • LiveZilla GeoTracking: Weitere Informationen über die Herkunft Ihrer Webseiten-Besucher (Land, Region/Bundesland, Stadt, Zeitzone und Internet Service Provider). Die Besucher werden zudem auf einer Weltkarte angezeigt.
  • LiveZilla Startseite: Ändern der Startseite des LiveZilla Webclients sowie hinzufügen von weiteren Seiten. (eigene Webseite, eine Team- oder Intranetseite)

Systemvoraussetzungen

Eine Live!Zilla Installation umfasst einen Anwendungsserver und eine Client Applikation. Der Anwendungsserver ist mit PHP entwickelt worden und braucht einen Webserver mit PHP (Version >=5) Unterstützung (IIS / Apache). Die Daten des Servers werden in eine MySQL Datenbank (Version >= 5) gespeichert. Die Client Applikation läuft nur unter Windows. Unterstützt werden: Windows 2000, XP, 2003 Server, Vista und Windows 7

Live!Zilla Backlink
Live!Zilla Backlink im Chat-Fenster
Mein Fazit
Eigentlich wäre zu Erwarten, dass die kostenlose Version von Live!Zilla im täglichen Gebrauch zu eingeschränkt ist, um wirklich damit arbeiten zu können. Wer damit leben kann, dass im Chat-Fenster ein Backlink auf die Webseite von Live!Zilla vorhanden ist und im Webclient keine Berichte erstellt werden können, wird mit dem Funktionsumfang vollkommen zufrieden sein.

Top:

  • Einfache Installation und Konfiguration
  • intuitive Bedienung des Webclient
  • Funktionsumfang der kostenlosen Version

Flop:

  • Webclient läuft nur auf Windows

externe Links

Live!Zilla Webseite
Live!Zilla Screenshots
Live!Zilla Herunterladen

nslookup: anzeigen einer Liste mit allen IP’s und Aliasse einer Domain

Um eine Liste mit allen IP’s und Aliasse einer Domain zu erhalten, kann mit Hilfe des Tools nslookup ein Zonen-Transfer simuliert werden. Dies setzt voraus, dass der zuständige DNS-Server die Option “Zone-Transfere” eingeschaltet hat.

Aus dem Gesichtspunkt der Sicherheit, sollte diese Option bei einem DNS-Server nicht aktiviert sein. Mehr zu diesem Thema “Why is securing DNS zone transfer necessary?”

Um die Liste zu erstellen, braucht es folgende Schritte:

  1. nslookup im interaktiven Modus starten
  2. den Typ der Abfrage auf Nameserver setzen (ns)
  3. ermitteln des Domain-Servers
  4. Simulieren eines Zonen-Transfers

In den interaktiven Modus wechseln und den zuständige DNS-Server bestimmen:


>nslookup
>set type=ns
>2022.ch
>
Nicht autorisierende Antwort:
2022.ch nameserver = ns15.zoneedit.com
2022.ch nameserver = ns13.zoneedit.com

ns13.zoneedit.com       internet address = 66.223.97.114
ns15.zoneedit.com       internet address = 216.227.210.9

Auf den obigen Zeilen 6 und 7 sind die zuständigen DNS-Server abgebildet. Nun wird einer dieser DNS-Server unter nslookup definiert, als Server für die Anfragen, danach wird die Simulation des Zonen-Transfers gestartet:


>server ns15.zoneedit.com
>ls -d 2022.ch
>
[ns15.zoneedit.com]
 2022.ch.                       SOA    ns13.zoneedit.com soacontact.zoneedit.com
. (2011330253 300 300 300 300)
 2022.ch.                       NS     ns15.zoneedit.com
 2022.ch.                       NS     ns13.zoneedit.com
 2022.ch.                       A      80.238.129.157
 demo                           A      194.88.197.97
 www                            A      80.238.129.157
 2022.ch.                       SOA    ns13.zoneedit.com soacontact.zoneedit.com
. (2011330253 300 300 300 300)

Will man das Resultat direkt in eine Textdatei speichern, kann der Befehl auch folgendermassen eingegeben werden:


>ls -d 2022.ch > DateiZumSpeichern.txt

Der Output kann jetzt in der Datei “DateiZumSpeichern.txt” angeschaut werden.

SQL Update: Datensatz ergänzen mit einem Wert aus einer anderen Tabelle

Aufbau der Tabellen
Aufbau der Tabellen
In einer Datenbank sind 2 Tabellen vorhanden: Account und AccountOld. In der Tabelle Account wird mit einer neuen Struktur gearbeitet, die von der Tabelle AccountOld abweicht. In der alten Tabelle ist die Gruppenzugehörigkeit gespeichert, welche jetzt doch noch übernommen werden soll.

Inhalt der Tabelle Account
Inhalt der Tabelle AccountOld

Um nun den Wert der Gruppenzugehörigkeit aus der Tabelle AccountOld zu übernehmen, haben wir folgende Möglichkeiten für die verschiedenen Datenbanksysteme:

MS SQL-Server
Beim Microsoft SQL-Server können wir dies auf 2 verschiedene Arten erledigen. Mit Hilfe einer Unterabfrage (Sub-Select) oder mit einem INNER-JOIN. Aus meiner Sicht ist jedoch die Variante mit dem INNER-JOIN zu bevorzugen.

Mit einem Sub-Select:

UPDATE Account SET Account.GroupID = (SELECT AccountOld.GroupID 
FROM AccountOLD WHERE Account.Name = AccountOld.Name)

Mit einem INNER JOIN:

UPDATE ACCOUNT SET Account.GroupID = AccountOld.GroupID 
FROM Account INNER JOIN AccountOLD ON Account.Name = AccountOld.Name

SQLite
Bei der SQLite DB funktioniert es nur mit Hilfe eines Sub-Select, da in einem Update-Statement kein FROM oder INNER-JOIN erlaubt ist.

Mit einem Sub-Select:

UPDATE Account SET GroupID = (SELECT AccountOld.GroupID 
FROM AccountOLD WHERE Account.Name = AccountOld.Name)

Resultat des Update-Befehl

Die Tabelle Account nach dem Update-Befehl

It’s time to say goodbye to Microsoft Internet Explorer 6

Hartnäckig hält sich der Microsoft Internet Explorer 6 im Gebrauch und bereitet so vielen Webdesignern Probleme. Damit immer mehr Webdesigner und Webentwickler den Mut finden, diese Version nicht mehr zu berücksichtigen, hat Microsoft eine eigene Webseite aufgeschaltet, welche die weltweite Verbreitung des IE 6 in einer Grafik darstellt.

Zu finden ist die Webseite unter ie6countdown

ie6countdown

Das der mehr als 10-jährige Browser IE 6 immer noch verwendet wird, ist nicht ganz verständlich, den gute kostenlose Alternativen gibt es genügend:

Mehr zum Thema Webrowser bei Wikipedia

Update – 14.12.2011: “The Internet Explorer 6 Countdown” ist bei 8.3% angelangt.
Update – 22.12.2011: Microsoft will den Browser IE6 endgültig “entsorgen” und wird ein automatisches Update durchführen: “IE to Start Automatic Upgrades across Windows XP, Windows Vista, and Windows 7”

Anfälligkeit von Webapplikationen durch SQL-Injection prüfen, mit Hilfe von sqlmap

Heutige Webapplikationen müssen gegen eine grosse Anzahl von Angriffen aus dem Web gesichert werden. Bei Webapplikationen die eine Datenbank im hintergrund haben, sind Steuerparameter eine häufige Schwachstelle. Dabei nutzt der Angreifer die Möglichkeit Parameter, welche die Webapplikation in der URL oder in einem Formular mitführt, zu ändern. Mehr zum Thema SQL-Injection bei Wikipedia.

Sqlmap ist eine Open-Source Applikation zum automatisierten Testen von Webapplikationen, auf Anfälligkeit durch SQL-Injection. Dadurch das sqlmap in Python geschrieben wurde, ist die Applikation Plattformunabhängig und läuft unter Windows sowie Unix/Linux. Vorausgesetzt ist ein installierter Python Interpreter ab Version 2.6.

Anzeigen der vorhandenen Parameter


>sqlmap.py -h

Liefert eine Liste mit den vorhandenen Parameter.

Bestimmen der verwendeten Datenbank (Database Fingerprinting)


>sqlmap.py -u "http://meine.url.info/page.asp?artid=1" -f

Output eines erfolgreichen Tests:


........
[INFO] testing Microsoft SQL Server
[INFO] confirming Microsoft SQL Server
[INFO] the back-end DBMS is Microsoft SQL Server
web server operating system: Windows 2000
web application technology: ASP.NET, ASP, Microsoft IIS 5.0
back-end DBMS: active fingerprint: Microsoft SQL Server 2008
               html error message fingerprint: Microsoft SQL Server

 

Prüfen ob ein bestimmter Parameter anfällig auf SQL-Injection ist


>sqlmap.py -u "http://meine.url.info/page.asp?artid=1" -p "artid"

Output eines erfolgreichen Tests:


......
GET parameter 'artid' is vulnerable.

sqlmap identified the following injection points with a total of 41 HTTP(s) requests:
---
Place: GET
Parameter: artid
    Type: boolean-based blind
    Title: AND boolean-based blind - WHERE or HAVING clause
    Payload: artid=1' AND 9454=9454 AND 'WAlX'='WAlX
---

 

Nützliche Links:
sqlmap Dokumentation
SQL Injection Tutorial: Learn with Example
SQL Injection Cheat Sheet
SQL Injection Cheat Sheet für Oracle, MSSQL, MySQL, PostgreSQL, Ingres, DB2, Informix
Testseite für den Acunetix Web Vulnerability Scanner