HACK X CRACK: ESTUDIANDO LOS ATAQUES POR BUFFER-OVERFLOW
PP
PP
AA
AA
SS
SS
OO
OO
PP A S OA S Oaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
PP A S OA S O
a
EL PROTOCOLO MAS
UTILIZADO POR LOS
DETECCION DE ATAQUES
DETECCION DE ATAQUES
DETECCION DE ATAQUES
TRACEO DE CONEXIONES
TRACEO DE CONEXIONES
TRACEO DE CONEXIONES
DESTRUCCION DE FIREWALLS
DESTRUCCION DE FIREWALLS
DESTRUCCION DE FIREWALLS
DEGRADACION DE SERVICIOS
DEGRADACION DE SERVICIOS
DEGRADACION DE SERVICIOS
EL CONOCIMIENTO EN
ESTADO PURO
Nº 23 -- P.V.P. 4,5 EUROS
32000
8 4 1 4 0 9 0 2 0 2 7 5 6
3 SERVIDORES ON LINE PARA TUS PRACTICAS DE HACK
LOS MEJORES ARTÍCULOS GRATIS EN NUESTRA WEB
¿Cómo funcionan?
P C PA S O A PA S O : C U R S O D E D I S E Ñ O D E C O R TA F U E G O S
PP
AA
SS
OO
PP A S OA S Oaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
a
EDITORIAL: EDITOTRANS S.L.
C.I.F: B43675701
PERE MARTELL Nº 20, 2º - 1ª
43001 TARRAGONA (ESPAÑA)
Director Editorial
I. SENTIS
E-mail contacto
[email protected]
Título de la publicación
Los Cuadernos de HACK X CRACK.
Nombre Comercial de la publicacíón
PC PASO A PASO
Web: www.hackxcrack.com
Dirección: PERE MARTELL Nº 20, 2º - 1ª.
43001 TARRAGONA (ESPAÑA)
¿Quieres insertar publicidad en PC PASO A
PASO? Tenemos la mejor relación precio-difusión
del mercado editorial en España. Contacta con
nosotros!!!
Sr. Ruben Sentis
Tfno. directo: 652 495 607
Tfno. oficina: 877 023 356
E-mail:
[email protected]
4
4
1133
1144
38
38
6666
6677
er Overer ff lowlow
BufBuf ffer Ov
Colabora con PC Paso a P
Colabora con PC P
PrProottocolo ICMP
ocolo ICMP
Conoce los Fireewall (II)
wall (II)
Conoce los Fir
Suscribette a PC P
Suscribe
NNumer
umeros atrasados
os atrasados
e a PC Paso a P
aso a Pasoaso
aso a Pasoaso
Director de la Publicación
J. Sentís
E-mail contacto
[email protected]
Diseño gráfico:
J. M. Velasco
E-mail contacto:
[email protected]
Redactores
AZIMUT, ROTEADO, FASTIC, MORDEA, FAUSTO,
ENTROPIC, MEIDOR, HASHIMUIRA, BACKBONE,
ZORTEMIUS, AK22, DORKAN, KMORK, MAILA,
TITINA, SIMPSIM... ... ... ... ...
Contacto redactores
[email protected]
Colaboradores
Mas de 130 personas: de España, de Brasil, de
Argentina, de Francia, de Alemania, de Japón y
algún Estadounidense.
E-mail contacto
[email protected]
Imprime
I.G. PRINTONE S.A. Tel 91 808 50 15
DISTRIBUCIÓN:
SGEL, Avda. Valdeparra 29 (Pol. Ind.)
28018 ALCOBENDAS (MADRID)
Tel 91 657 69 00 FAX 91 657 69 28
WEB: www.sgel.es
TELÉFONO DE ATENCIÓN AL CLIENTE: 977 22 45 80
Petición de Números atrasados y Suscripciones (Srta. Genoveva)
HORARIO DE ATENCIÓN: DE 9:30 A 13:30
(LUNES A VIERNES)
© Copyright Editotrans S.L.
NUMERO 23 -- PRINTED IN SPAIN
PERIOCIDAD MENSUAL
Deposito legal: B.26805-2002
Código EAN: 8414090202756
PIDE LOS NUMEROS ATRASADOS EN --> WWW.HACKXCRACK.COM
Como explotar fallos
Buffer-Overflow
Seguro que UNA Y MIL VECES has leido en Internet y/o revistas de Informatica lo siguiente:
Ha sido descubierto tal y cual agujero de seguridad tipo BUFFER OVERFLOW y que es
"explotable" mediante tal o cual exploit y bla, bla, bla...
SEGURO QUE SIEMPRE TE HAS PREGUNTADO COMO FUNCIONA ESO DE LOS EXPLOITS: MUY BIEN, PUES
PREPARATE PARA DESCUBRIRLO!!!
Yo, igual que tu, que estas leyendo este artículo, siempre
que veía esas alertas de Buffer Overflow en los portales de
seguridad me preguntaba
¿Cómo funcionan los exploits?
¿Cómo se provocan los Buffer-Overflow? ¿En qué consisten?
Una noche de esas en que vuelves de fiesta, a eso de las
dos de la mañana me dio por sentarme un rato en el
servidor linux que tengo en mi casa/oficina. Navegando un
poco, me encontré con un tutorial bastante bueno sobre
el tema y decidí estudiarlo. Este artículo es, en esencia, el
resultado de haber estudiado ese y otros documentos
relacionados.
La intención es que puedas contar con una Guía Básica,
pero lo más completa posible, acerca de lo que es un exploit
por Buffer Overflow y de cómo implementarlo.
Para no tener problemas en la lectura de esta guía, es
recomendable que puedas entender, al menos por encima,
un programa escrito en C, ya que es el lenguaje que
utilizaremos para desarrollar los exploits. Sería también de
gran ayuda tener algo de dominio sobre el sistema de
numeración hexadecimal, aunque, para todos aquellos que
no lo controlan, apuntaré todos los detalles cuando nos
enfrentemos con estos números.
!
En esta misma...
En esta misma publicación, ya se hizo una breve introducción a
la programación en C en Linux. En su día advertimos que en un
futuro cercano sería necesario tener unos mínimos conocimientos
de Linux y C, esperamos que tomases nota
Si no es tu caso, te recomendamos que empieces a hacer tus
"pinitos" en C, hay miles de tutoriales de C en Internet
(www.google.com). La idea NO ES que aprendas a programar
en "plan profesional", sino que te inicies y tengas unas mínimas
nociones para poder entender código sencillo.
No desesperes, nadie nace sabiendo. Lo que sí te aseguramos es
que aprender a programar es, posiblemente, la mejor inversión
que una persona puede realizar. Al principio no sabrás ni tenerte
en pie, pero poco a poco aprenderás a caminar (y por el camino
encontrarás foros, personas y Webs que ya nunca abandonarás).
Para empezar quédate con la idea de que en el sistema
decimal (su nombre ya lo dice) hay 10 cifras, del 0 al 9.
En cambio el sistema Hexa hay 16 cifras:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F (como ya no quedan más
números, llegado el 9 se sigue con letras).
Decir 5 en decimal equivale a 0x5 en Hexa, no hagas
mucho caso del 0x que aparece antes del cinco, es solamente
una convención para hacer notar que se trata de números
hexadecimales.
Pero las cosas se ponen interesantes cuando queremos
saber cómo se representa un 10 decimal en sistema
Hexadecimal. Si has puesto un poco de atención, ya habrás
adivinado (más bien dicho deducido), la respuesta es 0xA.
Veamos algunos ejemplos para aclarar la figura:
1 en decimal equivale a 0x01 en Hexadecimal (el cero
a la izquierda de 1, en rojo, se coloca solo por claridad)
10 en decimal equivale a 0x0A en Hexadecimal (el cero
a la izquierda de A, en rojo, se coloca solo por claridad)
15 en decimal equivale a 0x0F en Hexadecimal (el cero
a la izquierda de F, en rojo, se coloca solo por claridad)
16 en decimal equivale a 0x10 en Hexadecimal; 17 en
decimal sería 0x11 en Hex, etc.
Con esto debería ser suficiente para entender como
funcionan los hexadecimales, pero TE RECOMENDAMOS
estudies profundices en el tema por tu cuenta (busca en
www.google.com)
Un apunte final: cuando hablamos de ordenadores se usa
el sistema hexadecimal, porque así nos resulta más fácil
visualizar a nivel humano las cantidades binarias con las
Página 4
PC PASO A PASO Nº 23
Buffer - Overflow - Buffer - Overflow - Buffer - Overflow - Buffer - Overflow - Buffer - Overflow
que se maneja un ordenador. Como sabes, un byte son
ocho bits, y si investigas un poco verás que es posible
representar hasta 16 números con 4 bits (del 0000 al 1111)
y OH! coincidencia, 16 es justo la cantidad base del sistema
Hexa, por lo que con dos números hexa podemos representar
un byte.
Veamos un ejemplo, el byte 01011111 sería 0x5F en Hexa,
que como ves es más fácil (al menos en teoría) de tratar
que toda una sarta de ceros y unos.
Con lo dicho dejamos atrás la discusión sobre sistemas
numéricos y entramos un poco más en materia.
Para comprender algunos de los conceptos de esta guía he
optado por definirlos de antemano y no dejarte en el aire
con nada que se "sobre entienda", vamos allá:
ASM: es la abreviación de ASSEMBLER, "lenguaje
ensamblador". El lenguaje más cercano a la máquina que
puede ser comprendido por lo humanos.
Buffer: Un espacio en el que se almacenan datos de
forma temporal.
Registro: Es un espacio de memoria interna en el núcleo
del procesador que controla la ejecución de los programas.
Existen varios tipos de registros, cada uno con una utilidad
específica.
En general podemos asimilarlos como cajas en las que el
procesador coloca datos que luego utiliza. Por ejemplo,
para sumar dos números, digamos 1 + 2, el procesador
coloca el número 1 en el registro AX (la instrucción en ASM
sería mov 01,AX) luego coloca 2 en el registro BX (mov
02,BX) y luego ejecuta la suma (sum en ASM), el resultado
se almacenará en CX, esto último por definición y sin
haberle dicho al procesador en donde almacenar dicha
suma.
Que quede claro que este es solo un ejemplo de la lógica
de funcionamiento de los registros. Al igual que los registros
de uso general que hemos tocado (el AX y el BX), existen
otros registros como el puntero a instrucciones, o el de
Base de pila que tienen otras funciones.
EIP: Es el registro que almacena la dirección de la
siguiente instrucción que debe ejecutar el procesador. IP
por Instruction Pointer (puntero a instrucción)
EBP: Puntero a base (Base Pointer), apunta al elemento
más alto de la pila. La pila (stack) es una estructura de
datos que utiliza el procesador para ayudarse en la ejecución
de los programas.
Vulnerabilidad: una falla de un programa que permite
a un atacante hacer cosas que en teoría no podría hacer.
Exploit: Denominaremos Exploit al hecho de aprovecharse
de una vulnerabilidad.
Core Dump: Es una fotografía el estado de ejecución
de tu ordenador justo antes de que un programa fallara,
usualmente se almacena como un archivo llamado core.
GDB: General DeBugger, se utiliza para seguir paso a
paso la ejecución de un programa y en nuestro caso
también para examinar los archivos core.
Shellcode: Es una tira d
Comentarios de: PC Paso a Paso - 23 (0)
No hay comentarios