Hacking Etico

Autor: Harris, Harper y otros

ISBN: 8441518742

Editorial: Anaya

Edición: 1

Páginas: 542

Formato: 22x17

Cant. tomos: 1

Año: 2005

Idioma: España

Origen: España

Disponibilidad.: No Disponible

Gs 460.800
Los profesionales de la seguridad deben actualizarse constantemente en su lucha contra los delincuentes informáticos, de modo que puedan hacer frente eficazmente a los temidos ataques o a los accesos a información confidencial. Así, comprender las motivaciones, tácticas y procedimientos que siguen los hackers maliciosos es hoy por hoy la única garantía para frustrar su comportamiento. Esta obra expone una revisión completa del hacking que actúa de manera responsable y verdaderamente ética. Como fuente de información resulta de obligada lectura para descubrir todo lo relacionado con legislación y piratería informática, al mismo tiempo que se revela como un exhaustivo manual de referencia para realizar de manera efectiva análisis de seguridad. Además de incluir los métodos y herramientas más avanzados, el libro se dirige directamente al código subyacente, al funcionamiento de los componentes de cada sistema operativo y aplicación y a cómo pueden ser comprometidos. Con la más amplia documentación para abordar tareas de planificación y evaluación específicas, ejecutando pruebas de auditoría, análisis del código o técnicas de simulacro de ataque, cuenta con una referencia única y precisa para dar el siguiente paso en el campo del hacking ético.
Prólogo

Introducción


Parte I. Introducción a la éticadel hacker

1. La ética del hacking ético
Referencias
¿Cómo afectan estos temas a un libro de hacking ético?
Evaluación de vulnerabilidades
Prueba de penetración
Referencias
La polémica de los libros y las clases de hacking
La naturaleza dual de las herramientas
¿Cómo se utilizan estas herramientas para hacer el bien o para hacer el mal?
Referencias
Reconocer un problema cuando se produce
Emulando el ataque
¿Con qué se divierten más los atacantes?
A la seguridad no le gusta la complejidad
Referencias
Resumen
Preguntas
Respuestas

2. El hacking ético y el sistema jurídico
Referencias
Analizar las leyes individuales
Artículo 1029 de 18 USC
Referencias
El artículo 1030 de 18 USC
Gusanos y virus
Los ataques del gusano Blaster
Trabajadores descontentos
Referencias
Una ley estatal alternativa
Referencias
Artículos 2510 y 2701 de 18 USC
Una aplicación interesante de la ECPA
Efectos devastadores del delito informático
Referencias
La ley de Derechos de autor del Milenio Digital
Referencias
Ley de Mejora de la Seguridad Cibernética del año 2002
Resumen
Preguntas
Respuestas

3. Divulgación de vulnerabilidades de manera correcta y ética
Diferentes equipos y distintos puntos de vista
¿Cómo llegamos hasta aquí?
El proceso actual de CERT
Política de divulgación de toda la información confidencial (Rainforest Puppy Policy)
Organización para la Seguridad en Internet (OIS)
Descubrimiento
Notificación
Validación
Investigación
Bases de código compartido
Descubrimientos
Confirmación del fallo
Desmentir el fallo
Incapacidad para confirmar o desmentir el fallo
Resolución
Marco temporal
Publicación
Los conflictos siempre existirán
Casos prácticos
Ventajas y desventajas de los procesos de divulgación adecuada
La opinión de la comunidad de los profesionales de la seguridad
La opinión de los vendedores y software
Gestión del conocimiento
Publicidad
El lazo que une
Enfoque de equipo
Comunicación
La barrera del conocimiento
Los fallos del parche
La vulnerabilidad después de que se hayan instalado los arreglos
Los vendedores prestan más atención
¿Qué debemos hacer de aquí en adelante?
iDefense
Referencias
Resumen
Preguntas
Respuestas


Parte II. Herramientas y pruebas de presentación

