Red de conocimiento informático - Problemas con los teléfonos móviles - ¿De qué hablan los sombreros grises de pitón?

¿De qué hablan los sombreros grises de pitón?

Introducción

"Python Grey Hat" es un libro escrito por Justin Seitz, un senior black hat de la conocida agencia de seguridad Immunity Inc., sobre cómo es el lenguaje de programación Python. Muy utilizado por hackers y libros de hackers en el campo de la ingeniería inversa. Dave Aitel, un hacker veterano y fundador y director de tecnología (CTO) de Immunity Inc, fue el editor técnico de este libro. La mayor parte del libro se centra en dos temas duraderos en el campo de la tecnología de piratería: la ingeniería inversa y el descubrimiento de vulnerabilidades, y presenta a los lectores varios escenarios de problemas que casi todos los ingenieros inversos o investigadores de seguridad enfrentan en su trabajo diario, que incluyen: cómo diseñar y. cree sus propias herramientas de depuración, cómo automatizar tediosas tareas de análisis inverso, cómo diseñar y construir sus propias herramientas de fuzzing, cómo utilizar pruebas de fuzzing para encontrar vulnerabilidades de seguridad en productos de software, algunas pequeñas técnicas como la aplicación de ganchos y técnicas de inyección, así como introducciones detalladas a algunas herramientas de seguridad de Python convencionales, como PyDbg, Immunity Debugger, Sulley, IDAPython, PyEmu, etc. El autor utiliza Python, un lenguaje de programación popular en la comunidad de hackers actual, para guiar a los lectores a crear scripts sofisticados para abordar los problemas anteriores uno por uno. Una parte considerable de los ejemplos de código Python que aparecen en el libro se basan o provienen directamente de algunos excelentes proyectos de seguridad de código abierto, como Paimei de Pedram Amini. A partir de esto, los lectores pueden apreciar cómo los investigadores de seguridad integran elegantemente el arte de la tecnología de ingeniería y piratería. para resolver problemas. Esas preguntas difíciles.

Recomendaciones relacionadas: "Tutorial de Python"

Acerca del autor

Justin Seitz es un investigador senior de seguridad en Immunity. Ha pasado mucho tiempo en su. Trabajo anterior Dedique mucho tiempo a investigar el descubrimiento de vulnerabilidades, realizar ingeniería inversa, escribir exploits y escribir código Python.

Tabla de contenido

Capítulo 1 Configuración de un entorno de desarrollo 1

1.1 Requisitos del sistema operativo 1

1.2 Obtención e instalación de Python 2.5 2

p>

1.2.1 Instalar Python 2 en Windows

1.2.2 Instalar Python 2 en Linux

1.3 Instalar Eclipse y PyDev 4

1.3.1 Amigo del hacker: biblioteca ctype 5

1.3.2 Uso de la biblioteca de enlaces dinámicos 6

1.3.3 Construcción del tipo de datos C 8

1.3.4 Presione Pasar parámetros por referencia 9

1.3.5 Definir estructuras y uniones 9

Capítulo 2 Principio y diseño del depurador 12

2.1 General- registros de propósito 13

p>

2.2 Pila 15

2.3 Evento de depuración 17

2.4 Punto de interrupción 18

2.4.1 Punto de interrupción suave 18

2.4.2 Puntos de interrupción de hardware 20

2.4.3 Puntos de interrupción de memoria 22

Capítulo 3 Cree su propio depurador de Windows 24

3.1 Depurado, atreverse a preguntar dónde se encuentra 24

3.2 Obtener información del estado del registro 33

3.2.1 Enumeración de hilos 34

3.2.2 Integración de funciones 35

3.3 Implementación de rutinas de manejo de eventos de depuración 39

3.4 Puntos de interrupción omnipotentes 44

3.4.1 Puntos de interrupción suaves 44

3.4.2 Puntos de interrupción de hardware 49

3.4.3 Puntos de interrupción de memoria 55

3.5 Resumen 59

Capítulo 4 PyDbg: depurador de Python puro en Windows 60

4.1 Rutina de procesamiento de puntos de interrupción extendida 60

4.2 Rutina de procesamiento de operaciones de memoria ilegal 63

4.3 Instantánea del proceso 66

4.3.1 Obtención de instantáneas del proceso 67

4.3.2 Resumen y integración 70

