Está en la página 1de 12

CAP4.

Hackeo de UNIX

Universidad Nacional del Altiplano - Puno


FACULTAD DE INGENIERIA DE MECANICA ELECTRICA, ELECTRONICA YSISTEMAS

Carrera Profesional De Ingeniera de Sistemas

CURSO

: MACROECONOMIA I

TEMA

: Hackeo de Unix

DOCENTE

: Ing.

PRESENTADO POR :

CODIGO

: 083433

SEMESTRE

: VIII

ENERO 2014 PUNO PERU

CAP4. Hackeo de UNIX


HACKEO DE UNIX _________________________________________________________ 3 I. LA CONQUISTA DE ROOT _______________________________________________ 3
1.1. 1.2. 1.3. Una Revisin Breve ______________________________________________________ 3 Asignacin de vulnerabilidades ____________________________________________ 3 Comparacin entre acceso remoto y local ___________________________________ 4

II.

ACCESO REMOTO _____________________________________________________ 4


2.1. Medidas para contrarrestar el ataque de fuerza bruta ____________________________ 6 2.2. Medidas para contrarrestar el ataque de desbordamiento de bfer _______________ 8

Practicas seguras de codificacin ____________________________________________ 8


2.3. 2.4. 2.5. 2.6. 2.7. 2.8. Ataques de cadena de formato _____________________________________________ 9 Medidas para contrarrestar el ataque de cadena de formato ____________________ 9 Medida para contrarrestar la validacin de entrada ____________________________ 9 Medidas para contrarrestar el ataque de desbordamiento de entero _____________ 10 Medidas para contrarrestar apuntadores colgantes ___________________________ 10 Medidas para contrarrestar el canal trasero _________________________________ 11

III.

Resumen ____________________________________ Error! Bookmark not defined.

CAP4. Hackeo de UNIX HACKEO DE UNIX


I. LA CONQUISTA DE ROOT

En 1969, ken Thompson, y ms adelante Dennis Ritchie de AT&T, decidieron que el proyecto MULTICS (Multiplexed Information and Computing System, Sistema Multiplexado de informacin y computacin) no avanzaba tan rpido como queran. Su decisin de hachear un sistema operativo nuevo denominado UNIX cambio para siempre el panorama de la computacin UNIX fue hecho con la intensin de convertirse en un sistema operativo multiusuario poderoso y robusto que sobresaliera en la ejecucin de programas (sobre todo, pequeos programas llamados herramientas ) la seguridad no fue una de las principales caractersticas de diseo de UNIX, aunque tiene gran cantidad de seguridad implementada apropiadamente dentro de Bell Labs o un escenario universitario , donde la seguridad se controlaba por lo general con medios fsicos, por lo tanto cualquier usuario que tena acceso fsico al sistema UNIX se consideraba autorizado. En muchos casos, se consideraba un obstculo implementar contraseas basada en un nivel root y se elimin.

1.1.

Una Revisin Breve

Usamos rpcinfo y showmount para enumerar servicios RPC y puntos de montaje NFC, respectivamente. Incluso usamos el todo poderoso netcat para capturar anuncios que dejaba que se fugaba informacin jugosa, como las aplicaciones y versiones asociadas en uso. Es importante recordar que la recopilacin de informacin y el reconocimiento de redes de un sistema UNIX deben hacerse antes que cualquier tipo de explotacin. La recopilacin de informacin debe ejecutarse en forma minuciosa y metdica para asegurar que se descubra cada pieza posible de informacin. Una vez que tenemos esta informacin necesitamos hacer algunas suposiciones sobre las posibles vulnerabilidades que puedan presentarse en el sistema de destino.

1.2.

Asignacin de vulnerabilidades