4. El proceso de las pruebas de penetración
Tipos de pruebas
Referencias
Manipular
Formar un equipo
El líder técnico
El jefe de equipo
Los miembros del equipo
Crear un laboratorio
Contratos, seguridad y permanecer fuera de la cárcel
El proceso de evaluación
El planeamiento de la evaluación
Reunión en las oficinas de cliente para iniciar la evaluación
El proceso de la prueba de penetración
Descubrimiento
Enumeración de las vulnerabilidades
Atacar vulnerabilidades mapeadas
Ventajas y desventajas de las pruebas de penetración
Referencias
El proceso de realización de simulacros
Obtener acceso a una red
Aumentar los privilegios
Prueba de respuesta a los incidentes
Ventajas y desventajas de los simulacros
El proceso de análisis del sistema
Enumeración de ataque de superficie (espacio de utilización)
Ataque concentrado
Ventajas y desventajas de analizar un sistema
Referencias
El informe
Resumen
Preguntas
Respuestas

5. Técnicas avanzadas para el hacker de hoy en día
Técnicas avanzadas para el hacker de hoy en día
Los análisis en la "época dorada"
Paketto Keiretsu (scanrand, paratrace)
Scanrand
paratrace
Referencias
Formas antiguas y actuales de buscar huellas
xprobe2
Referencias
p0f
Referencias
amap
Referencias
Winfingerprint
Herramientas de detección
libpcap y winpcap
Referencias
Detección pasiva y detección activa
La detección pasiva
La detección activa
ARP proxy, ARP promiscuo, ARP no solicitado y ARP gratuito
¿Qué utilidad tiene todo esto para un atacante?
Deteriorando las masas
Referencias
Rastreadores activos y herramientas para deteriorar la caché ARP
Referencias
Defensa contra la detección activa
Detección de nombres de usuarios y de contraseñas
dsniff
Referencias
Detección y hacking de credenciales de inicio de sesión de gestores de LAN
Utilizar el desafío y el hash (la parte difícil)
Utilizar ettercap (la parte fácil)
Referencias
Detección y forzamiento de Kerberos
Resumen
Preguntas
Respuestas

6. Las pruebas de penetración automatizadas
Conocimientos mínimos de Python
Obtener Python
Hola, mundo
Los objetos de Python
Cárdenas de caracteres
Números
Listas
Diccionarios
Archivos
Sockets
Referencias
Herramientas para realizar pruebas de penetración
IMPACT de Core
Referencias
CANVAS de Immunity
Referencias
Metasploit
Obteniendo Metasploit
Utilizar Metasploit
¿Qué más hay en Metasploit?
Referencias
Resumen
Preguntas
Respuestas


Parte III. Exploits 101

7. Programación: conocimientos mínimos
Programar
El proceso de resolución de problemas
Pseudocódigo
Programadores frente a hackers
El orden frente al desorden
Tiempo
Motivación
Referencias
El lenguaje de programación C
Estructuras básicas del lenguaje C
main()
Funciones
Variables
printf
scanf
strcpy/strncpy
Bucles for y while
if/else
Comentarios
Programa de ejemplo
Compilación con gcc
Referencias
La memoria del ordenador
Memoria de acceso aleatorio (RAM)
Endian
Segmentación de la memoria
Programas en memoria
La sección .text
La sección .data
La sección .bss
La sección heap
La sección Snack
Sección de entorno/argumentos
Búferes
Cadenas en memoria
Punteros
Juntando las partes de la memoria
Referencias
Procesadores Intel
Registros
Unidad Aritmético-Lógica (UAL)
Contador de programa
Unidad de control
Buses
Referencias
Conceptos básicos del lenguaje Ensamblador
Lenguaje máquina frente al ensamblador frente al C
AT&T frente a NASM
mov
add y sub
push y pop
xor
jne, je, jz, jnz, y jmp
call y ret
inc y dec
lea
int
Modos de asignación
Estructura de un archivo en ensamblador
Ensamblado
Referencias
Depuración con gdb
Fundamentos de gdb
Desensamblado con gdb
Referencias
Resumen
Preguntas
Respuestas

