make etw great again. - ruxcon etw great again – ruxcon 2016 • built-in, general purpose,...

43
Make ETW Great Again. Ben Lelonek Nate Rogers Exploring some of the many uses of Event Tracing for Windows (ETW)

Upload: doandung

Post on 01-May-2019

228 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

MakeETWGreatAgain.

BenLelonekNateRogers

ExploringsomeofthemanyusesofEventTracingforWindows(ETW)

Page 2: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

CyberPointisacybersecuritycompany.We’reinthebusinessofprotecEngwhat’sinvaluabletoyou.

Page 3: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

WhoWeAre

Nate“MillionDollars”Rogers•  CyberPointInterna6onal

–  SecurityResearchTeamLead•  StudentatNYU•  Previously:

–  eEyeDigitalSecurity•  TwiEer:

–  @Conjectural_Hex

Ben“TexasDirt”Lelonek•  CyberPointInterna6onal

–  SecurityResearchTeam/Developer

•  StudentatUMBC

MakeETWGreatAgain–Ruxcon2016

CyberPointSecurityResearchTeam•  www.cyberpointllc.com/srt•  [email protected]•  @CyberPoint_SRT

Page 4: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

Whatwe’regoingtobetalkingabout.

MakeETWGreatAgain–Ruxcon2016

• WhatisETW•  QuickOverviewofETW•  UsageExamples•  PublicUsesandResearch•  ETWforMalwareDetec6on•  ETWforRedTeam•  Mi6ga6ons•  Ques6ons

Page 5: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

WhatisEventTracingforWindows(ETW)?

MakeETWGreatAgain–Ruxcon2016

•  Built-in,generalpurpose,logginganddiagnos6cframework

•  Efficient:highspeed,lowoverhead

•  Dynamicallyenabledordisabled

•  Logtofileorconsumeinreal6me

•  Usedforperformanceanalysisandgeneraldebugging

•  Exampleusage–  GoogleChrome

•  Performanceanalysis&profiling•  UIforETW

Source:

h*ps://msdn.microso3.com/en-us/windows/hardware/commercialize/test/weg/weg-performance

Page 6: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

QuickOverviewofETW

MakeETWGreatAgain–Ruxcon2016

•  FirstintroducedinWindows2000• GreatlyexpandedinVista

–  Newmanifest-basedprovidersandlogginginmorethanjustthekernel

–  MoreineachOSsince•  EaseofuseimprovedwitheachOS

