27. Dezember 2007

24C3: Cybercrime 2.0 Storm Worm

Category: CCC,Hacking — Christian @ 23:24

Der Vortrag von Thorsten Holz zum Storm Worm war wieder sehr interessant. Der Storm Worm (auch Peacomm, Nuwar, Zhelatin) war der am meisten in den Medien erwähnte Wurm 2007 und ist sehr agressiv in der Verteilung durch Spam. Im Schnitt zwischen 2-5% des Spam-Aufkommens wird inzwischen durch den Storm Worm verursacht. Teilweise wurde die Anzahl der infizierten Rechner auf 1,8 Millionen geschätzt. Thorsten hat das etwas relativiert.

Die Spam-Mails des Storm Worm locken auf Webseiten, die zum einen Browser-Exploits gegen Firefox und Internet Explorer einsetzen, andererseits zum Download von EXE-Files animieren, die dann den eigentlichen Schadcode auf dem Rechner installieren. Das Binary wiederum ist stark obfuscated (wurde von Frank Boldewin analysiert) und implementiert das Overnet Peer-to-Peer Protokoll zur Kommunikation.

In diesem Peer-to-Peer Netzwerk suchen die infizierten Clients nach bestimmten Hashes (die vom Datum und der Zeit abhängen, weshalb der Wurm die Clients per NTP synchronisiert) und findet mit Hilfe dieser Hashes die Kommandos (z.B. DDoS oder Spam-Versand) die auszuführen sind. Rechner mit privaten IPs fungieren nur als Angriffsnode, Rechner mit offiziellen IPs übernehmen Funktionen von Control-Nodes und können Web- und DNS-Server laufen lassen.

Clients authentisieren sich gegenüber dem Controller mit einem einfachen Challenge-Response, wobei Challenge XOR Response immer den Wert 0x3ED9F146 ergeben muss. Die Kommunikation selbst ist Zlib-komprimiert aber (bisher) nicht verschlüsselt (aktuelle Versionen setzen einfache XOR-Verschlüsselung mit festen Werten aber keine starke Kryptographie ein).

Mit Hilfe des KadC-Crawlers, der das komplette Overnet in ca. 20-40 Sekunden abfragen kann, hat Thorsten die Größe des Storm Worm Netzes geschätzt: Die Obergrenze ergibt sich durch 45-80 tausend Peers, 420 tausend Overnet IDs verteilt auf 1,7 Mill. verschiedene IP-Adressen, davon jedoch einige legitime Overnet-Peers die nicht Storm Worm infiziert sind. Die Untergrenze ergibt sich durch die Controller, ca. 5-6 tausend Bots mit Webservern, etwa 30 tausend Peers die Storm Worm Hashes suchen. Die real infizierte Zahl dürfte irgendwo dazwischen liegen auch wenn sicher immer wieder viele infizierte Rechner gerade nicht im Internet aktiv sind.

Gegen das Peer-to-Peer Netz des Storm Worm kann man nicht so viel tun … es gibt Eclipsing, d.h. Man-in-the-Middle-Angriffe bei denen man versucht die Hash-Suche durch falsche Antworten zu beeinflussen und Polluting, d.h. man versucht so viel Schrott mit gleichem Hash zu platzieren, dass die Bots keine regulären Befehle mehr entgegen nehmen können. Beides funktioniert nur eingeschränkt.

Das Storm Worm Netz verfügt über clevere Entwickler:

  • Bei mehrfachem Download des Binaries vermutet der Webserver einen Virenscanner-Hersteller und führt einen DDos-Angriff gegen die IP-Adresse durch
  • Es gibt viele Drive-by-Download Angriffe
  • Das Binary selbst wird alle Minute neu verpackt mit jeweils neuer Prüfsumme um Virenscanner zu irritieren
  • Die Javascript Drive-by-Angriffe werden jede Minute mit einem neuen XOR-Key kodiert, ebenfalls um Virenscanner zu irritieren
  • Die Größe des Binaries schwankt je nach Funktion und Packer zwischen 70 und 150 KB
  • Das Botnetz verwendet Fast-Flux Domains mit einer TTL von z.B. 5 Sekunden. Dadurch zeigt ein Webserver immer wieder auf neue IP-Adressen.

Das ist schon sehr nahe an einem effizienten Wurm.

In der Zukunft erwartet Thorsten starke Verschlüsselung, veränderte Kommunikation, z.B. NNTP damit Kommandos leichter an die Clients geschickt werden können und anonymisierte Kommunikation z.B. mittels Tor. Er vermutet übrigens, dass Verschlüsselung nur deshalb noch nicht weit in Würmern verbreitet ist, weil es so einfach ist viele tausend Rechner zu infizieren, dass sich der Aufwand gar nicht lohnt.

Ach ja … und er hat ein Blog.

