Sudoku-Löser

26. Januar 2010

Vielleicht findet es ja jemand interessant oder braucht Denkanstöße beim Programmieren ähnlicher Projekte. Momentan liest das Programm, das Sudoku noch nicht aus einer Datei aus, das kommt aber noch.

Programmiert ist der Löser in C und er probiert die Lösung über Backtracking durch.

Ist auf jeden Fall ein interessantes Projekt, falls man mal was zum auffrischen seiner Programmierkenntnisse sucht ;)

Sudoku-Löser


Download:

http://www.it-blogger.net/files/sudoku/sudoku.h

http://www.it-blogger.net/files/sudoku/sudoku.c

Dimi Software , , , , ,

Neulich im Media Markt

9. Januar 2010

Dass man im Media Markt oftmals nicht die kompetente Beratung bekommt die man sich als Kunde eigentlich wünscht, ist weitläufig bekannt. Nun, mir jedenfalls.

Trotzdem war ich vor einigen Tagen beim Media Markt, um kurzfristig noch eine Maus, ein Geschenk, zu besorgen. Ich hatte eigentlich nicht viele Anforderungen:

  • Es sollte eine Laptop-Maus werden und sie sollte einen von diesen winzigen Empfängern haben, die man in der Laptoptasche am USB-Port lassen kann.
  • Es sollte eine Laser-Maus werden, da optische Mäuse oftmals Probleme mit z.B.  rauen Holztischen haben.

Eigentlich keine ungewöhnlichen Anforderungen. Entsprechend schnell hatte ich auch ein Modell entdeckt, was diesen Mini-Empfänger hat: Logitech M305.
Wenn das gute Stück jetzt noch ‘nen Laser hat, dann wäre die Maus perfekt. Da auf der Verpackung leider keinerlei Hinweis ob Laser oder Optisch zu finden war, musste ich einen Verkäufer fragen:

Ich: Ist das hier eine Laser-Maus?
Verkäufer 1: Ähm, ohh…. Keine Ahnung….. Ja!

Naja. Die Unsicherheit war ihm sofort anzumerken, also wollte ich auf Nummer sicher gehen und habe noch einen zweiten Verkäufer gefragt:

Ich: Ist das hier eine Laser-Maus?
Verkäufer 2: Ja!
Ich: Sicher?
Verkäufer 2: Ja, sicher!
Ich: Vielen Dank! Tschüss.

Nun, jetzt ratet mal ob die Maus optisch oder mit Laser war?
Richtig. Optisch. Sonst würde die Geschichte hier keinen Sinn machen, gell.

Schlimm genug, dass es teilweise erhebliche Mändel in der fachlichen Kompetenz der Beratung gibt, aber schliche Unwissenheit mit einer eindeutigen falschen Aussage zu überspielen, darf nicht passieren.

Es ist ganz klar, dass man nicht alle technischen Details kennen kann. Gerade deswegen hätte ein guter Kundenservice es verlangt, dass man als Verkäufer zugibt, dass man keine Ahnung hat. Zusätzlich wäre es wünschenswert gewesen, falls es die Zeit und die technische Infrastruktur es erlauben, kurz in der Produktdatenbank oder bei Google kurz die gewünschen Informationen nachschlägt.

Nächstes mal gibt’s nen Geschenkgutschein und das Produkt wird online bestellt…

Dimi Kommentar , , ,

0180 – Telefonbuch

9. Dezember 2009

Jeder kennt das: Aus irgendeinem Grund muss man seien ISP, seine Bank oder eine andere Organisation anrufen. Oftmals ist es inzwischen so, dass die Firmen auf den Webseiten nur noch 0180x-Nummern anbieten. Das bedeutet der Anruf wird minutengenau abgerechnet -  auch mit Festnetz-Flatrate. Wenn man dann mal 10 Minuten in der Warteschlange hängt, dann kann es schon auch mal unnötig teuer werden – vor allem ist das ärgerlich, wenn das eigentlich Gespräch dann nur 1 Minute dauert und einem nicht weitergeholfen werden konnte.

