Tatort Internet: PDF mit Zeitbombe

Seite 3: Das Repertoire

Inhaltsverzeichnis

Irgendwie ist mir nicht wohl dabei, mich darauf zu verlassen, dass der Virenwächter die alle zuverlässig erkannt und abgewehrt hätte. Andererseits hab ich nur wenig Lust, das System auf einen bloßen Verdacht hin platt zu machen. Außerdem droht noch immer die Reisekostenabrechnung. Also mache ich mich auf die Suche nach dem konkreten Exploit, den die PDF-Datei an mir ausprobiert hat.

Weiter unten im JavaScript-Code entdecke ich Zugriffe auf app.viewerVersion.toString(). Oh weh – das sieht aus, als hätte der gleich ein ganzes Repertoire, das er abhängig von der Versionsnummer des Readers zum Einsatz bringt. Der erste kommt mir bekannt vor – da war doch mal ein Pufferüberlauf in Collab.collectEmailInfo. Eine schnelle Suche im Netz fördert einen Eintrag bei SecurityFocus von Anfang 2008 zu Tage; seit Version 8.1.2 sollte das gefixt sein. Glück gehabt.

Doch die PDF-Datei hat noch mehr auf Lager. Für neuere Reader-Versionen versucht sie es mit einem weiteren Exploit, der sogar durch ein try/catch-Konstrukt abgesichert ist.

Das nutzt einen Fehler in Collab.getIcon aus. Die Datenbank von SecurityFocus behauptet, dass unter anderem Adobe Reader 9.1 vom März 2009 die Lücke schließt. Frühjahr 2009? Da hab ich zwischendurch sicher ein Update gemacht.

Außerdem verschwendet der Autor dieses PDF-Trojaners keine Ressourcen. Er beschränkt seine Exploits fein säuberlich auf die jeweils verwundbaren Versionen:

if((waNWb0AX4 >= 8.102 && waNWb0AX4 < 8.104) || 
(waNWb0AX4 >= 9 && waNWb0AX4 < 9.1) ||
waNWb0AX4 <= 7.101)

Der dritte im Bunde – ein Exploit für einen Pufferüberlauf in util.printf – betrifft sogar nur die Reader-Versionen 8.102 und 7.1. Das war’s offensichtlich. Hat sich die Arbeit doch gelohnt – ich kann mir die Neuinstallation schenken, mein Rechner muss sauber sein.

Und in der letzten Zeile findet sich dann auch die Erklärung, warum der Reader nicht sofort, sondern erst nach einigen Sekunden abgestürzt ist. Der Bastard hat eine Art Zeitzünder installiert:

app.setTimeOut("app.jTSCccXdL()", 10); 

Erst nach 10 Sekunden wird die Funktion jTSCccXdL() ausgeführt, die die ganze Logik des Exploits enthält.

A propos: Wieso ist mein Reader überhaupt abgestürzt, wenn er gar nicht anfällig war? Mal ganz davon abgesehen, dass das Programm nicht mehr crashen sollte, wenn es den Pufferüberlauf sauber abfängt, hab ich doch mit eigenen Augen gesehen, dass der Exploit nur bei den alten, verwundbaren Versionen zuschlägt. Moment Mal – ich schau doch lieber nach.

Mist! Der Reader sagt ganz deutlich „Version 9.0“. Wie konnte das passieren? Der Rechner ist also ziemlich sicher doch verseucht. Aber den jetzt auf die Hinterlassenschaften von update.exe & Co. zu untersuchen, hab ich keine Lust mehr. Also doch zurück zum gestrigen Image. Naja – immerhin gibt mir das noch eine halbe Stunde bis ich mich dann doch an die verhasste Reisekostenabrechnung machen muss. (ju)

Die Serie "Tatort Internet" wurde ursprünglich im c't magazin ab Heft 13/2010 veröffentlicht. In den Artikeln können Sie Experten über die Schulter schauen, wie sie verdächtige Dateien analysieren und Schädlingen auf die Schliche kommen. Alle in der Serie vorgestellten Malware-Samples stammen aus echten Angriffen und wurden unter anderem mit den hier vorgestellten Methoden entlarvt. Die Geschichten "drumherum" wurden durch reale Vorkommnisse inspiriert ;-)

Wie schon in der ersten Episode analysiert diesmal Thorsten Holz vom deutschen Honeynet-Projekt. Im Hauptberuf ist er Juniorprofessor an der Ruhr-Universität Bochum, mit einem Schwerpunkt auf Malware-Analyse. Im Mittelpunkt der nächsten Folge steht eine dubiose Flash-Datei.

Übersicht aller Folgen:

  1. Alarm beim Pizzadienst
  2. Zeig mir das Bild vom Tod
  3. PDF mit Zeitbombe
  4. Angriff der Killervideos
  5. Matrjoschka in Flash