The Turkey Curse
fukamis terror chatroom

Universal XSS mit Acrobat Plugin

Pungenday, 3rd Chaos, 3173.

[Stefano Di Paola][Stefano] und [Giorgio Fedon][Georgio] haben auf ihrem 23C3 Talk [Subverting AJAX][23C3 Talk] auf eine echt niedliche Lücke im Adobe Acrobat Plugin <= 8 hingewiesen, durch das es möglich ist, jede Seite, die ein PDF hostet grundsätzlich mit einem XSS zu versehen. Dabei sieht ein Link auf ein PDF beispielsweise so aus:

http://site.tld/file.pdf#FDF=javascript:alert(’Universal XSS’)

Damit eröffnen sich eine Unmenge Möglichkeiten für interessante Angriffe, da sehr viele Seiten bieten PDFs zum Download an. Ich bin ja mal auf den ersten AJAX-Wurm gespannt, der sich dieses Problems annimmt, denn so einfach wird es wohl so schnell nicht wieder werden.

Diese und weitere Infos zum Beispiel zu Prototype Hijacking findet man in dem [Paper][Paper] der Beiden für die 23C3-Proceedings (natürlich als PDF, hehehe), das Advisory zum UXSS in Acrobat Plugin bei [The Wise Security][wisec].

[23C3 Talk]: http://events.ccc.de/congress/2006/Fahrplan/events/1602.en.html
[Stefano]: http://events.ccc.de/congress/2006/Fahrplan/speakers/1155.en.html
[Georgio]: http://events.ccc.de/congress/2006/Fahrplan/speakers/1152.en.html
[Paper]: http://events.ccc.de/congress/2006/Fahrplan/attachments/1158-Subverting_Ajax.pdf
[wisec]: http://www.wisec.it/vulns.php?page=9

---

Request Rodeo veröffentlicht

Prickle-Prickle, 42nd The Aftermath, 3172.

[Cross Site Request Forgery][csrf], auch CSRF, XSRF oder Session Riding, bezeichnet einen Angriff, der eine konzeptionelle Schwäche des HTTP-Protokolls ausnutzt. Dabei werden dem Opfer Requests untergeschoben, die “normale” Zugriffe darstellen — also keine Code Injection ala [Cross Site Scripting][xss] — mit dem Ziel, unsichtbar für das Opfer eine Aktion zu triggern. Ein schönes, harmloses Beispiel von der Wikipediaseite selbst:

http://de.wikipedia.org/w/index.php?title=Spezial:Userlogout

Dieser Request wird z.B. in einen Image Tag gepackt. Der Browser des Opfers, der eine Seite mit eben jener Bildreferenz lädt, führt einen Request mit den entsprechenden Credentials aus, da er vorher nicht wissen kann, dass sich hinter der Referenz zu dem Bild gar keins befindet.

Mit dieser Art von Angriff war es beispielsweise damals möglich, bei [Plazes][plazes] Freunde zu machen, in dem ein Bild mit entsprechendem Verweis eingebaut und Leuten per RSS untergeschoben wurde (siehe Eintrag [Finding friends on teh intarweb][friends]). Bislang war es ohne weiteres nicht möglich, auf Clientseite viel dagegen zu tun, sondern man musste sich auf eine durchdachte Programmierung auf Anbieterseite verlassen.

[Justus Winter][justus] und [Martin Johns][martin] haben vor einiger Zeit das lesenswerte Paper [Client Side Protection against Session Riding][paper] zum Thema verfasst und dort einen Proxy angekündigt, der dieser Tage veröffentlicht wurde. [Request Rodeo][rr], so der Name des Proxies, ist in Python geschrieben, setzt SQLite, Twisted und OpenSSL voraus und ist aus meiner allerersten Sicht schon gut zu benutzen. Request Rodeo strippt Credentials und Cookies aus Requests, die dort nix verloren haben und kann sowohl mit HTTP als auch HTTPS umgehen. Er hat bisher aber scheinbar noch Schwierigkeiten bei GZIP-komprimierten HTTP-Requests (Justus drückt sich einem Kommentar im README zufolge bisher wohl darum =)

Martin erwähnte Mitte des Jahres, dass zudem ein Plugin für Firefox geplant sei. Allerdings weiss ich nicht, ob der Plan noch steht.

Die beiden sind übrigens auf dem [23C3][23c3] mit dem Vortrag [On XSRF and why you should care][event-1560] vertreten, in dem sie in aller Ausführlichkeit auf dieses Problem eingehen werden.