–  Windows2000–MOFclassesandWMI–  WindowsVista–XMLManifests–  Windows8/.NET4.5–EventSource(C#)–  Windows10–TraceLogging

3 3

431

656

9561052

0

200

400

600

800

1000

1200

Windows2000

WindowsXP

WindowsVista

Windows7Windows8.1

Windows10

ProvidersbyWindowsVersion

Page 7: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

HowtoViewETWEvents

MakeETWGreatAgain–Ruxcon2016

•  API–  Lesscommonlyused,focusofourwork– Microsol.Diagnos6cs.Tracing.TraceEvent.dll–  C/C++/C#/etc

•  CommandLine/Applica6ons– Morecommonlyused–  Built-in:Logman,TraceRpt,EventViewer,PerformanceMonitor,wevtu6l–  Installable:Xperf,PerfView,Netmon,MicrosolMessageAnalyzer,WindowsPerformanceAnalyzer

•  PerfViewexample…

Page 8: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

ViewingETWEvents–PerfView

MakeETWGreatAgain–Ruxcon2016

TeslacryptreadingfilesinSystem32

Page 9: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

ETWExampleProviders

MakeETWGreatAgain–Ruxcon2016

•  Lis6ngproviders

•  Lis6ngrunningsessions

Page 10: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

UsingETW

MakeETWGreatAgain–Ruxcon2016

•  ETWEventsarehandledAsynchronously–  System/Applica6onwritesthemtothekernel–  Consumersmustestablishasessionandsubscribetogetdata

•  TypicalETWStructure–  C/C++:EVENT_HEADER,EVENT_RECORD,EVENT_TRACEstructuresandtracedatahelper(TDH)func6ons

–  C#:TraceEventobject,PayloadStringByName()•  Mechanism

–  OS-sideimplementa6ondetailsnotpubliclyavailable–  CallbacksfromtheOS

•  EventsCanbeCollectedRemotely–  ConfiguredviaWMI,Powershell–  Collectormachinepullsdatafromworkers

Page 11: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

TraceEventobject

MakeETWGreatAgain–Ruxcon2016

TONSofinforma6on!

Page 12: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

UsingETWAPI(C#)

MakeETWGreatAgain–Ruxcon2016

ExampleSimpleUACEventListener•  Extremelyeasytoimplement

Page 13: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

Great,sowhatdoesthishavetodowithsecurity?

MakeETWGreatAgain–Ruxcon2016

•  ExtensiveIntegra6onwithWindows– MuchoftheWindowsAPIlogstoETW–  VastamountofWindowsSubsystemshaveproviders–  Canbeusedtocollectinforma6onforbothaEackers&defenders/auditors

•  UniversallyDeployedinWindows–  Exists(insomeform)ineveryversionsinceWindows2000–  Dataproviderenabledondemand–  Hugepoten6alforabuse

•  We’llgetbacktothislater…

–  Greatpoten6alfordefensiveapplica6ons/research•  Lotsofpoten6aldatapointsforcollec6on/heuris6cs

–  process,.NET/CLR,Kernel,IO,Files,Memory,UAC,Logins,Crypto,Firewall,SMB,TCPIP,MANYmore…

•  Someexamples/toolsexistbutcanbeimproved

Page 14: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

PublicUsesandResearch

•  Defensive–  DataMiningHeuris6cs

•  Collec6ngETWlogstodetectmalware

–  Ransomwaredetec6on(notETW)•  TrackfileIO/handles

–  Similartoourtechnique(nextslide)

–  Usesdriver

•  Offensive–  Persistence

•  ETWtriggeringserviceexecu6on

–  Packetcapture•  logman/netshforcapturingnetworktraffic

–  “SSLSidejacking”/CookieStealing•  ETWlistenerforWinINetcansnoopontraffic(evenSSL/TLS)

MakeETWGreatAgain–Ruxcon2016

Page 15: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

ETWMalwareDetecEon:RoomforImprovement

MakeETWGreatAgain–Ruxcon2016

•  FewmalwareETWtools–  Exis6ngtechniquesalluseexternalEXEs

•  Logman.exe,wevtu6l.exe,PerfView,etc.•  Olenfocusonnetworktraffic(!Ransomware)

– Can’tparsein“real”6me•  Mustlogtodiskthenparse

•  RansomwareETWsolu6ons?– Virtuallynone

•  Goals:– Morelightweight(lessoverhead)solu6onswouldbeop6mal

– Na6veETWAPI•  Standalonebinarywithnodependencies

–  Sta6cANDDynamic•  DetectRansomwareinreal6me•  Alsosupportcaptures(.etl)

Page 16: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

DetecEngRansomware–OurApproach

MakeETWGreatAgain–Ruxcon2016

ClassifyandDisEllRansomwareBehavior•  Iteratefiles

–  Extensionbased,loca6onbased,etc.•  Read/wri6ngtofiles

–  access6mes,crea6on6mes,differentsizes(readvs.write),loca6on

•  Encryp6on–  AES,custom,GOST,RSA,Blowfish,TripleDES,XOR,RC4,Salsa20,TEA,zip,rar,etc.

•  Move/Rename/Copy/Delete– Manydifferentwaystodealwith“original”file

Page 17: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

DetecEngRansomware–OurApproach(cont.)

MakeETWGreatAgain–Ruxcon2016

IsgeneralizaEonofbehaviorpossibleforallsamples?•  ReadthenWrite

– Yes,butvaries…– Lotsoffalseposi6ves– TimingThreshold?

•  accountforOSdelays,itera6ons,etc.•  FileSizeDelta?

– Encryptedfilevs.original– Differentencryp6on,IVs,etc.,addsize!– Sizesdeltasvary

•  Lotsoffalseposi6vesinbenignprocesses•  FileNameChanges

– Originalfilenamevs.Encrypted– Originalisinencryptedname(insomeform)

•  Almostalways•  Encryp6on

– Toomuchvarianceforgenericrule

Page 18: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

DetecEngRansomware–OurApproach(cont.)

MakeETWGreatAgain–Ruxcon2016

•  GenericDetec6onAlgorithm–  Trackwritestofilesthatwerepreviouslyread

• MustbethesamePID• Mustbewithin6methreshold80ms

– Highestaverage~49ms(Nanolocker)• Mustbewithinsizedeltathreshold1024bytes

– Higherthanneededformalware– Browsercachesandtempfiles

–  IfabovecriteriaismetincrementSuspiciousEventcounter•  SuspiciousEventCounter=3

–  Filterfalseposi6ves•  tempfiles,caching,windowssearch,etc.

PID Time Size Suspicious!

Page 19: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

DetecEngRansomware–OurApproach(cont.)

MakeETWGreatAgain–Ruxcon2016

•  Whichproviderisneeded?–  “WindowsKernel”–  Canuseothersbutnotnecessary

•  Whatdataisneededfromprovider?–  “TypeField”

•  “FileIOReadWriteTraceData”•  Mul6pleEventTypes

–  EventName•  “FileIO/Write”•  “FileIO/Read”

–  “OpCode”•  Sub-typesknowasOpCodes•  representedwithINTandASCIIname

–  OpcodeNames:“Read”,“Write”–  OpcodeValues:0x67,0x68

Page 20: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

Whatcanwedetect?

MakeETWGreatAgain–Ruxcon2016

•  EVERYTHING!(Thatwetested.)

•  Specifically,cerber,chimera,ctb-locker,locky,hydracrypt,jigsaw,lockscreen,mobef,radamant,samsam,shade,teslascrypt,torrentlocker,trucrypter,7ev3n,coverton,kimcilware,petya

•  Genericallydetectedallsamples

•  Eventhosewith(relaCvely)lowdetec6onsonVirusTotal

•  TorrentLocker:

Page 21: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

ETW&RansomwareDetecEonLimitaEons

MakeETWGreatAgain–Ruxcon2016

•  NotPerfect–  Needsatleast3filestobeencryptedtobeeffec6ve

•  DynamicCapturescanbedelayed–  Variesgreatly–  Dependsonnumberofconsumedevents,systemac6vity,etc.–  Usuallysmalldelay

•  HardtoHideSessionsfromMalwareandAEacker–  Easyformalwaretoseewho’s“listening”

•  Trivialtoaccess...

Page 22: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

MalwareDetecEonofETW

MakeETWGreatAgain–Ruxcon2016

HoweasilycanaEackers“see”ETW?•  An6-Analysis?•  Easytoseesessions–logman.exe,C#API•  NoBaselineofsessionsorproviders

– Whicharegood?Whicharebad?

Page 23: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

Tonsofpoten6alETWproviders!•  Someusesareobvious

– Winlogin,SCM,WLAN,WMI,Firewall,UAC,TCPIP,TaskScheduling,SMB,SmartCards,TerminalServices,Powershell,Loca6on,KernelResources/Events,IPSEC,FileHistory/FileManage,DNS/DHCPClient,BlueTooth,Bits,BitLocker,Cryptography,An6malware,LsaSrv,SAM,Ac6veDirectory

•  SomearealiEleless...– Microsol-Windows-Bluetooth-HidBthLE– Microsol-Windows-USB-UCX– Microsol-Windows-WinINet–  Etc….

MosthaveGoodPoten6al•  Allrequirecloserinspec6onbeforeuse

–  Somemorethanothers(USB)•  LotsofMetadata

– Mustbefilteredout

ETWProvidersforRedTeam

MakeETWGreatAgain–Ruxcon2016

Page 24: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

USBKeyLoggingwithETW

MakeETWGreatAgain–Ruxcon2016

•  Mo6va6on–  USBkeyloggingdiscussedbutnotoolsexist–  APIbased,nodependencies

•  Noneedtologtodiskfirst•  More“tac6cal”solu6on

•  ETWisVERBOSE,especiallywithUSB-UCXData

–  ETWprovidesRAWUSBdata–  Requiresweparseitourselves–  USBKeyboardspoll

•  Senddataregardlessofkeypress•  Pollrate:125Hz=8ms

•  Providers

–  Microsol-Windows-USB-UCX-{36DA592D-E43A-4E28-AF6F-4BC57C5A11E8}–  Microsol-Windows-USB-USBPORT-{C88A4EF5-D048-4013-9408-E04B7DB2814A}

•  Pros

–  ETWisINTENDEDfunc6onality(debugging)–  NewTechnique.NoAVcoverage…yet–  Cancapturekeystrokeswhencomputerislocked!

•  Cons–  Real6meETWcapturescanhavedelays–  Requiresadmin

Page 25: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

Microso_MessageAnalyzerFTW!

MakeETWGreatAgain–Ruxcon2016

•  MicrosolMessageAnalyzer(MMA)GREATLYreducedthe“noise”onthewire•  ExcellenttoolforUSB,generalETWtroubleshoo6ng•  DoesmostUSB/ETWparsingforyou–  Fromthis...

–  Tothis!

DataexistsinETWtracessoMicrosol’sTraceEventlibrarycaneasilyretrievedesiredvalues.Sosimple,right?!

Page 26: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

ActuallyParsingEvents

MakeETWGreatAgain–Ruxcon2016

•  UnfortunatelyTraceEventisn’tperfect–  TraceEventreturnsanemptybyte[]withthexferData

•  Weknowdataisthere–  MMA&Xperf,etc(previousslide)

•  HadtodumpthewholeETWpayloadandparseourselves–  JusttakesaliEleextrawork...

Page 27: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

QuickNoteSniffingUSB

MakeETWGreatAgain–Ruxcon2016

Whattodowiththedata?–  Datablobsrepresentrawbytesonthewire+ETWheaders

•  StripoffETWandparsereamingdata•  RemainingdataisUSBRequestBlock(URB)

–  Datafromdevicesmustbeprocessedbydrivers•  Usbxhci.sys->Ucx01000.sys->USBhub3.sys(USB3)•  WecancheatusingETWheaders!

–  HumanInterfaceDevice(HID)datainURB_FUNCTION:_URB_BULK_OR_INTERRUPT_TRANSFER

Source:h*ps://msdn.microso3.com/en-us/library/windows/hardware/dn741264(v=vs.85).aspx

Page 28: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

FilteringandParsingEvents

MakeETWGreatAgain–Ruxcon2016

TurnRawDatainHIDdata•  FindUSBRequestBlocks(URBs)ofinterest

–  UCX_URB_BULK_OR_INTERRUPT_TRANSFER–  “payload”:TransferBuffer

•  FindCorrectpayloadsize–  fid_URB_TransferDataLength

•  KeyboardHIDpackets=8bytes•  MouseHIDpayload=4bytes

•  GetData!–  fid_URB_TransferData

Page 29: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

USBHIDUsageTables

MakeETWGreatAgain–Ruxcon2016

•  fid_URB_TransferData–  “Payload”fromHIDdata=keystroke

•  PayloadisthenmappedtoHIDspec

Page 30: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

ActuallyParsingETWUSBEventsinC#

•  UseETWtofindcorrectURB–  UCX_URB_BULK_OR_INTERRUPT_TRANSFER

•  UseETWtoselectpayloadsizeforkeyboards–  TransferBufferLength

•  ManuallypopulatexferDatawithURBpayload

MakeETWGreatAgain–Ruxcon2016

Page 31: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

MakeETWGreatAgain–Ruxcon2016

(ADEMO)

Page 32: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

DetecEngETWUSBAbacks

MakeETWGreatAgain–Ruxcon2016

• Monitorforuse–  Microsol-Windows-USB-UCX(USB3)–  Microsol-Windows-USB-USBPORT(USB2)–  Poten6alFalsePosi6ves?

•  SuspiciousETWsessions–  Nobaselineof“trustedsessions”

•  SessionscanbeoverwriEen!–  EverythingbutReal-6mesessions–  Stopsprevioussession.Notrestarted

Page 33: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

DetecEngETWUSBAbacks(cont.)

MakeETWGreatAgain–Ruxcon2016

•  Logmanisyourfriend!–  Listalldetailsforasession

Page 34: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

ETWUSBKeyloggerLimitaEons

MakeETWGreatAgain–Ruxcon2016

•  USB…–  Nolaptopsupport(PS/2)– Windows11?!–  Kidding,butwhoknows?

• Windows7+– Windows7:USB2only–  USB3Provider(UCX)notintroducedun6lWindows8

•  Requiresadmin(UAC)•  PerformanceIssues?

–  “Real-6me”filteringandcapturingcandropevents–  Haven’tseenthisoccurinour(limited)tes6ng

Page 35: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

IEInfoLeak

MakeETWGreatAgain–Ruxcon2016

•  Microsol-Windows-WinINet–  AlldatathatpassesthroughtheWinINetlibrary

•  HTTPandHTTPS

•  Noneedtoinjectintobrowserprocess•  WorksevenwhensiteusesHTTPS•  Mostprivateinforma6onexposed

–  URLsvisited(recon)–  Cookies(sessionhijacking)–  POSTparameters(credenCalstealing)

•  WorksonIE,Edge,manyWindows10Apps,andanyprogramusingWinINetforHTTPrequests

•  Similartechniqueusinglogman/wevtu6l–  hEp://securityweekly.com/2012/07/18/post-exploita6on-recon-with-e/–  Requireswri6ngtodiskandparsinginseparatesteps

Page 36: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

Windows10StoreApplicaEonLeaks

MakeETWGreatAgain–Ruxcon2016

•  Fullleaks–  Plain-textpasswordloggedtoETW

•  Par6alleaks–  OAuth2.0orhashing/encryp6ngpassword–  Allowsforhijacksessioncookies/headers

•  AffectedApplica6ons– MostL–  Categories

•  Entertainment•  Financialins6tu6ons•  WindowsStoreandotherbuilt-inapps•  Socialmedia•  EmailProviders•  E-Retailers•  More….

•  Noleaks

Outof15testedApplica6ons:4FullLeaks9ParCalLeaks2NoLeaks

Page 37: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

Microso_-Windows-WinINet

MakeETWGreatAgain–Ruxcon2016

Eventtypes(availableaskeywordsforfiltering,i.e.WININET_KEYWORD_HANDLES)•  HandleEvents–crea6onanddestruc6onofHINTERNEThandles•  HTTPEvents–processingofHTTPrequestsandresponses•  Connec6onEvents–underlyingnetworkopera6ons(TCP,DNS)•  Authen6ca6onEvents•  HTTPSEvents•  AutoproxyEvents•  CookieEvents•  WININET_KEYWORD_PII_PRESENT–keywordforeventsofmul6pletypespoten6allycontainingpersonallyiden6fiableinforma6on

Usefuleventnames•  WININET_COOKIE_STORED,Wininet_UsageLogRequest,WININET_HTTP_REQUEST_HANDLE_CREATED,WININET_REQUEST_HEADER,WININET_REQUEST_HEADER_OPTIONAL,WININET_RESPONSE_HEADER

Page 38: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

LoggingintoGmail

MakeETWGreatAgain–Ruxcon2016

Page 39: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

MakeETWGreatAgain–Ruxcon2016

Page 40: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

MiEgaEon(a.k.a.goodadvice)

MakeETWGreatAgain–Ruxcon2016

•  Don’tuseIEorEdge–  UseChrome,Tor,etc.

•  Useastandard(non-admin)useraccount–  LeaveUACEnabled–  ETWrequiresadmin

•  Onlyruntrustedapplica6onsasadmin•  MonitorforsessionswithWinINetproviderenabled

Whenusingmessagetracingfeature,messagescarryingsensi6veinforma6onsuchascreden6als,personalinforma6on,etc.maybepersistedtothediskorbeviewedbyanyonewhohasaccesstothesystemeventviewer.Asami6ga6ontothisissue,tracingcanbeenabledbySystemorAdministratorusersonWindows2003andlater.~MSDN

Page 41: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

Thanksforcoming!

Specialthanksto–  Ruxcon–  ChrisSpencer–  StanChua–  JohnEiben– MarkMcLarnon–  AndreProtas

MakeETWGreatAgain–Ruxcon2016

Page 42: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

QuesEons?

Blogwww.cyberpointllc.com/srt

Email

[email protected]

Twiber@CyberPoint_SRT

CodeFromourDemos/Research

github.com/CyberPoint/Ruxcon2016ETW

MakeETWGreatAgain–Ruxcon2016

Thanksforcoming!

Page 43: Make ETW Great Again. - Ruxcon ETW Great Again – Ruxcon 2016 • Built-in, general purpose, logging and diagnos6c framework • Efficient: high speed, low overhead • Dynamically

References

MakeETWGreatAgain–Ruxcon2016

MSDNEventTracing•  hEps://msdn.microsol.com/en-us/library/windows/desktop/bb968803(v=vs.85).aspx

USBDeviceClassDefini6onforHumanInterfaceDevices(HID)•  hEp://www.usb.org/developers/hidpage/Hut1_12v2.pd

USBtraceswithMicrosolMessageAnalyzer•  hEps://msdn.microsol.com/en-us/library/windows/hardware/dn741264(v=vs.85).aspx

Viewing/capturingUSBdata•  hEp://www.usblyzer.com/•  hEps://www.microsol.com/en-us/download/details.aspx?id=44226

USB/URB•  hEp://www.beyondlogic.org/usbnutshell/usb5.shtml•  hEps://msdn.microsol.com/en-us/library/windows/hardware/ff538930(v=vs.85).aspx

Ransomwaresamples•  hEps://www.virustotal.com/•  hEps://cyberpointllc.com/products/darkpoint/index.html

XperfBasics:RecordingaTrace(theeasyway)•  hEps://randomascii.wordpress.com/2013/04/20/xperf-basics-recording-a-trace-the-easy-way/

SSLSideJacking•  hEp://wiki.securityweekly.com/wiki/index.php/Episode300