Deswegen will ich in diesem Artikel kurz einen Dienst vorstelle, der eine Art 0180x-Telefonbuch pflegt:

http://www.tk-anbieter.de/0180/suche.html

Hier gibt man einfach den Firmennamen oder die 0180x-Nummer ein und die Datenbank liefert eine Alternativnummer zurück.

Da eigentlich jeder inzwischen eine Festnetz-Flat hat, kann hiermit wirklich bares Geld gespart werden. :)

Dimi Tipps , , , , ,

Kommentar: Haefft-Datenskandal

6. Dezember 2009

Mit Sicherheit hat schon jeder mitbekommen, was beim sozialen Netzwerk von Haefft passiert ist. Deswegen nur kurz zusammengefasst:

Der  CCC hat im Sozialen Netzwerk von Haefft schwerwiegende Sicherheitslücken gefunden, die kaum zu übertreffen sind. Die Daten aller dort angemeldeten Schüler waren für jeden, der die Sicherheitslücke entdeckt hat, frei zugänglich.

Konkret hat es sich um folgende Schwachstellen gehandelt:

  • Passwörter wurden im Klartext in der Datenbank gespeichert. Nicht als Hash und somit natürlich auch ohne Salt.
  • Keine verschlüsselte Anmeldung. D.h. Username und Passwort wurden unverschlüsselt über das Internet übertragen
  • Eingabedaten wurden ungefiltert an die Datenbank übertragen.

Doch das waren noch nicht genug Anfängerfehler. Jetzt kommt, wie ich finde, der eigentliche Hammer:

  • Passwörter wurden mit dem ILIKE-Operator überprüft.

Zudem wurden sie [die Passwörter] mit dem ILIKE-Operator nur auf Ähnlichkeit verglichen, so daß sich die Paßwort-Abfrage mit einfachsten Mitteln umgehen ließ.

CCC-Blogpost

Wie die Überprüfung genau stattgefunden hat, weiß ich natürlich nicht. Ich kenne deren Quelltext nicht. Aber man möge sich nur mal vorstellen, was die Programmierer sich bei der Passwort-Abfrage gedacht haben:

“Wenn der Nutzer ein Passwort eingibt, was so oder so ähnlich aussieht, wie das was wir unverschlüsselt in der Datenbank gespeichert haben, dann ist er erfolgreich authentifiziert.”

Ja, wie kommt man denn darauf? Authentifizierung mit Hilfe von Wahrscheinlichkeiten?

“Authentifiziere dich mit dem User aus der unverschlüsselten Datenbank, der dem eingegebenen Datensatz am ehesten entspricht.” Oder was?

Ernsthaft, wie kommt man auf die Idee ein Passwort mit einem ILIKE zu überprüfen? Gibt es da evtl. sinnvolle Einsatzzwecke, die ich nicht kenne? Ich bezweifle es.

Der CCC frägt sich, angesichts der immer wiederkehrenden Datenskandale, zurecht inwiefern und ob man überhaupt sozialen Netzwerken sein Vertrauen schenken darf. Haefft verliert jetzt hoffentlich all seine Nutzer.

So etwas darf definitiv nicht passieren.

Dimi Kommentar, News , , , , , ,

Verteile Brute-Force Attacken auf Wordpress-Blogs

30. November 2009

Ein täglicher auf den ISC-Blog von SANS lohnt sich definitiv. Heute wurde auf dem ISC-Blog ein interessantes Skript, welches ein User auf einem Server gefunden hat, vorgestellt. Dieses Skript ermöglicht es über PHP eine verteile Bruteforce-Attake auf Wordpress-Blogs durchzuführen.

Das Skript bedient sich dazu der Möglichkeit unter PHP cURL zu nutzen.

cURL:

A free and easy-to-use client-side URL transfer library, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE, LDAP and LDAPS. libcurl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling and more.

Wikipedia

wp-bruteforce1

Es wurde nicht das komplette Skript veröffentlicht, sondern nur einige Code-Snippets. Wer das Skript haben möchte, sollte schnell anfangen zu programmieren ;)

