80
Advanced Buffer Overflow Technique Greg Hoglund

Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Embed Size (px)

Citation preview

Page 1: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Advanced Buffer Overflow Technique

Greg Hoglund

Page 2: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Attack Theory

• Formalize the Attack Method

• Re-Use of Attack Code

• Separate the Deployment from the Payload

• Payloads can be chosen for desired effect

• Details and Restraints of both Payload and Deployment code

Page 3: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Exploits

• A “BUG” in Software

• New bugs reported every day

• “Exploit” is code that takes advantage of a bug in order to cause an effect

Page 4: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

What can happen?

• Machine Crash

• Application Crash (most common)

• Recoverable Exception

• Mobile Code (deadly)

• File Access

• Denial of Service

Page 5: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Exploits can be grouped

• Some bugs are all the same

• Some bugs keep coming back– improper filtering– bounds checking– bad authentication– impersonation

Page 6: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Entry -vs- Effect

• The attack payload is not the same as the entry point

• Missle -vs- Warhead analogy

• sometimes called “Egg -vs- Shell”

Page 7: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Exploits come in 2 parts

• Injection Vector (deployment)– the actual entry-point, usually tied explicity

with the bug itself

• Payload (deployed)– usually not tied to bug at all - limited only by

imagination. Some restraints.

Page 8: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Injection Vector

• Target Dependant

• OS Dependant

• Application Version Dependant

• Protocol Dependant

• Encoding Dependant

Page 9: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Payload

• Independent of Injection Vector

• Still Depends on Machine, Processor, etc.

• Like a Virus

• Once established, can spread by any means

Page 10: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Payload

• Denial of Service

• Remote Shell (common)

• Worm/Virus

• Rootkit (common)

Page 11: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Injector/Payload Pairs

• One injector works on ‘n qualified hosts’

• Example - IIS Injector works on ~20% of Web Hosts.

• Payload– Remote Shell for control– Shutdown Machine– Shutdown ALL Machines on subnet

Page 12: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Types of Injection

• Content Based– characters inserted into a data stream that result

in the remote process doing something it shouldn’t. Process is still in control.

• Buffer Overflow– poor programming practice subverts

architecture of code execution. Process loses control.

Page 13: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Types of Injection

• Trust Based– Boot virus/ Floppy/ CD– MACRO virus– Email Attachments– Web Browsing

Page 14: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Who writes Injector Code?

• 1995 US Defense Intelligence Agency Report– Cuban Military targets US w/ custom virii

• University of Havana, team of less than 20 computer experts

– Russian KGB• prior to 1991 coup attempt, KGB has virii intended

to shut down US computers in times of war

Page 15: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

How hard can it hit?

• 1995 E&Y report– 67% of companies hit bit virus

• 1996 E&Y report– 63% of companies hit by virus

• 1996 UK Information Security Breaches Survey– 51% of companies hit by virus

Page 16: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

How hard can it hit?

• NCSA 1997 report– 33% of all machines infected with virus– average cost of recovery ~$8000 US dollars

• November 1988 Morris Worm– strikes ~6,000 computers (10% of Internet at

time) within hours– spreads via Buffer Overflow in fingerd– spreads via Sendmail exploit

Page 17: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

How hard can it hit?

• 1989, “WANK” Worm– Hits NASA Goddard Space Center– spreads to US DOE High Energy Physics

network (HEPNET)– 2 weeks to clean all systems

• 1998 ADM-W0RM– buffer overflow in Linux DNS server

Page 18: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Buffer Overflow Injection

• Overflow the Stack

• Overflow the Heap

• Must control the value of the instruction pointer (processor specific)

• Goal: Get the Instruction Pointer to point to a user-controlled buffer.

Page 19: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Challenges• Injector/Payload size restrictions

– tight coding requirements

• Injector and Payload in same buffer– cannot step on each other

• Guessing Address Values– sometimes called ‘offsets’

• NULL characters– use encoding and stack tricks

Page 20: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Stack Injection

• Stack is used for execution housekeeping as well as buffer storage.

• Stack-based buffer must be filled in direction of housekeeping data.

• Must overwrite the housekeeping data

Page 21: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Address Housekeeping

•A•B•C•D

•code

•heap

•IP•DI•SI

•FLAG

•SP

•BP

•stack

•IP

Page 22: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Stack Overflow

00 40 20 08

00 40 20 0C

00 40 20 10

00 40 20 14

00 40 20 18

00 40 20 1C

Page 23: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

The Problem with NULL

•STOPS

00 40 20 08

00 40 20 0C

00 40 20 10

00 40 20 14

