The Information Systems and Computer Applications examination covers material that is usually taught in an introductory college-level business information systems course.

Archive for March, 2015

Vagrant: Múltiples maquinas virtuales

Mediante Vagrant podemos crear y destruir entornos de pruebas fácilmente, pero cuando las pruebas son más complejas necesitaremos varias maquinas virtuales para un único entorno. Vamos a ver cómo definir con un único Vagrantfile varias maquinas virtuales

Para ello definiremos cada maquina con un nombre:

config.vm.define :ldap do |ldap|

Por lo que podemos modificar individualmente cada maquina virtual mediante dicho nombre:

ldap.vm.host_name = "ldap.vm"

Un ejemplo de configuración con tres maquinas sería:

Vagrant::Config.run do |config|
  config.vm.define :ldap do |ldap|
          ldap.vm.box       = "centos65-x86_64"
          ldap.vm.box_url   = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box"
          ldap.vm.host_name = "ldap.vm"
          ldap.vm.network :hostonly, "192.168.56.11"
          ldap.vm.provision :shell, :path => "puppet.sh"
  end

  config.vm.define :ldapslave do |ldapslave|
          ldapslave.vm.box       = "centos65-x86_64"
          ldapslave.vm.box_url   = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box"
          ldapslave.vm.host_name = "ldapslave.vm"
          ldapslave.vm.network :hostonly, "192.168.56.13"
          ldapslave.vm.provision :shell, :path => "puppet.sh"
  end


  config.vm.define :ldapclient do |ldapclient|
          ldapclient.vm.box       = "centos65-x86_64"
          ldapclient.vm.box_url   = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box"
          ldapclient.vm.host_name = "lclient.vm"
          ldapclient.vm.network :hostonly, "192.168.56.12"
          ldapclient.vm.provision :shell, :path => "puppet.sh"
  end
end

Mediante vagrant podemos gestionarlas todas a la vez, por ejemplo:

$ vagrant up

O individualmente indicando el nombre de la maquina que nos interesa:

$ vagrant up ldapslave

Tags:

Visit Website

Advertisements

Ataque de “Pr0n RSS Injection” y pon fin a los plagiadores

El mundo de hoy en día en Internet, por desgracia es muy común encontrarse con sitios webs que se dedican a fusilar el contenido de blogs sin permiso, copiando de forma integra y sin miramiento alguno lo que se publica en otras páginas web o blogs – como sucede en muchos sitios con el contenido de este blog -. Algunos se limitan a utilizar la clásica técnica de copy & paste manualmente, otros reescriben parcialmente el artículo cambiando algunas frases para que parezca originalmente suyo, pero los peores de todos ellos son los que directamente sindican el contenido vía RSS, de manera que en su blog o sitio web se crea una entrada nueva por cada artículo que se publique en el sitio original, y todo esto, por supuesto, completamente automatizado. Esta técnica de copia de contenido por sindicación vía RSS es la protagonista de esta historia y de cómo un ataque de Pr0n RSS Injection acabó con él.

Figura 1: Ataque de “Pr0n RSS Injection” y pon fin a los plagiadores

Puede que ya conozcáis la comunidad profesional de ITPro.es, la cual está formada por unos 80 expertos en Tecnologías de la Información que a diario publican artículos técnicos de calidad y en español. Si alguna vez has abierto un blog, sabrás lo duro que es generar contenido original valioso, y lo que cuesta crear un artículo con algo que no esté publicado en la web o que aporte valor al lector. En nuestro caso, el propietario del sitio webCorei7.com quiso aprovechar todos los contenidos que la Comunidad ITPro genera para enriquecer, de forma automática su blog y ganar visitas sin esfuerzo.

Figura 2: Contenido original en ITPro.es

Esto, realmente no es bueno a priori para nadie, ya que al final el sistema inteligente que usan los buscadores para detectar la fuente original encontraría que ese sitio es una copia del original, pero en un escenario de condición de carrera, podría lograr ser indexado antes que el sitio original y lograr enlaces de terceros que posicionen su contenido por encima del original. Lo que perjudicaría doblemente al creador original del contenido.

Hace unos días, uno de los miembros de la Comunidad ITPro descubrió que el sitioCorei7.com le estaba copiando sus propios artículos y también los del resto de compañeros, así que nos lo reportó inmediatamente para que tomase medidas al respecto, puesto a que el número de visitas se estaba viendo afectado, además del pagerank del sitio.

Figura 3: Contenido copiado vía RSS en Corei7.com