[justus]: http://sunny-winter.de/
[martin]: http://shampoo.antville.org/
[csrf]: http://de.wikipedia.org/wiki/Cross-Site_Request_Forgery
[xss]: http://de.wikipedia.org/wiki/Cross-Site_Scripting
[plazes]: http://plazes.com
[friends]: http://fukami.vakuum.net/archives/2006/01/23/finding-friends-on-teh-intarweb-part-1/
[paper]: http://www.informatik.uni-hamburg.de/SVS/papers/2006_owasp_RequestRodeo.pdf
[rr]: https://savannah.nongnu.org/projects/requestrodeo
[23c3]: http://events.ccc.de/congress/2006/
[event-1560]: http://events.ccc.de/congress/2006/Fahrplan/events/1560.en.html

---

Blaue Pille

Prickle-Prickle, 33rd Confusion, 3172.
Code fukami 72676 2 Comments | Trackback URI

Blue Pill

[Joanna Rutkowska][], die uns beim [21C3][] mit schon mit ihrem Vortrag [Passive covert channels in the Linux kernel][] grosse Freude bereitete, hat vor ein paar Tagen ein sehr spannend klingenden Text mit dem Titel [Introducing Blue Pill][] in ihrem [Blog][] veröffentlicht, in dem sie ein Konzept für nicht nachweisbare Rootkits erläutert. Leider gibt sie nicht sonderlich viel Info zur technischen Implemantation preis und will auch soweit keinen Code releasen, aber immerhin sagt sie so viel, dass dies durch eine neue [Virtualisierungstechnologie][] für [AMD64][], die den Codenamen “SVM/Pacifica” trägt, möglich sein soll und sich grundsätzlich von [SubVirt][], einer Malware-Implemenation auf VM-Basis, unterscheiden soll, die vor einigen Monaten für einiges Aufsehen sorgte.

Ein Absatz lässt in jedem Fall aufmerken:

> I would like to make it clear, that the Blue Pill technology does not rely on any bug of the underlying operating system. I have implemented a working prototype for Vista x64, but I see no reasons why it should not be possible to port it to other operating systems, like Linux or BSD which can be run on x64 platform.

Na da hoffe ich mal, dass Joanna auf den [23C3][] kommt, damit sie mehr davon erzählt…

[Joanna Rutkowska]: http://theinvisiblethings.blogspot.com/
[21C3]: http://www.ccc.de/congress/2004/
[Passive covert channels in the Linux kernel]: http://www.ccc.de/congress/2004/fahrplan/event/176.en.html
[Introducing Blue Pill]: http://theinvisiblethings.blogspot.com/2006/06/introducing-blue-pill.html
[Blog]: http://theinvisiblethings.blogspot.com/
[Virtualisierungstechnologie]: http://de.wikipedia.org/wiki/Virtualisierung_%28Informatik%29
[AMD64]: http://de.wikipedia.org/wiki/AMD64
[SubVirt]: http://www.eecs.umich.edu/~pmchen/papers/king06.pdf
[23C3]: http://events.ccc.de/congress/2006/

---

RFID Viren und Würmer

Prickle-Prickle, 1st Discord, 3172.
Code fukami 62214 No Comments | Trackback URI

RFID (auch liebevoll _funkende Schnüffelchips_ genannt) sind eine populäre Technologie, die vor allem in der Logistik aber auch in so unbedeutenden Dokumenten wie Pässen zum Einsatz kommen. Melanie Rieback, Bruno Crispo, Patrick Simpson und Andrew Tanenbaum von der Freien Universität Amsterdam haben ein sehr interessantes Paper vorgestellt und eine Seite dazu veröffentlicht, in denen sie über RFID Viren und Würmer räsonieren.

Fazit: Es ist durch Fehler in der Middleware, im Backend Scripting oder durch SQL Injections möglich, solche Art Malware zu erzeugen. Die Forscher haben zudem schon einen aus 127 Zeichen bestehenden Virus implementiert, der Oracle und Apache Server Side Includes exploitet. Die Pläne, RFID auch über grössere Reichweiten kommunizieren zu lassen, wird in Zukunft echte Threats entstehen lassen. Schicke Anwendungen wären beispielsweise Preisänderungen bei Waren in Kaufhäusern oder DoS-Attacken gegen Reader. Eine Verbreitung von infizierten Tags wäre z.B. gut an Orten wie Flughäfen denkbar.