00 40 20 18

00 40 20 1C

Page 24: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

NULL must be PAST housekeeping data

•OK

00 40 20 08

00 40 20 0C

00 40 20 10

00 40 20 14

00 40 20 18

00 40 20 1C

Page 25: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Little and Big Endian

• On Intel x86 (Little Endian), Values are stored ‘backwards’ - least significant byte goes first:

• 00 40 10 FF is stored as:

FF 10 40 00

Page 26: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

We store address in housekeeping data

00 40 21 04

00 40 21 00

00 40 20 0C

00 40 20 08

00 40 20 04

00 40 20 00

CD 68 45 7FOriginal Address

0C 20 40 00New Address

Page 27: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Injection is Complete

• We control the instruction pointer

04 21 40 00New Address

Page 28: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Where to put the payload

00 40 21 04

00 40 21 00

00 40 20 0C

00 40 20 08

00 40 20 04

00 40 20 00

04 21 40 00New Address

Page 29: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Confined Payload

• Byte Compression

• Use only preloaded functions– Payload doesn’t need to build jumptables– Useable functions must be loaded

• Use Hardcoded addresses– Payload designed for a specific process with

predictable features

• Data portion of payload needs to be small

Page 30: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Using more stack for payload

•OK

77 40 20 08

77 40 20 0C

77 40 20 10

77 40 20 14

77 40 20 18

77 40 20 1C

0D 45 68 77

NO NULL in Address

Page 31: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Much Larger Payload

Page 32: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

When does the address contain a NULL character

• Lowland Address - starts with 00– stack is in lowland on Windows NT

• usually 00 40 XX XX

– limits size of payload

• Highland Address - no zeros in address– stack is in highland under Linux– unlimited payload size

Page 33: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Large payload, Lowland address

• We cannot use a lowland address directly, because it limits our payload

• We can use a CPU register

• We can use stack values that remain undamaged

Page 34: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

A register points to the stack

•A•B•C•D

•code

•heap

•IP•DI•SI

•FLAG

•SP

•BP

•stack

•IP

Page 35: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Call thru a Register

• Call eax, call ebx, etc– FF D0 = call eax– FF D3 = call ebx– FF D1 = call ecx– etc, etc

Page 36: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Push a register then return

• Push register– push eax = 50– push ebx = 53– etc

• Then RET– RET = C3

Page 37: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Guessing where to go

• We jump to the wrong address– crashes software– payload doesn’t execute

• Use NOP (no-op) - a single byte instruction– NOP = 90

• Fill buffer with NOP’s– “NOP Sled”

Page 38: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

NOP Sled

•End up at payload

Page 39: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Inject the Payload into the HEAP

• Environment Variables– HTTP headers

• Protocol Headers

• Recent Transactions

• Open Files

Page 40: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Execute code on the heap

•A•B•C•D

•code

•heap

•IP•DI•SI

•FLAG

•SP

•BP

•stack

•IP

Page 41: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Trespassing the HEAP

• Two C++ objects near one another

• Environment Variable

• Any buffer that can overwrite a pointer– function pointer– string pointer (alter behavior w/o mobile code)

Page 42: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Overwrite the VTABLE

• C++ objects have a virtual function table

•Vtable pointer

•Member variables grow away from vtable pointer (NT)

Page 43: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Overwrite VTABLE

• Must have 2 C++ Objects (on heap)

•Overwrite vtable ptr

Page 44: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Where do I make the VTABLE point?

Page 45: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Your own VTABLE

• The VTABLE has addresses for all virtual functions in the class. This usually includes a destructor - which will be called when the object is destroyed (deallocated from memory)

• Overwrite any function that works

Page 46: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Overwrite Exception Handler

00 40 21 04

00 40 21 00

00 40 20 0C

00 40 20 08

00 40 20 04

00 40 20 00

•Ex-handler04 21 40 00New Handler

•Return addr

Page 47: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

The Payload

• Using Loaded Functions

• Encoding our own data

• Loading new functions & DLL’s

• Making a shell

Page 48: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

The Payload

•Real Code

•DATA

•NOP Sled

Page 49: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Getting Bearings

– Call RELOC:– RELOC: pop edi– edi now has our code address– we can use this as an offset to our data

Page 50: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Getting Bearings

• Call RELOC trick has NULL’s– E8 00 00 00 00– 5F

Page 51: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Getting Bearings w/o using NULL

• BACK: pop ebp

• jmp OVER

• START: call BACK

• OVER:– 5D– EB 05 – E8 F8 FF FF FF

Page 52: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Avoiding NULLS

• mov eax, 0x401AD0FF

