26
I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 26.06.22 1 Viviane Zwanger

I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Embed Size (px)

Citation preview

Page 1: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

I/O Capture Treiber Framework

Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen

11.04.23 1Viviane Zwanger

Page 2: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Viviane Zwanger

Motivation

• Wireshark kennt jeder:

11.04.23 2

Page 3: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Was wäre…

…wenn man das nicht nur für TCPIP, sondern auch für jedes andere mögliche „Gerät“ machen könnte?

11.04.23 3

Netzwerk-Traffic & Dns-requests,Tastatur & Maus, Parallel-Port,

Serieller Port,Kommunikation mit Hobby-

Wetterstation...

Page 4: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Viviane Zwanger

…man das nicht nur mitschneiden, sondern auch live modifizieren könnte?

Wie ein Wireshark mit „edit“- und „delete-“ Funktion(und natürlich nicht auf Netzwerk beschränkt)

Was wenn

11.04.23 4

Page 5: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Was kann man denn mitschneiden?

11.04.23 5

Alles! Eine kleine Bestandsaufnahme….

Viviane Zwanger

Page 6: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Was kann man mitschneiden?1. Interne Geräte:

Audio, Beep-Treiber, Grafikkarte…

2. Output an Peripherie: serielle Schnittstelle, parallel Port/Drucker, Firewire, Tastatur, …

3. Eigenbau-Schnittstellen und Bauteile: proprietäre Systeme mit I/O zu externen embedded devices.

4. Nicht nur reale Geräte/Schnittstellen, auch „abstrakte“ I/O: Filesystem, Kryptotreiber, Antivirustreiber und Rootkits, … Riesiges Feld --- abstrakte Treiber gibt es SEHR viele.

11.04.23 6Viviane Zwanger

Page 7: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Beispiel-Mitschnitt

00000001 BufferLength: 1, content: 00000002 -----begin----- 00000003 a00000004 -----end----- 00000005 BufferLength: 1, content: 00000006 -----begin----- 00000007 b00000008 -----end----- 00000009 BufferLength: 1, content: 00000010 -----begin----- 00000011 c00000012 -----end----- 00000013 BufferLength: 656, content: 00000014 -----begin----- 00000015 GET /isapi/redir 00000016 .dll?prd=ie&pver 00000017 =6&ar=msnhome HT 00000018 TP/1.1..Accept:

00000001 -----begin----- 00000002 c0 a8 e3 01 a0 0f 00 00 14 00 20 00 01 80 00 00 00000003 14 00 00 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 00000004 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 00000005 66 67 68 69 00 00 00 00 00 00 00 00 00 00 00 00

Tcp-Traffic 1. Hyperterminal: „a“, „b“, „c“ 2. Internet Explorer (Msn-Seite)

• Echo requests (ping) abfangen (custom filter)

Ping payload:

„abcdef…“IP-Addresse

Anzahl zu sendender Pings

TTL

Länge

Page 8: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Beispiel-Mitschnitt

Found packet with size: 0x470Taking: 470 size.-----begin-----9a 02 00 00 66 56 5e 80 c4 8e 5e 80 98 56 5e 80 fe 8e 5e 80 ce 56 5e 80 42 8f 5e 80 86 8f 5e 80 da a5 60 80 4e b8 60 80 08 0a 5e 80 60 06 5e 80 84 96 5c 80 34 96 5c 80 00 ac 60 80 88 a0 5a 80 18 a2 60 80 10 c9 59 80 da 44 5a 80 62 b1 5c 80 04 ed 4f 80 0e ce 5b 80 e6 ab 56 80 dc 41 53 80 ea 38 60 80 14 07 5b 80 fe 93 5e 80 a2 87 61 80 f0 d8 5e 80 88 8b 59 80 f6 89 61 80 3a 84 59 80 d0 ff 53 80 e8 69 63 80 10 26 5b 80 3a 39 60 80 94 bb 60 80 4c d1 56 80 de b9 56 80 26 a1 5c 80 5e 9e 5c 80 d2 8b 61 80 5a d2 56 80 8c bf 60 80 86 d1 56 80 fa f8 59 80 56 8f 59 80 e8 5c 5c 80 32 5c 5c 80 ac c3 60 80 3e f2 59 80 36 99 60 80 10 94 5b 80 d0 5a 5c 80 5c b8 60 80 98 dc 5e 80 7a 8f 59 80 c4 7a 63 80 14 7c 63 80 6e b2 60 80 90 aa 60 80 0e ce 5b 80 2c ad 56 80 62 90 61 80 0a 95 5e 80 32 92 61 80 12 d3 56 80 aa 78 60 80 f0 21 5b 80 a6 18 5e 80 4e b8 60 80 12 94 61 80 […]

Rootkit „Amsint32.sys“an Userspace Executable.

Special Code„666“(0x29a)

(rootkitVerwendetAuch noch zB„777“ I/OPakete)

I/O request packet (IRP)enthält Speicheradressen von API Kernel-funktionen

Page 9: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Idee zusammengefasst:

Maßgeschneideter Kernel Filter Treiber.

• Hängt sich an das Ziel-Gerät (Device) an und loggt die I/O Kommunikation.

• Anders als Wireshark kann es auch die Daten ändern oder droppen.

11.04.23 9Viviane Zwanger

Page 10: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Ein paar Treiber-Grundlagen…

11.04.23 10

