• COLECCIONES
  • DESCARGA DE CATALOGOS
  • EBOOKS
  • HACKERS Y SEGURIDADFicha del libroimprimir

    Hacking. Técnicas fundamentales

    Portada
    cdcd

    Reseña

    El hacking es el arte de resolver problemas de forma creativa, tanto si eso significa encontrar una solución poco convencional para un problema complicado como si se trata de aprovechar los agujeros de una programación descuidada. Muchas personas se autodenominan hackers, pero pocos tienen los conocimientos técnicos necesarios para realmente ponerlo a prueba. En lugar de simplemente enseñar a usar las vulnerabilidades existentes, el autor Jon Erickson explica cómo funcionan las complejas técnicas de hacking, mostrando los fundamentos de la programación en C desde el punto de vista de un hacker.

    Podemos ponernos manos a la obra depurando código, desbordando búferes, secuestrando comunicaciones de red, esquivando protecciones, aprovechando debilidades en contraseñas y quizás, incluso descubriendo nuevas vulnerabilidades.

    El LiveCD que incluye esta obra proporciona un entorno completo Linux de programación y depuración; todo sin modificar el sistema operativo instalado, y que le permite seguir los ejemplos del libro, a medida que aumenta nuestro conocimiento y exploramos nuestras propias técnicas de hacking.

    Ficha del libro

    • Colección: HACKERS Y SEGURIDAD
    • Autor: Jon Erickson
    • Nº de páginas: 528
    • Formato: Papel
    • Tamaño: 17,6 x 22,6
    • I.S.B.N: 978-84-415-2469-9
    • Código Comercial: 2310709
    • Precio sin IVA: 46,06€
    • Precio con IVA: 47,90€
    • Fecha de Publicación: 05/09/2008
    • Nivel: Medio/Avanzado

    Índice cerrar índice [x]


    Prefacio

    1. Introducción

    2. Programación
       2.1. ¿Qué es la programación?
       2.2. Pseudocódigo
       2.3. Estructuras de control
         -  2.3.1. If-Then-Else
         -  2.3.2. Bucles While/Until
         -  2.3.3. Bucles for
       2.4. Más conceptos de programación fundamentales
         -  2.4.1. Variables
         -  2.4.2. Operadores aritméticos
         -  2.4.3. Operadores de comparación
         -  2.4.4. Funciones
       2.5. Manos a la obra
         -  2.5.1. Una visión más global
         -  2.5.2. El procesador x86
         -  2.5.3. Lenguaje ensamblador
       2.6. Regreso a lo básico
         -  2.6.1. Cadenas
         -  2.6.2. Con signo, sin signo y corto
         -  2.6.3. Punteros
         -  2.6.4. Cadenas de formato
         -  2.6.5. Conversión de tipo
         -  2.6.6. Argumentos de línea de comandos
         -  2.6.7. Alcance de las variables
       2.7. Segmentación de la memoria
         -  2.7.1. Segmento de memoria en C
         -  2.7.2. Uso del montón
         -  2.7.3. Comprobación de errores para malloc()
       2.8. Ampliando los conocimientos básicos
         -  2.8.1. Acceso a archivos
         -  2.8.2. Permisos de archivo
         -  2.8.3. Identidades de usuario
         -  2.8.4. Estructuras
         -  2.8.5. Punteros de función
         -  2.8.6. Números pseudoaleatorios
         -  2.8.7. Un juego de azar

    3. Exploits
       3.1. Técnicas de exploit generalizadas
       3.2. Desbordamiento de búfer
         -  3.2.1. Vulnerabilidades de desbordamiento de búfer basado en la pila
       3.3. Experimentos con BASH
         -  3.3.1. Usar el entorno
       3.4. Desbordamientos en otros segmentos
         -  3.4.1. Un desbordamiento de montón básico
         -  3.4.2. Desbordamiento de punteros de función
       3.5. Cadenas de formato
         -  3.5.1. Parámetros de formato
         -  3.5.2. La vulnerabilidad de cadena de formato
         -  3.5.3. Leer de direcciones de memoria arbitrarias
         -  3.5.4. Escribir en direcciones de memoria arbitrarias
         -  3.5.5. Acceso directo a parámetros
         -  3.5.6. Usar escrituras de palabra corta
         -  3.5.7. Desvíos con .dtors
         -  3.5.8. Otra vulnerabilidad de notesearch
         -  3.5.9. Sobrescribir la tabla de desplazamiento global

    4. Redes
       4.1. Modelo OSI
       4.2. Sockets
         -  4.2.1. Funciones de socket
         -  4.2.2. Direcciones de socket
         -  4.2.3. Orden de bytes de red
         -  4.2.4. Conversión de dirección de Internet
         -  4.2.5. Un simple ejemplo de servidor
         -  4.2.6. Ejemplo de cliente Web
         -  4.2.7. Un servidor Tinyweb
       4.3. Recorriendo las capas inferiores
         -  4.3.1. Capa de enlace de datos
         -  4.3.2. Capa de red
         -  4.3.3. Capa de transporte
       4.4. Rastreo de red
         -  4.4.1. Rastreador de sockets puros
         -  4.4.2. Rastreador libpcap
         -  4.4.3. Decodificar las capas
         -  4.4.4. Rastreo activo
       4.5. Denegación de servicio
         -  4.5.1. Inundación SYN
         -  4.5.2. El ping de la muerte
         -  4.5.3. Lágrima
         -  4.5.4. Inundación de ping
         -  4.5.5. Ataques de amplificación
         -  4.5.6. Inundación DoS distribuida
       4.6. Secuestro de TCP/IP
         -  4.6.1. Secuestro RST
         -  4.6.2. Secuestro continuado
       4.7. Rastreo de puertos
         -  4.7.1. Rastreo sigiloso SYN
         -  4.7.2. Rastreos FIN, X-mas y Null
         -  4.7.3. Rastreo con señuelos
         -  4.7.4. Rastreo pasivo
         -  4.7.5. Defensa proactiva (shroud)
       4.8. Sal y haz hacking
         -  4.8.1. Análisis con GDB
         -  4.8.2. "Casi" sólo sirve para las granadas de mano
         -  4.8.3. Shellcode de vinculación a puerto

    5. Shellcode
       5.1. Ensamblado vs. C
         -  5.1.1. Llamadas a sistema Linux en ensamblador
       5.2. La ruta a la shellcode
         -  5.2.1. Instrucciones de ensamblador usando la pila
         -  5.2.2. Investigación con GDB
         -  5.2.3. Eliminar bytes nulos
       5.3. Shellcode creador de intérpretes de comandos
         -  5.3.1. Cuestión de privilegios
         -  5.3.2. Y todavía más pequeña
       5.4. Shellcode de vinculación a puerto
         -  5.4.1. Duplicación de descriptores de archivo estándar
         -  5.4.2. Bifurcar estructuras de control
       5.5. Shellcode de reconexión

    6. Contramedidas
       6.1. Contramedidas que detectan
       6.2. Demonios del sistema
         -  6.2.1. Curso rápido sobre señales
         -  6.2.2. Demonio tinyweb
       6.3. Herramientas de profesión
         -  6.3.1. Herramienta de exploit para tinywebd
       6.4. Archivos de registro
         -  6.4.1. Perderse en la multitud
       6.5. Pasar por alto lo obvio
         -  6.5.1. Paso a paso
         -  6.5.2. Volviendo a unirlo todo
         -  6.5.3. Trabajadores infantiles
       6.6. Camuflaje avanzado
         -  6.6.1. Falsificar la dirección IP del registro
         -  6.6.2. Exploit sin registro
       6.7. Toda la infraestructura
         -  6.7.1. Reutilización del socket
       6.8. Contrabando de carga útil
         -  6.8.1. Codificación de cadenas
         -  6.8.2. Cómo ocultar un sled
       6.9. Restricciones de búfer
         -  6.9.1. Shellcode ASCII que se puede mostrar y polimórfica
       6.10. Endurecer las contramedidas
       6.11. Pila no ejecutable
         -  6.11.1. ret2libc
         -  6.11.2. Regreso a system()
       6.12. Espacio en pila aleatorio
         -  6.12.1. Investigaciones con BASH y GDB
         -  6.12.2. Rebotando en linux-gate
         -  6.12.3. Conocimiento aplicado
         -  6.12.4. Un primer intento
         -  6.12.5. Probando suerte

    7. Criptología
       7.1. Teoría de la información
         -  7.1.1. Seguridad incondicional
         -  7.1.2. Libretas de un solo uso
         -  7.1.3. Criptografía cuántica
         -  7.1.4. Seguridad de computacional
       7.2. Tiempo de ejecución algorítmico
         -  7.2.1. Notación asintótica
       7.3. Codificación simétrica
         -  7.3.1. Algoritmo de búsqueda cuántica de Lov Grover
       7.4. Codificación asimétrica
         -  7.4.1. RSA
         -  7.4.2. Algoritmo de factorización cuántica de Peter Shor
       7.5. Cifrados híbridos
         -  7.5.1. Ataque de intermediario
         -  7.5.2. Huellas dactilares de equipo diferentes para el protocolo SSH
         -  7.5.3. Huellas difusas
       7.6. Desencriptación de contraseñas
         -  7.6.1. Ataques de diccionario
         -  7.6.2. Ataques por fuerza bruta
         -  7.6.3. Tabla de búsqueda de resumen codificado
         -  7.6.4. Matriz de probabilidad de contraseña
       7.7. Codificación inalámbrica 802.11b
         -  7.7.1. Privacidad equivalente a cableado
         -  7.7.2. Cifrado de flujo RC4
       7.8. Ataques WEP
         -  7.8.1. Ataques por fuerza bruta desconectados
         -  7.8.2. Reutilización del flujo de claves
         -  7.8.3. Tablas de diccionario de decodificación basadas en vectores
         -  7.8.4. Redirección de IP
         -  7.8.5. Ataque de Fluhrer, Mantin y Shamir

    8. Conclusión
       8.1. Referencias
       8.2. Código

    Apéndice. Contenido del CD-ROM

    Índice alfabético

    Complementos cerrar complementos [x]