Das sind doch mal Szenarien die wir uns wünschen …

[via Telepolis]

---

mwc-Bug

Pungenday, 33rd Chaos, 3172.

Kudos to fnord for reporting this issue and providing that nice exploit :-)

---

Exploiten für Doofe: dsidentity in MacOS 10.4.x bis 10.4.2

Boomtime, 27th Chaos, 3172.
Code fukami 85196 No Comments | Trackback URI

Im vorangegangen Posting über MacOS X war von dsidentity die Rede. Auf Astros Anregung hin will ich mal kurz erläutern, warum dieser Exploit allerorten so viel Heiterkeit ausgelöst hat. Aus der Manpage:

dsidentity is a setuid tool that allows addition or removal of identity user accounts in Directory Services. The dsidentity tool creates a partial but valid system identity in the local Directory System. This identity is created with the intent to support remote sharing capabilities. Version 1.00 supports local shadowhash passwords as regular local user records.

Der exploitbare Teil des Codes dazu sieht so aus:

char *envStr = nil;
envStr = getenv("USER");
//check for member of admin group
if ( (envStr != nil) && UserIsMemberOfGroup( inDSRef, inDSNodeRef, envStr, "admin" ) )
{
     return true;
}

Gucken wir doch mal, was die Umgebungsvariable _USER_ zurückgibt — so mancher wird sich jetzt schon den Bauch halten:

neutron:~ % export USER=root_oder_hans_oder_so
neutron:~ % env|grep USER
USER=root_oder_hans_oder_so

Interessantes Konzept jedenfalls …

Ach ja, es gibt noch eine andere lesenswerte Beschreibung dazu.

---

Erlang the Movie

Pungenday, 23rd Chaos, 3172.
Code fukami 57033 No Comments | Trackback URI

Grade gefunden: Erlang the Movie. Ich kann mir nicht helfen, aber das hat irgendwie was von einer Mischung aus Sendung mit der Maus und Monty Python.

@Tim: Das ist doch mal ein echter Geekfilm ;-)

[via Uncentered Mind]

---

Wissenswertes über Erlang

Prickle-Prickle, 9th Chaos, 3172.
Code fukami 30703 No Comments | Trackback URI

**Geschichte**

Die Idee zur Entwicklung der Sprache Erlang und der dazugehörigen Laufzeitumgebung (auch Erlang/OTP für _Open Telecom Plattform_) geht ins Jahr 1982 zurück. Zu dieser Zeit waren bei den Telcos mehr als 20 Sprachen im Einsatz, was für alles andere als gute Interoperabilität und Produktivität gesorgt hat. So experimentierten die entsprechenden Firmen Mitte der 80er Jahre mit verschiedenen Sprachen wie z.B. Lisp, Prolog oder Parlog, die zwar gewisse brauchbare Eigenschaften aufwiesen, aber alle aus dem einen oder anderen Grund am Ende doch nicht die gewünschten Ergebnisse brachten (als da z.B. wären: Parallelität, hohe Verfügbarkeit, Fehlertoleranz, Auswechseln von Modulen zur Laufzeit etc.). 1987 gab es die ersten Experimente mit einer neuen Sprache, die Erlang genannt wurde (nach dem dänischen Mathematiker Agner Krarup Erlang). Durch einen Prototypen, der PABX-Funktionalität hatte, gelang 1988 Erlang der Sprung raus dem Labor rein in die ersten realen Anwendungen. 1992 wurden die ersten grösseren Projekte in Erlang geschrieben und Sprache und Laufzeitumgebung auf Windows, VxWorks, Macintosh und andere Systeme portiert, bis es dann schliesslich 1993 möglich wurde, mit Erlang verteilte Anwendungen in homogenen Umgebungen auf heterogener Hardware laufen zu lassen. Die schwedische Firma Ericsson hat massgeblich die Implematationen und Tools vorangetrieben und gepflegt, bis sie Erlang schliesslich als Open Source unter einer eigenen Lizenz, der Erlang Public License (EPL), veröffentlicht und zum Gebrauch zur Verfügung gestellt haben.

