Subscribete por Email

Compromiso'No se enviara span.

Mostrando las entradas con la etiqueta Vulnerabilidades. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Vulnerabilidades. Mostrar todas las entradas

martes, 11 de junio de 2013

Herramientas para crear USB que analice malware (Parte 2 de 3)

Continuamos con la segunda parte de herramientas que todo analista de seguridad y malware necesita en su USB a la hora de revisar una computadora.

RootKit Revealer

RootkitRevealer es una utilidad avanzada de detección de rootkits. Se ejecuta en Windows NT 4 y versiones posteriores y su salida incluye una lista de discrepancias entre el Registro y la API del sistema de archivos que puede indicar la presencia de un rootkit de modo de usuario o de modo núcleo. RootkitRevealer detecta correctamente todos los rootkits persistentes publicados en www.rootkit.com, que incluyen AFX, Vence y HackerDefender (Nota: RootkitRevealer no está destinado a detectar rootkits como Fu que no intentan ocultar sus archivos ni sus claves del registro). Si lo usa para identificar la presencia de un rootkit, comuníquenoslo.

La razón por la cual ya no existe una versión de línea de comandos es que los autores de código malintencionado comenzaron a centrarse en el análisis de RootkitRevealer mediante su nombre de archivo ejecutable. Por lo cual, tuvimos que actualizar RootkitRevealer para que ejecute su análisis a partir de una copia con nombre aleatorio que se ejecuta como servicio de Windows. Este tipo de ejecución no es favorable para una interfaz de línea de comandos. Tenga en cuenta que puede usar las opciones de línea de comandos para ejecutar un análisis automático con resultados registrados en un archivo, lo que es equivalente al comportamiento de la versión de línea de comandos.


¿Qué es un rootkit?


El término rootkit se usa para describir mecanismos y técnicas por los cuáles código mal intencionado, incluidos virus, spyware y troyanos, intentan ocultar su presencia de bloqueadores de spyware, antivirus y utilidades de administración del sistema. Existen varias clasificaciones de rootkits que dependen de si el código mal intencionado sobrevive el reinicio o si se ejecutan de modo de usuario o modo núcleo.


Rootkits persistentes

Un rootkit persistente está asociado con código mal intencionado que se activa cada vez que se inicia el sistema. Debido a que dicho código mal intencionado contiene código que se debe ejecutar automáticamente en cada inicio del sistema o cuando un usuario inicia sesión, debe almacenar código en un almacenamiento persistente, como por ejemplo, el Registro o el sistema de archivos, y configurar un método por el cuál el código se ejecute sin intervención del usuario.


Uso de RootkitRevealer


RootkitRevealer requiere que la cuenta desde la que se ejecuta tenga asignados los privilegios para hacer copias de seguridad de archivos y directorios, cargar controladores de dispositivos y realizar las tareas de mantenimiento del volumen (en Windows XP y versiones posteriores). El grupo Administradores tiene asignado estos privilegios de forma predeterminada. Para minimizar los falsos positivos al ejecutar RootkitRevealer en un sistema inactivo.

Para obtener los mejores resultados, cierre todas las aplicaciones y mantenga inactivo el sistema durante el proceso de análisis de RootkitRevealer.

Interpretación de los resultados

Esta es una captura de pantalla de RootkitRevealer que detecta la presencia del popular rootkit HackerDefender. Las discrepancias de clave del Registro muestran que las claves del Registro que almacenan el controlador de dispositivo de HackerDefender y la configuración del servicio no son visibles a la API de Windows, pero están presentes en el análisis de nivel bajo de los datos del subárbol del Registro. Del mismo modo, los archivos asociados de Hackerdefender no son visibles para el análisis del directorio de la API de Windows, pero están presentes en el análisis de los datos sin procesar del sistema de archivos.


Debe examinar todas las discrepancias y determinar la posibilidad de que indiquen la presencia de un rootkit. Lamentablemente, no hay manera definitiva de determinar, según la salida, si un rootkit está presente, pero debería examinar todas las discrepancias informadas para asegurarse de que tienen explicación. Si determina que tiene un rootkit instalado, busque en la Web para obtener las instrucciones de eliminación. Si no está seguro sobre cómo quitar un rootkit, deberá volver a dar formato al disco duro de sistema y reinstalar Windows.


