40
Creación de Shellcodes para Exploits en Linux/x86 Daniel Fdez. Bleda [email protected] Internet Security Auditors, S.L. HackMeeting III (Madrid, 5 octubre 2002)

Virus Hack - Creación de Shellcodes para Exploits en Linux-x86

Embed Size (px)

Citation preview

Cre

ació

nde

Shel

lcod

es p

ara

Expl

oits

en

Linu

x/x8

6

Dan

ielF

dez.

Bled

adf

erna

ndez

@is

ecau

dito

rs.c

omIn

tern

et S

ecur

ity A

udito

rs, S

.L.

Hac

kMee

ting

III(M

adrid

, 5oc

tubr

e20

02)

Índi

ce(I)

Parte

TEÓ

RIC

A.U

npo

code

hist

oria

.C

once

ptos

bás

icos

:reg

istro

s,m

emor

ia, A

SM, e

tc.

Tipo

sde

exp

loits

.M

odo

deac

tuac

ión

deca

da ti

pode

exp

loit.

Sist

emas

depr

otec

ción

“ant

i-exp

loits

”.M

étod

osde

evas

ión

anti

prot

ecto

res

depi

la/h

eap.

Prog

ram

ació

nde

shel

lcod

es p

ara

expl

oits

.M

étod

osde

evas

ión

ensh

ellc

odes

anti

IDS.

Índi

ce(II

)

Parte

PRÁC

TIC

A.Fu

ncio

nam

ient

o bá

sico

de e

xplo

its:

Stac

k.H

eap

(poi

nter

/func

tion

poin

ter/V

PTR

ove

rwrit

e).

Form

at S

tring

.C

asos

dere

ales

:R

emot

e ro

ot c

on u

n b0

f.R

emot

e ro

ot c

on u

n ex

ploi

t de

form

ato

(Pos

adis

DN

S, W

ashi

ngto

n U

nive

rsity

(wu-

ftp) F

TP).

El p

rimer

Exp

loit

2 de

novi

embr

ede

198

8, u

ngu

sano

, el

"Inte

rnet

Wor

m",

caus

a lo

s m

ayor

es d

años

de la

hist

oria

,has

ta e

nton

ces.

..b0

f en

finge

rdy

repl

icac

ión

con

send

mai

l.D

esde

ent

once

s, s

eha

n ex

plot

ado

buffe

r ov

erflo

ws

ento

do ti

pode

aplic

acio

nes

y en

todo

tipo

desi

stem

as o

pera

tivos

.

LaM

emor

íade

un

Proc

eso

top memory

func2(argy1..argyn)

ret

ret

call func1

call func2

func1(argx1..argxn)

varu1, u2

varv1, v2

STACK

HEAP

argx1..argxn

argy1..argyn

u1, u2

v1, v2

./programa

bottom memory

Con

cept

osde

ASM

(I):

Reg

istr

os

Registro

Nombre

Funciones

*a*

Acumulador

Tipo syscall

Valor de retorno

Funciones I/O

*b*

Base

Parametro 1º

Valor de retorno

*c*

Contador

Contador en bucles

Parámetro 2º

Valor de retorno

*d*

Datos

I/O a puertos

Parámetro 3º

Aritméticas

Syscalls

esp

Frame PointerTop frame actual de la pila

ebp

Stack PointerBase frame actual de la pil

eip y edi

Segmentos

Paso de datos en el scode

e*x

(32b

), *x

(16b

), *h

(8b

+si

g), *

l (8b

–si

g).

Con

cept

osde

ASM

(I):

Inst

rucc

ione

sy

tipo

deda

tos

Instrucción

Función

mov

mover datos entre/de/a un registro/memoria

inc

incrementar un registro

dec

decrementar un registro

add

sumar algo a/desde un registro

sub

restar algo a/desde un registro

xor

0 xor 0=0;0 xor 1=1;1 xor 0=1;1 xor 1 = 0;

lea

int

ejecuta una interrupción: syscall(0x80)

push

añade un elemento en la pila

pop

extrae un elemento de la pila

pasar un dato en mem a un registro (load

effective address)

LaPi

la

Pará

met

ros

enlla

mad

asa

func

ione

s.Va

riabl

es lo

cale

s.Va

lore

sde

reto

rno.

Perm

itir c

ontro

