jueves, 24 de abril de 2014

Xenotix XSS Exploit Framework v5.0 de OWASP

Hola! Recibí la noticia que OWASP liberó la quinta versión de Xenotix. Excelente noticia para tod@s aquell@s travies@s que estaban esperando esta jugosa actualización.

Para los que no lo conocen este framework es considerado el segundo repositorio de XSS Payloads del mundo, con aproximadamente 1630 distintos XSS Payloads efectivos para hacer detección de vulnerabilidades XSS y hacer WAF Bypass. Este engine te permite crear tests personalizados con la Xenotix API. Además incorpora una característica muy útil con el módulo de Information Gathering para la etapa de enumeración. Sin mencionar también los módulos de explotación ofensiva de XSS para Penetration Testing y uno especial llamado: Proof of Concept Creation.

Puedes bajártela de aquí.

Estos son los cambios que trae la versión 5:

  • Xenotix Scripting Engine
  • Xenotix API
  • V4.5 Bug Fixes
  • GET Network IP (Information Gathering)
  • QR Code Generator for Xenotix xook
  • HTML5 WebCam Screenshot(Exploitation Module)
  • HTML5 Get Page Screenshot (Exploitation Module)
  • Find Feature in View Source.
  • Improved Payload Count to 1630
  • Name Changes

Necesitarás tener preinstalado Microsoft .NET Framework 4.0 y IronPython 2.7.3 para que funcione. El año pasado Xenotix fue de las herramientas más votadas como una de las mejores "Top Security Tools", ya que se caracteriza por dar una baja tasa de falsos positivos utilizando tres motores de los navegadores conocidos, Trident, WebKit y Gecko.

Acá les comparto información adicional de la herramienta en sus versiones anteriores:



File:XENOTIX EXPLOITATION.png

miércoles, 23 de abril de 2014

The Amnesic Incognito Live System, used by Snowden.

The Amnesic Incognito Live System  conocido como TAILS, es un sistema operativo tipo Live.

Su principal característica de este sistema operativo es que está construido con la privacidad como pilar principal. Es un sistema Linux basado en Debian y que integra varias herramientas ya configuradas para usar la red Tor, GPG, OTR (Off The Record), cifrado de discos y particiones (LUKS), etc.

La razón de esta entrada no es que TAILS sea un sistema operativo nuevo ni mucho menos, sino es porque según Wired y Freedom of the Press Foundation, este es el sistema que Edward Snowden junto al periodista Glenn Greenwald y la productora Laura Poitras, entre otros, usaban para comunicarse y así evitar ser espiado por la NSA.

Sus creadores se mantienen en el anonimato, por lo que muchos piensan que algún gobierno o la propia NSA estuviera detrás de este sistema, pero lo visto en una las diapositivas que han salido a la luz se puede observar como NSA quejaba de TAILS.

TAILS actualmente está en su versión 0.23, pero hay planes de que el 29 de abril salga a la luz so versión 1.0, después de 5 años de trabajo.

Si deseas apoyar este proyecto, puedes hacerlo a través de este enlace.

sábado, 19 de abril de 2014

Recolección de información con TinfoLeak.

Hola! Hoy deseo mostrarles una herramienta muy útil si necesitas recolectar información acerca de algún contacto de Twitter. Seguro dirás: "ninguna novedad... hay muchas". Pues si, pero esta Python-based tool que va por la versión 1.2 (y según su autor casi sale la 1.3) te arroja una muy rica cantidad de datos.

Al ser parametizable, permite ver datos básicos, cantidad de tweets, menciones, hashtags, ubicación geográfica y otros detalles.

Estas apps no intrusivas te permiten una recolección de datos previos, para múltiples propósitos. Cada quien sabrá para cuales... }:-)