Esta herramienta combinada con process explorer nos dará un vistazo detallado del sistema. Nos permitirá ver que procesos tienen ocupado un recurso de red.

TCPView es un programa de Windows que muestra listados detallados de todos los extremos de TCP y UDP del sistema, incluidas las direcciones locales y remotas y el estado de las conexiones TCP. En Windows NT, 2000 y XP, TCPView informa también del nombre del proceso que posee el extremo. TCPView ofrece un subconjunto más informativo y perfectamente presentado del programa Netstat incluido con Windows. La descarga de TCPView incluye Tcpvcon, una versión de línea de comandos con la misma funcionalidad.

TCPView funciona en Windows NT/2000/XP y Windows 98/Me. Se puede usar TCPView en Windows 95 si se cuenta con Windows 95 Winsock 2 Update de Microsoft.



Uso de TCPView

Cuando se inicia TCPView, enumera todos los extremos activos TCP y UDP, resolviendo todas las direcciones IP como sus versiones de nombre de dominio. Se puede usar un botón de barra de herramientas o un elemento de menú para activar y desactivar la pantalla de nombres resueltos. En sistemas Windows XP, TCPView muestra el nombre del proceso que posee cada extremo.

De forma predeterminada, TCPView se actualiza cada segundo, pero se puede usar el elemento de menú Options|Refresh Rate (Opciones|Frecuencia de actualización) para cambiar la frecuencia. Los extremos que cambian de estado de una actualización a la siguiente se resaltan en amarillo, los eliminados se muestran en rojo y, los nuevos extremos, en verde.

Se pueden cerrar conexiones TCP/IP establecidas (las etiquetadas con un estado de ESTABLISHED, es decir, establecido) si selecciona File|Close Connections, o hace clic con el botón secundario en una conexión y elige Close Connections en el menú contextual resultante.

Se puede guardar la ventana de resultados de TCPView en un archivo mediante el elemento de menú Save 


Este software nos permite ver un resumen de que procesos tiene abiertos que archivos. Igual que tenemos con Process Explorer.

Esta herramienta no requiere instalación o de archivos dll, sólo es cuestión de ejecutar el exe, seleccionar el proceso a inspeccionar y dar OK. No es muy complicado.



Comandos
/RunProcess <exe filename>Run the specified process
/ProcessParams <parameters>Specify parameters for the process that you run with /RunProcess.
/StartImmediately <0 | 1>Specify the "Start Immediately" value (0 or 1).

Esta ha sido la segunda parte, espero que les haya gustado y les sirvan las herramientas, si tienen alguna duda, comentenla. Pronto veremos la tercera y última parte de estas herramientas.

miércoles, 29 de mayo de 2013

Herramientas para crear USB que analice malware (Parte 1 de 3)

Para los analistas de seguridad o los que se introducen en el mundo de limpiar computadoras siempre es importante tener sus herramientas para analizar el malware, bueno, hoy traigo un kit tools para analizar malware desde una USB. Son herramientas de seguridad desde observación de procesos hasta el análisis de tráfico de paquetes en redes, la mayoría son herramientas de Windows.


Estas herramientas son las que más destacan sobre el kit de Sysinternals Suite. La suite de Sysinternals es imprescindible en casi cualquier tarea de administración, reparación, pero también en materia de malware.


Autoruns: Esta herramienta permite ver de manera muy clara que programas se inician con el sistema. Permite además realizar snapshots. Esto nos sirve porque, imaginad que estamos en una empresa y hay dos máquinas iguales. Con Autoruns podríamos hacer uns snapshot de la máquina limpia, otro snapshot de la máquina infectada y poder comparar los resultados.


Uso

