1 / 26

I/O Capture Treiber Framework

I/O Capture Treiber Framework. Maßgeschneiderte Filtertreiber auf Knopfdruck erstellen. Motivation. Wireshark kennt jeder:. Was wäre…. …wenn man das nicht nur für TCPIP, sondern auch für jedes andere mögliche „Gerät“ machen könnte?. Netzwerk-Traffic & Dns - requests ,

saxon
Download Presentation

I/O Capture Treiber Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Motivation • Wireshark kennt jeder: Viviane Zwanger

  3. Was wäre… …wenn man das nicht nur für TCPIP, sondern auch für jedes andere mögliche „Gerät“ machen könnte? Netzwerk-Traffic & Dns-requests, Tastatur & Maus, Parallel-Port, Serieller Port,Kommunikation mit Hobby-Wetterstation...

  4. Was wenn …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) Viviane Zwanger

  5. Was kann man denn mitschneiden? Alles! Eine kleine Bestandsaufnahme…. Viviane Zwanger

  6. Was kann man mitschneiden? • Interne Geräte: • Audio, Beep-Treiber, Grafikkarte… • Output an Peripherie: • serielle Schnittstelle, parallel Port/Drucker, Firewire, Tastatur, … • Eigenbau-Schnittstellen und Bauteile: • proprietäre Systeme mit I/O zu externen embeddeddevices. • Nicht nur reale Geräte/Schnittstellen, auch „abstrakte“ I/O: • Filesystem, Kryptotreiber, Antivirustreiber und Rootkits, … • Riesiges Feld --- abstrakte Treiber gibt es SEHR viele. Viviane Zwanger

  7. Beispiel-Mitschnitt Anzahl zu sendender Pings Ping payload: „abcdef…“ TTL IP-Addresse 00000001 BufferLength: 1, content: 00000002 -----begin----- 00000003 a 00000004 -----end----- 00000005 BufferLength: 1, content: 00000006 -----begin----- 00000007 b 00000008 -----end----- 00000009 BufferLength: 1, content: 00000010 -----begin----- 00000011 c 00000012 -----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: Länge 00000001 -----begin----- 00000002 c0 a8 e3 01 a0 0f 00 00 14 00 20 00 0180 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 • Echo requests (ping) abfangen (custom filter) Tcp-Traffic Hyperterminal: „a“, „b“, „c“ Internet Explorer (Msn-Seite)

  8. Beispiel-Mitschnitt Found packet withsize: 0x470 Taking: 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 […] I/O request packet (IRP)enthält Speicheradressen von API Kernel-funktionen Special Code „666“ (0x29a) (rootkit Verwendet Auch noch zB „777“ I/OPakete) Rootkit „Amsint32.sys“an Userspace Executable.

  9. 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. Viviane Zwanger

  10. Ein paar Treiber-Grundlagen… Buffergröße? Buffered I/O Direct I/O? Neither? Major Functions? … *grübel*

  11. 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. Viviane Zwanger

  12. I/O Typen von IRPs • Buffered I/O • Direct I/O • 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?) Viviane Zwanger

  13. 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…

  14. 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. Viviane Zwanger

  15. Device Scanner Mögliche Devices... Verfügbare I/O-Handler (OS: Win7)

  16. Sentinel Usage: Viviane Zwanger

  17. I/O Capture Driver 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“... Viviane Zwanger

  18. 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, … Viviane Zwanger

  19. 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. Viviane Zwanger

  20. Demo Interne Geräte: Systemlautsprecher Viviane Zwanger

  21. Der “Systemlautsprecher” • Isteinsog. PIT (Programmierbarer Interrupt Timer). • GeneriertselbstätigRechteck-Impulse, die eineMembranzumSchwingenanregen. • Daherphysikalischbenötigt: • eineFrequenz f [Hz] • EineZeitdauer t [ms] • Heutzutage auf Audiokarteumgelenkt.

  22. 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. Viviane Zwanger

  23. Demo Output an die Peripherie: TCPIP Viviane Zwanger

  24. 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”

  25. Zukunft • Schönes Online Interface? zum generieren maßgeschneiderter Treiber. • Bequemere Kommandozeile? • Mehr Features? Viviane Zwanger

  26. Fragen? • We like IRPs! Viviane Zwanger

More Related