lare

lflu

jode

ejec

ució

n tra

s un

a lla

mad

aa

func

ión.

Lapi

laen

una

llam

ada

afu

nció

n

int funcion(int

x,

int

y,

int

z)

{int

i = 4;

return (x + i);

} int

main()

{funcion(0, 1, 2);

return 0;

}

bottom of top of

memory memory

<----

isfp ret 0 1 2

<----

[ ][ ][ ][ ][ ][ ]

top of bottom of

stack stack

Expl

otan

dola

pila

(I):

Cam

bian

doel

flujo

deej

ecuc

ión

Voidfuncion(inta,intb,intc)

{char buffer1[5];

char buffer2[10];

int*ret;

ret = buffer1 + 12;

(*ret) += 8;

} intmain()

{intx;

x = 0;

funcion(1, 2, 3);

x = 1;

printf("%d\n",x);

}

Si p

odem

os

mod

ifica

rla

dire

cció

nde

reto

rno

(ret)

guar

dada

de fo

rma

impl

icita

por

“cal

l”po

drem

os v

aria

rel

flujo

nor

ma

deej

ecuc

ión.

¡x =

1 =

0 !

Hea

p

Espa

cio

para

varia

bles

que

empl

ean

mem

oria

de fo

rma

diná

mic

a.El

espa

cio

es re

serv

ado

porl

aap

licac

ión.

Expl

otan

doel

Hea

p (I)

:G

ener

alid

ades

Esm

ás d

ifíci

lde

cons

egui

r que

el s

tack

ov

erflo

w.

Basa

doen

técn

icas

div

ersa

s:So

bree

scrit

ura

deap

unta

dore

sa

func

ione

s.So

bree

scrit

ura

deVt

able

s.Ex

plot

ació

nde

libre

rías

mal

loc.

Req

uier

e co

ndic

ione

s co

ncer

nien

tes

a la

orga

niza

ción

de u

npr

oces

oen

lam

emor

ia.

Expl

otan

doel

Hea

p (II

):So

bree

scrit

ura

depu

nter

os

Req

uier

eun

orde

n es

trict

oen

lade

clar

ació

nde

var

iabl

es:

Esdi

fícil

que

sepr

oduz

ca e

sta

cond

ició

n.R

equi

ere

loca

lizar

ladi

recc

ión

dear

gv[1

].Es

inde

pend

ient

ede

l SO

.

...

static charbuf[BUFSIZE];

static char *ptr;

...

buf

ptr

buf

ptr

/tmp/tmpfile.tmp

/root/.rhosts

Expl

otan

doel

Hea

p (II

):So

bree

scrit

ura

depu

nter

osa

func

ione

s

Req

uier

eun

orde

n es

trict

oen

lade

clar

ació

nde

var

iabl

es:

Esdi

fícil

que

sepr

oduz

ca e

sta

cond

ició

n.Pe

rmite

eje

cuta

r otra

func

ión

osh

ellc

ode.

...

static charbuf[BUFSIZE];

staticint(*funcptr)(const char *str);

...

buf

ptr

buf

ptr

int funcptr(char *str)

system(“/bin/sh”)

Expl

otan

doel

Hea

p (IV

):A

ltera

ndo

VPTR

Tab

les

(C++

) -1

Expl

ota

elm

ecan

ism

o di

nám

ico

dela

s lla

mad

asa

func

ione

s vi

rtual

esen

una

clas

e.Po

cas

aplic

acio

nes

sede

sarro

llan

en C

++,

con

loqu

e es

com

plic

ado

deex

plot

ar.

Prec

ondi

ción

:Nec

esita

que

se d

ecla

re u

n bu

ffer y

una

func

ión

virtu

alde

ntro

de la

clas

ea

expl

otar

.

Expl

otan

doel

Hea

p (V

):A

ltera

ndo

VPTR

Tab

les

(C++

) -2

classBaseClass

{private:

char Buffer[100];

public:

void

SetBuffer(char *String) {

strcpy(Buffer,String);

} virtual voidPrintBuffer() {

printf("%s\n",Buffer);

}};

class MyClass1:publicBaseClass

{public:

void

PrintBuffer()

{ printf("MyClass1: ");

BaseClass::PrintBuffer();

}};

B son

los

bytes Buffer Object[0]: BBBBBB....BBBBBBBVVVV

