Kategorie: Allgemein

  • Modbus IP Weather Library

    Ich habe auf Github eine kleine c++ Bibliothek veröffentlicht die zur Einbindung von Wetterdaten auf Smarthome Geräten genutzt werden kann.

    Der Code holt sich die aktuellen Wetter Informationen von OpenWeatherMap und stellt diese per Modbus IP im Netzwerk zur Verfügung.

    Bei mir Zuhause nutze ich die Bibliothek auf einem Raspberry Pi um die Daten auf einem Loytec Display grafisch darstellen zu können. Die Daten können aber auch als Grundlage für eine Bewässerungssteuerung oder zur Berechnung der Vorlauftemperatur für die Heizungsregelung genutzt werden.

    Loytec L-Vis
    Ressources

    digitaldex

  • Atmel Mega 128 USB Eval Board

    Für jeden der von Zeit zu Zeit ein kleines flexibles Mikrocontroller Board benötigt gibt es hier das passende DIY Eagle Projekt.

    Ein doppelseitiges SMD Board mit Mega128 und FTDI UART -> USB Bridge. Die ISP Schnittstelle liegt auf einem Wannenstecker. Alle I/O Pins sind nach außen geführt und können für eigene Projekte genutzt werden. Die Spannungsversorgung erfolgt über einen 5V Festspannungsregler.

    Eagle Board Top
    Eagle Board Bottom

    Ressources

  • Android Modder v1

    Demnächst wird es eine neue Version des Android Modders von mir geben. Das Tools arbeitet mit dem Android-SDK und erlaubt direkte File Zugriffe über die ADB-Shell. Im Anhang ein kleiner Vorgeschmack:

    Android Modder
    Android Modder
  • Passwort Sniffing mit Ettercap und Wireshark

    Ausgehend von meinem Ettercap Tutorial, habe ich heute wissen wollen, wie einfach oder schwer es ist an Passwörter zu gelangen. Ich muss leider jetzt schon sagen, es ist überhaupt kein Problem. Selbst SSL verschlüsselte Logins sind kein großes Hinderniss. Auch wenn man dort ein wenig auf die Naivität der User angewiesen ist. Das erste Tutorial zum Thema Ettercap sollte man gelesen haben, denn wir werden zum sniffen der Passwörter wieder als MITM agieren damit Wireshark die fremden Pakete aufzeichnen kann.

    Fangen wir also mit Ettercap an. Um SSL gesicherte Passwörter zu finden, ist eine kleine Änderung in der etter.conf nötig. Hierzu mit einem Editor der Wahl die Datei /etc/etter.conf öffnen und folgenden Abschnitt suchen:

    if you use iptables:
    # redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp -dport %port 
    -j REDIRECT -to-port %rport"
    
    # redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp -dport %port 
    -j REDIRECT -to-port %rport"Code-Sprache: PHP (php)

    Dort die Auskommentierung der beiden mit #redir beginnenden Zeilen entfernen (# löschen) und speichern. Ab jetzt nutzt Ettercap ein eigenes fake SSL Zertifikat für die Authentifizierung.

    Ettercap wird nun gestartet und das 'unified sniffing' wie im ersten Tutorial beschrieben ausgewählt. Hosts werden gescannt und als Target 1 und 2 eingerichtet. Alles wie gehabt! Den einzigen Unterschied bildet das Dialogfenster beim starten des ARP Poisonings. Wo wir im ersten Teil noch beide Häkchen frei gelassen haben, setzen wir nun den Haken bei 'Sniff remote connections'.

    Ettercap

    Ist soweit alles eingerichtet und gestartet, müssen wir nur noch abwarten bis sich das Opfer auf einer SSL verschlüsselten Seite einloggt. Egal ob StudiVZ, ebay, gmail usw. wir bekommen das PW. Der nächste Screenshot zeigt einen Loginversuch bei googlemail.

    Login credentials

    Ettercap hat seine Boshaftigkeit also mal wieder unter Beweis gestellt.

    Nun zum kleinen Haken. Wir brauchen hierzu wirklich ein etwas naives Opfer. Firefox will nämlich beim aufrufen der Seite eine Sicherheits-Ausnahme Regel hinzufügen. Eigentlich keine große Sache da einem diese Zertifikatsfehler immer mal wieder begegnen sobald ein Zertifikat von Mozilla noch nicht als vertrauenswürdig eingestuft wurde. Stutzig dürfte den erfahrenen User diese Meldung trotzdem machen.

    Post Method Passwörter

    Als nächstes möchte ich noch zeigen wie man an die nicht SSL verschlüsselte Passwörter kommt, die von den meisten Foren oder Communityportalen genutzt werden. Diese werden mit Ettercap nämlich nicht erfasst. Wir lassen Ettercap also im Hintergrund weiter laufen damit jeglicher Traffic weiterhin über unseren PC geleitet wird und starten Wireshark.

    Die Wireshark Oberfläche ist eigentlich selbst erklärend. Über den Button oben links wählen wir das Interface mit dem wir lauschen wollen. In den meisten Fällen ist dies eth0. Sobald das Interface ausgewählt wurde, beginnt Wireshark auch schon mit der Aufzeichnung. Hier sollte man sich von der Fülle an Paketen die durchs Bild rauschen nicht abschrecken lassen. Wir Filtern diese im nächsten Schritt auf die für uns interessanten. Doch wonach sollen wir filtern? Welche Pakete sind für uns überhaupt interessant? Da wir es auf Login Daten im Browser abgesehen haben, wollen wir zunächst nur http Traffic zu sehen bekommen. Hierfür genügt es in der Filterleiste http einzugeben und schon haben wir 90% der unnötigen Datenpakete ausgeblendet. Um jetzt an die wirklich interessanten Pakete zu kommen müssen wir unseren Filter noch ein wenig verfeinern. Gibt jemand auf einer Webseite seine Login Daten an, werden diese in der Regel als POST Request an den Server geschickt. Unser endgültiger Filter sieht also wie folgt aus:

    Wireshark Filter

    Nun bekommen wir wirklich nur noch Pakete zu sehen, die Daten enthalten die über ein POST Formular auf einer Webseite übertragen wurden. Klickt man auf ein solches Paket, gibt es seinen Inhalt für uns Preis.

    Login credentials

    Der Witz an der Sache ist, dass dieses Vorgehen auch über WLAN möglich ist. Ich kann also nur jedem dringend raten sein eigenes Netz gescheit gegen eindringen von Außen zu sichern. Andernfalls hat man keine Chance dem Passwortklau zu entgehen. In jedem öffentlichen Netz sollte man tunlichst vermeiden Passwörter einzugeben oder sich auf Webseiten einzuloggen. Die einzige Möglichkeit sich sicher in diesen Netzen zu bewegen dürfte der gebraucht von VPN Lösungen sein. Ich jedenfalls werde meinen Datenverkehr außerhalb meines Lans ab jetzt tunneln.

  • Ettercap Tutorial

    Da ich mich derzeit ein wenig mit Netzwerksicherheit beschäftige, habe ich mich dazu entschloßen hier einige Tutorials rund ums Thema zu veröffentlichen. Anfangen möchte ich mit einem Tool (Ettercap), dass es ermöglicht ohne großen Aufwand ‚Man in the Middle‘ Attacken durchzuführen. Eine MITM Attacke setzt vorraus, dass man bereits Zugang zum lokalen Netzwerk hat. Der eigene Rechner ‚verseucht‘ dabei die ARP Tabellen des Opfers so, dass dessen gesamter Datenverkehr erst über den PC des Angreifers geleitet wird, bevor er ihn weiter zum Router leitet. Der Angreifer steht also wortwörtlich zwischen den beiden Targets und kann so jedes gesendete und empfangene Paket protokollieren oder verändern. Das Opfer bekommt davon in der Regel nichts mit.

    ARP Poisoning

    Das Tool das hierfür zum Einsatz kommt nennt sich Ettercap. Es ist für jede gängige Plattform zu haben. Ich halte mich hier aber an die Linux Version. Unter Windows kann die Bedienung also etwas variieren. Als Target dient in meinem Fall eine virtuelle Maschine auf meinem Notebook. Ich will dringend davon abraten Ettercap in einem fremden Netzwerk einzusetzen. Dieses Tutorial und mein Interesse an Netzwerksicherheit sind rein theoretischer Natur und sollen niemanden dazu anstiften illegale Dinge zu tun. Genug der Worte.

    Gestartet wird das Programm über die Konsole mit dem Befehl:

    ettercap -G

    Nach wenigen Augenblicken sollte euch die bisher noch leere GUI anstrahlen. Als nächstes wählen wir aus dem Menü 'Sniff' die Option 'Unified Sniffing' und wählen in dem nun aufploppendem Dialogfenster die Netzwerkschnittstelle. In den meisten Fällen eth0.

    Ettercap GUI

    Nun schauen wir uns ein wenig im Netzwerk um. Dafür clicken wir auf 'Hosts' und 'Scan for Hosts'. Ettercap sollte nun das Netzwerk scannen und eine Liste aller vorhanden Hosts im Netz erstellen. Diese Liste lässt sich über 'Hosts' -> 'Hosts List' anzeigen.

    Scan results

    Das Bild zeigt das Ergebniss des Scans in meinem Netz. Ganz oben befindet sich der Router mit der IP 192.168.2.1. Der Host mit der IP 192.168.2.108 ist die VM und damit mein ‚Opfer‘. Unter der Liste befinden sich 3 Schaltflächen. Mit diesen können wir nun den Router als Target 1 festlegen und die VM als Target 2. Dies sind die Clients dessen Datenverkehr ich belauschen möchte. Unter 'Targets' -> 'Current Targets' können diese nochmal separat angezeigt werden.

    Targets

    Die Vorbereitungen sind damit eigentlich schon abgeschloßen. Als nächstes wollen wir die Routing bzw. ARP Tabellen beider Teilnehmer verseuchen. Dafür wählen wir aus dem Menü unter 'MITM' das 'ARP Poisoning' aus. Das Dialogfenster lassen wir wie es ist und bestätigen mit OK.

    ARP Poisoning

    Nun müssen wir nur noch unter 'Start' mit dem sniffen beginnen. Ob das Programm wirklich tut was es soll sehen wir mit einem click auf 'View' -> 'Statistics' wo jetzt eigentlich die Anzahl der gesnifften Pakete hochlaufen sollte.

    Statistics

    Doch was ist nun passiert? Ettercap hat die ARP Tabellen so manipuliert, dass nicht mehr die MAC Adresse des eigentlichen Ziels in ihr zu finden ist, sondern die des Ettercap Rechners. Hier zwei Auszüge aus der ARP Tabelle des Windows Rechners. Der erste vor und der zweite nach dem Angriff.

    ARP vorher
    ARP danach

    Wie man sieht hat sich der Eintrag verändert. Anstelle der MAC Adresse des Routers, finden wir nun die MAC des Angreifers als Physikalische Adresse in der Routing Tabelle. Der Windows Rechner denkt also weiterhin er würde den Router adressieren, sendet aber in Wirklichkeit an den Angreifer. Dieser leitet den Traffic danach zum Router weiter, damit der Schwindel nicht auffällt.

    Es ist uns also gelungen erfolgreich als 'Man in the Middle' zwischen den beiden Opfern zu stehen und deren Datenverkehr aufzuzeichnen und zu modifizieren. Siehe hierfür:

    'View' -> 'Connections'.

    DNS-Spoofing

    Das ist aber noch nicht alles. Ettercap bietet eine Reihe von Plugins. Unter anderem eines fürs sogenannte DNS Spoofing. Damit ist es uns möglich, die DNS Einträge so zu manipulieren, dass der Targetrechner beim surfen nicht mehr die Seiten zu sehen bekommt, die er eigentlich glaubt zu sehen. Stattdessen bestimmen wir, auf welche IP ein bestimmter DNS Eintrag verweist.

    Die einzige Vorbereitung die wir hierzu treffen müssen ist das anpassen einer config Datei. Zu finden unter /usr/share/ettercap/etter.dns.  Die Datei ist eigentlich selbsterklärend und enthält bereits einen modifizierten DNS Eintrag für die Microsoft Seite. Für eigene Inhalte muss nur die umzuleitende Domain als A-Record nach folgendem Schema eingetragen werden.

    DOMAIN        A        IP auf die umgeleitet wirdCode-Sprache: PHP (php)

    Ist die Datei angepasst, kehren wir zum laufenden Ettercap Fenster zurück. Unter ‚Plugins‘ -> ‚Manage Plugins‘ finden wir die installierten Plugins. Das Plugin welches uns hier interessiert nennt sich dns_spoof. Nach einem Doppelclick erscheint ein kleines Sternchen neben dem Plugin welches uns signalisiert, dass der Vorgang gestartet wurde.

    Versucht man nun mit dem Opfer PC zB. die Microsoft Seite zu erreichen, wird man automatisch auf die Seite von linux.org umgeleitet. Ich denke die Wirkung ist gemessen am äußerst geringen Aufwand enorm. Wenn man sich also in öffentlichen Netzen bewegt, sollte man gut überlegen welche Seiten man besucht und vor allem welche Daten man dort preisgeben möchte. Ich hoffe Ihr hattet Spaß beim lesen.