Capítulo 5 Immunity Debugger: la mejor opción para un mundo bipolar 74

5.1 Instalar Immunity Debugger 74

5.2 Immunity Debugger 101 75

5.2.1 PyCommand 76

5.2.2 PyHooks 76

5.3 Desarrollo del programa de exploits 78

5.3.1 Búsqueda de comandos aptos para exploits 78

5.3.2 Filtrar caracteres "malos" 80

5.3.3 Omitir el mecanismo DEP de Windows 82

5.4 Romper las rutinas anti-depuración en malware 87

5.4.1 IsDebuugerPresent 87

5.4.2 Rompiendo rutinas de enumeración de procesos 88

Capítulo 6 El arte de los ganchos 90

6.1 Utilice PyDbg para implementar ganchos suaves 90

6.2 Usar Immunity Debugger para implementar ganchos duros 95

Capítulo 7 Inyección de DLL y tecnología de inyección de código 101

7.1 Crear subprocesos remotos 101

7.1.1 Inyección de DLL 102

7.1.2 Inyección de código 105

p>

7.2 Escape a la oscuridad 108

7.2.1 Ocultación de archivos 109

7.2.

2 Construyendo una puerta trasera 110

7.2.3 Uso de py2exe para compilar código Python 114

Capítulo 8 Fuzzing 117

8.1 Varios tipos de errores comunes 118

8.1.1 Desbordamiento de búfer 118

8.1.2 Desbordamiento de enteros 119

8.1.3 Ataque de cadena de formato 121

8.2 File Fuzzer 122

8.3 Estrategias de mejora posteriores 129

8.3.1 Cobertura de código 129

8.3.2 Análisis estático automatizado 130

Capítulo 9 Sulley 131

9.1 Instalar Sulley 132

9.2 Tipos de datos básicos en Sulley 132

9.2.1 Cadena 133

9.2 Delimitador 133

.

9.2.3 Tipos de datos estáticos y aleatorios 134

9.2.4 Datos binarios 134

9.2.5 Entero 134

9.2.6 Bloques y grupos 135

9.3 Assassination of WarFTPD 136

9.3.1 FTP 101 137

9.3.2 Crear marco de descripción del protocolo FTP 138

9.3 .3 Sesión de Sulley 139

9.3.4 Monitoreo de procesos y redes 140

9.3.5 Prueba de fuzzing e interfaz web de Sulley 141

Capítulo 10 Tecnología de prueba de fuzzing para Controladores de Windows 145

10.1 Conceptos básicos de la comunicación del controlador 146

10.2 Uso de Immunity Debugger para pruebas de Fuzzing a nivel de controlador 147

10.3 Driverlib: herramienta de análisis estático orientada al controlador 151

10.3.1 Encontrar nombres de dispositivos 152

10.3.2 Encontrar rutinas de envío IOCTL 153

10.3 3 Buscar códigos de control IOCTL válidos 155

10.4 Construya un controlador Fuzzer 157

Capítulo 11 IDAPython: programación de scripts Python en el entorno IDA PRO 162

11.1 Instale IDAPython 163

11.2 Funciones de IDAPython 164

11.2.1 Funciones de dos herramientas 164

11.2.2 Segmento 164

11.2.3 Función 165

11.2.4 Cruz referencia 166

11.2.5 Gancho del depurador 166

11.3 Ejemplo de script 167

11.3.1 Búsqueda de código cruzado de funciones peligrosas 168

11.3.2 Detección de cobertura de funciones 169

11.3.3 Detección del tamaño de variable de pila 171

Capítulo 12 Capítulo PYEmu - Emulador controlado por script 174

12.1 Instalación PyEmu 174

12.2 Descripción general de PyEmu 175

12.2.1 PyCPU 175

12.2.2 PyMemory 176

12.2.3 PyEmu 176

12.2.4 Ejecución de instrucciones 176

12.2.5 Modificador de memoria y modificador de registro 177

1

2.2.6 Rutina de procesamiento (Handler) 177

12.3 IDAPyEmu 182

12.3.1 Simulación de funciones 184

12.3.2 PEPyEmu 187

12.3.3 Empaquetador de archivos ejecutables188

12.3.4 Empaquetador UPX188

12.3.5 Utilice PEPyEmu para eliminar el empacador UPX189