V el byte de la VPTR a VTABLE_MyClass1

=+==

Ies información

de la

clase que

+--------------------+

hereda

de

BaseClass

(MyClass1) +--> IIIIIIIIIIIIIIIPPPP

Pes

elapuntador

a la fun.

PrintBuffer

VTABLE_MyClass1

+----(1)---<------------------+ S

es

la dir. de

inicio

del

shcode

| ==+= N bytes de

alineamiento

(NOPs)

SSSS..SSSS..NNN..CCCCC..CCCCVVVV0 C

codigo

delshellcode

| + V

Puntero

a la

función

virtual

+----(2)--->-----+ 0 0x00h

que finaliza

el buffer

Expl

oits

de

Form

at S

trin

g (I)

Empl

ea u

na té

cnic

a re

cien

te(1

999)

,per

o ex

plot

a vu

lner

abilid

ades

que

exi

stía

n de

sde

hace

año

s(d

e 2

a 6

yha

sta

8).

Expl

ota

lapo

sibi

lidad

depo

der p

asar

di

rect

amen

tea

una

func

ion

*prin

tfun

pará

met

rono

pars

eado

: printf(input).

Apro

vech

abu

gs d

epr

ogra

mac

ión

fáci

les

deen

cont

rar.

write-anything-anywhere

.

Expl

oits

de

Form

at S

trin

g (II

)

Empl

ean

laca

paci

dad

depo

der d

espl

azar

se

porl

am

emor

ia d

efin

iend

olo

ngitu

des

denu

mer

osen

una

cade

nade

form

ato

(%N

x).

Y la

utilid

adde

una

opci

ón, %

n,qu

e de

vuel

vela

cant

idad

de b

ytes

escr

itos

prev

iam

ente

.D

espl

azan

dono

s po

rla

mem

oria

ysa

bien

dola

posi

ción

dem

emor

iaa

escr

ibir

yde

scom

poni

éndo

la m

edia

nte

%hn

,pod

emos

es

crib

irw

ord

a w

ord,

esta

pos

ició

n.

Shel

lcod

es(I)

Es u

nco

njun

tode

inst

rucc

ione

s co

mpi

lada

sde

ensa

mbl

ador

que

real

izan

una

func

ión

norm

alm

ente

sim

ple

y co

nun

as

rest

ricci

ones

pre

cisa

s de

bido

asu

uso

.To

ma

elno

mbr

ea

supr

imer

obje

tivo:

ejec

utar

unashell.

Shel

lcod

es(II

):H

erra

mie

ntas

gdb:

deb

ug/tr

ace.

nasm

:com

pila

ción

decó

dido

ens

ambl

ador

.di

sasm

:des

embl

ado/

anál

isis

desc

odes

.U

nej

ecut

orde

shel

lcod

es.

Un

conv

ertid

orde

scod

esa

bina

rios

para

an

ális

isde

shel

lcod

es.

Shel

lcod

es(II

):Li

mita

cion

es

NU

LL b

yte:

No

pued

en c

onte

ner\

00 (e

os).

Addr

essi

ng p

robl

em: N

o se

pued

en e

mpl

ear

dire

cció

nde

mem

oria

hardcoded.

Tam

año:

No

sesu

ele

disp

oner

de b

uffe

rsm

uy g

rand

es. E

lshe

llcod

eha

de

ser

redu

cido

.

Shel

lcod

es(IV

):M

étod

osde

evas

ión

anti

IDS

Ofu

scac

ión

deca

dena

s se

nsib

les

a la

dete

cció

n(p

.e. “

/bin

/sh”

).Sh

ellc

odes

alfa

núm

eric

os(R

aise

(n

etse

arch

),rix

(Phr

ack)

).Sh

ellc

odes

com

prim

idos

.

Sist

emas

depr

otec

ción

“A

nti-e

xplo

its”:

Intr

oduc

ción

Lam

ayor

íade

exp

loits

son

posi

bles

gr

acia

sa

func

ione

sC

no

fiabl

es(e

.jst

rcpy

,sp

rintf,

..).

Dos

mec

anis

mos

depr

otec

ción

:Lib

safe

,G

rsec

urity

,Sta

ckG

uard

ySt

ackS

hiel

d.

Sist

emas

depr

otec