Simplemente ejecute Autoruns y le mostrará las aplicaciones de inicio automático configuradas actualmente, así como la lista completa de ubicaciones del Registro y sistema de archivos disponibles para la configuración de inicio automático. Las ubicaciones de inicio automático que muestra Autoruns incluyen entradas de inicio de sesión, complementos del Explorador, complementos de Internet Explorer que incluyen objetos del ayudante del explorador (BHO), DLL de Appinit, apropiaciones de imágenes, imágenes de ejecución de inicialización, DLL de notificación de Winlogon, Servicios de Windows y proveedores de servicio por capas Winsock. Cambie las fichas para ver los inicios automáticos de categorías diferentes.

Para ver las propiedades de un archivo ejecutable configurado para ejecutarse automáticamente, selecciónelo y utilice el elemento de menú Properties o el botón de la barra de herramientas. Si Process Explorer está en ejecución y hay un proceso activo que ejecuta el archivo ejecutable seleccionado, el elemento de menú Process Explorer del menú Entryabrirá el cuadro de diálogo de propiedades del proceso que ejecuta la imagen seleccionada.

Diríjase a la ubicación del Registro o el sistema de archivos que se muestra o a la configuración de un elemento de inicio automático seleccionando el elemento y usando el elemento de menú Jump o el botón de la barra de herramientas.

Para deshabilitar una entrada de inicio automático, desactive su casilla de verificación. Para eliminar una entrada de configuración de inicio automático, use el elemento de menú Delete o el botón de la barra de herramientas.

Seleccione entradas en el menú User para ver imágenes de inicio automático para cuentas de usuario diferentes.

Hay disponible más información sobre las opciones de visualización e información adicional en la ayuda en línea.

Sintaxis de Autorunsc

Autorunsc es la versión de línea de comandos de Autoruns. Su sintaxis es:

Uso: autorunsc [-a] | [-c] [-b] [-d] [-e] [-h] [-i] [-l] [-m] [-n] [-p] [-r][-s] [-v] [-w] [user]
-a Muestra todas las entradas.
-b Inicia la ejecución.
-c Imprime el resultado como CSV.
-d DLL de Appinit.
-e Complementos del Explorador.
-h Apropiaciones de imágenes.
-i Complementos de Internet Explorer.
-l Inicios de sesión (valor predeterminado).
-m Oculta las entradas de Microsoft firmadas.
-n Proveedores de protocolo Winsock.
-p Controladores de monitor de impresora.
-r Proveedores de LSA.
-s Servicios de inicio automáticos y controladores no deshabilitados.
-t Tareas programadas.
-v Comprueba firmas digitales.
-w Entradas de Winlogon.
user Inicios automáticos de volcado para la cuenta de usuario especificada.




Portmon: Esta herramienta nos permitirá ver de manera detallada la actividad en puertos serie y paralelo.


Supervisión remota: Captura el resultado del depurador en Win32 o modo núcleo de cualquier equipo accesible mediante TCP/IP, incluso por Internet. Puede supervisar varios equipos remotos simultáneamente. Portmon instalará aún su software cliente si lo ejecuta en un sistema Windows NT/2K y está capturando de otro sistema Windows NT/2K en el mismo entorno de red.
  • Listas de filtros más recientes: Portmon se ha ampliado con capacidades eficaces de filtrado y recuerda las selecciones de filtro más recientes, con una interfaz que hace sencillo seleccionarlos de nuevo.
  • Copia en el Portapapeles: selecciona varias líneas en la ventana de resultados y copia su contenido en el Portapapeles.
  • Resaltado: resalta el resultado del depurador que coincida con el filtro de resaltado e incluso personaliza los colores de resaltado.
  • Registro en archivo: escribe el resultado del depurador en un archivo a la vez que se captura.
  • Impresión: imprime todo o parte del resultado del depurador capturado en una impresora.
  • Carga de un archivo:Portmon ahora se implementa como un archivo.


Process Explorer: Este programa nos permite ver MUY detalladamente los procesos abiertos en el sistema.

Además nos permite ver que archivos tiene abiertos que procesos. Si los procesos están iniciados con soporte para DEP o ALSR. Y de manera gráfica procesos padre e hijos. Muy recomendable, la verdad.