8. Exploits básicos de Linux
Operaciones de pila
Estructura de datos apilados
Implementación operacional
Procedimiento de las llamadas de función
Llamada de función
Prólogo de función
Epílogo de función
Referencias
Desbordamiento de búfer
Ejemplo de desbordamiento de un búfer
Desbordamiento de meet.c
Ramificaciones de desbordamiento de búfer
Referencias
Ataques contra desbordamiento de búfer locales
Componentes del ataque
NOP Sled
Shellcode
Direcciones de retorno repetidas
Confección del sándwich de ataque
Ataques contra desbordamientos de pilas mediante la línea de comando
Ataques contra desbordamientos de pilas mediante códigos de ataque genéricos
Ataques contra meet.c
Ataques contra búfer pequeños
Referencias
Ataques contra desbordamientos de búfer remotos
Modelo cliente/servidor
Servidor vulnerable
Establecer el valor esp remoto
Fuerza bruta manual mediante el comando perl
Referencias
Resumen
Preguntas
Respuestas

9. Exploits avanzados de Linux
Exploits de cadenas de formato
El problema
Cadenas de formato
La forma correcta
La forma incorrecta
Operaciones de la pila con las funciones de formato
Implicaciones
Ejemplo de programa vulnerable
Lectura desde la memoria arbitraria
Usar el testigo %x para diseñar la pila
Usar el testigo %s para leer cadenas arbitrarias
Lectura de la memoria arbitraria
Simplificar el proceso con el acceso de parámetro directo
Escritura en la memoria arbitraria
Fórmula mágica
Usar el valor canary en la práctica
Llevar .dtors al raíz
Formato de fichero elf32
Sección DTOR
Todo a la vez
Referencias
Ataques de desbordamiento de cúmulo de memoria
Desbordamiento del cúmulo de memoria
Ejemplo de desbordamiento del cúmulo de memoria
Implicaciones
Asignación de memoria (malloc)
dlmalloc
Objetivos
Fragmentos
Estructura de bloques etiquetados en los extremos
Bloques
Operaciones
Sacar provecho del desbordamiento del cúmulo de memoria
Ataque de unlink( )
Ejemplo de ataque
Otros ataques
Ataque frontlink( )
.dtor
Referencias
Esquemas de protección de memoria
Libsafe
Parches y secuencias de kernel de GRSecurity
Openwall: Pila no ejecutable
Return to libc
mmap( ) aleatorio
PaX: Pilas y cúmulos de memoria no ejecutables
Stackshield
Conclusión
Referencias
Resumen
Cuestiones
Respuestas

10. Escribir código para el intérprete de comandos de Linux
Código para el intérprete de comandos básico de Linux
Llamadas de sistema
Llamadas de sistema en C
Llamadas de sistema en el ensamblado
Llamada de sistema de salida
Empezando con C
Pasar al ensamblado
Ensamblar, enlazar y probar
Verificar con strace
Llamada de sistema setreuid
Firma setreuid
Comenzar con el ensamblado
Ensamblar, enlazar y probar
Verificar con strace
Código para intérprete de comandos que genera intérprete de comandos con execve
execve
Comenzar con el ensamblado
Ensamblar, enlazar y probar
Extraer los códigos de operaciones hexadecimales (código para intérprete de comandos)
Probar el código para intérprete de comandos
Referencias
Código para intérprete de comandos para unir puertos
Programación de sockets en Linux
Programar en C para establecer un socket
Redes IP que utilizan orden de bytes de red
Estructura sockaddr
Sockets
port_bind.c
Programa de ensamblado para establecer un socket
Llamada de sistema socketcall
port_bind_asm.asm
Probar el código para el intérprete de comandos
Extraer los códigos de operación hexadecimales
port_bind_sc.c
Referencias
Código para intérprete de comandos para conexión inversa
Programa C de conexión inversa
Programa C de ensamblado de conexión inversa
Referencias
Resumen
Preguntas
Respuestas