ción

“A

nti-e

xplo

its”:

Libs

afe

(I)

Libr

ería

que

rees

crib

e fu

ncio

nes

sens

ible

sde

lalib

rería

libc

(strc

py,s

trcat

,spr

intf,

vspr

intf,

fsca

nf,

scan

f,ss

canf

,..).

Lanz

a al

erta

sen

caso

dede

tect

arun

posi

ble

inte

nto

de b

uffe

r ove

rflow

.Li

brer

ía d

inám

ica.

Car

gada

enm

emor

iaan

tes

que

cual

quie

r otra

libr

ería

.In

terc

epta

las

llam

adas

afu

ncio

nes

pelig

rosa

sde

libc

yut

iliza

lasu

yaen

su lu

gar.

Det

ecta

vio

laci

ones

enlo

s lím

ites

de b

uffe

rsIn

fo: h

ttp://

ww

w.re

sear

ch.a

vaya

labs

.com

/pro

ject

/libs

afe/

Sist

emas

depr

otec

ción

“A

nti-e

xplo

its”:

Libs

afe

(II)

char *strcpy

(char *dest, const char *src)

{char *temp =

dest;

while ((*dest= *src)!= '\0')

/*nothing*/

return

tmp;

}

char *strcpy

(char *dest, const char *src)

{...

if ((len

=strlen(src, max_size)) == max_size) /*overflow?*/

_libsafe_die(“Overflow caused by

strcpy()”);

memcpy(dest,src,len+1); /*

libreria estandard

de C

*/

return

dest;

}strc

pyde

Libs

afe:

max

_siz

e:di

stan

cia

(#by

tes)

entre

des

ty e

l fra

me

poin

ter d

ede

st=>

tam

año

máx

imo

posi

ble

que

pued

e te

ner d

est.

strc

pyor

igin

al:

Fin

debu

cle

cont

rola

do

únic

amen

te p

orel

fin

deca

dena

'\0' !

!!

Sist

emas

depr

otec

ción

“A

nti-e

xplo

its”:

Libs

afe

(III)

Bene

ficio

sFá

cild

ein

stal

ar. N

o se

nece

sita

reco

mpi

lare

l ker

nel

Buen

a o

Mej

orpe

rform

ance

.Strc

atde

libsa

f es

más

pido

que

el o

rigin

al.

Inco

nven

ient

esEm

bedd

ed F

ram

e Po

inte

r =>

gcc

con

-fom

it-fra

me-

poin

ter

Pode

mos

eje

cuta

rexp

loits

basa

dos

enso

bree

scrit

ura

depu

nter

osa

fiche

ros

ofu

ncio

nes

(sin

sobr

epas

arel

m

ax_s

ize)

Sist

emas

depr

otec

ción

“A

nti-e

xplo

its”:

GrS

ecur

ity

Con

junt

ode

par

ches

para

el k

erne

l.O

frece

nla

posi

bilid

adde

hace

r las

area

s de

mem

oria

stac

k y

heap

no

ejec

utab

le.

Ope

n W

all-

> St

ack

PaX

-> H

ead

y St

ack

ww

w.g

rsec

urity

.net

Sist

emas

depr

otec

ción

“A

nti-e

xplo

its”:

Ope

n W

all (

I)

arch

/i386

/ker

nel/t

raps

.cSe

gmen

tatio

n fa

ult:

Cua

ndo

suce

deun

even

tode

mem

oria

ines

pera

do, s

epr

oces

aen

lafu

nció

ndo

_gen

eral

_pro

tect

ion.

do_g

ener

al_p

rote

ctio

n:Si

est

ado

delo

s re

gist

ros

nore

fleja

nin

guna

dela

s si

tuac

ione

s pr

evis

tas

=>

Ope

n W

allo

frece

nue

vas

posi

bilid

ades

dean

alis

is.

Si a

lgun

ade

los

anal

isis

pro

porc

iona

dos

por

Ope

n W

alld

etec

taun

inte

nto

deej

ecut

ar

inst

rucc

ione

sen

lapi

la=>

Se

lanz

a un

a al

erta

Sist

emas

depr

otec

ción

“A

nti-e

xplo

its”:

Ope

n W

all (

II)

security_alert("return onto stack by "

DEFAULTSECMSG, "returns onto stack",

DEFAULTSECARGS);