24C3: Cool Things with Microcontrollers

Category: CCC,Hacking — Christian @ 23:22

Das ist einer der Vorträge von denen ich etwas enttäuscht wurde. Ok, Mitch Altman hat von Microcontrollern Ahnung ohne Ende aber leider hat er wenig davon erzählt. Es gibt da den Atmel AVR Chip, der recht einfach zu programmieren ist und von Ladyada ein Kit, das für 18 USD alles enthält, was man so für den Anfang braucht. Die meiste Software dazu ist erfreulicherweise OpenSource.

Und dann hat Mitch über Hirnwellen und seine Brain Machine erzählt, aber leider keine Details zur Implementierung. Steht aber auch alles in einem Artikel von ihm, inklusive empfohlener Links wie AVR Freaks und so. Hätte man sich quasi sparen können.

Ach ja, für das von ihm entwickelte TV B-Gone hat er noch Werbung gemacht.

24C3: How to Hack the Pfandsystem

Category: CCC,Hacking — Christian @ 23:20

Der Vortrag über AES Side-Channel Attacks ist ja leider mangels Anwesenheit des Vortragenden ausgefallen (und aus dem Programm auch schon verschwunden). In den parallel laufenden Vortrag „How to Hack the Pfandsystem“ wollte ich aber auch nicht. Da war vor der Tür übrigens das größte Gedrängel, das ich in vier Jahren Congress gesehen habe. Lauter Pfandbetrüger 🙂 .

Im Grunde ist es aber immer das gleiche … entweder der Automat ist relativ kundenfreundlich und nimmt alles mögliche an, dann ist er aber auch leicht zu betrügen oder er nimmt nur sehr streng an, dann beschweren sich aber dauernd die Kunden. Das betrifft nicht nur das Pfandsystem, das gab es bei Bahnfahrkarten ja auch schon.

Nachtrag:

Meine Freundin hat sich den Vortrag über Internet-Streaming auch angesehen und fängt schon an, Barcodes und Pfandlogos zu Scannen und wieder auszudrucken. Und natürlich die Pfandbons zu sammeln und zu kopieren. Naja

24C3: 10GE Monitoring Live!

Category: CCC,Hacking — Christian @ 23:18

Arien Vijn hat ein System mit mehreren FPGAs gebaut, das in der Lage ist, eine 10 GigE-Verbindung in Echtzeit nach bestimmten Mustern zu untersuchen und beispielsweise Datenpakete einer vorgegebenen IP-Adresse mitzuprotokollieren. Technisch ist das hochspannend, insbesondere weil er bei der hohen Datenübertragungsgeschwindigkeit auf viele kleine Probleme achten musste:

Mehrere FPGAs behandeln jeweils einen Teil des Datenverkehrs, so kümmert sich ein 32-Bit FPGA um die Source-IP, ein zweiter 32-Bit FPGA um die Destination-IP und weitere FPGAs um andere Teile des Paktes. Das klingt lässig, ist aber erstaunlich schwierig. Beispielsweise gibt es VLAN-Tags, d.h. der IP-Header befindet sich dann an einer anderen Stelle im Ethernet-Frame. Oder der Paket hat IP-Options, dann ist der TCP- bzw. UDP-Header verschoben. Von IPv6 mit variablen Headern will ich gar nicht reden.

Ein anderes Thema ist dann die Synchronisation der FPGAs. Nach seiner Aussage dauert alleine das Propagieren der Sync-Kommandos durch alle FPGAs so lange, dass es schwierig wird die Pakete noch in Echtzeit zu verarbeiten.

Und, das Gerät ist eine aktive Box weil bei der hohen Geschwindigkeit optische Taps zumindest am Anfang nicht mehr zuverlässig funktioniert haben.

Zum Glück war Schäuble nicht anwesend … obwohl, angeblich können die Force10-Kisten die DeCIX installiert hat auch schon vergleichbares.

26. Dezember 2007

Google, Jboss und die Zugriffsrechte

Category: Hacking,Internet — Christian @ 23:37

Nehmen wir einmal folgende Webseite:

Sieht aus wie eine Webseite des Springer-Verlags (nein, nicht der Axel-Springer Verlag mit der Bildzeitung sondern der seriöse Fachbuchverlag!) zum dazugehörigen Buch und richtet sich offensichtlich an Ärzte und Krankenhäuser.

Auf diese Seite bin ich durch folgende Google-Suche gestoßen: „inurl:inspectMBean site:de„. Gleich das zweite Suchergebnis führt zu dieser Seite, allerdings mit einer etwas anderen URL:

Und jetzt wird es spannend. Ich glaube nicht, dass diese Seite aus dem Internet heraus aufrufbar sein sollte. Da hat vermutlich jemand mit den Zugriffsrechten geschlampt. Das soll aber nicht mein Problem sein, der § 202a StGB ist da recht trocken. Und eine Zugangssicherung kann ich beim besten Willen nicht erkennen.

