virus hack - creación de shellcodes para exploits en linux-x86
Post on 03-Jan-2016
42 Views
Preview:
TRANSCRIPT
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
rá
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.
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.
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
top related