Buffergröße?Buffered I/O Direct I/O? Neither?

Major Functions? … *grübel*

Page 11: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

IRPs• …sind I/O request packets• … enthalten den I/O „Auftrag“ (I/O request)• …enthalten viele interessante Daten!

IRPs sind ziemlich große Datenpakete, gefüllt mit allem möglichem „Krempel“ den der empfangende Treiber brauchen könnte um den I/O request zu erfüllen.

11.04.23 11Viviane Zwanger

Page 12: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

I/O Typen von IRPs

1. Buffered I/O2. Direct I/O3. Neither I/O

• „Auftrags“-Daten (Buffer) im IRP an unterschiedlicher Stelle versteckt.

• Es gibt einen Input und einen OUTput Buffer.

• Je nach Request wird nur einer davon verwendet oder beide.

• Art der Daten? (Zahlen, Text, Addressen?)

11.04.23 12Viviane Zwanger

Page 13: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Major / Minor Funktionen

• I/O Handler Major Function Nummer? Z.B. READ (0x3), WRITE (0x4), DEVICE_CONTROL (0xe), POWER

(0x16)

• Minor Function? Treiber-spezifisch Z.B. bei TCPIP Treiber ist für TCP & UDP:

Nr 0x7 == Netzwerkdaten sendenNr 0x3 == binden an IP-Addresse, etc…

Page 14: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Hört sich kompliziert an?

Soll deswegen automatisch generiert werden!

Besitzt Aufklärmodus (den „Sentinel“), in welchem es Informationen sammelt (z.B. Buffergrößen, Minorfunctions, Stärke des I/O Traffics) Nützlich für unbekannte Treiber

Gegeben das Ziel konfiguriert sich der Capture-Treiber (soweit es geht) selbstständig. Je besser der Benutzer sein Ziel kennt, desto besser das Ergebnis.

11.04.23 14Viviane Zwanger

Page 15: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Device Scanner

Mögliche Devices...

Verfügbare I/O-Handler

(OS: Win7)

Page 16: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Sentinel

11.04.23 16Viviane Zwanger

Usage:

Page 17: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

I/O Capture Driver

11.04.23 17Viviane Zwanger

Usage: drvmake DeviceName Major Minor bufsize hex/ascii TCPIP Treiber unterscheidet verschiedene Major und Minor Functions. zB:

Minor 0x7 : „Netzwerk-Daten senden“.Minor 0x3 : „Bind IP-Address“...

Page 18: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Praktischer Teil

Kategorien

• Interne Geräte: Audio, Drucker, Beep-Treiber…

• Peripherie: serielle Schnittstelle, parallel Port, Firewire, Tastatur, …

• Eigenbau-Schnittstellen und Bauteile, falls vorhanden.

• „Abstrakte“ I/O: Filesystem, Kryptotreiber, Antivirustreiber, Rootkits, …

11.04.23 18Viviane Zwanger

Page 19: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Interne Geräte

• Vom User, Applikationen oder System erzeugt. Z.B Audio, Grafikanzeige, Beep

• I/O Traffic Stärke relativ gut vorhersagbar

• Unter Umständen zu viel I/O!Beispiel: Grafikanzeige & Audio sind I/O Spammer.

11.04.23 19Viviane Zwanger

Page 20: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

11.04.23 20Viviane Zwanger

Interne Geräte:Systemlautsprecher

Demo

Page 21: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Der “Systemlautsprecher”

• Ist ein sog. PIT (Programmierbarer Interrupt Timer).

• Generiert selbstätig Rechteck-Impulse, die eine Membran zum Schwingen anregen.

• Daher physikalisch benötigt:1) eine Frequenz f [Hz]2) Eine Zeitdauer t [ms]

• Heutzutage auf Audiokarte umgelenkt.

Page 22: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Output an die Peripherie• Vom User erzeugt. (normalerweise)

• Bekannte I/O: wieviel Traffic verursacht wird und unter welchen Bedingungen.Beispiele: Tastatur-Treiber verursacht nur vereinzelte I/O bei

Tastaturanschlag. Der Maus-Treiber verursacht nur I/O, wenn der User die Maus bewegt, aber relativ viel I/O Traffic in kurzen Zeitabschnitten.

• Eher „verständliche“ Daten:• DNS-requests (Netzwerk)• GET / HTTP/1.1 requests (Netzwerk)• Gedrückte Tastatur-Keys • Maus-Koordinaten.

11.04.23 22Viviane Zwanger

Page 23: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

11.04.23 23Viviane Zwanger

Output an die Peripherie:TCPIP

Demo

Page 24: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Der “TCPIP”-Treiber

• Managed verschiedene “Devices”, u.A.:• 1. “TCP”• 2. “UDP”

• (Bei Vista/Win7 dazu separat: “TCP6”, “UDP6” für IPv6)

• Dazu kommt noch:– WinXP: “RawIP”, ”IPMulticast”, “IP”– Vista/Win7: “RawIp”, “RawIp6”, “Tdx”

Page 25: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Zukunft

• Schönes Online Interface? zum generieren maßgeschneiderter Treiber.

• Bequemere Kommandozeile?

• Mehr Features?

11.04.23 25Viviane Zwanger

Page 26: I/O Capture Treiber Framework Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen 15.11.20131Viviane Zwanger

Fragen?

• We like IRPs!

Viviane Zwanger11.04.23 26