La pantalla de Process Explorer incluye dos subventanas. La ventana superior siempre muestra una lista de los procesos activos, incluidos los nombres de sus cuentas de propiedad; mientras que la información mostrada en la ventana inferior depende del modo en que se encuentre Process Explorer: si está en modo de identificador, verá los identificadores que ha abierto el proceso seleccionado en la ventana superior; si Process Explorer está en modo de DLL, verá los archivos DLL y los asignados en memoria que el proceso ha cargado. Process Explorer también tiene una eficaz capacidad de búsqueda que le mostrará rápidamente los procesos que hayan abierto ciertos identificadores o cargado determinados archivos DLL.

Las capacidades únicas de Process Explorer lo convierten en una útil herramienta para la localización de problemas de versión de DLL o pérdidas de identificadores, y ofrece detalles internos acerca del funcionamiento de Windows y las aplicaciones.

La siguiente parte se pondrán más herramientas de malware. Comenten si les gustó el post. 

viernes, 3 de mayo de 2013

Las cinco vulnerabilidades más críticas según OWASP (Primera Parte)

OWSAP (The Open Web Application Security Project) ha lanzado un top 10 de las vulnerabilidades más críticas en las páginas web. Hoy en día, donde la World Wide Web crece a pasos agigantados los problemas de seguridad en las páginas web cada vez son más grandes.

Hoy les dejo esta información que es de mucha ayuda para aquellos dueños de sitios web o en su defecto los webmaster de esos sitios. Les dejaré las cinco primeras vulnerabilidades, este post será dividido en tres partes para que puede tratar de explicar y desarrollar cada vulnerabilidad para su mejor comprensión y prevenir mejor estas vulnerabilidades sin agobiarlos de tanta información en un post.


OWASP Top Ten 2013 Project

 1. Inyecciones de código

¿Qué es?

El atacante envía simples ataques basados ​​en texto que explotan la sintaxis. Casi cualquier fuente de datos puede ser un vector de inyección, incluyendo fuentes internas.

¿Cómo sucede?
Las fallas de inyección ocurren cuando una aplicación envía datos no confiables a un intérprete. Las fallas de inyección son muy frecuentes, sobre todo en el código heredado. A menudo se encuentran en SQL, LDAP o consultas XPath, comandos del sistema operativo, los analizadores XML, los argumentos del programa, etc. Las fallas de inyección son fáciles de descubrir al examinar el código, pero más difícil a través de pruebas. Scáners y fuzzers pueden ayudar a encontrar a los atacantes.

Consecuencias:


La inyección puede causar la pérdida de datos o la corrupción, la falta de rendición de cuentas, o la denegación de acceso. La inyección a veces puede llevar a la toma de posesión del servidor.

¿Cómo saber si eres vulnerable a las inyecciones?


La mejor manera de saber si una aplicación es vulnerable a la inyección es verificar que todo uso de intérpretes separa claramente los datos no confiables desde el comando o consulta. Para las llamadas SQL, esto significa utilizar variables bind en todas las sentencias preparadas y procedimientos almacenados, evitando consultas dinámicas. La comprobación del código es una forma rápida y precisa para ver si la aplicación utiliza intérpretes de forma segura. Las herramientas de análisis de código pueden ayudar a un analista de seguridad de encontrar el uso de intérpretes y rastrear el flujo de datos a través de la aplicación. Las pruebas de penetración pueden validar estas cuestiones por la elaboración de las hazañas que confirman la vulnerabilidad. El análisis dinámico automatizado que ejerce la aplicación puede ayudar a determinar si existen algunos errores de inyección explotables. Los scanners no siempre pueden llegar a intérpretes y tienen dificultades para detectar si un ataque tuvo éxito. La prueba de gestión de errores hace que los errores de inyección sean fácil de descubrir.



¿Cómo evitar una inyección de código?
La prevención de inyección requiere mantener los datos privados separados de comandos y consultas.