Im ersten veröffentlichten Screenshot erkennt man eine Funktion, die 3 verschiedene Parameter erwartet. $ch ist dabei der Handle, der durch curl_init() erstellt wurde. Das ist im Ausschnitt nicht zu sehen.  An diesen Handle werden nun alle erforderlichen Einstellungen angehängt und am Ende mittels curl_exec($ch) ausgeführt.

Parameter 2 und 3 ergeben sich logischerweise aus ihrem Namen.

Enthält die Antwort des Servers, also die zurückgelieferte Webseite, den Ausdruck “Log Out” war die Brute-Force Attacke erfolgreich. Das wird mittels

[...]

eregi(“Log Out”,$result)

[...]

überprüft.

Interessanter als die Nutzung von cURL in PHP ist die Möglichkeit, Seiten, die gecrackt werden sollen, in einer zentralen Instanz zu verwalten um verteiltes Cracken zu ermöglichen.

wp-bruteforce2

Zunächst holt sich das Skript aus einer zentralen MySQL-Datenbank 200 URLs, die gecrackt werden sollen und markiert diese in der Datenbank mit seiner persönlichen “colo_id”. Bricht das Skript nun aus irgendeinem Grund ab, holt sich das Skript die vorher markieren Einträge wieder aus der Datenbank und kann an der Stelle weitermachen, an der es abgebrochen wurde. Genau diesen Schritt stehen wir hier in diesem Screenshot:

Mittels “select url, site_type from site where colo_id=’$colo_id’” werden die Einträge aus der Datenbank geholt, an denen dieser “colo”, also dieses Skript, vorher gearbeitet hat.

Interessant ist auch die Möglichkeit, Passwortlisten zentral in einer Datenbank zu speichern und so allen Skripts zur Verfügung zu stellen.

Auf jeden Fall eine interessante und erwähnenswerte Idee, wie ich finde.

Dimi Security , , , , , , ,

HUS Struktogrammer

28. November 2009

Niemand, egal ob Student, Azubi oder Schüler, kommt inzwischen ohne das Zeichnen eines Struktogramm durch seine Ausbildung.

Eigentlich kein Wunder, denn Struktogramme sind ne tolle Sache, die das Verstehen eines Programms wirklich erleichtern.

Folgende Software hat es mir inzwischen besonders angetan: Der HUS Struktogrammer

HUS Struktogrammer

Pro

  • super Portable: nur eine exe, mehr nicht.
  • Copy und Paste von Programmteilen funktioniert
  • er tut (nur) das, was er soll. (Eine Eigenschaft die man bei vielen Programmen inzwischen leider vermisst)
  • einfach zu bedienen
  • Export zum Clipboard
  • Funktioniert unter Linux mit Wine

Contra

  • Export als jpg. Will man ein Struktogramm exportieren, muss man es halt über den Export ins Clipboard in ne jpg abspeichern. Das geht, ist aber leider umständlich.

Ein Blick lohnt sich definitiv!

Downloadmöglichkeiten gibt es bei Google zu Hauf. Eine davon:

http://www.phme.de/downloads/programme/09,hus-struktogrammer

Dimi Software , , , , , , , , , ,

Google Chrome OS

19. November 2009

Es ist da, das Betriebssystem von Google. Chromium OS.

Ich will keinen Seitenlangen Blogpost schreiben. Das werden, spätestens morgen, viele Blogger und Newsseiten erledigen ;) Hier nur einige wichtige Stichworte:

  • Chrome OS bootet in sagenhaften 7 Sekunden (Auf welchem System wurde nicht gesagt)
  • Der User kann keine Programme installieren
  • Chrome OS hat eine nicht-beschreibbare root-Partition
  • für User-Daten wird eine verschlüsselte Partition angelegt
  • User-Einstellungen werden in die Cloud synchronisiert: Wlan-Einstellungen, Systemeinstellungen, Hintergrund, Lesezeichen,… Hat zur Folge: Man loggt sich an einer anderen Chrome OS-Maschine an und die Einstellungen passen. Die lokale Speicherung der Daten wird nur also nur als Cache genutzt.
  • vollständig Open Source
  • … uvm