... Current->thread.error_code = error_code;

current->thread.trap_no = 13;

force_sig(SIGSEGV, current);

return;

gp_in_vm86:

handle_vm86_fault((struct

kernel_vm86_regs*)regs, error_code);

return;

gp_in_kernel:

{unsigned longfixup;

fixup=

search_exception_table(regs->eip);

if (fixup) {

regs->eip=fixup;

return;

} die("general protection

fault",regs, error_code);

}}

asmlinkagevoid do_general_protection(struct

pt_regs*regs, long error_code)

{ #ifdefCONFIG_GRKERNSEC_STACK

unsigned longaddr;

#ifdefCONFIG_GRKERNSEC_STACK_GCC

unsigned charinsn;

interr, count;

#endif

#endif

if (regs->eflags& VM_MASK)

goto gp_in_vm86;

if (!(regs->xcs& 3))

goto gp_in_kernel;

#ifdefCONFIG_GRKERNSEC_STACK

.....

/* * * Check if we are returning to the stack

area, which is only likely to happen * * when

attempting to exploit a buffer overflow. * */

if ((addr& 0xFF800000) == 0xBF800000 || (addr

>= PAGE_OFFSET -_STK_LIM &&addr<

PAGE_OFFSET))

Sist

emas

depr

otec

ción

“A

nti-e

xplo

its”:

PaX

(I)

Util

iza

los

mec

anis

mos

depa

gina

ción

(PTE

, DTL

B, IT

LB):

Cua

ndo

se p

rodu

ce u

nfa

llode

pági

nala

CPU

carg

ala

nuev

a pá

gina

util

izan

doel

PTE

,qu

e co

ntie

ne

los

perm

isos

par

a ca

da p

ágin

a.C

ontro

la la

s pá

gina

sde

mem

oria

ej

ecut

able

s m

edia

nte

unsi

stem

ade

esta

dos

ytra

nsic

ione

s.Im

plem

enta

nu

evas

func

iona

lidad

esen

el

mec

anis

mo

para

el c

ontro

l de

los

fallo

sde

pági

na=>

arc

h/i3

86/m

m/fa

ult.c

Sist

emas

depr

otec

ción

“A

nti-e

xplo

its”:

PaX

(II)

Inco

nven

ient

esde

no

perm

itirl

aej

ecuc

ión

decó

digo

en la

pila

o el

hea

p:Al

guna

s ap

licac

ione

sno

func

iona

n:Se

rvid

ores

XFre

e86-

4. Leng

uaje

s co

mo

Java

tiene

VMqu

e re

quie

ren

un s

tack

ejec

utab

le.

Sist

emas

depr

otec

ción

“A

nti-e

xplo

its”:

PaX

(III)

Ret

urn

into

libc

Evas

ión

para

PaX

o O

pen

Wal

lN

oej

ecut

a có

digo

en la

pila

o he

ap ->

llam

ada

aun

a fu

nció

nde

lalib

rería

libc

(sys

tem

()). R

et =

@fu

nció

na

llam

arSó

lo n

eces

itam

os s

aber

@fu

nció

na

llam

ar.

Solu

ción

PaX

:C

ambi

arla

dire

cció

nde

la

func

ión

cada

vez

que

se ll

ama

=>m

map

rand

omiz

atio

n=>

Fuer

za B

ruta

Sist

emas

depr

otec

ción

“A

nti-e

xplo

its”:

Stac

kGua

rd

Técn

ica

deco

mpi

laci

ón.

“Per

mite

elim

inar

stac

k sm

ashi

ng a

ttack

s”.

“can

ary”

cerc

ade

ladi

recc

ión

dere

torn

o.Si

cana

ry h

asi

do a

ltera

ndo

cuan

dola

func

ión

reto

rno

=>in

tent

ode

ataq

ue=>

aler

ta.

Can

ary

Spoo

fing:

Ter

min

ator

(NU

LL, C

R,

LF, E

OF)

, Ran

dom

, etc

.

Sist

emas

depr

otec

ción

“A

nti-e

xplo

its”:

Stac

kShi

eld

Util

idad

que

per

mite

aña

dir p

rote

cció

nen

tiem

pode

com

pila

ción

.So

loco

ntro

lam

osel

códi

go q

ue

com

pila

mos

nos

otro

s. N

opo

dem

os

cont

rola

r bin

ario

s qu

e in

stal

amos

por

ej

empl

o m

edia

nte

paqu

etes

RPM

.w

ww

.ang

elfir

e.co

m/s

k/st

acks

hiel

d/

Bib

liogr

afía

(I):

Stac

k O

verf

low

s

prym

: “fin

ding

and

exp

loiti

ng p

rogr

ams

with

buf

fer o

verfl

ows”

.

http

://de

stro

y.ne

t/mac

hine

s/se

curit

y/bu

ffer.t

xt

lefty

: “Bu

ffer o

verru

ns,w

hats

the

real

sto

ry".

http

://re

ality

.sgi

.com

/nat

e/m

achi

nes/

secu

rity/

stac

k.nf

o.tx

t

keka

bron

: “Bu

ffer O

verfl

ows

(b0f

’s)”.

Net

sear

ch E

zine

#4 (0

x11)