Mittlerweile gibt es eine ganze Reihe kommerzieller Produkte und quelloffener Software, die Erlang einsetzt. Zu den bekanntesten OSS-Projekten in dem Bereich gehören wahrscheinlich ejabberd (ein robuster und hoch skalierbarer Jabber-Server), Yaws (Yet another web server) und natürlich die verteilte Datenbank Mnesia. Zu den weniger bekannten kommerziellen Anwendungen bei Telcos gehören z.B. verteilte Emailsysteme, elektronische Zahlungssysteme, Software für Gateways und Switches und diverse Messaging-, UTMS-, GMS und ISDN- und VoIP-Systeme u.a.

**Eigenschaften**

Aus dem Erlang White Paper von Joe Armstrong (der als geistiger Vater der Sprache gilt und diese gerne _COPL_ — Concurrency Oriented Programming Language — nennt), Bjarne Däcker, Thomas Lindgren und Håkan Millroth:

Erlang is a programming language which has many features more commonly associated with an operating system than with a programming language: concurrent processes, scheduling, memory management, distribution, networking, etc.

Zu den Besonderheiten der Sprache gehören also wie zum Teil schon erwähnt einige Eigenschaften, die vor allem in den Bereichen nötig sind, die wie in der Telekommunikation hoch skaliert und ausfallsicher sein müssen:

* Nebenläufigkeit
Prozesse in Erlang teilen sich keinen Shared Memory und können ausschliesslich durch asynchronen Nachrichtenaustausch Daten tauschen. Der Entwickler kann dabei entscheiden, welche Programmteile dabei sequenziell und welche parallel ablaufen.
* Verteiltheit
Die Nachrichten können über verschiedene Nodes hinweg ausgetauscht werden, wobei sich die einzelnen Teile wie eine einzige Gesamtanwendung betrachten lassen und die sogar auf völlig verschiedenen Architekturen laufen können.
* Robustheit
Erlang besitzt verschiedene Möglichkeit zur Fehlererkennung und Fehlertoleranz. Beispielsweise kann ein Prozess Status und Aktivitäten anderer Prozesse beobachten. Dies kann auch von anderen Nodes aus passieren, was sich ganz nifty für Failover-Systeme macht.
* Soft Realtime
Erlang unterstützt “weiche” Echtzeitanforderungen mit Responsezeiten in Millisekunden und nutzt aus dem Grund inkrementelle Garbage Collection-Techniken.
* Hot Code Upgrade
Im Gegensatz zu den meisten Systemen, die für Maintenance-Zwecke gestoppt werden müssen erlaubt Erlang die Änderung von Code in einem laufenden System. Während der Zeit dieses Vorgangs können alter und neuer Code koexistieren. So sind Bugfixes oder Upgrades ohne Downtime möglich.
* inkrementelles Code Loading
Man kann detailliert kontrollieren wie Code geladen werden soll. In Embedded Systemen wird der Code normalerweise z.B. beim Bootvorgang geladen, in Development-Systemen wird er oft erst geladen wenn er wirklich gebraucht ist um damit z.B. buggy Code zu ersetzen.
* externe Interfaces
Erlang-Prozesse können mit der äusseren Welt durch dieselben Mechanismen kommunizieren wie zwischen Erlang-Prozessen um damit z.B. mit C- oder Java-Programmen zu kommunizieren.

**Getting Started**

Wer jetzt Lust bekommen hat sich das Ganze mal anzusehen sollte problemlos einen Installer oder die entsprechenden Sourcen für seine Plattform finden. Nach der Installation wird man feststellen, dass Erlang, wie auch in anderen Sprachen nicht unüblich, eine Shell zum Schreiben und Ausführen von Code hat, die entfernt an eine *NIX-Shell erinnert und mit **“erl“** aufgerufen wird:

fukami@wostok % erl
Erlang (BEAM) emulator version 5.4.12 [source] [hipe] [threads:0]

Eshell V5.4.12 (abort with ^G)
1>

Als Einstieg sei auf das exzellente Tutorial von Ericssons Erlang-Seite verwiesen.

---

Alle Mac-Browser mit Problemen

Sweetmorn, 47th Bureaucracy, 3171.
Code fukami 74567 No Comments | Trackback URI

Bei der grade stattfindenden Summerschool Applied IT Security 2005 im Laboratory for Dependable Distributed Systems der RWTH Aachen haben sich die Teilnehmer mit dem fuzzen von Applikationen auseinander gesetzt und dabei jeden auf der Mac-Plattform existierenden Browser in die Knie gezwungen. Ausserdem hat Safaris RSS-Reader XSS-Probleme.