Was Chrome OS genau ist, kann man sich im Webcast anschauen:

http://investor.shareholder.com/googpr/eventdetail.cfm?eventid=75092

Video zum Chrome OS Security Model:

http://www.youtube.com/v/A9WVmNfgjtQ&hl=en_US&fs=1&

Allgemeine Informationen zum Chrome OS:

http://www.youtube.com/v/A9WVmNfgjtQ&hl=en_US&fs=1&

Dimi News , , , , , ,

NetworkMiner: Netzwerk Forensik Tool

7. November 2009

Im letzten Blogartikel ging es um Wireshark – einen Netzwerksniffer. Heute will ich einen weiteren Netzwerksniffer vorstellen: NetworkMiner. Dieser Sniffer bezeichnet sich selbst als NFAT (Network Forensic Analysis Tool). Anders als Wireshark legt NetworkMiner nicht den Schwerpunkt auf die Darstellung der einzelnen Pakete, sondern darauf die Kommunikation als Gesamtes darzustellen.

Voraussetzungen für das erfolgreiche Ausführen des portablen Programms ist ein installiertes .net-Framework. Um Datenverkehr live mitzuschneiden benötigt man noch Winpcap, alternativ kann das Programm auch über RAW-Sockets den Datenverkehr mitschneiden.

NetworkMinerNetworkMiner selbst ist in diverse Reiter unterteilt. Im ersten Reiter werden die bei der Netzwerkkommunikation involvierten Partner angezeigt. Besonders interessant dabei: Die bei der Kommunikation verwendeten Ports werden hier pro System als “open ports” aufgelistet. Außerdem werden auch, wie auf dem Bild schon ersichtlich, die verschiedenen Hostnamen je IP angegeben. Zusätzlich versucht NetworkMiner die Betriebssysteme der verschiedenen Hosts zu identifizieren. Je nach Betriebssystem wird ein anderes Symbol für den Host verwendet. (2)

Im dritten Reiter wird die Sache wirklich interessant. Hier werden alle Dateien angezeigt, die über die diversen Anwendungsprotokolle auf den PC geladen wurden. Im folgenden Beispiel sieht man, dass über HTTP (HTTPGetNormal) diverse Dateien, z.B. die index.html,NetworkMiner logo.gif oder ein rss-Feed-Update (rss2.xml) heruntergeladen wurden. Ebenso erkennt man, dass über FTP die mirc60.exe heruntergeladen wurde. Zudem werden die heruntergeladenen öffentlichen Zertifikate angezeigt.
Besonders hervorzugeben: Über einen Rechtsklick auf einen Eintrag, kann diese Datei angezeigt oder geöffnet werden. D.h. im Hintergrund stellt NetworkMiner die Dateien aus dem genifften Verkehr wieder her und speichert diese auf der Festplatte ab. So ist es besonders einfach möglich aus Mitschnitten Dateien und ganze Webseiten etc, zu rekonstruieren.

NetworkMinerUnter dem Reiter “Images” können, das lässt sich schon vermuten, die mitgeschnittenen Bilder angezeigt werden. An dieser Stelle möchte ich nochmal an meinen letzten Blog-Artikel verweisen. Darin ging unter anderem auch darum, wie man “geschützte” Bilder von *VZ herunterlädt. Im NetzworkMiner lässt sich dieser Schritt natürlich schnell und problemlos erledigen, da Thumbnail sowie Vollbild in diesem Reiter angezeigt werden.

Der Reiter “Credentials” findet man z.B. die Login-Daten von unverschlüsselten FTP-Verbindungen oder PHP-Session-IDs. Eben alles was so zu Authentifizierung gehört.

Fazit: Ich bin wirklich begeistert von diesem Tool. Vor allem, dass die Dateien aus dem Mitschnitt des Netzwerkverkehr  wieder zusammengesetzt werden finde ich besonders super.  Ein Blick und einausführlicher Test lohnen, sich.

Download und weiter Informationen:

http://sourceforge.net/projects/networkminer/