Empecemos por el principio, su creador es Vicente Aguilera Diaz. @VAguileraDiaz. Representante del capítulo OWASP de España. Está hecha en python (v 2.7). La herramienta se llama Tinfoleak. Hay varios requisitos previos antes de usarla. Veamos a continuación:

  1. Asumo que están usando alguna versión de Linux, si tienes Windows asegúrate de buscar los instaladores adecuados. En mi caso uso una versión de Debian completamente inocente, la bella Kali.
  2. Si no tienes una cuenta de Twitter, pues deberás creártela. Dale, en 5 minutos haces este paso.
  3. Lo siguiente que necesitas es darte de alta como developer en Twitter. Esto para que puedas usar el API de Twitter, que va por la versión 1.1 (en este link encontrarás todo el framework necesario). Los pasos para hacerte developer puedes encontrarlos acá. Cuál es el resultado que debes esperar luego de seguir los pasos anteriores? Básicamente cuatro valores que deberás colocar en un archivo .py (py por Python) que luego explicaré.
  4. Los valores mencionados corresponden a los parámetros: CONSUMER_KEY (API Key), CONSUMER_SECRET, ACCESS_TOKEN y ACCESS_TOKEN_SECRET. Qué significan estos parámetros, no es relevante para este post, lo que debes saber es dónde colocarlos.
  5. Lo anterior nos lleva al siguiente paso. Bajen de la fuente original el programa Tinfoleak.
  6. Desempaqueten/descompriman el programa donde deseen. Abran el Tinfoleak.py con algún editor de texto. Busquen dichos parámetros (OAuth settings) y coloquen entre las comillas de cada uno, los valores que les asignaron en el sitio para developers de Twitter. Hasta aquí ha sido sencillo.
  7. No cierren el documento. Busquen la siguiente línea: api = tweepy.API(auth). La modifican de la siguiente manera: api = tweepy.API(auth, secure=True). Lo anterior es porque Twitter creo ciertas medidas de seguridad cuando ejecutas sus Apps desde programas externos. Si no hacen ese cambio les presentará un error similar a [‘SSL is required’, ‘code’: 92] ya que la invocación no es segura.
  8. Cierren el archivo anterior. El autor me comentó por correo que: Por otro lado, te informo que en los próximos días voy a publicar una nueva versión (la 1.3) de tinfoleak, que corrige algunos problemas, amplía la información obtenida y aporta una nueva e interesante funcionalidad. Si estás atento a mi web (http://vicenteaguileradiaz.com/tools/), la verás allí publicada en breve (seguramente antes del lunes 21 de abril). Así que ese fix que describí ya no se hará en la siguiente versión.
  9. Otro prerequisito es verificar si tenemos Tweepy. OK... respiremos un poco. Asumo que el autor usó Python porque es ultra simple de programar, y porque tiene librerías de virtualmente TODO. En nuestro caso necesitamos tweepy, que tiene toda la API de twitter. Normalmente se instala al instalar Python, si no, lo bajas y lo instalas. Si lo tienes, vete a la siguiente dirección: /usr/share/pyshared/tweepy/. Luego abres el archivo api.py y buscas la siguiente línea: api_root='/1'. Cambias el parámetro a api_root='/1.1' para que no te de el error: [The Twitter REST API v1 is no longer active. Please migrate to API v1.1]. Eso es porque Twitter cambió el API a la versión 1.1 y hay software que no ha sido actualizado, como el tweepy.
  10. Listo!!! Puedes ejecutar el TinfoLeak.py (recuerda que es con ./) con el parámetro --h para ver la ayuda. Te voy a dar mi ID de Twitter con la ejecución básica para que veas que sale (igual puedes usar la tuya): ./tinfoleak.py -n elbartocr -b
  11. Recuerda ejecutarlo en la carpeta donde lo bajaste.
Espero lo disfruten! Nos vemos!

miércoles, 9 de abril de 2014

Fallo en OpenSSL: Heartbleed

Hace un par de días atrás el US-CERT sacó la noticia que dejó atónitos a muchos (incluyéndome) en internet.

El fallo fue descubierto entre un grupo de investigación de Google y una firma de seguridad llamada Codenomicon. Y básicamente, este threat compromete las claves secretas que se utilizan para identificar a los proveedores de servicios y para cifrar el tráfico, los nombres y las contraseñas de los usuarios y el contenido real. Esto permite a los atacantes espiar las comunicaciones, se roban los datos directamente de los servicios, de los usuarios y suplantarlos.

El problema radica en el chequeo del "TLS heartbeat extension" del OpenSSL (de ahí el nombre Heartbleed) que permite capturar y desencriptar desde nombres de usuario hasta contraseñas en los primeros 64k de memoria conectados al cliente o al servidor de dicha extensión.

Las versiones afectadas son 1.0.1, 1.0.1f , 1.0.2-beta y 1.0.2-beta1 de OpenSSL.

Para arreglar la vulnerabilidad los usuarios deben actualizar al OpenSSL 1.0.1g. O bien recompilar su versión de OpenSSL con -DOPENSSL_NO_HEARTBEATS. La versión 1.0.2 será arreglada con 1.0.2-beta2.

Una nota curiosa es que la NIST, catalogara dicha vulnerabilidad como nivel medio:

http://web.nvd.nist.gov/view/vuln/search-results?query=+CVE-2014-0160&search_type=all&cves=on


lunes, 12 de diciembre de 2011

Procedimientos no documentados sp_MSforeachtable y sp_MSforeachdb. Parte I

Microsoft SQL Server ofrece dos procedimientos almacenados sin documentar que le permiten procesar todas las tablas de una base de datos o bases de datos todo en una instancia de SQL Server. El primer procedimiento almacenado (SP), "sp_MSforeachtable", le permite procesar fácilmente un código contra todas las tablas en una sola base de datos. El SP otro ", sp_MSforeachdb", se ejecutará una instrucción T-SQL contra cualquier base de datos asociada a la instancia actual de SQL Server.

El "sp_MSforeachtable" SP viene con SQL Server, pero no está documentado en Books online. Este SP se pueden encontrar en la BD Master y se utiliza para procesar un solo comando T-SQL o un número de diferentes comandos T-SQL en contra de todas las tablas de una base de datos dada. Para demostrar cómo funciona vamos con un ejemplo.

Digamos que quiero crear una tabla temporal que contendrá una serie de registros, uno para cada tabla en la base de datos y que en cada fila contenga el nombre de la tabla y el número de filas de la tabla dada. Para hacer esto se desea ejecutar un comando como "select '' count (*) from '' where ''" donde por cada tabla en su base de datos se debe insertar los resultados en una tabla temporal. Entonces, vamos a ver cómo podemos hacer esto usando un cursor y luego usar el SP "sp_MSforeachtable":

Con cursor:

use pubs
go
set nocount on
declare @cnt int
declare @table varchar(128)
declare @cmd varchar(500)
create table #rowcount (tablename varchar(128), rowcnt int)
declare tables cursor for
select table_name from information_schema.tables
   where table_type = 'base table'
open tables
fetch next from tables into @table
while @@fetch_status = 0
begin
  set @cmd = 'select ''' + @table + ''', count(*) from ' + @table
  insert into #rowcount exec (@cmd)
  fetch next from tables into @table
end
CLOSE tables
DEALLOCATE tables
select top 5 * from #rowcount
    order by tablename
drop table #rowcount


Con "sp_MSforeachtable":

use pubs
go
create table #rowcount (tablename varchar(128), rowcnt int)
exec sp_MSforeachtable
   'insert into #rowcount select ''?'', count(*) from ?'
select top 5 * from #rowcount
    order by tablename
drop table #rowcount


Ambos tienen salidas similares, pero el segundo es más corto y de mejor rendimiento. Esta es la descripción de sus argumentos:

exec @RETURN_VALUE=sp_MSforeachtable @command1, @replacechar, @command2,
  @command3, @whereand, @precommand, @postcommand


donde

  • @RETURN_VALUE - es el valor de retorno 
  • @command1 - es el primer comando en ser ejecutado por "sp_MSforeachtable" y definido como un nvarchar(2000)
  • @replacechar - es un caracter que podrá ser reemplazado con el nombre de la tabla que esta siendo procesada (valor por omisión es "?")
  • @command2 y @command3 son comando adicionales que puede sercorridos para cada tabla, donde @command2 correo después de @command1, y @command3 correrá luego de @command2
  • @whereand - este argumento puede ser usadopara agregar  constraints adicionales para ayudar a identificar las filas en la tabla sysobjects que será seleccionada, este argumento es un nvarchar(2000)
  • @precommand - es un argumento nvarchar(2000) que especifica un comado para ser ejecutado antes que se procese cualquier tabla.
  • @postcommand - también es un nvarchar(2000) que sirve para identificar un comando que será ejecutado luego de todos los comandos que han sido ejecutados.
Veamos un ejemplo con @whereand donde el nombre de una tabla empiece con "p":

use pubs
go
create table #rowcount (tablename varchar(128), rowcnt int)
exec sp_MSforeachtable
@command1 = 'insert into #rowcount select ''?'',
              count(*) from ?',
@whereand = 'and name like ''p%'''
select top 5 * from #rowcount
    order by tablename
drop table #rowcount


Bueno luego seguimoes este tema, acá los dejo por hoy.

Procedimiento almacenado sp_executesql

Para ejecutar una cadena, se recomienda utilizar el procedimiento almacenado sp_executesql, en lugar de una instrucción EXECUTE: ver aquí

lunes, 8 de agosto de 2011

Oracle VM VirtualBox 4.1

Oracle presentó la nueva versión VM VirtualBox 4.1 el cual mejora la capacidad de uso y la flexibilidad del software de  virtualización y es aplicable a todas las plataformas.

La compañía asegura que las nuevas capacidades de Oracle VM VirtualBox 4.1 aumentan la capacidad de uso y la flexibilidad del producto al incorporar un nuevo recurso de clonación de máquina virtual.

Acá les dejo de donde descargarlo: VirtualBox