44con 2014 - advanced excel hacking, didier stevens

41
Advanced Excel Hacking Workshop Didier Stevens http://.DidierStevens.com/excel.zip

Upload: 44con

Post on 18-Dec-2014

213 views

Category:

Technology


5 download

DESCRIPTION

44CON 2014 - Advanced Excel Hacking, Didier Stevens This is a workshop on hacking Excel on Windows without exploits. Visual Basic for Applications (VBA) is a powerful programming language, more powerful than VBScript, because it has access to the Windows API. What I teach in this workshop is applicable to all applications with VBA support (Word, Powerpoint, AutoCAD, …), but I choose Excel because of its prevalence and its tabular GUI that is particularly suited for inputting and outputting data. I illustrate 2 major hacking techniques on Excel: pure VBA and VBA mixed with with special shellcode and DLLs.

TRANSCRIPT

Page 1: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Advanced Excel Hacking Workshop

Didier Stevens

http://.DidierStevens.com/excel.zip

Page 2: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

No Exploits

Just Features

Page 3: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Unzip excel.zip to c:\excel

Password: Workshop

Page 4: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

VBA (Visual Basic for Applications)

is a complete Windows programming language

Page 5: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

VBS (Visual Basic Script)

is NOT a complete Windows programming language

Page 6: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

VBA has access to the Windows API

Page 7: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

VBA: MS Office (Word, Excel Powerpoint, …), AutoCAD, ...

Page 8: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Excel: what I prefer as a User Interface

Page 9: 44CON 2014 - Advanced Excel Hacking, Didier Stevens
Page 10: 44CON 2014 - Advanced Excel Hacking, Didier Stevens
Page 11: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Exercise 1:

“Hello World” message box with VBA

Page 12: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

VBA7

Introduced with Office 2010

Support for 64-bit

Page 13: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

32-bit Excel or 64-bit Excel?

Page 14: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Excel 2007 or earlier: 32-bit

Page 15: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Excel 2010 or 2013:

Check File/Help

Page 16: 44CON 2014 - Advanced Excel Hacking, Didier Stevens
Page 17: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

3 new VBA7 keywords:

PtrSafeLongLongLongPtr

Page 18: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

2 new VBA7 compilation constants

VBA7Win64

Page 19: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

I use Win64

If Win64 is defined, I know that I'm using VBA7 on a 64-bit application

Thus I use the new keywords(PtrSafe, LongLong, LongPtr)

Page 20: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

If Win64 is not defined, I know that I am on 32-bit application.

And then I DO NOT use the new keywords.

Page 21: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Exercise 2:

“Hello World” message box with API

32-bit, 64-bit & both

Page 22: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

API functions:

not only basic types as arguments,

but also structures

Page 23: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Private Declare PtrSafe Sub GetSystemTime Lib "kernel32.dll" (st As SYSTEMTIME)

Page 24: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Private Type SYSTEMTIME wYear As Integer wMonth As Integer wDayOfWeek As Integer wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer wMilliseconds As IntegerEnd Type

Page 25: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Exercise 3:

GetSystemTime

32-bit, 64-bit & both

Page 26: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

InstalledPrograms

Page 27: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

NetworkMashup-32

Page 28: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

TaskManager.xls / TaskManagerSC.xls

Page 29: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Problem: writing a lot of VBA code

Page 30: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Datapipe

Page 31: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Modify C source code datapipe

datapipe.exe → datapipe.dll

Page 32: 44CON 2014 - Advanced Excel Hacking, Didier Stevens
Page 33: 44CON 2014 - Advanced Excel Hacking, Didier Stevens
Page 34: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

DLL to shellcode

CreateMemoryModuleShellCode.py datapipe-dll.dll datapipe-dll.dll.bin

Page 35: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Shellcode to VBA

shellcode2vba.py datapipe-dll.dll.bin datapipe-dll.dll.bin.base64.vba

Page 36: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

ReactOS cmd and regedit

Page 37: 44CON 2014 - Advanced Excel Hacking, Didier Stevens
Page 38: 44CON 2014 - Advanced Excel Hacking, Didier Stevens
Page 39: 44CON 2014 - Advanced Excel Hacking, Didier Stevens
Page 40: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

Putty

Page 41: 44CON 2014 - Advanced Excel Hacking, Didier Stevens

20% discount sale for Brucon:

PDF Analysis workshop videos on CD: €20

White Hat Shellcode workshop videos on CD: €20

x64 workshop videos on CD: €20

All videos on CD: €50

http://DidierStevensLabs.com