Also weiter im Text: Da handelt es sich offensichtlich um einen JBoss-Server und der Port 8080 wird nicht durch eine Firewall blockiert. Darüber lässt sich wunderschön in die Eingeweide des Servers schauen.

Der Tomcat-Status zeigt uns beispielsweise an, was auf dem Server so los ist. Oder man wirft einen Blick in die JMX Console. Aha, da sieht man z.B. wer so die Mails sendet und empfängt. Oder man sieht, dass eine HyperSonic Datenbank mit sa-User verwendet wird.

Da sind übrigens ganz viele lustige Felder bei denen man was eingeben kann und darunter gibt es so einen „Apply Changes“ Knopf. Ich weiß nicht, ob das so eine gute Idee ist. Vielleicht sollte man da die Finger weglassen, wenn man nicht mit dem § 303a StGB in Konflikt kommen will.

Aber unabhängig davon: Keine Firewall (es handelt sich um einen Shared Server bei einem Provider), Zugriffsrechte für das JBoss-Verzeichnis falsch gesetzt und bei Google steht der Server auch schon im Index … für mich scheint das eine schöne krasse Sicherheitslücke zu sein. Kleiner Tipp, ein Penetrationstest von uns würde solche Lücken finden. Garantiert!

Nachtrag:

Ich wollte Springer das Problem ja per Mail schicken:

RCPT To: <secure@springer.com>
550 5.1.1 unknown or illegal alias: secure@springer.com
RCPT To: <security@springer.com>
550 5.1.1 unknown or illegal alias: security@springer.com

Aber wer sich nicht an RFC 2142 hält, verdient es nicht anders.

25. Dezember 2007

Asus EEE Sicherheitscheck

Category: Hacking,Produkte — Christian @ 23:27

SANS hat schon was gemacht. Hauptsächlich geht es um das Abschalten von Diensten wie Samba und SunRPC, die zu viele Informationen nach draußen verbreiten. Außerdem fehlt die IPTables Firewall.

Ich warte ja noch auf meinen …

22. Dezember 2007

Unbekannte Windows Tools

Category: Hacking,Produkte — Christian @ 22:16

Ich bin ab und an tatsächlich überrascht, welche netten Programme sich in meinem Windows XP verbergen. Pathping zum Beispiel:

Syntax: pathping [-g Hostliste] [-h max. Abschnitte] [-i Adresse] [-n]
                 [-p Zeitraum]  [-q Abfrageanzahl] [-w Zeitlimit] [-P] [-R]
                 [-T] [-4] [-6] Zielname

Optionen:
    -g Hostliste       "Loose Source Route" gemäß Hostliste.
    -h max. Abschnitte Max. Anzahl an Abschnitten bei Zielsuche.
    -i Adresse         Verwendet die angegebene Quelladresse.
    -n                 Adressen nicht in Hostnamen auflösen.
    -p Zeitraum        Wartezeit in Millisekunden zwischen Pings.
    -q Abfrageanzahl   Anzahl der Abfragen pro Abschnitt.
    -w Zeitlimit       Zeitlimit in Millisekunden für eine Antwort.
    -P                 Überprüft RSVP-Pfadkonnektivität.
    -R                 Überprüft, ob jeder Abschnitt RSVP unterstützt.
    -T                 Überprüft Verbindung zu jedem Abschnitt mit
                       Layer-2-Prioritätskennungen.
    -4                 Erfordert Verwendung von IPv4.
    -6                 Erfordert Verwendung von IPv6.

Ein anderes Kommando ist netsh, bei dem mir bis heute nicht klar ist, was man damit alles machen kann.

netsh>?

Folgende Befehle sind verfügbar:

Befehle in diesem Kontext:
..             - Wechselt zu einer Kontextebene höher.
?              - Zeigt eine Liste der Befehle an.
abort          - Verwirft Änderungen, die im Offlinemodus vorgenommen wurden.
add            - Fügt einen Konfigurationseintrag zur Liste hinzu.
alias          - Fügt einen Alias hinzu.
bridge         - Wechselt zum "netsh bridge"-Kontext.
bye            - Beendet das Programm.
commit         - Überträgt Änderungen, die im Offlinemodus vorgenommen wurden.
delete         - Löscht einen Konfigurationseintrag aus der Liste der Einträge.
diag           - Wechselt zum "netsh diag"-Kontext.
dump           - Zeigt ein Konfigurationsskript an.
exec           - Führt eine Skriptdatei aus.
exit           - Beendet das Programm.
firewall       - Wechselt zum "netsh firewall"-Kontext.
help           - Zeigt eine Liste der Befehle an.
interface      - Wechselt zum "netsh interface"-Kontext.
offline        - Setzt den aktuellen Modus auf offline.
online         - Setzt den aktuellen Modus auf online.
popd           - Wechselt zum durch pushd im Stapel gespeicherten Kontext.
pushd          - Überträgt den aktuellen Kontext auf den Stapel.
quit           - Beendet das Programm.
ras            - Wechselt zum "netsh ras"-Kontext.
routing        - Wechselt zum "netsh routing"-Kontext.
set            - Aktualisiert Konfigurationseinstellungen.
show           - Zeigt Informationen an.
unalias        - Löscht einen Aliasnamen.
winsock        - Wechselt zum "netsh winsock"-Kontext.