1.La opción preferida es usar una API de seguridad que evite el uso de la totalidad o  que el intérprete proporcione una interfaz parametrizada. Tengan cuidado con las APIs, tales como las de procedimientos almacenados, que son parametrizados, porque todavía pueden presentar inyección debajo de la capucha.

2.Si una API con parámetros no está disponible, deben ser cuidadosos con que no se escapen caracteres especiales usando la sintaxis de escape específico para ese intérprete. ESAPI de OWASP proporciona muchas de estas rutinas donde se escapan .

3.También se recomienda usar una "lista blanca" de validación de entrada positiva o canonización apropiada, pero no es una defensa completa ya que muchas aplicaciones requieren caracteres especiales en sus aportaciones. ESAPI de OWASP tiene una biblioteca ampliable de | lista de rutinas de validación de entrada blancas .

EJEMPLOS:

La aplicación utiliza los datos que no son de confianza en la construcción de la siguiente llamada de SQL vulnerables:

String query = "SELECT * FROM cuentas DONDE custID = '" + request.getParameter ("id") + "'";
El atacante modifica el parámetro 'id' en su navegador para enviar: 'o '1' = '1. Esto cambia el significado de la consulta para devolver todos los registros de la base de datos de las cuentas, en lugar de sólo hacer la llamada como cliente.
http://example.com/app/accountView?id = 'o '1' = '1
En el peor de los casos, el atacante utiliza esta debilidad para llamar procedimientos especiales almacenados en la base de datos que permiten una absorción completa de la base de datos y, posiblemente, el servidor que aloja la base de datos.


2. Autenticación y Gestión de Sesiones

¿Qué es?
A esta vulnerabilidad se le reconoce cuando un usuario anónimo intenta introducirse a través de la cuenta de otro o del administrador para robar las cuentas de otros usuarios. Algunos expertos en seguridad opinan que incluso para mantener o seguir las acciones de ciertos usuarios.

¿Cómo sucede?
Normalmente estos ataques suceden después de un ataque SQL o por Phishing, así obteniendo el usuario y la contraseña para después poder acceder a la cuenta para su manipulación. Desarrolladores con frecuencia construyen sistemas de gestión de sesiones y autenticación personalizada, pero la construcción de estos correctamente es difícil. Como resultado, estos esquemas personalizados con frecuencia tienen deficiencias en áreas tales como cierre de sesión, administración de contraseñas, tiempos de espera, el remember me, la pregunta secreta, cuenta de actualización, etc encontrar tales defectos a veces puede ser difícil, ya que cada aplicación es única.

Consecuencias
Tales defectos pueden permitir que algunas o incluso todas las cuentas sean atacadas. Una vez conseguido esto, el atacante puede hacer lo que sea sin que la víctima pueda hacer algo. Las cuentas con privilegios son con frecuencia son blanco de ataques.


¿Cómo saber si eres vulnerable?

Los principales activos de protección son las credenciales y los identificadores de sesión.
¿Las credenciales de autenticación siempre están protegidos cuando se almacena utilizando hash o cifrado? ¿Pueden las credenciales adivinar o sobrescrirse por funciones débiles de gestión (por ejemplo, la creación de cuentas, cambio de contraseña, recuperar la contraseña, ID de sesión débiles)?
¿Son los identificadores de sesión expuestas en la dirección URL (por ejemplo, la reescritura de URL)?
¿Son los identificadores de sesión vulnerables a la fijación de sesión ataques?

¿Cómo puedo evitar este ataque?
. Un único conjunto de controles de autenticación y gestión de sesiones fuertes controles deben esforzarse por:
1. Cumplir con todos los requisitos de autenticación y gestión de sesiones definidas en OWASP Aplicación Verificación de seguridad estándar (ASVS) áreas V2 (autenticación) y V3 (Gestión de la sesión).
2. Tener una interfaz sencilla para los desarrolladores. Considere el autenticador ESAPI y APIs usuario como buenos ejemplos a imitar, usar o aprovechar.
3.  También se deben hacer grandes esfuerzos para evitar fallas de XSS que pueden ser utilizados para robar los identificadores de sesión.