Desde la comunidad tratamos muy cordialmente de contactar con el responsable del sitio web para solicitarle la retirada de los artículos, pero éste no respondió los correos, así que con mucho ingenio optamos por darle una lección basada en hacerle comer otro tipo de artículos no esperados con un ataque de Pr0n RSS Injection.

El blog del copiante presume de tener “La mejor información tecnológica” pero realmente se estaba alimentando de los artículos de otros integrándolos vía RSS, así que desde ITProse decidió hacer una pequeña modificación en la web original, que consiste en redirigir a un RSS algo especial a todas las peticiones que se hicieran al feed RRS que procediesen de la dirección IP de ese sitio web en concreto. Algo tan sencillo como crear esta regla en el código del servidor que sirve el RSS:

if(“206.190.143.186″== $_SERVER[‘REMOTE_ADDR’]) {
header(‘Status: 301 Moved Permanently’);
header(‘Location: http://sinmanias.blogspot.com/feeds/posts/default?alt=rss’);
}

Desde ese preciso momento, en el blog del plagiador que se dedica a reutilizar el contenido de los blogs en Internet, empezaron a crearse nuevas entradas con un contenido muy diferente al que estaba teniendo hasta ahora, tal y como podéis ver en la siguiente imagen. Esto no es nuevo, y al igual que en los casos de hotlinking, es un riesgo al que te sometes cuando integras contenido externo en tu web.

Figura 4: Ataque de Pr0n RSS Injection en Corei7.com

Si decides leer al artículo completo, te encontrarás con fotos, vídeos, etcétera del nuevo contenido del blog que generan un nuevo escenario temático y por tanto la necesidad de una nueva clasificación en las bases de datos de contenidos. Por si fuera poco, esto no termina aquí. Acto seguido se reportó en Google, Bing, Facebook, Twitter, etcétera que el contenido de ese sito web era altamente pornográfico e inapropiado, por lo que fue clasificado como es debido y retirado de los motores de búsqueda y las redes sociales. En el caso de Google, esta denuncia de contenido se realiza desde el siguiente enlace: Denuncia de Contenido en Google.

Figura 5: Denuncia de contenido inapropiado en Google

Tras esto, las visitas del sitio copiante han bajado, y las ganas de copiar contenido de losblogs de la Comunidad de ITPro por parte de este sitio también. Si tienes un blog y te copian el contenido de forma ilícita, ya sabes cómo arreglarlo, haz un Pr0n RSS Injection y denúncialo en los buscadores y redes sociales. Mano de santo.

Autor: Daniel Alonso
Administrador Comunidad ITPro


Whatsapp Intelligence: Whatsapp como fuente OSINT [1 de 3]

Una de las más frases que más habremos oído o leído a lo largo de la historia en diversas fuentes, es esa de “La información es poder”, atribuida a Sir Francis Bacon, filósofo inglés del Siglo XVI. Si ya por aquel entonces, nuestros antepasados eran conscientes del valor que la información supone desde el punto de vista del dominio, imaginemos lo que tendrían que decir si pudiesen contemplar el escenario actual en el que nos movemos, donde precisamente lo que abunda es la ingente cantidad de información que los usuarios subimos libremente a la red.

Figura 1: WhatsApp Intelligence – WhatsApp como fuente OSINT

Fuentes OSINT y Whatsapp

Los que nos movemos en el mundo de la seguridad, estamos familiarizados con el concepto de fuentes OSINT (Open Source Intelligence), término acuñado para hacer referencia al conocimiento recopilado a partir de fuentes de acceso público. Entre la cantidad de fuentes abiertas disponibles que existen a día de hoy en la actualidad, podemos destacar los medios de comunicación, redes sociales, blogs, foros, papers académicos, wikis, bibliotecas online, así como un sinfín de orígenes de información accesibles en Internet que nos permiten extraer conocimiento valioso sobre organizaciones, entidades o individuos concretos. 

Figura 2: Proceso OSINT

Este conocimiento se puede utilizar para diferentes fines, desde conocer la reputación online de una organización o realizar estudios sociológicos, hasta planificar una APT o lanzar ataques de Spear Phishing desde el punto de vista de los cibercriminales. Herramientas que se suelen utilizar para recopilar, analizar y procesar fuentes OSINTexisten muchas, desde el tradicional Hacking con Buscadores, el uso de buscadores especializados tipo Shodan para buscar servidores o NameCHK y similares para localizar nombres de usuarios, herramientas de recolección de metadatos como FOCA, API’s de servicios como Facebook, Twitter, o Youtube, servicios para extraer información de dominios, así como las famosas Cree.py u OsintStalker, y cómo no, Palantir o Maltego, por destacar algunas. Si deseas conocer más información acerca de todo esto, es recomendable leer este post sobre fuentes OSINT que publicamos hace unos meses desde el blog de INCIBE.

Reflexionando un poco acerca de esto, y a colación del trabajo que publiqué hace casi un año acerca de Whatsapp Discover, se me ocurrió que sería interesante pensar en utilizar la información que los usuarios vuelcan a diario en sus perfiles de Whatsapp como fuenteOSINT, por aquello de que estamos hablando del sistema de mensajería móvil líder en la actualidad.

Todo aquel que utilice Whatsapp, sabe que gran parte de sus contactos modifican a menudo su foto de perfil, o la información de su estado, así como no ocultan la hora en línea. De hecho, conozco a gente que a menudo invierte un rato en cotillear las fotos de perfil de sus amigos para ver si las han cambiado, o leer esas citas célebres que incluyen en sus estados. Por no hablar de los que monitorizan constantemente también la última hora en línea de sus contactos para tenerlos controlados con herramientas tipo WhatsSpy Public.

Utilizar Whatsapi para generar conocimiento

La idea era realizar un pequeño script que dada una serie de números de teléfono de usuarios que se le pasan como fuente de entrada, se conectase a los servidores deWhatsapp de manera periódica para almacenar la foto de perfil, el estado y la última hora en línea de dichos usuarios en una estructura de directorios, así como también en base de datos, de cara a evaluar si a partir de explotar esta información era posible extraer conocimiento y generar inteligencia.

Para acometer esto, existen varias alternativas. A día de hoy, existen dos API’s disponibles para poder conectarse a Whatsapp: WhatsAPI en PHP y Yowsup en Python. En mi caso, decidí usar WhatsAPI-Official, que está en la actualidad mantenida por mgp25, quien ha recogido el legado de la famosa WhatsAPI original que en su día mantenía shirioko. Hay que tener en cuenta que estas API’s no tienen ningún tipo de soporte oficial por parte deWhatsapp (es más, en su día Whatsapp coaccionó a los creadores de WhatsAPI y consiguió cerrar el repositorio durante unos meses), sino que son mantenidas por la comunidad y están continuamente actualizándose para poder mantener su funcionalidad a medida que los desarrolladores de Whatsapp van introduciendo cambios en su protocolo de comunicación. 

Figura 3: WhatsApp-Official actualiza hace doras

Obteniendo credenciales de Whatsapp

El primer paso antes de comenzar a programar, es disponer de una cuenta legítima deWhatsapp, así como las credenciales de acceso a la misma, que se transmiten utilizandoSSL desde los servidores de Whatsapp al instalar la aplicación por primera vez en nuestro dispositivo. El año pasado cuando me dispuse a hacer esto en su día para Whatsapp Discover, utilicé el proxy Burp instalando el certificado PortSwigger en el móvil para poder inspeccionar el tráfico SSL con los servidores de Whatsapp, pero a día de hoy esto ya no es posible, pues en la actualidad la aplicación hace uso de Certificate Pinning.

Figura 4: Script registerTool.php que viene con Whatsapi para registrar un nuevo usuario de Whatsapp

No obstante, existen alternativas para obtener estas credenciales, así como también es posible volver a registrar un número para obtener nuevas credenciales utilizando el script registerTool.php que viene con WhatsAPI, teniendo en cuenta que esto invalidará la cuenta que tengamos en nuestro dispositivo. Por ello, es mejor utilizar un número diferente que el que tengamos habitualmente como usuarios para trastear con WhatsAPI, ya que si usamos nuestra cuenta desde el móvil y también desde el script, en determinados momentos perderemos conectividad desde alguna de las ubicaciones.

Es por ello que decidí adquirir una tarjeta SIM con un nuevo número, insertarla en mi antiguo iPhone 4S, e instalar Whatsapp. Una vez que la cuenta está correctamente registrada, es posible obtener la información necesaria accediendo a la base de datos sqlite“Cache.db”, que se encuentra en la ruta “Library/Caches/net.whatsapp.Whatsapp”dentro de la carpeta de la aplicación en el dispositivo. Dicha base de datos, contiene las siguientes tablas:

 cfurl_cache_blob_data
 cfurl_cache_receiver_data
 cfurl_cache_response
 cfurl_cache_schema_version
 sqlite_sequence

Figura 5: Base de datos “Cache.db” en la carpeta Whatsapp de un iPhone 4S

La tabla cfurl_cache_response contiene la información de las peticiones que la aplicación hace a los servidores de Whatsapp, y la tabla cfurl_cache_receiver_data almacena la información que se obtiene en la respuesta. La información que se necesita para poder utilizar WhatsAPI, está compuesta principalmente por 3 campos: username, identity ypassword. El nombre de usuario viene dado por nuestro número de teléfono con el prefijo incluido. Los otros dos valores se obtienen al registrar la aplicación y pueden obtenerse de estas dos tablas.

Figura 6: Extrayendo las credenciales de Whatsapp de la base de datos Sqlite

Programando script con Whatsapi

Una vez que se dispone de los valores necesarios, sólo queda definir lo que se quiere hacer, y ponerse a programar. Para ello, es posible consultar la información que viene en la wiki de WhatsAPI, donde se documenta detalladamente el proceso para conectarse a los servidores de Whatsapp utilizando las credenciales obtenidas, así como las diferentes funciones disponibles o el sistema de eventos que se han de definir para procesar la información que se recibe.

El script, que decidí llamar, “whatsapp_intelligence.php”, toma un fichero como fuente de entrada que contiene la información de los contactos a monitorizar (número de teléfono, dispositivo, versión de la aplicación), que en mi caso proviene de la salida de Whatsapp Discover, pues para realizar este estudio he utilizado los números de usuarios que he ido recopilando en diferentes redes WiFi públicas donde he utilizado esta herramienta, además de diferentes países en los que he estado este último año. Evidentemente cualquiera puede utilizarlo para analizar la información de los contactos de su agenda, o determinados objetivos que le sean de interés, que ya sabemos el interés que existe porespiar WhatsApp.

En este caso particular, me ha parecido interesante recopilar información de personas desconocidas para ver qué se puede obtener de ellas, que además no me han facilitado su número de motu propio, sino a raíz de una mala praxis en materia de seguridad. Así pues, lo que pretende Whatsapp Intelligence es extender la funcionalidad de Whatsapp Discover para intentar extraer conocimiento de manera automatizada.

Figura 7: Fragmento de código del script “WhatsApp_intelligence.php”

El funcionamiento del script es bastante sencillo. Se configura la ruta donde se creará la estructura de directorios que almacenará para cada número de teléfono de un usuario, las diferentes fotos de perfil que se vayan recolectando, así como un log de su última hora en línea cada vez que se ejecute, y otro con la información del estado. Por otro lado se facilitan a su vez las credenciales de conexión a una base de datos MySQL donde también se almacenará toda esta información (salvo las fotos de perfil) en tres tablas (info, lastseen y status) de cara a poder explotarla mediante consultas.

Posteriormente se define el comportamiento para los eventos que se van a utilizar (onGetProfilePicture, onGetRequestLastSeen y onGetStatus), se recorre el fichero de entrada con la información de usuarios para generar un array de “targets” y mediante un bucle se va solicitando toda esta información a los servidores de Whatsapp para posteriormente ir volcándola tanto en los directorios como en la base de datos.

Figura 8: Creando la estructura de directorios de un servidor Apache

Para poder visualizar esta información de manera cómoda, creé esta estructura de directorios dentro de un servidor Apache con Directory Listing activado (poco seguro pero no expuesto a Internet) . En dicha estructura para cada número de móvil que corresponde a un usuario de Whatsapp, se crea un directorio donde se almacenan las fotos de perfil que se van obteniendo, siempre y cuando sean diferentes, así como el registro de la última hora en línea y el estado en respectivos ficheros de log, para tener el registro de todas las ejecuciones del script. 

Figura 9: Fotos de perfil, logs de lastseen y estados para un usuario concreto

En la base de datos, no se almacenan los estados repetidos, pero sí que se registra toda la información que se tiene acerca de la última hora en línea de un usuario, pues además de tener el dato absoluto (que podría ser igual en varios registros), permite calcular la diferencia de días, horas, minutos y segundos respecto de la hora que solicitó de cara a establecer patrones de dependencia o adicción de un usuario a Whatsapp.

Autor: Deepak Daswani
Sitio web: http://deepakdaswani.es
Twitter: @dipudaswani

****************************************************************************************
Whatsapp Intelligence: Whatsapp como fuente OSINT [1 de 3]
– Whatsapp Intelligence: Whatsapp como fuente OSINT [2 de 3]
– Whatsapp Intelligence: Whatsapp como fuente OSINT [3 de 3]
****************************************************************************************


¿Qué tan malo es dejar encendido el ordenador por las noches?

¿Qué tan malo es dejar encendido el ordenador por las noches?Dejar encendido el ordenador por las noches depende de qué tanto lo utilicemos, sin embargo, aquí te damos algunos consejos para decidir qué deberías hacer ante esta situación.

Si utilizas el ordenador varias veces al día, lo mejor es dejarlo encendido entre cada intervalo de tiempo; si utilizas el ordenador por períodos cortos de tiempo, digamos una o dos horas al día, o incluso menos, lo mejor es apagarlo en cuanto se deje de usar.

La verdad es que no existe una respuesta única a la pregunta que titula este artículo, sino más bien ventajas y desventajas para cada usuario de manera individual en función de lafrecuencia de uso, veamos por qué.

Los componentes y el consumo de energía

Los modelos de computadoras que se comercializaban en el año de 1993 eran ideales para dejarlas encendidas todo el tiempo, debido a que podían presentar un fallo en el botón de encendido tras constantes encendidos y apagados. Sin embargo, en los modelos más recientes de ordenadores esto ya no sucede.

Los componentes que sí pueden correr riesgo son los discos duros tradicionales que cuentan con partes móviles, a diferencia de los discos duros de estado sólido que son mucho más robustos en este sentido. Hay que tener cuidado con el aumento de la temperatura del ordenador ya que esto puede hacer que algunas piezas mecánicas o componentes comiencen a fallar.

Dejar encendido el ordenador por las noches

Algunos componentes del ordenador fallarán inevitablemente, pero puedes utilizar algunas funciones para alargar su tiempo de vida.
La batería y el disco duro tienen un ciclo de vida limitado. Afortunadamente, la mayoría de los sistemas operativos actuales permiten suspender o hibernar cuando no se están utilizando, lo que permite extender un poco más la vida útil de estos componentes.

El modo Suspender es muy bueno porque pone el PC en un estado de bajo consumo sin apagarlo completamente. En Hibernación, el equipo deja de usar energía y reanuda el PC donde estaba cuando lo pusiste en ese modo. Sin embargo, hibernar es una opción menos deseable porque produce un desgaste similar al de encender y apagar.

Dejar encendido el ordenador por las noches no suele consumir mucha electricidad si el equipo tiene activada la función de ahorro de energía, pero hay que tener en cuenta que, al cabo de meses y años, este consumo de energía puede parecer inimaginable.

Razones para apagarlo

Dejar encendido el ordenador por las noches

  • Si no lo vas a utilizar, apagar y desconectar el ordenador por las noches es una buena forma de reducir tu factura de energía eléctrica. Recuerda que encender un equipo electrónico produce más desgaste que dejarlo encendido por un tiempo prolongado. La razón, es que el pico de tensión inicial en los circuitos del hardware hace que el equipo se resienta.
  • Por otro lado, si utilizas ADSL u otro tipo de banda ancha para conectarte a Internet, es posible que tu tarifa de consumo aumente si no desactivas ciertas funciones en el sistema que pueden estar requiriendo el envío y recepción de datos adicionales. Por ejemplo, un cliente de correo electrónico que trabaja en segundo plano y está configurado para escanear nuevos correos cada 5 minutos.
  • Además, una forma muy sencilla de prevenir ser victima de ataques informáticos o de robo de identidad es asegurándote de desconectar tus cuentas (cerrar sesión) antes de abandonar tu ordenador porque nunca se sabe quién puede escabullirse con malas intenciones en nuestro equipo por las noches.
  • Algunos sistemas operativos, como Windows, suelen quedarse colgados si se utilizan por largos períodos de tiempo, por ello, es conveniente reiniciar el sistema regularmente para que la memoria RAM libere ciertos procesos acumulados.
  • Apagar el ordenador por las noches ayuda a reducir el ruido que los componentes pueden emitir al estar funcionando y puede reducir el insomnio provocado por la luz de las pantallas de ciertos equipos.

Razones para dejarlo encendido

Dejar encendido el ordenador por las noches

  • Un ordenador puede estar configurado para trabajar como un servidor web o un servidor para impresión. Cuando este es el caso, el PC no se debe apagar en ningún momento, ya que esto podría causar la pérdida de datos o dejar sin funcionara los ordenadores que dependen de él.
  • Aunque los ordenadores están diseñados para realizar varias funciones a la vez, en ocasiones una sola tarea puede estar consumiendo grandes cantidades de memoria y puede hacer que el resto de tareas no funcionen adecuadamente. Esta es la razón por la que es mejor instalar actualizaciones, correr un antivirus o desfragmentar el disco duro por las noches. Las descargas de archivos muy grandes también puedes dejarlas para antes de dormir y así tenerlas listas por la mañana.