<-!-> Taller de Stack Overflows en Windows, por Rojodos

Iniciado por Rojodos, 16 Febrero 2005, 12:36 PM

0 Miembros y 1 Visitante están viendo este tema.

Sha0

#50
Hehe stack overflow es una tecnica antigua y sencilla, la gracia está en petar las protecciones que impiden que se desvíe el flujo de ejecución.

¿alguien por aqui esta investigando como petar protecciones grsecurity, safe-SEH, kernel match protection, DEP, ASLR?

Voy a ir publicando algunas tecnicas en mi blog, os animo a seguir en el tema y  meterle mucha caña a la protarmacion a bajo nivel.
No intentes doblar la cuchara, eso es imposible.
Solo intenta comprender la realidad ...
que no hay cuchara.
-- a hacker --

opsmc


Hola a todos, desde hace unos dias me he dedicado <<por sobra de tiempo  :( despedido injustamente  ;D>> a hacer algunas travesuras por la red este foro se me hace de poca m... en horabuena

Sin embargo tengo una triste duda de novato (ojo ya busque en la ayuda bla bla)  :rolleyes:de donde carajos bajo el adjunto  :huh:


Esta como archivo adjunto, para descargarlo, hay que estar registrado :P  ;D (cosas del admin)  ;D
La red es el único lugar donde podemos ser realmente nosotros, no reglas, no máscaras...

zhynar_X

Me he creado un blog:
http://zhynar.blogspot.com  Aver si os gusta! ;)


Optimista es aquel que cree poder resolver un atasco de trafico tocando el claxon (Anonimo)

~[uNd3rc0d3]~

que buen manual, aun lo estoy leyendo, pero me surguio una duda, en una partes cuando explicabas el primer codigo, en fin apretavas F8 para ver lo que venia y pusiste esto

0022FF00   0022FF28  ASCII "14AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA (muchas
AAAAs) AAAAAAAAAAAAAAAAAAA"
0022FF04   003D24A3  ASCII "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA (muchas
AAAAs) AAAAAAAAAAAAAAAAAAA"
0022FF08   0022FF70  ASCII "AAAAAAAAAAAAAAAAAAAAAA(muchas AAAAs)
AAAAAAAAAAAAAAAAAAAAAAAA"
0022FF0C   004012C4  RETURN to vuln1.004012C4 from vuln1.004013D0
0022FF10   77BE2048  msvcrt.77BE2048
0022FF14   0022FEF8
0022FF18   77BFAC19  RETURN to msvcrt.77BFAC19 from msvcrt.77C054FD
0022FF1C   0022FFE0  ASCII "AAAAAAAAAAAAA"
0022FF20   77C03EB0  msvcrt._except_handler3
0022FF24   00000000
0022FF28   41414141  <-- Aqui empieza la variable buffer
0022FF2C   41414141
0022FF30   41414141
0022FF34   41414141
0022FF38   41414141
0022FF3C   41414141
0022FF40   41414141
0022FF44   41414141
0022FF48   41414141
0022FF4C   41414141
0022FF50   41414141
0022FF54   41414141
0022FF58   41414141
0022FF5C   41414141
0022FF60   41414141
0022FF64   41414141
0022FF68   41414141
0022FF6C   41414141 <--- Aquí terminaban los 64 bytes de tamaño de buffer. A
partir de aquí hemos hecho el overflow.
0022FF70   41414141 <--- EBP salvado del anterior proceso, sobrescrito con AAAA
0022FF74   41414141 <--- Antigua dirección del ret del main () sobrescrito con
AAAA
0022FF78   41414141
0022FF7C   41414141
0022FF80   41414141
0022FF84   41414141


lo que yo me pregunto ahi es, como sabes que en 0022FF6C  termina los 64b ?
porque no le veo logica viendo que hay 18 celdas desde que empieza hasta que termina....

gracias

leete las reglas asi todos estamos mejor ;)

electronik_0

excelente manual  :o ahora me kedara mas claro lo que es stacj overflows  :xD

Terran

Cita de: ~[uNd3rc0d3]~ en  5 Agosto 2008, 16:33 PM

lo que yo me pregunto ahi es, como sabes que en 0022FF6C  termina los 64b ?
porque no le veo logica viendo que hay 18 celdas desde que empieza hasta que termina....

gracias


4 bytes por fila (AAAA)

18 filas x 4 bytes = 64 bytes.

Interesante manual  ::)
Informatico y Administrador de Sistemas en Malaga:
http://www.malaga-pc.com

Blog sobre Informatica, Tecnologia, Ordenadores, Web 2.0 y todo lo que vaya saliendo:
http://rafaelmbaez.blogspot.com

APOKLIPTICO

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

Terran

Cita de: APOKLIPTICO en 22 Septiembre 2008, 01:55 AM
Emm no... 18 *4 = 72...

Estaba en babia....

Pues por alguna razon añadira 8 bytes de mas en el buffer al compilarlo con Dev Cpp.
Informatico y Administrador de Sistemas en Malaga:
http://www.malaga-pc.com

Blog sobre Informatica, Tecnologia, Ordenadores, Web 2.0 y todo lo que vaya saliendo:
http://rafaelmbaez.blogspot.com

Jarmen Kell

Holaaaaa, bueno tengo una dudilla acabo de empezar con esto asique, sed amables ^^^^

bueno cuando cojo el dev-c++ compiler y compilo el primer código del tutorial me da un error en la linea

strcpy (buffer, argv[1]);


este es el codigo del tutorial:


#include <stdio.h>

int main (int argc, char **argv){
   
    char buffer[64];
    if (argc < 2){
             printf ("introduzca un argumento al programa\n");
             return 0;
    }
    strcpy (buffer, argv[1]);
    return 0;
}

y este es la notificación del error:

In function `int main(int, char**)':
`strcpy' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it apperars in.)
[build error] [jarmenkell.o] Error 1

:S:S:S:S ni idea, aver si me podeis hechar un cable,
un saludo gracias!!
R00T@LinuX# ps -e | grep bill
5446 ?        00:00:00 bill-gates
R00T@LinuX# kill -9 5446 INMEDIATAMENTE!!!

Jarmen Kell

#59
perdon, soy un inutil ajjaj, lo habia guardado como .c xDD duda resuelta, gracias!!




una cosita mas, esto funciona solo bajo xp?, lo stoy probando en vista y en el olly no se ve que sobreescriba la EIP....  :o

tambien tengo montado un xp x64 version, algun problema en las pruebas respecto a xp sp1 o sp2?

gracias
R00T@LinuX# ps -e | grep bill
5446 ?        00:00:00 bill-gates
R00T@LinuX# kill -9 5446 INMEDIATAMENTE!!!