.

http

://w

ww

.net

sear

ch-e

zine

.com

klog

: “Th

e Fr

ame

Poin

ter O

verw

rite"

.Phr

ack

#55

(0x0

8).

http

://w

ww

.phr

ack.

org/

show

.php

?p=5

5&a=

8

Alep

h1: “

Smas

hing

the

Stac

k fo

r Fun

and

Pro

fit”.

Phra

ck#4

9 (0

x05)

.

http

://w

ww

.phr

ack.

org/

show

.php

?p=5

6&a=

5

Bib

liogr

afía

(II):

Hea

p O

verf

low

s

Fayo

lle, P

ierre

-Ala

in;G

laum

e,Fa

yolle

: “A

Buffe

r Ove

rflow

Stu

dy. A

ttack

s &

Def

ense

s".

http

://w

ww

.ens

eirb

.fr/~

glau

me/

bof/r

epor

t.htm

l

Mat

t Con

over

& w

00w

00 S

ecur

ity T

eam

: “w

00w

00 o

n H

eap

Ove

rflow

".

http

://w

ww

.w00

w00

.org

/art

icle

s.ht

ml

cafo

: “H

eaps

Ove

rflow

s (1

/2)”.

Net

sear

ch E

zine

#4 (0

x14)

.

http

://w

ww

.net

sear

ch-e

zine

.com

rix: “

Smas

hing

C++

VPT

RS"

.Phr

ack

56 (0

x08)

.

http

://w

ww

.phr

ack.

org/

show

.php

?p=5

6&a=

8

twitc

h: “T

akin

g ad

vant

age

of n

on-te

rmin

ated

adj

acen

t Mem

ory

Spac

es”.

Phra

ck56

(0

x0e)

.

http

://w

ww

.phr

ack.

org/

show

.php

?p=5

6&a=

14

Bib

liogr

afía

(III):

Strin

g Fo

rmat

exp

loits

gera

&riq

: "Ad

vanc

es in

form

at s

tring

exp

loiti

ng".

Phra

ck59

(0x0

7).

http

://w

ww

.phr

ack.

org/

show

.php

?p=5

9&a=

7

scut

/team

teso

: "Ex

ploi

ting

Form

at S

tring

Vul

nera

bilit

ies"

.

http

://te

so.s

cene

.at/r

elea

ses/

form

atst

ring-

1.2.

tar.g

z

Um

esh

Shan

kar:

“Det

ectin

g Fo

rmat

Stri

ng V

ulne

rabi

litie

s w

ith T

ype

Qua

lifie

rs”.

http

://qb

0x.n

et/p

aper

s/Fo

rmat

Strin

g/us

enix

01/u

seni

x01.

pdf

Rai

Se: “

Bugs

de

Form

ato

(1/2

)”.N

etSe

arch

Ezi

ne.

http

://w

ww

.net

sear

ch-e

zine

.com

The

Itch:

“Exp

loiti

ng lo

cal f

orm

at s

tring

hol

es o

n x8

6/lin

ux”.

http

://qb

0x.n

et/p

aper

s/Fo

rmat

Strin

g/fm

tpap

er.tx

t

Fréd

éric

Ray

nal:

“How

tore

mot

ely

and

auto

mat

ical

ly e

xplo

it a

form

at b

ug”.

http

://w

ww

.sec

urity

-labs

.org