Es el proceso de asignar atributos de seguridad especficos de un sistema a una vulnerabilidad asociada o posible. Esta fase crtica en la explotacin real de un sistema de destino no debe pasarse por alto. Es necesario para los atacantes asignar atributos como servicios de escucha. Numero de versin especficos de servicio en ejecucin (por ejemplo Apache 2.2.9 usado para HTTP, y sendmail 8.14.3 para SMTP) Arquitectura de sistema e informacin del nombre de usuario o posible agujeros de seguridad. Los atacantes pueden usar varios mtodos para controlar esta tarea: De manera manual, pueden asignar atributos de sistemas especficos contra fuentes disponibles pblicamente para informacin de vulnerabilidades, como Bugtraq, the Open Source Vulnerabiility Database (Base de datos de vulnerabilidades y exposiciones comunes) y alertas de seguridad de vendedores. Pueden usar cdigo de explotacin pblico divulgado en varias listas de correo de seguridad y diversos sitios web, o pueden escribir su propio cdigo. Esto determinara la existencia de una vulnerabilidad real con un alto certeza de grado.

CAP4. Hackeo de UNIX


Pueden usar herramientas de escaneo de vulnerabilidades automticas, como nessus (http://www.nessus.org), para identificar verdaderas vulnerabilidades.

Todos estos mtodos tienen sus pros y contras, Sin embargo, es importante recordar que solo los atacantes no educados, conocidos como niitos de secuencias de comandos, se saltaran la etapa de asignacin de vulnerabilidad al lanzar todo lo habido y por haber al sistema para entrar sin conocer cmo funciona la explotacin .En la siguiente lista se presenta un resumen de los puntos clave que habrn de tomarse cuenta cuando se realice la asignacin de vulnerabilidades. Realizar un reconocimiento de red contra el sistema objetivo Asignar atributos, como sistema operativo, arquitectura y versiones especficas de servicios de escucha, para conocer vulnerabilidades y explotaciones. Realizar adquisiciones de objetivo al identificar y seleccionar sistemas claves. Enumerar y asignar prioridades y posible punto de entrada.

1.3. Comparacin entre acceso remoto y local


El acceso remoto se define como la obtencin de acceso por medio de la red (por ejemplo un servicio en escucha) u otro canal de comunicacin. El acceso local se explica como la posesin de un comando de Shell particular o inicio de sesin del sistema. A los ataques de acceso local tambin se les conoce como ataques de escalamiento de privilegios. Los atacantes siguen una progresin lgica, explotando remotamente una vulnerabilidad en un servicio que escucha y obteniendo despus un acceso de Shell local. Una vez que obtengamos el acceso remoto, explicaremos formas comunes en que los atacantes escalan sus privilegios de root locales.

II.

ACCESO REMOTO

Como ya se mencion, el acceso remoto incluye acceso a red o a otro camino de comunicacin, como un modem de marcado telefnico conectado a un sistema UNIX. Encontramos que la seguridad de acceso de remoto anlogo/ISDN en casi todas las organizaciones es abismal y se reemplaza con redes privadas virtuales (VPN, virtual prvate Networks). Por lo tanto estamos limitando nuestros anlisis a acceder a un sistema UNIX de la red por medio de TCP/IP. En realidad se usan 4 mtodos para evitar de manera remota la seguridad de un sistema UNIX. Explorar un servicio de escucha (por ejemplo, TCP/UDP). Enrutar a travs de un sistema UNIX que proporciona seguridad entre dos o ms redes. Ataques de ejecucin remota iniciados por usuarios (Mediante sitios web hostiles, correos electrnicos con caballos de Troya etctera). Explotar un proceso o programa que ha colocado la tarjeta de red en modo promiscuo.

CAP4. Hackeo de UNIX


Explotacin de un servicio de escucha Alguien da un ID de usuario y una contrasea y dice entra al sistema es te es un ejemplo de una explotacin de un servicio de escucha Enrutamiento a travs de un sistema UNIX Su firewall de UNIX fue evitada por los atacantes Cmo es posible? No permitimos ningn servicio entrante , dice en muchos ejemplos los a tacantes evitan las Firewall de UNIX al enrutar paquetes fuente a travs de la firewall a sistemas internos. Ejecucin remota iniciada por el usuario Est seguro porque deshabilito todos los servicios del sistema UNIX? Tal vez no Qu pasa si navega a http://www.hackermalvado.org, y s explorador ejecuta un cdigo malicioso que se conecta d regreso al sitio malvado? Esto permite acceder s a su sistema. Ataques de modo Promiscuo Un atacante puede enviar un paquete hecho de manera artesanal que convierte su olfateador de red en su peor pesadilla.

Ataques de fuerza bruta


Popularidad Simplicidad Impacto Evaluacin de riesgo 6 2 9 6

Empezamos nuestro anlisis de ataques a UNIX con la forma ms bsica de ataque (adivinacin de contrasea con fuerza bruta). Tal vez un ataque de fuerza bruta no aparezca atractiva, pero es una de las formas ms efectivas para que los atacantes obtengan acceso al sistema UNIX. Un ataque de fuerza bruta consiste en solo en adivinar la combinacin de ID de usuario/ contrasea en un servicio que intenta autentificar al usuario antes de obtener acceso. Entre los tipos mas comunes tenemos: Telnet Protocolo de transferencia de archivos (FTP). Los comandos r (rlogin, rsh, etctera). Secure Shell (ssh). Nombres de Comunidad SNMP. Protocolo de Oficina postal (POP) y protocolo de acceso a mensajes de internet (IMAP, Internet Message Access Protocol). Protocolo de transporte de hipertexto (HTTP/HTTPS). Sistema de Versin Concurrente (CVS, concurret Version system) y Subversin (SVN)

Recuerde, de nuestro anlisis de descubrimiento y enumeracin de red del captulo 1 al 3, l importancia de identificar el ID de usuario de posibles sistemas. Servicios como finger, Rusers y sedmail se usan para identificar cuentas de usuario en un sistema de destino. Una vez que los atacantes tienen tiene un lista de cuentas de usuario, tienen la opcin de iniciar sus intentos de obtener acceso de Shell al sistema de destino al adivinar la contrasea asociada con uno delos ID. Por desgracia, muchas cuentas de usuario tienen una contrasea dbil o carece de ella. La mejor ilustracin de este axioma es la cuenta Joe, donde el ID de usuario y la contrasea son idnticas. Dado que hay suficientes usuarios, casi todos los sistemas tendrn alguna cuenta Joe. Para nuestro asombro, hemos vito miles de cuentas. Los atacantes pueden usar varias herramientas para automatizar la fuera bruta, incluidas las siguientes:

CAP4. Hackeo de UNIX


THC-Htdra http://freeworld.thc.org/thc-hidra/ Pop.c http://packetstormsecurity.org/groups/ADM/ADM-pop.c SNMPbrute http://packetstormsecurity.org/Crackers/snmpbrute-fixedup.c

DATA attacking service ssh2 on port 22 [22][ssh2] host:192.168.1.113 Login: Praveen password: pr4v33n [22][ssh2] host:192.168.1.113 Login: nathan password: texas [22][ssh2] host:192.168.1.113 Login: Adam password: pr4v33n [22][ssh2] host:192.168.1.113 Login: Praveen password: 1234 [STATUS] (http://www.thc.org). El comando se complet correctamente

2.1. Medidas para contrarrestar el ataque de fuerza bruta


La mejor defensa para adivinacin de fuerza bruta consiste en usar contraseas ms fuertes que no se adivinen fcilmente. Un mecanismo de contrasea de una vez sera ms deseable. Algunas utileras gratuitas que ayudaran a hacer ms difcil que .se cumpla la fuerza bruta se muestran en la tabla 5.1

Los sistemas operativos ms nuevos de UNIX incluyen controles desde contrasea integrados que arregla algunos de los mdulos independientes de terceros. PASSLENGTH Tamao mnimo de contrasea. MINWEEK Nmero mnimo de semanas antes de que una contrasea pueda cambiarse MAXWEEKS Nmero mximo de semanas antes de que una contrasea pueda cambiarse pueda cambiarse. WARNWEEKS Numero de semanas de anticipacin con que se advertir a un usuario con su contrasea est a punto de expirar. HISTORY Nmero de contrasea almacenada en el historial de contraseas. Al usuario no se le permitir usar los mismos valores. MINALPHA Nmero mnimo de caracteres alfa. MINDDIGIT Nmero mnimo de caracteres numricos MINDSPECIAL Nmero mnimo de caracteres especiales (no alfa, no numrico). MINLOWER Nmero mnimo de caracteres en minsculas. MINUPPER Nmero mnimo de caracteres en maysculas.

La instalacin predeterminada de Solaris n proporciona soporte a pam_cracklib o pampasswdqc. Si las reglas de contrasea de sistema operativo son insuficientes, entonces puede aplicarse uno de los mdulos PAM. Ya sea que dependa del sistema operativo o de productos.

CAP4. Hackeo de UNIX


Herramientas Descripcin Cracklib Herramienta de composicin http://sourceforge.net/projects/cracklib De contrasea Npasswd Ubicacin

Un reemplazo para el comando http://www.utexas.edu/cc/ Passwd Unix/software/npasswd

Secure Remote Un Nuevo mecanismo para http://srp.standford.edu Password Realizar autentificacin basada En contrasea e intercambio de Claves seguros sobre cualquier Tipo de red OpenSSH Un reemplazo de comunicacin telnet/ftp/rsh/login con un cifrado y autentificacin RSA Mdulo PAM para revisin de fortaleza de contrasea http://openssh.org

pam_ passwqc pam_lockout

http://www.openwall.com/ passwdqc

Mdulo PAM para bloqueo de http://www.spellweaver.org/ cuenta devel/

Tabla 5-1 Herramienta freeware que le ayudan a protegerse de ataques de fuera bruta

Terceros, es importante que aplique buenos procedimientos de administracin de contrasea y que use el sentido comn. Considere lo siguiente: Asegrese de todos los usuarios tengan una contrasea que se amolda a la directiva organizacional. Fuerce un cambio de contrasea cada 30 das para cuentas privilegiadas y cada 60 das ara usuarios normales. Implemente un tamao de contrasea mnimo de ocho caracteres que contenga, por lo menos, un carcter alfanumrico, uno numrico y uno no alfabtico. Registre fallas mltiples de autentificacin. Configure servicios para desconectar clientes despus de tres intentos de inicio de sesin no vlidos. Implemente bloqueo de cuentas donde sea posible. (Este al pendiente de posibles problemas de negacin del servicio de cuentas bloqueadas intencionalmente por un atacante.) Deshabilite servicios que no estn en uso. Implemente herramientas de composicin de contraseas que prohban al usuario seleccionar una mala contrasea. No diga su contrasea a otros.

CAP4. Hackeo de UNIX


Asegrese de que las cuentas predeterminadas como Setup y Admin no tengan contraseas predeterminadas.

Ataques Orientados a Datos


Ahora que hemos analizado los ataques de adivinacin de contrasea aparentemente mundanos. Podemos explicar el factor estndar para obtener acceso remoto; los ataques orientados a datos. Un ataque orientado a datos se ejecuta al enviar datos a un servicio activo que causa resultados no intencionados o no deseables. Por supuesto, Los resultados no intencionados o no deseables son subjetivos y dependen de si usted es el atacante o la persona que program el servicio. Los ataques orientados a datos se ordenan con ms frecuencia como ataques de desbordamientos de bfer o de validacin de entrada. Cada ataque se escribe de manera detallada a continuacin.

Ataques de Desbordamiento de bfer


Popularidad Simplicidad Impacto Evaluacin de riesgo 8 8 10 9

Una condicin de desbordamiento de bfer ocurre cuando un usuario o proceso intenta colocar ms datos en un Bfer este tipo de comportamiento se asocia con funciones C especficas como strcpy (), strcat () y sprintf (), entre otras. Una condicin de desbordamiento de Bfer normalmente causar que ocurra una violacin de segmentacin sin embargo, este tipo de comportamiento puede explorarse para obtener acceso al sistema de destino. Tenemos un Bfer de tamao fijo de 128 bytes, supongamos que este bfer define la cantidad de datos que puede almacenarse como entrada con el comando wrfy de sedmail. Supongamos que el ejecutable sendmail tiene establecido el ID de usuario (SUID) en root y se ejecuta con privilegios de root.

2.2.

Medidas para contrarrestar el ataque de desbordamiento de bfer

Ahora que tiene una comprensin clara de la amenaza, examinaremos las medidas posibles contra ataques de desbordamiento de bfer. Cada medida para contrarrestar tiene sus pros y contras, y es importante entender las diferencias en costo y efectividad

Practicas seguras de codificacin

Utilice rutinas ms seguras, como fgets(),strncpy() y starncat(), y revise los cdigos de regreso de llamadas de sistema

CAP4. Hackeo de UNIX


Implemente cuando sea posible, la biblioteca de mejores cadenas. Bstrings es una biblioteca estable, porttil e independiente que ayuda a mitigar desbordamientos de bfer.

2.3.

Ataques de cadena de formato


Popularidad Simplicidad Impacto Evaluacin de riesgo 8 8 10 9

Cada pocos aos una nueva clase de vulnerabilidades toma por asalto la escena de la seguridad. Las vulnerabilidades de cadena de formato han afectado al cdigo de software durante aos, pero el riesgo no fue evidente hasta mediados de 2000. Como se mencion antes, el pariente ms cercano de la clase, el desbordamiento de bfer, fue documentado en 1996. Los ataques de cadena de formato y desbordamiento de bfer son mecnicamente similares, y ambos ataques descienden de prcticas de programacin flojas

2.4.

Medidas para contrarrestar el ataque de cadena de formato

Muchos ataques de cadena de formato usan el mismo principio de los ataques de desbordamiento de bfer, que se relacionan con la sobreescritura de la llamada de regreso de la funcin.

Ataques de validacin de entrada


Popularidad Simplicidad Impacto Evaluacin de riesgo 8 9 8 8

En febrero de 2007, King Cope descubri una vulnerabilidad de Solaris que permita a un hacker remoto evitar la autentificacin. Debido a que el ataque no requiere cdigo de explotacin, sino solo un cliente telnet, su implementacin resulta trivial y proporciona un excelente ejemplo de un ataque de validacin de entrada. La vulnerabilidad de omitir la autentificacin en Solaris es resultado de la limpieza impropia de la entrada. Es decir, el daemon telnet, no analiza apropiadamente la entrada antes de pasarla al programa de inicio de inicio de sesin

2.5.

Medida para contrarrestar la validacin de entrada

Es importante entender la manera en que la vulnerabilidad fue explotada para que este concepto pueda aplicarse a otros ataques de validacin de entrada, debido q que existen docenas de estos ataques. Como ya se mencion las prcticas de codificacin seguras estn entre las mejores medidas de seguridad preventivas, y este concepto se mantiene tambin para ataques de validacin de entrada.

CAP4. Hackeo de UNIX


Desbordamientos de entero y ataques de signos de entero
Popularidad Simplicidad Impacto Evaluacin de riesgo 8 7 10 8

Si los ataques de cadena de formato fueron las celebridades en el mundo delos hackers en 2000y2001 entonces los desbordamientos de entero y los ataques de signo de entero fueron las celebridades en 2002 y 2003, algunas de las aplicaciones de uso ms amplio en el mundo, como apache, snort y samba, fueron vulnerables a desbordamiento de entero que llevaron a desbordamientos de bfer explotables.

2.6.

Medidas para contrarrestar el ataque de desbordamiento de entero

Los ataques de desbordamiento de entero habilitan ataques de desbordamiento de bfer, por lo tanto aplican muchas de las medidas para contrarrestar este ltimo que ya se mencionaron, la falta de prcticas de programacin seguras es la principal causa de desbordamiento de entero y ataques de firma de entero.

Ataques de puntero colgante


Popularidad Simplicidad Impacto Evaluacin de riesgo 6 7 10 8

Un apuntador colgante, tambin conocido como apuntador perdido ocurre cuando este apunta en una direccin de memoria no valida. Los apuntadores colgantes son un error de programacin comn que ocurre en lenguajes como C y C ++, donde la administracin de memoria se deja al desarrollador. Loa apuntadores colgantes son un problema bien entendido en la ciencia de la computacin, pero hasta hace poco el uso de apuntadores colgantes como vehculo de ataque fue considerado solo teora.

2.7.

Medidas para contrarrestar apuntadores colgantes

Puede tratarse con los apuntadores colgantes al aplicar estndares de creacin de cdigos de forma segura. Una vez ms, deben aplicarse revisiones de cdigo y utilizar el apoyo de la experiencia de terceros. Adems de asegurar mejores prcticas de creacin de cdigo, se han creado trminos y tipos de datos para ayudar a que los programadores hagan lo correcto cuando desarrollan en lenguaje de bajo nivel.

10

CAP4. Hackeo de UNIX


Telnet de reserva y canales traseros

Popularidad Simplicidad Impacto Evaluacin de riesgo

5 3 8 5

Cuando se pide el URL, anterior para el servidor web, el comando cat/etc/passwd se ejecute con los privilegios del usuario www luego se ofrece el comando output en forma de descarga de archivo al usuario. Debido a que los atacantes seran capaces de ejecutar comandos remotos en el servidor web una versin ligeramente modificada de esta explotacin ofrecer acceso a Shell interactivo

2.8.

Medidas para contrarrestar el canal trasero

La mejor prevencin es mantener sus sistemas seguros para que no pueda ejecutarse un ataque de canal trasero. Esto incluye deshabilitar servicios no necesarios y aplicar parches de vendedor y soluciuones alternas relacionadas lo antes posible Eliminar X de cualquier sistema que requiera un nivel de seguridad alto. No solo evitar que os atacantes disparen de regreso un xterm, sino que tambin ayudara a prevenir que los usuarios locales escalen sus privilegios a root por medio de vulnerabilidades en los binarios X

Tipos comunes de ataques remotos


Popularidad Simplicidad Impacto Evaluacin de riesgo 8 7 8 8

FTP, o producto de transferencias de archivos es uno de los protocolos ms comunes utilizados hoy en da. Le permite subir y descargar archivos del sistema remotos. A menudo se abusa de FTP para obtener acceso a sistemas remotos o almacenar archivos ilegales. Muchos servidores FTP toleran acceso annimo al permitir de cualquier usuario inicie sesin en el servidor FTP sin autentificacin.

Medidas para contrarrestar FTP


Aunque FTP es muy til permitir acceso FTP annimo es arriesgado para la salud del servidor FTP y decidir que se permita acceso FTP annimo. Muchos sitios permiten este acceso FTP sin embargo debe pensar ms en la seguridad del servidor.

11

CAP4. Hackeo de UNIX


III.

Conclusin

Como hemos visto en este captulo UNIX es un sistema complejo que requiere mucha planeacin para implementar medidas de seguridad adecuada. El poder y la elegancia que hace UNIX sea tan popular tambin las debilidades de seguridad ms grandes. Un gran nmero de tcnica de explotaciones remotas y locales puede permitir a los atacantes subvertir la seguridad a uno de los sistemas UNIX ms fuertes.

12

También podría gustarte