• shr eax, 8– EAX results in 00401AD0

• mov eax, 77787748h

• mov edx, 77777777h

• xor eax, edx– EAX results in 000F003F

Page 53: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

XOR Protection

• Cannot have NULL’s in data portion

•XOR every BYTE

Page 54: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

XOR again to decode

•Begin decode

Page 55: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Encode/Decode payload

– MOV EAX, EBP (start of data payload)– ADD EAX, some value

• make eax point past the decoder

• the decoder itself is not encoded

– XOR ECX, ECX– MOVE CX, size of payload

• the 16 bit version of call avoids NULL character

• 66 B9 XX XX -vs-

• B9 XX 00 00 00

Page 56: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Encode/Decode LOOP

• LABEL: XOR [EAX], 0xAA

• INC EAX

• LOOP LABEL– 80 30 AA– 40– E2 FA– NO NULL CHARACTERS

Page 57: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Hardcoded Function Calls

•code

Page 58: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Pros/Cons to hard coding

• PRO: makes code smaller

• CON: what if function isn’t always in same place?– Dynamically loaded DLL’s

• PRO: some DLL’s are *usually* always in the same place– KERNEL32.DLL

Page 59: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Dynamic Function Loading

• Use LoadLibrary() and GetProcAddress()– usually always in same place– hard coding usually works

• Load New DLL’s

• Find any function by ASCII name– handy

Page 60: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Load Function by Name

•Function name stored here

•getprocaddress

Page 61: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Build a jumptable

•getprocaddress

Page 62: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Use Jumptable

Page 63: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

HASH Loading

• Process already has ASCII names of all loaded functions stored in process-header

• We can locate any loaded function by checking the CRC of each loaded ASCII name

• We do not need to store function names in our DATA section - only CRC’s– makes payload smaller!

Page 64: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

PE Header

•PE OFFSET

•Optional Header

•ASCII NAME•Address

Page 65: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Check CRC’s

•CRC

Page 66: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Nybble Compression

• Store each byte as a single nybble

• Doubles capacity of payload

• Only works for a confined set of 16 values– push / pop / add / sub – pop into register, add/sub until desired value– push back onto stack

Page 67: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Limited Character Set

• Payload is filtered

• alphanumeric only (email headers)– short jumps (difficult to maintain) – pop/push– subtract

Page 68: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

The Bridge

•Avoids jump instruction

•size must be calculated exactly

Page 69: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Load New DLL

Page 70: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

WININET.DLL

• Use DLL functions– InternetOpenURL()– InternetReadFile()

• Does all the hard work

• Makes payload smaller

• Download and Execute any file, anywhere

• File stored anonymously - hard to trace

Page 71: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

WS2_32.DLL

• Socket

• bind

• listen

• send

• recv

• accept

Page 72: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Interrupt Calls

• Don’t require addresses

• Small

• Easy to use– Load register with call number– Load register with argument pointer– interrupt (2 bytes long)– CD 2E (interrupt 2E)– CD 80 (interrupt 80)

Page 73: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Remote Command Shell

• Spawn a process– CreateProcessA (kernel32 function)– INT 80 (linux) (execve syscall)

• Pipe the output thru socket– Named pipes (~5 functions) – Winsock / sockets

Page 74: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

WORMS

• Payload searches for new hosts to attack

• Trust Exploitation– sniff passwords on wire– SMB sessions to other NT hosts– NT Registry Alteration– NFS/Drive Sharing

• Consider survivability of Payload– what % of hosts are eligible?

Page 75: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Lysine Deficiency

• Worm will die if certain condition is not met

• Existance of File

• Existance of Network Entity

• Floppy in floppy drive (testing lab)

Page 76: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

RECAP

• Injection is not the same as payload

• Payloads can perform– Denial of Service– WORM– Remote Shell– Rootkit

Page 77: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

RECAP

• Injection has many challenges– NULL characters– Stack size– Highland/Lowland address– Calling thru CPU registers

Page 78: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

RECAP

• Filters limit what we can use in a payload

• Limited OP-CODE sets can still be used to build fully functional programs

Page 79: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

RECAP

• Our payload is encoded

• We can build jumptables

• We can load new DLL’s and Functions

• We can hard-code addresses or load them dynamically

• We can use Lysine Deficiency to keep Worms from spreading uncontrolled

Page 80: Advanced Buffer Overflow Technique Greg Hoglund. Attack Theory Formalize the Attack Method Re-Use of Attack Code Separate the Deployment from the Payload

Thank You

Your mind is your primary weapon

[email protected]

http://www.rootkit.com