/cvR

ayna

l.pdf

Bib

liogr

afía

(IV):

Writ

ing

Shel

lcod

es(I)

Fayo

lle, P

ierre

-Ala

in;G

laum

e,Fa

yolle

: “A

Buffe

r Ove

rflow

Stu

dy. A

ttack

s &

Def

ense

s".

http

://w

ww

.ens

eirb

.fr/~

glau

me/

bof/r

epor

t.htm

l

Mat

t Con

over

& w

00w

00 S

ecur

ity T

eam

: “w

00w

00 o

n H

eap

Ove

rflow

".

http

://w

ww

.w00

w00

.org

/art

icle

s.ht

ml

Um

esh

Shan

kar:

“Det

ectin

g Fo

rmat

Stri

ng V

ulne

rabi

litie

s w

ith T

ype

Qua

lifie

rs”.

http

://qb

0x.n

et/p

aper

s/Fo

rmat

Strin

g/us

enix

01/u

seni

x01.

pdf

Rai

Se: “

Shel

lcod

esen

Lin

ux/i3

86”.

Net

sear

ch E

zine

#4 (0

x04)

.

http

://w

ww

.net

sear

ch-e

zine

.com

Rai

Se: “

Shel

lcod

esen

Lin

ux/i3

86 (2

)”.N

etse

arch

Ezi

ne#5

(0x0

4).

http

://w

ww

.net

sear

ch-e

zine

.com

The

Last

Sta

ge o

f Del

irium

Res

earc

h G

roup

: “U

NIX

Ass

embl

y C

odes

Dev

elop

men

t for

Vu

lner

abilit

ies

Illus

tratio

n Pu

rpos

es”.

Vers

ion

1.0.

2.

http

://ls

d-pl

.net

/pap

ers.

htm

l#as

sem

bly

Bib

liogr

afía

(IV):

Writ

ing

Shel

lcod

es(II

)

Zillio

n: “W

ritin

gSh

ellc

ode”

.

http

s://u

hf.a

th.c

x/pa

pers

/Writ

ing_

shel

lcod

e.ht

m

Miy

agi,

Rob

in: “

Linu

x As

sem

bler

Tut

oria

l”.

http

://w

ww

.geo

citie

s.co

m/S

ilico

nVal

ley/

Rid

ge/2

544

“Lin

ux S

yste

m C

all T

able

”.

http

://qu

aff.p

ort5

.com

/sys

call_

list.h

tml

UN

F &&

pr1

: “W

ritin

g Li

nux/

x86

shel

lcod

esfo

rdum

dum

s”.

http

://w

ww

.u-n

-f.co

m/p

aper

s/sh

ellc

ode-

pr10

n.tx

t

Bib

liogr

afía

(V):

Sist

emas

depr

otec

ción

/eva

sión

.

Bulb

aan

d Ki

l3r:

“Byp

assi

ngSt

ackG

uard

and

Stac

kShi

eld”

.Phr

ack

56 (0

x05)

.

http

://w

ww

.phr

ack.

org/

show

.php

?p=5

6&a=

5

“Byp

assi

ngPa

XAS

LR P

rote

ctio

n”.P

hrac

k59

(0x0

9).

http

://w

ww

.phr

ack.

org/

show

.php

?p=5

9&a=

9

Ner

gal:

“The

adv

ance

d re

turn

-into

-lib(

c) e

xplo

its (P

aXca

se s

tudy

)”.Ph

rack

58 (0

x04)

.

http

://w

ww

.phr

ack.

org/

show

.php

?p=5

8&a=

4

Cow

an,C

rispi

n;W

agle

, Per

ry;P

u,C

alto

n; B

eatti

e, S

teve

; Wal

pole

, Jon

atha

n: “B

uffe

r O

verfl

ows:

Atta

cks

and

Def

ense

sfo

r the

Vul

nera

bilit

y of

the

Dec

ade”

http

://w

ww

.cse

.ogi

.edu

/DIS

C/p

roje

cts/

imm

unix

Fayo

lle, P

ierre

-Ala

in;G

laum

e,Fa

yolle

: “A

Buffe

r Ove

rflow

Stu

dy. A

ttack

s &

Def

ense

s".

http

://w

ww

.ens

eirb

.fr/~

glau

me/

bof/r

epor

t.htm

l