Mehr bei disLEXia und im Public Wiki des C4:

* All Mac Browsers are crap
* Safari is even worse …
* Film zum Vortrag von Ilja van Sprundel
* Summerschool Aachen 2005 im C4 Wiki

---

XPath Injection revisited

Pungenday, 65th Discord, 3171.

equinox hat angefangen zu bloggen, so richtig mit eigener Blog-Software in Python und wie ich finde mit grosser Liebe zum Detail in Funktionalität und Design. Sein zweiter Eintrag handelt mit XPath Injection von einem Thema, zu dem es zwar schon seit einem Jahr ein Paper gibt, aber trotzdem nicht so bekannt wie z.B. SQL Injection ist.

---

Pentabarf

Sweetmorn, 53rd Discord, 3171.

Sven made a homepage for Pentabarf (German only in the moment). Pentabarf is a conference planning software written in PHP5 with a Postgres backend and some Apache RewriteRules. The software had its acid test with 21C3 - The Usual Suspects, the last years congress of CCC, it is also used for planning Datenspuren, the privacy symposium of CCC Dresden and What the Hack. Pentabarf has a nifty and powerful web interface with many configuration options and different export possibilities as XML, HTML, iCal and vCard. There is also a development feature I like: Pentabarf outputs errors rather to developers via Jabber then displaying errors to users. Pentabarf will still evolving, since there are some features missing like a proper release management for single events, a RT-like functionality or a more advandced ressouce planning. But anyway, I really like to work with it. The source is available through a subversion repository (svn://pentabarf.cccv.de/pentabarf/trunk). There is also a bug tracking system and a mailing list.

---

Blog Harvester

Sweetmorn, 53rd Discord, 3171.
Code fukami 3038 2 Comments | Trackback URI

Astro rewrote the core of his Blog Harvester to fix the RSS parsing. Blog Harvester is a very small script written in Ruby for aggregating feeds of hackers from Dresden, CCC Dresden, Planet CCC as well as some selected del.icio.us links. The source is also available by now (sig).

---

Apple fixed iSink

Setting Orange, 37th Discord, 3171.

Apple fixed the problem mentioned in the article Local root on MacOS X … still. It seems to be the only fix provided by this update:

Security Update 2005-004

iSync
Available for: iSync 1.5 on Mac OS X v10.2.8 and Mac OS X v10.3.x
CVE-ID: CAN-2005-0193
Impact: A buffer overflow in iSync could lead to local privilege escalation.
Description: The iSync helper tool mRouter contains a buffer overflow vulnerability. This could result in the execution of arbitrary commands as root by local system users. Security Update 2005-004 fixes this issue by providing a patched version of mRouter. Credit to Braden Thomas for reporting this issue.

---

Firelinking

Pungenday, 35th Discord, 3171.
Code fukami 62927 2 Comments | Trackback URI

Astro pointed me to an interessting Exploit for Firefox 1.0.2. On MacOS X the demonstration only works with User 501, since it tries to write into the root of the system partition, but it can be quite easily modified. Beside MacOS it has been successfully tested with FreeBSD, Linux and Windows.

---

Local root on MacOS X … still

Prickle-Prickle, 16th Discord, 3171.

Today I stumpled again into the local root exploit for MacOS X called fm-iSink.c which exploits a buffer overflow in the mRouter suid root binary installed by iSync in MacOS X 10.3 by default. It’s known for over two months know and it still works.

wostok:~/pentesting % system_profiler|grep “System Version”
System Version: Mac OS X 10.3.8 (7U16)
wostok:~/pentesting % cc fm-iSink.c
wostok:~/pentesting % ./a.out
sh-2.05b# whoami
root
sh-2.05b# id
uid=502(fukami) euid=0(root) gid=502(fukami) groups=502(fukami)

I know it’s “only” a local exploit, and sure there are plenty of bugs not found or disclosed. But for some reasons I’m annoyed by reading those sentences on Apples pages: “Mac OS X keeps your data safe.” Well, maybe if you don’t grant people access to the machine, so Astro easily got root on Tims Ti (no worries, he didn’t do anything harmful). Sorry Apple, I’m not really willing to accept it. We just saw a couple of patches since January and I’m seriously think now about switching completly … away from Apple.

---

Next Page »


Pain is inevitable; suffering is optional

The Turkey Curse is powered by WordPress, template idea by Priss

Entries (RSS) and Comments (RSS).
Generated in 0.119 seconds.