Folgende Unterkontexte sind verfügbar:
 bridge diag firewall interface ras routing winsock

Gibt es eigentlich noch mehr so völlig unbekannte Tools (oder bin ich der einzige Ahnunglose hier im Tal)?

Der Storch bringt die Kinder

Category: Hacking,Politik — Christian @ 21:43

… ich glaube noch an den Weihnachtsmann und den Osterhasen und die Gründung der geplanten Bundesabhörzentrale ist eine reine IT-Maßnahme bei der die Trennung von Polizei- und Geheimdienst erhalten bleibt.

Andererseits … endlich gibt es ein richtig cooles High Profile Hacking-Ziel hier bei uns in Deutschland. Da wird es garantiert nicht lange dauern, dann geht es uns wie 2006 den Italienern mit ihrem Abhörskandal oder wie in Griechenland, wo Vodafone den größten Abhörskandal in der Geschichte des Landes zu verantworten hatte weil das Netz nicht ausreichend gegen Hacker gesichert war. Vodafone wurde zur Rekordstrafe von 76 Millionen Euro verurteilt.

Interessanterweise wurden sowohl in Italien als auch in Griechenland überwiegend Politiker abgehört, in Griechenland z.B. die Mobiltelefone des Ministerpräsidenten Karamanlis sowie weiterer Mitglieder der Regierung. Das kann eigentlich nicht schlecht sein. Gut, Kanther ist bereits verurteilt worden aber ich denke so tauchen sicher noch Beweise gegen Schäuble (Verdacht auf Schwarze Koffer) und Schily (Verdacht auf illegale Nebenverdienste) auf.

21. Dezember 2007

Virenscanner werden schlechter

Category: Hacking,Internet,Produkte — Christian @ 19:20

Eigentlich kaum überraschend, dass die Erkennungsrate der Virenscanner schlechter wird. Das Computermagazin c’t hat die gängigen weit verbreiteten Virenscanner getestet und viele schneiden deutlich schlechter in der Erkennung ab als vor einem Jahr.

Korrekt ist natürlich, dass die Malware-Szene immer professioneller wird, ich habe das hier ja auch schon angedeutet. Vor der Veröffentlichung werden die Schadprogramme auf Webseiten wie Virustotal oder AvCheck auf ihre Erkennbarkeit getestet und zumindest AvCheck bietet einen kostenpflichtigen Service der garantiert, dass die Schadprogramme nicht an die Virenscannerhersteller weitergegeben werden. Erschreckend ist aber auch, dass die Scanner mit ihren Heuristiken Schadprogramme nicht mehr erkennen, die sie vor einem Jahr noch erkannten.

Beim Behaviour-Blocking konnte nur ein Produkt, F-Secure, überzeugen während die Heuristik von Esets NOD32 mit 68% der unbekannten Schädlinge die beste Erkennungsrate aufwies. Kaspersky und BitDefender gehören laut The Register auch zu den besseren Produkten.

Das einzige was mich erschreckt ist, dass F-Secure auch Computer Bild Testsieger bei den Online-Virenscannern geworden ist. Und das ist normalerweise ein Hinweis, dass ein Produkt für den professionellen Einsatz gar nicht zu gebrauchen ist.

Ach ja … Whitelists irgendwer?

17. Dezember 2007

YouTube Security/Hacking Videos

Category: Hacking,Internet,Literatur — Christian @ 21:44

Infinity Exists hat ein paar „Full Disclosure“ Videos gepostet, die typische Hacking-Themen abdecken. Die Videos findet man entweder bei YouTube oder direkt zum Download bei Infinity Exists. Nichts so wirklich neues spektakuläres aber trotzdem nicht schlecht. Es zeigt vor allem, wie gut und einfach die Tools inzwischen zu bedienen sind.

Ich hab sie schon mal auf meine Platte gezogen, anschauen kann ich sie mir in nächster Zeit immer noch.

So Videos scheinen übrigens langsam beliebt zu werden. In der Certified Ethical Hacker Schulung sind Videos dabei, ein Verlag ist bezüglich eines solchen Projekts auch schon auf mich zugekommen.

(mal wieder via Security4All)