Dimi Allgemein , , , , , ,

Wireshark: gesniffte HTTP-Daten exportieren

29. Oktober 2009

In Wireshark gibt es die Möglichkeit die mitgeschnittenen Daten aus dem Mitschnitt wieder zusammenzusetzen.  Das bedeutet man lauscht auf einer Leitung mit, speichert den Mitschnitt und kann anschließend einfach die besuchten Webseiten rekonstuieren.

Wie der Datenexport funktioniert will ich an 2 Beispielen demonstrieren.

1) Youtube-Video herunterladen

Mit dem eben erwähnten Feature in Wireshark ist es relativ einfach ein Video von Youtube herunterzuladen. Dazu starten wir zunächst Wireshark und anschließend lassen wir Wireshark alles mitschneiden, was in den nächsten Sekunden im Netzwerk passiert. Wenn der Mitschnitt läuft sollten zunächst nicht viele Pakete gelistet werden. Evtl. mal ein ARP-Paket oder andere Broadcasts. Diese können wir aber irgnorieren.

Youtube-Videos herunterladen mit Wireshark

Youtube-Videos herunterladen mit Wireshark

Anschließend starten wir die “HTTP objekt list”. Diese ist unter “File => Export => Objekts => HTTP” zu finden. In diesem Fenster werden wir gleich alle über HTTP angefragten Objekte wiederfinden. Nun besuchen wir Youtube und schauen uns das Video an, welches wir herunterladen wollen.

Im HTTP objekt list-Fenster erscheint nun, nachdem das Video vollständig geladen wurde, neben einigen Bildern und HTML-Dateien, ein Eintrag bei dem in der Spalte “Content Type” “video/x-flv” steht. Dieser Eintrag entspricht dem Youtube-Video.

Indem wir den Eintrag markieren und mittels “Save As” abspeichern können wir das eben angeschaute Video exportieren und haben es somit als flv-Datei auf dem PC.

Dieses Verfahren funktioniert natürlich auf allen Streaming-Seiten. Evtl. variiert der Mime-Type (video/x-flv), der Vorgang bleibt aber der Selbe.

2) geschützte Bilder herunterladen

Manche kennen vielleicht das Problem: Da hat jemand, natürlich ohne zu fragen, einige Bilder vom letzten Freitag Abend bei *VZ (MeinVZ, StudiVZ, SchülerVZ,…) eingestellt. Nicht nur, dass man nicht gefragt wurde – nein, *VZ hat einen Mechanismus eingebaut, dass man diese Bilder nicht einfach per “Rechtsklick” -> “Speichern unter” herunterladen kann. Man kann also nichtmal die Bilder, auf denen man im Internet verewigt wurde, auf den eigene PC herunterladen.

Mit Wireshark aus StudiVZ Bilder herunterladen

Mit Wireshark aus StudiVZ Bilder herunterladen

Auch dieses Problem lässt sich mit der oben schon vorgeführten Technik umgehen. Dazu startet man wieder den Mitschnitt und das “HTTP objekt list”-Fenster und klickt anschließend das gewünschte Bild im *VZ an. Die große Version des Bilds wird nun geladen und unser “HTTP objekt list”-Fenster füllt sich.

Danach kann man im “HTTP objekt list”-Fenster einfach nach einem Eintrag mit Content Type “image/jpeg” und entsprechender Größe schauen. Abspeichern. Fertig.

Dimi Security , , , , , ,

Prism für Firefox: AddOns installieren

10. August 2009

Die Nutzer des Prism-Addons werden es wahrscheinlich schon gemerkt haben: Nicht alle Addons, die im normalen Firefox geladen sind, werden auch in Prism geladen. Besonders störend ist das z.B. bei Adblock Plus. Seiten die normalerweise werbefrei erscheinen, sind auf einmal vollgestopft mit Werbung, die das Lesen der Seiten unerträglich macht.

Installation der AddOns

Die Installation von AddOns unter Prism ist leider etwas umständlich. Den Vorgang will ich am Beispiel von AdBlock darstellen:

Als erstes müssen laden wir die aktuelle xpi von AdBlock herunter. Anschließend erstellt man eine neue Prism-Verknüpfung der gewählten Webseite auf dem Desktop. (Extras => Convert Website to Application) Hierbei ist besonders wichtig den Haken bei “Show status messages and progess” zu setzen.

Danach wird die Prism Verknüpfung gestartet. Unten Rechts befindet sich nun das Prism Addons MenuPrism-Menu. Darin wählen wir “Tools => AddOns”. Es erscheint der bekannte AddOn Manager von Firefox. Allerdings ist er in diesem Fall komplett leer, auch wenn im FF AddOns hinzugefügt sind. Jede Prism-Instanz hat ihren eigenen AddOn-Manager, d.h. man kann jeder Prism-Verknüpfung unterschiedliche AddOns hinzufügen. Bug or Feature? Keine Ahnung.

In diesen Manager kann nun über Drag&Drop das AddOn hineingezogen werden. Es installiert sich wie gewohnt. Prism muss danach neugestartet werden.

Kleiner Hinweis zu AdBlock Plus: Es muss, nachdem die Prism-Instanz neugestartet wurde, manuell über das AdBlock Plus Menu ein Filterlisten-Abonnement hinzugefügt werden.

Um die untere Statusleiste wieder zu entfernen muss man wieder “Convert Website to Application” auswählen und diesmal den Haken bei “Show status messages and progress” entfernen. Der Name der neuen und alten Prism-Instanz muss unbedingt identisch sein, sonst legt Prism eine neue Instanz an, statt die Einstellungen der alten Instanz zu aktualisieren.

Inkompatible Addons kompatibel machen

Nicht alle AddOns lassen sich unter Prism installieren. Manche AddOns verweigern beim installieren mit folgender Meldung den Dienst:

Prism falsche Version

Leider ist es nicht so, dass alle AddOns aus dem normalen Firefox auch unter Prism laufen. Einige wurden schon angepasst, beispielsweise AdBlock. Ob euer AddOn funktioniert oder nicht, kommt auf einen Versuch an. Um die obere Meldung zu umgehen, müssen folgende Schritte durchgeführt werden:

  1. Das AddOn muss heruntergeladen werden. Ihr habt nun eine XPI-Datei.
  2. Diese wird mit 7zip geöffnet. 7zip kann die nötigen Dateien live editieren, ohne das Archiv entpacken zu müssen.
  3. Bearbeitet die Datei installer.rdf
  4. Ihr findet folgende Einträge:

[...]

<!– FireFox –>
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>3.0.9</em:minVersion>
<em:maxVersion>3.6a1pre</em:maxVersion>
</Description>
</em:targetApplication>

[...]

<!– Prism –>
<em:targetApplication>
<Description>
<em:id>prism@developer.mozilla.org</em:id>
<em:minVersion>1.0b1</em:minVersion>
<em:maxVersion>1.0.*</em:maxVersion>
</Description>
</em:targetApplication>

[...]

Über diese Einträge können die Anwendungen überprüfen, ob das gewählte AddOn kompatibel ist. Wenn der Prism-Eintrag nicht vorhanden ist, kann er ergänzt werden. Evtl. muss natürlich die Version (minVersion bzw. maxVersion) angepasst werden. Die Wahrscheinlichkeit, dass das AddOn unter Prism funktioniert ist aber leider gering. Mozilla dazu:

Since Prism is a totally separate host application, there are some Prism-specific issues that you need to handle when creating your extension. Most notably, the Prism application ID and the differences in the user interface (UI). Extensions typically overlay the host application’s UI to add toolbar buttons, menus and other features. One of Prism’s features is an extreme lack of UI elements, which means that trying to use the same overlays in Firefox and Prism is really not possible.

Ist der Eintrag schon vorhanden und die Meldung kommt trotzdem, muss hier nur noch die Version angepasst werden. Dann stehen die Chancen auch ziemlich gut, dass im gewählten AddOn nur die aktuelle Prism Version noch nicht eingetragen wurde und das AddOn trotzdem funktioniert.

Dimi Allgemein , , , , , , ,