Serendipity ist einfach klasse. Ich hatte das Update von 1.3 auf 1.3.1 letztens versaeumt und habe das eben nachgeholt. Archiv ziehen, entpacken und ueber die alte Version kopieren, fertig. *So* muss ein Update laufen. Der groesste zeitliche Aufwand entfaellt auf den Download.
Monat: September 2008
Erinnerung: Kein „show tech-support“ auf Cisco-Komponenten (hier jetzt mal Catalyst 2950 oder z.B. 2960) absetzen, wenn es nicht gewollt ist und man irgendwie in Hektik ist. Im Gegensatz zu einem „get tech-support“ fuer Netscreen kann die Ausgabe die anschliessend erfolgt bei Cisco irgendwie nicht abgebrochen werden. Und bei 2000 oder mehr Zeilen kann es schon ein Moment dauern bis man sein Prompt wieder hat.
Mit Hilfe von snoop koennen auf Netscreen-Firewalls Verbindungen debuggt werden.
fw3-rz1(M)-> set console dbuf
fw3-rz1(M)-> clear dbuf
fw3-rz1(M)-> snoop filter ip dst-ip 192.168.196.90
fw3-rz1(M)-> snoop
Verbindungstest
fw3-rz1(M)-> snoop off
fw3-rz1(M)-> get dbuf stream
Eine moegliche Ausgabe von „get dbuf stream“ koennte dann wie folgt aussehen.
13951284.0: ethernet1(i) len=62:0008a40e0b0a->0010dbff8000/0800
10.1.8.163 -> 192.168.196.90/6
vhl=45, tos=00, id=38675, frag=4000, ttl=127 tlen=48
tcp:ports 46274->443, seq=3232589299, ack=0, flag=7002/SYN13951284.0: ethernet2(o) len=62:0010dbff8050->00000c07acbe/0800
10.1.8.163 -> 192.168.196.90/6
vhl=45, tos=00, id=38675, frag=4000, ttl=126 tlen=48
tcp:ports 46274->443, seq=3232589299, ack=0, flag=7002/SYN
Wie man hier schoen sehen kann, werden zwar SYN-Packete an ein Ziel geschickt, aber nicht mit einem erforderlichen SYN/ACK beantwortet.
Derzeit erstelle ich eine Uebersicht von Tools, Anwendungen und Addons, die ich eigentlich zwischen „gelegentlich“ und „staendig“ nutze. Mitgrund ist, dass ich nach einer Neuinstallation *immer* ewig lang brauche bis wieder alles ist wie es sein soll. Wen es interessiert… Hier meine Firefox-Addons:
Addblock Filterset.G Updater
Addblock Plus
All-in-One Gestures
Exif Viewer
FoxyProxy
Live HTTP headers
NoScript
Objection
Selenium IDE
Tamper Data
User Agent Switcher
Web Developer
Wo ich gerade von Brower und Manipulation von Daten spreche… Vor einiger Zeit wollte man, um unter anderem den Bekanntheitsgrad und die Besuchzahlen zu steigern, auf einer Firemenhomepage ein Spiel anbieten, bei dem man auch etwas gewinnen koennen sollte, wenn man es mit seinen erspielten Punkte in die Top 3 schafft. Der Fachbereich und die Entwickler waren von der entwickelten Loesung total begeistet und wollten das Spiel freigeben. Der Vollstaendigkeit halber hat man sich noch mal an den Datenschutz- und Sicherheitsbeauftragen gewandt, ob alles soweit in Ordnung sei. Dieser sprach mich dann an und frage ob ich mir das Spiel nicht mal anschauen koennte. Das habe ich natuerlich gerne gemacht.
Das Spiel war als Flash realisiert. Da das Spiel ja auf den lokalen Rechner geladen wird lag nah, dass die erreichten Punkte irgendwie uebertragen werden mussten. Ich habe zwei, drei Testspiele gemacht, ein wenig Traffic gesammelt und war anschliessend in der Lage durch Uebergabe eines einzelnen Links mich mit 999.999 Punkten an die Spitze zu setzen. Ich habe darauhin den Fachbereich informiert. Die Reaktion auf meinen einleitenden Satz „Ich habe 999.999 Punkte“ war, dass ich da aber lange gespielt haben muss. 😉
Ich habe dann erklaert was das Problem ist und dass das Spiel kaum als Grundlage fuer moegliche Gewinne dienen kann, da es mit minimalem Aufwand auszutricksen ist. Die Freude war natuerlich maessig, man hat dann aber davon abgesehen dass Spiel in Verbindung mit einem moeglichen Gewinn zu nutzen. Es kann nun zwar gespielt werden, ein Blick in die Bestenliste zeigt heute aber, dass sich da tatsaechlich einige User entsprechend Punkte „erlinkt“ haben.
Einer der Gruende Firefox als Browser zu nutzen ist die Erweiterbarkeit durch Addons. Neben Addons, die die taegliche Nutzung des Internets erleichtern, gibt es auch diejenigen, die bei der Suche nach Problemen, Bugs oder auch Sicherheitsluecken helfen.
So hatte ich vor einigen Tagen z.B. mit Tamper Data und einer Webanwendung, die in Kuerze in Produktion gehen soll (nicht die selbe Anwendung wie in Was’n Security?) eine Menge Spass. Mit Tamper Date hat man, mal untechnisch gesprochen, die Moeglichkeit den Traffic zwischen Internet und Browser zu veraendern. Ein kleines Beispiel aus der angesprochenen Anwendung.
Mit Hilfe der Anwendung koennen, basierend auf Eingaben, Zahlungen fuer eine bestimmte Dienstleistung getaetigt werden. Die einzugebenden Daten werden von einer Karte, wie z.B. eine EC-Karte abgelesen und in die Anwendung eingetippt. Diese Karte gilt allerdings nur fuer einen bestimmten Dienstleistungsbereich. Ich sage mal nur fuer Fast-Food Ketten 🙂
Ich komme also mit meiner Karte in das Fast-Food Lokal meiner Wahl, bestelle mir das XYZ-Menue, gebe der Dame an der Kasse meine Karte und sage „Geht auf die Karte“. Sie meldet sich an der Anwendung an, tippt den auf der Karte befindlichen Code, die Kosten und noch ein, zwei andere Dinge ein und schon ist mein Essen bezahlt.
Jetzt wurde die Anwendung extra so erstellt, dass im Bereich „Betrag“ nur nummerische Werte eingegeben werden koennen. Wenn ich ueber den Browser versuche ein anderes Zeichen als eine Zahl einzugeben, loescht die Anwendung den Eintrag. Jetzt kommt Tamper Data ins Spiele. Gebe ich jetzt einen Zahlenwert ein und bestaetige die Eingabe auf der Seite, faengt Tamper Data die Anfrage ab und bietet die Moeglichkeit Teile oder auch den kompletten Request zu veraendern. Ich kann also, ohne dass die Anwendung was mitbekommt, dem Parameter, der als Wert *eigentlich* eine Zahl enthalten sollte, eine Zeichenfolge zuweisen und mit Spannung drauf warten was die Anwendung draus macht.
Es ist nicht ungewoehnlich, wenn die Anwendung mit solch einer manipulierten Anfrage Probleme hat, da bei der Entwicklung nicht damit gerechnet wurde, dass invalide Werte eintreffen. Oftmals reagieren Entwickler auch verwundert und sagen, dass die Anwendung fehlerhafte Eingaben aber doch verhindert. Aber manchmal reicht es eben nicht nur Eingaben zu verhindern, sondern man muss auch damit rechnen, dass invalide Werte in der Anwendung aufschlagen. Und dann sollte man entsprechende Fehlerroutinen implementiert haben.
Ich bin ja ein wenig interessiert wenn es um Security-Dinge geht. Auf Grund dessen betrachte ich Anwendungen, Webapplikationen oder technische Umgebungen generell eher aus der Sicht eines Angreifers als aus Sicht der User. Die Tage hatte ich wieder die Moeglichkeit mir eine Webanwendung anzuschauen, die im uebrigen aktuell auch einem Pentest unterzogen wird.
Die Anwendung ist wirklich ueberschaubar und klein. Man kann sich als User anmelden, einen, ich sage mal, Vorgang erstellen und dort Dinge dokumentieren oder auch Dokumente hochladen. Ich habe ein paar Minuten rumgespielt, als mir die URL der hochgeladenen Dokumente aufgefallen war. Die URL sah in etwa so aus: https://www.tolleanwendunghier.de/dateien/dateiname.pdf?
Ich habe mich dann mal, ueber einen anderen Internetzugang, mit einem anderen User an der Anwendung angemeldet, die URL angegeben und pfff, konnte ich auf das Dokument zugreifen. Naja, mag man vielleicht einwenden, da ist eine kleine Luecke, aber man muesste doch zumindest den Dateinamen kennen. Jein. Zum einen ist es so, dass die Dateien nach dem hochladen einfach eine Nummer aus einer fortlaufenden Reihe erhalten. Zum anderen ist auch die Angabe des Dateisuffix egal. Ob ich nun $URL/56.pdf? oder $URL/56.abc? eingebe ist einerlei. Mit einem kurzen Script ist es also moegliche *alle* Dateien vom Server abzuziehen. Das ist vor allem deshalb kritisch, da innerhalb der Anwendung auch sensitive Daten abgelegt werden sollen. Ich bin sicher der Pentest wird spaeter auch auf diesen Fehler hinweisen und man wird die Luecke erst mal fixen muessen, bevor man in Produktion geht.
Leider hatte ich nicht mehr Zeit, sonst haette ich noch ein wenig rumgespielt.