11. Escribir un exploit básico de Windows
Compilar y depurar programas de Windows
Compilar en Windows
Opciones del compilador de Windows
Depurar en Windows
CBD frente a NTSD frente a WinDbg
Comandos del depurador de Windows
Símbolos y el servidor de símbolos
Iniciar el depurador
Explorar el depurador de Windows
Desensamblar con CDB
Crear un exploit básico de Windows
Colapsar meet.exe y controlar eip
Probar el código
Obtener la dirección de retorno
Crear el exploit
Resumen
Preguntas
Respuestas


Parte IV. Analizar vulnerabilidades

12. Análisis pasivos
Ingeniería inversa ética
Referencias
El por qué de la ingeniería inversa
Aspectos de la ingeniería inversa
Analizar código fuente
Herramientas para auditar código fuente
Utilidades de las herramientas de auditoría de código fuente
Punto de vista del hacker de sombrero blanco
El punto de vista del hacker de sombrero negro
El punto de vista del hacker de sombrero gris
Auditorías manuales de código fuente
Fuentes de datos proporcionados por el usuario
Ejemplo práctico con find.c
Referencias
Análisis binarios
Herramientas de análisis binario automatizadas
BugScam
BugScan
Referencias
Análisis manual de código binario
Descompiladores
Ejemplo de descompilación de Java
Descompilar en otros lenguajes compilados
Desensambladores
IDA Pro
Utilizar IDA Pro
Desplazarse por un desensamblado de IDA Pro
Entender un desensamblado
Detectar vulnerabilidades con IDA Pro
Finalizar find.c
Referencias
Resumen
Preguntas
Respuestas

13. Técnicas avanzadas de ingeniería inversa
Motivos para intentar atacar software
El proceso de desarrollo de software
Herramientas de instrumentación
Depuradores
Herramientas de cobertura de código
Herramientas de creación de perfiles
Herramientas de análisis de flujo
Herramientas de monitorización de memoria
valgrind
IBM Rational Purify/Purify Plus
Referencias
Generar parámetros
Herramientas y técnicas instrumentadas de generación de parámetros
Un sencillo generador URL
Generar parámetros para protocolos desconocidos
SPIKE
Primitivas de creación de SPIKE
Primitivas de contenido estático de SPIKE
Primitivas de procesamiento de bloques de SPIKE
Declarar variables de generación de parámetros de SPIKE
Analizar secuencias de comandos de SPIKE
Ejemplo de SPIKE
SPIKE Proxy
Sharefuzz
Referencias
Resumen
Preguntas
Respuestas

14. De vulnerabilidades a exploit
Posibilidades de explotación
Depurar para explotar
Iniciar el análisis
Referencias
Comprender el problema
Condiciones previas y posteriores
Posibilidad de repeticiones
Posibilidades de predicción de la pila
Trabajar con argumentos y cadenas de entorno
Divertirse con return to libc
Defensas contra ataques Return to libc
Referencias
Documentar el problema
Información básica
Circunstancias
Resultados de la búsqueda
Resumen
Preguntas
Respuestas

15. Tapar agujeros: mitigación
Alternativas de migración
Llamar a puertos
Referencias
Migraciones
Cambiar a un nuevo sistema operativo
Cambiar a una nueva aplicación
Referencias
Parches
Consideraciones sobre parches de código fuente
Cuándo aplicar parches
A qué elementos aplicar parches
Desarrollar y utilizar parches
Consideraciones sobre parches de binarios
Razones para aplicar parches
Entender los formatos ejecutables
Desarrollar y aplicar parches
Limitaciones
Referencias
Resumen
Preguntas
Respuestas
No hay enlaces disponible
Libros Relacionados