Barceló

miércoles, 8 de marzo de 2017

María Pita DefCon: Conferencia de Seguridad (6-12 Marzo, A Coruña)

https://www.mariapitadefcon.es/#schedule

Soy consciente de que tengo el blog bastante abandonado, pero si me lo permitís con un buen motivo. Y es que los últimos meses hemos estado muy ocupados organizando un nuevo evento de seguridad en A Coruña, María Pita DefCon, en el que intentaremos empapar a todo el mundo en temas de seguridad y concienciar de su importancia.

Como podéis ver en el cartel, las charlas prometen, yo ya he tenido el placer de leer los papers y os digo que valdrá la pena acercarse a la Facultade de Informática de A Coruña.

La entrada a las charlas es gratuita, aún así pedimos a todo el mundo que se registre a través de Eventbrite para llevar de mejor forma la logística del evento.

Ya tenemos también en marcha el María Pita Defcon Trileuco Contest (organizado por los cracks de Trileuco Solutions), donde podrás poner a prueba tus conocimientos sobre seguridad. No hace falta ser un "hacker" para participar, hay pruebas de todos los niveles y pistas para ir aprendiendo!

Si tienes un rato este jueves 9 o viernes 10, te esperamos allí!

Saludos!

jueves, 13 de agosto de 2015

Python: Tutorial básico de la API de Marvel

Tras mucho tiempo parado he decidido volver a escribir en este blog, más que nada porque he estado trasteando con la API que da marvel y he encontrado la documentación un poco confusa, así que me he animado a escribir.

Para empezar, comentar que Marvel ha puesto hace tiempo una API con mucha información de sus cómics, personajes, etc. lo que la hace muy interesante para probar bases de datos y sacar estadísticas y demás.

En primer lugar nos registramos en https://developer.marvel.com y obtenemos una clave pública más otra privada para realizar las consultas a la API.

La petición debe llevar obligatoriamente 3 parámetros: apikey, ts, y hash:
  • apikey es la clave pública.
  • ts es un valor de timestamp, pero si queremos podemos usar un long (en Python todo entero corriente es un long).
  • hash, que se calcula MD5(ts + clave_pública + clave_privada).
Y ahora, esto es un rollo así que vamos a pasar al código que es mucho más bonito:

Para hacer las peticiones he empleado la librería requests (pip install requests), muy recomendable, aunque podríamos usar la librería urllib que viene por defecto en Python. Importamos también la librería hashlib para hacer el cálculo MD5. Primero, las claves públicas y demás:
import hashlib
import requests
public = 'claveprivada'
private = 'clavepublica'
ts = '1'
hash = hashlib.md5((ts + pr + pu).encode()).hexdigest()
Ahora ya podemos hacer las peticiones:
base = 'http://gateway.marvel.com/v1/public/'
comics = requests.get(base + 'comics',
                      params={'apikey': public,
                              'ts': ts,
                              'hash': h}).json()
characters = requests.get(base + 'characters',
                          params={'apikey': public,
                                  'ts': ts,
                                  'hash': h}).json()
wolverine = requests.get(base + 'characters',
                          params={'apikey': public,
                                  'ts': ts,
                                  'hash': h,
                                  'name': 'wolverine'}).json()
Con esto os queda una pequeña chuleta para trabajar con la API de Marvel, aunque si no queréis hacerlo directamente hay varias librerías por ahí, como PyMarvel.

Un saludo a todos!

domingo, 16 de noviembre de 2014

Actualizando Nexus 4 a Android 5 Lollipop, Opiniones



Ayer por fin han liberado la imagen de Android 5 para el Nexus 4. No he podido evitar la tentación de instalarlo sin esperar por la OTA, así que bajé la imagen directamente y la flasheé.

Ojo al dato, no uséis programas como Nexus Root Toolkit y demás, a mí me dieron problemas y me provocó el arranque en bucle del dispositivo (el llamado bootloop). Descargad la imagen, la descomprimís, y ejecutáis el script (.bat en windows, .sh en Linux). Y recordad que borra el teléfono entero, así que hay que hacer copia de los datos, yo recomiendo la herramienta Titanium Backup.

El primer inicio le llevará entre 5-10 minutos, así que paciencia. La verdad me esperaba algo como Kitkat, varios iconos nuevos, alguna chorradita, pero me he quedado gratamente sorprendido en lo poco que lo he usado con las nuevas cosillas que trae. También me parece mentira que para llegar a ellas hiciera falta que estemos casi en el año 2015.
  • Aplicaciones como Chrome o Gmail escritas en código nativo. Caía de cajón hacerlo así, sobre todo en el caso del explorador web, y es que se nota.
  • La máquina virtual ART, que sustituye a DALVIK y promete una mejora de hasta un 4x de velocidad de respuesta.
  • Notificaciones en la pantalla de bloqueo, pudiendo definir qué notificaciones aparecen y cuáles no (para evitar mostrar datos de carácter sensible). Es muy muy cómodo.
  • Mejora de la cámara, más opciones como control de lente, flash, imágenes en RAW...
  • Modo ahorro de batería (y yo diría que más batería, porque ayer me aguantó toda la noche con un 15%, y antes ni de coña).
  • Muchas más cosillas: http://www.android.com/versions/lollipop-5-0/
Yo sinceramente estoy encantado con la nueva versión, y es que el teléfono ya iba bien, pero ahora vuela.

Un saludo a todos!

jueves, 17 de abril de 2014

Recuperar USB dañado

En ocasiones, un USB acaba dando problemas llegado al punto de que no podemos añadir archivos o incluso no podemos ni formatearlo, antes de recurrir a la garantía podemos probar lo siguiente (atención, con este proceso perderemos todos los datos almacenados):
  1. Entramos al cmd con permisos de administrador
  2. Escribimos diskpart
  3. Hacemos LIST DISK y elegimos el disco referente al pendrive con SELECT DISK 3 (siendo 3 el número del pendrive)
  4. CLEAN
  5. CREATE PARTITION PRIMARY
  6. ACTIVE
  7. FORMAT fs=fat32 quick
  8. ASSIGN
  9. EXIT

sábado, 9 de noviembre de 2013

Reviviendo Szenio PC Tablet 2000

Hoy llegó a mis manos esta tablet con un problema bastante desesperante. O se quedaba bloqueada al intentar arrancar el sistema operativo o simplemente se producía un bucle de apagado encendido donde al final daba error de poca batería. Nunca en todos los intentos dio llegado a arrancar en Android.

Después de navegar por foros vi que era un problema muy común y le había pasado a más gente, y la compañía distribuidora puso al parecer instrucciones y archivos para solucionar el tema. Digo "al parecer", ya que ahora todos esos enlaces están caídos y no hay forma de encontrar nada de la tablet en la web oficial.

En ciertas instrucciones hablaba de un modo recovery al que se accede aguantando Vol+ + Power, pero vamos, en la mía ni de casualidad di entrado al recovery. Al final la solución que a mi me sirvió y por eso la quiero compartir, la encontré en HTCManía (dónde si no!), y resulta que consiste en que la Woxter 101 CXi y la Szenio son iguales, con lo que por suerte se puede usar el software de recuperación de la primera e incluso la misma versión de android.

Me fui a la web oficial de la Woxter 101, y seguí las instrucciones de instalación de la versión 4.1.1 de Android. Lo más complicado a mi punto de vista es entrar en el "modo upgrade", ya que a diferencia de otros dispositivos, la pantalla seguirá en negro mientras se encuentra en ese modo.

A partir de aquí, pues a probar custom roms a ver cuál va ligerita y bien, aunque la del Woxter va bastante fina.

Espero que os sea útil, a mí esto hace varias horas me hubiera venido muy bien.

Un saludo ;)

martes, 15 de octubre de 2013

¿Por qué lenguaje de programación empiezo?

Estoy seguro que si os dedicáis al mundo de la informática desde hace tiempo sabéis que cuando alguien quiere aprender a programar es lo primero que pregunta, como no podía ser de otro modo. Y cada uno aquí da sus opiniones lo mejor que puede y basado en su propia experiencia. Yo voy a dar la mía, que para eso es mi blog.

Para empezar yo diferencio dos clases de usuarios, los que quieren realmente meterse al mundillo y dedicarse a la informática, o los "casual", gente que no se va a dedicar a la informática pero tienen la curiosidad de querer aprender para programarse algo sencillito y no complicarse mucho la vida. También hay los que se quieren meter "porque la informática tiene futuro", aunque sin más pasión y/o interés que ése no les auguro mucho futuro en estos lares.

Para los usuarios puntuales que sólo quieren algo rápido para sacar algún proyecto pequeño adelante, recomiendo Python. Fácil de aprender, de usar, bonito, te obliga a indentar, módulos para todo (soy de los que creen y esperan que iPython + Numpy se coma a matlab) no tienes que saber ni papa de punteros o de lo que hay por debajo. Te miras algún manual facilito como el de Python para Todos y muy pronto puedes empezar a hacer tus cosillas.

Para los que quieran entrar en el mundillo de la informática de cabeza, aprender a manejar algoritmos, tipos abstractos de datos y demás mariconadas y palabras chungas que usamos los informáticos para parecer más listos mi opinión es:

Para empezar, un lenguaje fuertemente tipado. Pascal puede ser el elegido. Sintaxis sencilla, no tan complicado como C o C++, y te hace coger buenos hábitos de programación. Para usarlo para proyectos grandes no me gusta en absoluto, pero en mi ciudad al menos he visto varias ofertas de trabajo para programadores en Delphi (una evolución de Pascal), así que quizás pueda ser una opción...

Una vez aprendido Pascal, nos vamos a C. Aprendemos lo divertido que puede ser concatenar dos cadenas, lo graciosos que pueden ser los punteros, y por supuesto el poder que tienes sobre la máquina. No voy a negar que me encanta C y lo optimizado que está.

Por supuesto, todo buen programador tiene que saber de Programación Orientada a Objetos. Hay algunos puristas que hablan de empezar por SmallTalk o cosas así, yo recomiendo Java. Tipado, multiplataforma, herencia simple, probablemente el lenguaje más extendido del mundo y el que más se pide para conseguir un trabajo. Esencial. C++ es otra muy buena opción.

Por último un lenguaje funcional es importante, no tanto bajo mi punto de vista para usar de forma cotidiana pero sí para aprender a pensar de otra manera (tail recursión, todo es una función, etc.) En mi caso aprendí Ocaml en la facultad y me gustaría tener algo de tiempo para mirar Haskell, que le tengo ganas.

En este punto puedes aprender los lenguajes que te apetezcan, sin demasiada complicación una vez ya "hablas" los anteriores. C++, PHP, Javascrip, Python, Ruby, C#...

Si alguien quiere saber mi "trayectoria" personal (probablemente no), yo empecé por BASIC hace muchos años, salté a QBASIC y la evolución lógica me llevó a Visual BASIC. Aprendí también algo de C, y al entrar en la facultad desaprendí todo lo aprendido de Basic y aprendí Pascal -> C -> Java -> Ocaml -> Matlab -> Python -> Javascript y el último lenguaje que he aprendido allí ha sido C#.
Luego decidí especializarme en Python, es el lenguaje que más me gusta, con un buen equilibro entre optimización y velocidad de desarrollo (a veces mientras programo en Python pienso en tener que hacer lo mismo en C y me entra un escalofrío de imaginar todas las líneas de código...) y de hecho es el lenguaje que me ha dado trabajo ahora mismo, junto con el querido Framework Django, conjunto de librerías que permiten a Python desarrollar fácilmente aplicaciones web.

Cada uno tiene que probar de todo y ver lo que le va gustando. Cualquier duda ya sabéis dónde estoy!

lunes, 19 de agosto de 2013

Nostalgia: Manual del Amstrad CPC 6128

A pesar de que soy joven y no coincidí temporalmente con los amstrad CPC, por casualidades de la vida he acabado teniendo por casa un CPC 6128 a mis 11 - 12 años, y si bien había cosas que me molestaban mucho como por ejemplo que la disquetera del mío estaba estropeada (me lo habían regalado de segunda mano), guardo un grandísimo recuerdo de él y de su pantalla de fósforo verde. Lástima que mis padres lo hayan tirado un día que yo no estaba "porque ya no servía para nada". Sin embargo, cuando me lo dieron recuerdo que me dijeron "Oye, ¿el manual lo quieres?". Y yo estuve a punto de cagarla y decir que no, sin embargo dije "Pues vale", y me lo empecé a leer.

Me encantó, aprendí muchísimo y bajo mi punto de vista el manual estaba escrito de perlas, para la época quizás mucho mejor que algunos libros técnicos actualmente.

De hecho, tengo que reconocer que por curioso que sea aprendí a programar más o menos en el año 2000 con libros de ordenadores antiguos. Antes el manual del PC no era sólo 3 chorradas, si no que te enseñaban a programar en el lenguaje BASIC, que era el intérprete por defecto del sistema.

Además, cada ordenador de la época tenía distintas instrucciones. El más placentero para programar de los que he probado físicamente ha sido el MSX, ya que además era el que más instrucciones y funciones tenía. Recuerdo por ejemplo la declaración de Sprites y la detección de colisiones para programar videojuegos.

Salvo el libro del CPC que era mío (y aún conservo, cuando vuelva a España tengo que encontrarlo), el resto de los libros los fui cogiendo en préstamo de la biblioteca municipal.

Me dió mucha pena que hace poco después de varios años sin ir volví y habían reformado la biblioteca entera, y de esos libros no quedaba nada. En el estante sólo había cosas como Excel 2010, Access 2007, Dreamweaver, algo de Visual Basic 6 y alguna otra cosilla. Ninguno de los libros que me habían enseñado tanto y que serían tan válidos hoy en día como lo fueron para mí hace 10 años sobrevivieron.

Por eso hoy me sentí tremendamente nostálgico y alegre cuando encontré un sitio web de fanáticos del Amstrad CPC, y entre ellos estaba el manual de mi querido Amstrad CPC 6128. Recomiendo al menos echar un ojo al último capítulo de la historia de la informática y de cómo el tío predice que cuando baje el precio de la memoria se podrán ver películas en un PC...

Por último, si me lee alguno de los hachas que se ha matado a escanear el manual entero, muchas gracias!

lunes, 12 de agosto de 2013

Ataque BREACH, un toque de atención a SSL/TLS/Cualquier tipo de cifrado realmente

Estando desconectado temporalmente del tema de la seguridad, un Security Advisory de Django me volvió a traer al mundo de los vivos. El tema viene siendo éste:

https://www.djangoproject.com/weblog/2013/aug/06/breach-and-django/

Donde avisan del ataque BREACH. Por supuesto, me puse a indagar sobre el tema y echar un ojo al PAPER que presentan, ya que me sorprendió ver que TLS/SSL (y realmente cualquier tipo de cifrado!) eran vulnerables al ataque.

El ataque se basa en uno anterior, CRIME, basado en la comprensión TLS, que no es demasiado común. Ésto va más allá usando la comprensión básica que va sobre HTTP, es decir, antes de realizar ningún tipo de cifrado del tráfico. Es muy común en cualquier tipo de web, tanto usando HTTP como HTTPS, usar algún tipo de compresión para ahorrar ancho de banda, eligiendo muchas veces la compresión gzip.

El ataque tiene varios requisitos:
  • Un servidor que use compresión a nivel HTTP (cae de cajón)
  • Que aparezca algún parámetro introducido por el usuario en el body de la respuesta HTTP
  • Que haya algo "interesante" en el body de la respuesta (un token CSRF, por ejemplo). Algo secreto que queremos robar.
Y ahora empieza la gracia. Si tenemos una petición tal que:

GET /owa/?ae=Item&t=IPM.Note&a=New&id=canary=<guess> 

Y nos devuelve algo como (esto lo hace Outlook Web Access):

<span id=requestUrl>https://malbot.net:443/owa/forms/
basic/BasicEditMessage.aspx?ae=Item&amp;t=IPM.Note&
amp;a=New&amp;id=canary=<guess></span>
...
<td nowrap id="tdErrLgf"><a href="logoff.owa?
canary=d634cda866f14c73ac135ae858c0d894">Log
Off</a></td>


Guess sería lo que nosotros inyectamos. Gzip intenta buscar coincidencias de palabras para comprimir la respuesta. Por lo tanto comprimirá canary= al tenerlo en dos partes (en el ejemplo) de la respuesta. Pero qué pasa si intentamos inyectar cosas? El tamaño de la compresión será el mismo si no acertamos pero si acertamos y metemos canary=d... al encontrar canary=d634... en otra parte del texto la compresión será mejor, y la respuesta por parte del servidor más pequeña. Esto permite que repitiendo el ataque podamos ir sacando, byte a byte, el token.

Y ya el tema de cómo explotarlo, pues a partir de ahí a echarle imaginación. Lo difícil es llegar hasta estas conclusiones. Me he saltado varios detalles que son relevantes, para más información echad un ojo al PDF.

Por último comentar que me gustó ver que uno de los investigadores involucrados es el lugués Ángel Prado, habitual speaker en las Jornadas de Seguridad de A Coruña, y al que espero poder ver este año a finales de octubre en GSICKMINDS (nuevo nombre de dichas jornadas).

Un saludo a todos!

jueves, 1 de agosto de 2013

BlockPrism, cifrando el chat de Facebook

Buenos días a todos, se que llevaba mucho tiempo sin escribir, pero mi vida se me ha puesto de arriba a abajo en apenas un mes (para bien), ya contaré algo de eso.

En este caso os quiero presentar una herramienta que me ha parecido muy útil, sobre todo con todo el jolgorio que se está montando con el tema Snowden.

La idea consiste en algo tan sencillo como una extensión de explorador (por ahora disponible para chrome) que activada en el sitio web de facebook activará un cifrado basado en criptografía asimétrica.

Como entidad de confianza dependemos del servidor del creador de la aplicación, que afirma guardar únicamente el id del usuario de facebook y su clave pública, es decir, lo mínimo indispensable para mantener un sistema de cifrado asimétrico en el que no se tenga que hacer un prenegociado de claves (estilo SSL), ya que de esa manera se perdería la funcionalidad de los mensajes online. Para más confianza al parecer el proyecto va a ser OpenSource, con lo cual cualquiera podrá revisar el código y ver lo que realmente está haciendo el usuario.

Sin más dilación os dejo el enlace del proyecto: http://blockprism.org/ y la dirección de su campaña en IndieGogo .


domingo, 12 de mayo de 2013

Reparando la tabla DSDT (Asus K53SV)


DSDT (Differentiated System Description Table) es parte de la especificación ACPI, y más o menos explicándolo de forma sencilla es una tabla donde se indican los diversos eventos relacionados con la gestión de energía que soporta un equipo. Las tablas DSDT suelen venir preparadas para windows, con lo cual en otros sistemas como linux pueden fallar los ventiladores, o la pantalla no apagarse al cerrar la tapa, etc. Esto es al menos lo que dice en la wiki de arch linux, habrá que fiarse.

En mi caso me gusta optimizar mi SO al límite, así que decidí reparar la tabla DSDT a ver si mejoraba algo, aunque para ser sinceros no noté nada a parte de que el portátil no encendía con el brillo al máximo, de agradecer, y me entretuve un ratillo aprendiendo algo nuevo. A otra gente le supone una mejora mayor y si quieres instalar un Hackintosh en tu PC necesitas tener la tabla reparada antes de nada.

Para rehacer una tabla funcional, en Linux tenéis que hacer como root:

cat /sys/firmware/acpi/tables/DSDT > dsdt.dat

 Esto os dará la tabla en uso actualmente. La descompilamos con:

iasl -d dsdt.dat

Y la compilamos otra vez con:

iasl -tc dsdt.dsl

Y aquí es donde saltarán todos los errores. A partir de este punto es donde tenemos que matarnos un poquillo a solucionar los fallos que están dando. Os comento los que me dieron a mí y cómo solucionarlos:
  • Non-hex letters must be upper case. Pues eso, las letras que no sean hexadecimales ponedlas con mayúsculas. Con unos cuantos buscar y reemplazar se soluciona.
  • Use of compiler reserved name (_T_0). Fácil, cambiamos _T_0 a T_0.
  • Not all control paths return a value. Se coloca un Return (Zero) al final de esa función.
  • Reserved method should not return a value. Pues eso, que no debería devolver un valor así que borramos el return.
  • Found buffer, requires package. Empaquetamos el buffer. Cambiamos por ejemplo Buffer(0x10) por Package(0x10). Fácil y sencillo.
Y esos fueron los fallos con los que tuve que enfrentarme yo. Pongo unos enlaces de webs que me fueron de utilidad y al final de todo parte de la salida de compilar el dsdt sin arreglar.

http://cannibalcandy.wordpress.com/2011/02/18/dsdt-editing-put-an-end-to-your-acpi-woes/

http://sadevil.org/blog/2012/01/01/fixing-the-acpi-dsdt-of-an-acer-ferrari-one-200/

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20121018-64 [Oct 26 2012]
Copyright (c) 2000 - 2012 Intel Corporation

dsdt.dsl   5090:                         Name (_HID, "pnp0c14")
Error    4133 -          Non-hex letters must be upper case ^  (pnp0c14)



dsdt.dsl   5168:                             Name (_T_0, Zero)
Remark   5011 -        Use of compiler reserved name ^  (_T_0)

dsdt.dsl   5761:                         Method (SPBL, 1, NotSerialized)
Warning  1114 -                                    ^ Not all control paths return a value (SPBL)

dsdt.dsl  12509:                 Return (ATKR (Arg0))
Warning  1120 -                            ^ Called method may not always return a value

dsdt.dsl  12515:         Method (ATKR, 1, NotSerialized)
Warning  1114 -                    ^ Not all control paths return a value (ATKR)

dsdt.dsl  13014:             Return (One)
Warning  1104 -                       ^ Reserved method should not return a value (_Q0E)

dsdt.dsl  13077:             Name (_T_0, Zero)
Remark   5011 -                      ^ Use of compiler reserved name (_T_0)

dsdt.dsl  13626:                     Name (_PLD, Buffer (0x10)
Error    4105 -      Invalid object type for reserved name ^  (found BUFFER, requires Package)

dsdt.dsl  14375:         Method (MXDS, 1, NotSerialized)
Warning  1114 -                    ^ Not all control paths return a value (MXDS)

dsdt.dsl  14781:             Name (_HID, "pnp0c14")
Error    4133 -                                 ^ Non-hex letters must be upper case (pnp0c14)

domingo, 17 de febrero de 2013

Information Gathering Tools (1/?)

Buenas a todos, tras mucho tiempo sin escribir por fin he vuelto a tener tiempo para trastear con cosas.

Hoy hablaré de  herramientas de recogida de información, no refiriéndome a herramientas como nmap, si no más bien herramientas orientadas a prepararnos para realizar después ingeniería social.

Jigsaw

Jigsaw es una herramienta destinada a obtener información sobre los trabajadores de una compañía. La herramienta parece funcionar perfecta para empresas como google, donde simplemente elegimos uno de sus dominios (en mi caso probé con google.com) y hace un crafting de todos los emails que encuentra de los empleados en diversos departamentos

El problema de esa gran herramienta es que llama a la base de datos de jigsaw.com, con lo cual dependemos de las empresas que allí figuren. Como os podéis imaginar, para empresas españolas nada de nada, ni siquiera alguna grande como El Corte Inglés o Hacendado. Está Zara, eso sí, y el grupo Inditex.

Creepy

Pues eso, escalofriante es la mejor manera de describir esta herramienta. En un mundo donde servicios como Twitter o Flickr están a la orden del día, y todo el mundo tiene un smartphone con GPS, este programa aprovecha que muchos móviles adjuntan a las fotos que sacas metadatos con la información de tu posición en ese momento, qué majos, ¿no?

Así que tú le das un usuario de twitter o de flickr, y si la persona tiene imágenes subidas con geolocalización, verás en un mapa dónde se ha sacado fotos dicho individuo.

Foca

Hablando de metadatos, pues eso, no podía faltar la foca, lo primero que podemos lanzar contra una web a auditar para sacar usuarios, impresoras, mails, ips, yo qué sé, el mundo de los metadatos es demasiado grande. Siempre aportan pistas curiosas y palabras que usar en wordlists.

Uberharvest

Teóricamente escanea un sitio web y busca direcciones de correo y más cosas, yo sin embargo sólo consigo que me haga una búsqueda en el DNS y me devuelva los servidores, incluídos los de correo. Me saltan excepciones de python con algunas opciones.

No sé si lo estoy usando mal, pero no me convence.

TheHarvester

Este programa me encanta. Le pones un dominio, y le puedes decir que busque en google, bing, linkedlin, etc. Te devolverá las direcciones de correo con dicho dominio, así como los host y virtual hosts que encuentre. Sólo le veo el fallo de que no te deja buscar en el propio dominio ya que todas las búsquedas las hace a través de buscadores, con lo cual estás obviando cosas que no estén cacheadas o que se encuentren en robots.txt.

WebShag

Tiene un modo scanner llamando a Nmap por debajo, un modo de buscar hosts y vhosts, un spider que recorre la web y busca mails, directorios y enlaces externos, un modo USCAN que busca vulnerabilidades recurriendo a Nikto2 o a una base de datos de vulnerabilidades que especifiquemos y por último un modo fuzzer que busca archivos y directorios "ocultos" en el servidor ya sea por fuerza bruta o por diccionario.

Me ha parecido muy útil sobre todo para el caso que nos ocupa el modo Spider.

Por hoy me despido y espero que os sea de utilidad este breve resumen.

¡Un saludo!


martes, 30 de octubre de 2012

[Libro] La Estancia Azul

Tras tiempo sin escribir, hoy me gustaría hablar de un libro que me gustó (y muy posiblemente marcó) a mis aproximadamente 13 años.

El libro se titula La estancia Azul, una novela sobre hackers que resulta interesante. A diferencia de las películas y libros basados en el género que siempre acaban con fantasmadas infumables, el libro a pesar de tener alguna por ahí como toda novela que se precie, muestra ciertos detalles curiosos.

Recuerdo por ejemplo que a pesar de ya existir conexiones de banda ancha el antagonista, Phate, prefería usar siempre módems y marcaba desde distintos lugares ya que decía que era más difícil de tracear (cabinas públicas, moteles, etc.)

El libro trata sobre las andanzas de éste "hacker" asesino. Al hombre se le da genial la tecnología, pero en algún momento de su vida se perturba y decide empezar a matar gente, para lo cual usa la informática de todas las formas que se le ocurren, es decir, informática como herramienta para hacer daño. Además se impone retos a sí mismo, en plan más puntos por matar a gente mejor protegida. Por otro lado tendremos al hacker bueno que se encargará de pillar a éste criminal y que trabaja con la policía.

Y la verdad no voy a seguiros contando mucho más, que voy a acabar desvelando algún detalle importante sin querer.

Una novela recomendable para quién le guste todo este mundillo. Ya me contaréis si la habéis leído o la vais a leer. Os dejo la sinopsis:

El asesino del relato responde al apodo de Phate, pero su verdadero nombre es John Patrick Holloway. Aparentemente no es mas que un hacker, un inodensivo pirata informático.Pero su mente perversa ha ideado un programa llamado Trapdoor, el cual le permite asaltar los ordenadores de sus víctimas potenciales iniciando un juego macabro cuyo objetivo final es la eliminación del usuario elegido.
Para atrapar a este peligroso psicópara, la policía recurre a la ayuda de Wyatt Gillete, un hecker experto que cumple un año de condena en la cárcel por un delito menor.Es preciso actuar deprisa, pues los asesinatos se suceden uno tras otro en este siniestro teritorio del suspense de la red.


Un saludo!

lunes, 30 de abril de 2012

Los vengadores, peliculaza


Después de todo el hype generado desde años por la dichosa película (sobre todo con el final de Iron Man 2), como buen fan de Marvel me dirigí raudo hacia el cine en cuanto pude. Pensé que quizás, y como muchas de las películas o juegos que he esperado últimamente, cuántas más ganas tengo de que salgan, más porquería me parecen al tenerlos por fin disponibles, y pedía para mí mismo que por favor no estrenaran un bodrio donde simplemente hicieran un copy-paste de varios personajes en una misma película.

No podía estar más equivocado. Una película impresionante. Cuando acabó tenía la impresión de que llevaba como mucho media hora en el cine, se pasó volando.

Las escenas de acción impresionantes, unos efectos muy conseguidos y unas batallas épicas.

Sin embargo, y lo que más me gustó de la película, fue el sentido del humor. Tony Stark hace de "bufón" durante toda la película con el sarcasmo que lo caracteriza sobre todo en su adaptación al cine de la mano de Robert Downey Jr., ya las películas de Iron Man fueron impresionantes, pero en este caso es colosal. Gags de humor contantes sin perder la noción de seriedad que requiere que la tierra esté a punto de ser invadida por extraterrestres. Pero ver a Tony decirle a Thor "¿Sabe vuestra madre que os vestís con sus ropajes?", "Sube, Légolas" a Ojo de Halcón y "Anda, el papá de bambi" a Loki cuando sale con el casco con cuernos, es indescriptible. Gente en la sala aplaudiendo incluso. No recuerdo cuando fue la última vez que me lo pasé tan bien en el cine.

No voy a reventar más de la película, lo mío no es hacer reportajes, y sólo os puedo recomendar que vayáis a verla cuanto antes.

Un saludo!

domingo, 8 de abril de 2012

Usa tu RAM para acelerar programas y videojuegos

Actualmente los ordenadores traen cada vez más RAM. Es habitual verlos normalmente entre 4 y 8 Gb.

Sinceramente 4Gb deberían ser suficientes, mirando el consumo de memoria de mi PC veo que con Windows 7 instalado más varios programas corriendo suele estar en 1Gb, sólo llego cerca de los límites o tirando mucho de VirtualBox, programa que yo uso continuamente, con algún juego exigente, o por último con programas de edición de vídeo.

Los 8Gb son más bien para gente que quiere usar Windows Vista de forma fluída, ahora en serio, yo los tengo, y veo pocas veces el PC por encima del 50 o 60% de uso de RAM en Windows 7.

Lo que os quería comentar es que es una pena que no se aproveche este espacio, ya que teóricamente cuando se carga un programa se cachea parte en memoria RAM para poder usarlo de forma eficiente, y lo que no se cargó se va leyendo desde el disco duro bajo demanda.

La idea está bien, ya que tú cargas lo que usas y lo que no pues no lo lees, pero tienes un problema. Por ejemplo, jugando a un juego, tú cada vez que quieres cargar una pantalla (véase por ejemplo Call Of Duty), se carga el mapa, tarda un ratito, y luego tú puedes jugar el nivel sin cargas ni retrasos por el medio, hasta el siguiente nivel que también tendrás que esperar para cargar. Entonces tú la primera vez que cargas el nivel se mete a RAM, juegas la pantalla, pasas al siguiente nivel, lo cargas, lo metes a RAM, y bueno, lo que realmente puedes aprovechar es que si tu RAM es lo suficientemente grande y no se vació, si tienes que volver a repetir un mapa no tendrás que cargarlo.

Lo que yo quería hacer es ahorrarme los tiempos de espera, es decir, algo como decirle al juego "oye, cada nivel tuyo ocupa 200Mb en RAM, yo tengo 4Gb libres, cárgame todo el juego que me lo quiero pasar de un tirón y sin esperas".

Lo que hice fue usar la aplicación RamDisk de DataRAM. Esta aplicación nos permite crear un disco duro virtual en nuestra memoria RAM, de tal forma que en el sistema lo vemos como un disco duro normal pero los tiempos de carga son realmente asombrosos. La configuración no podría ser más sencilla: tamaño de la partición, tipo de partición:


El único problema es que la versión gratuita no permite particiones de más de 4Gb, pero al menos para mí es suficiente.

Hice la prueba copiando un juego a la unidad que me creó (tardó como menos de 2 min en copiar 3Gb), luego me puse a jugarlo y es impresionante las velocidades de carga, además que no estás usando el disco duro para nada.

Ah, y recordad que es RAM, al reiniciar el PC, se vacía.

Espero que os sea útil.

viernes, 6 de abril de 2012

Google Maps RPG 8 bits

Coincidiendo con el April Fools day Google Maps ha sacado una versión en RPG de sus mapas.

Me hace gracia que todo el norte de España sean piedras, hasta que amplías y empiezas a ver árboles. Estos de google siempre andan haciendo cosas curiosas...


http://maps.google.com/?t=8&utm_campaign=8bit

Aquí dejo el vídeo de promoción, donde hablan de un supuesto cartucho para una vieja Nintendo, que incorporaría un módem para conectarse a Internet y usar la potencia computacional de la "nube" para renderizar los mapas a tiempo real:

martes, 20 de marzo de 2012

Hashes Joomla con John The Ripper

Me he encontrando trasteando con joomla en la base de datos MySQL que los password de usuarios registrados los guarda como:
36302dcd47193e2c6dbc3cfc6f70e11d:KPAvp1xf0bQJppoU. 
No tenía mucha idea de cómo hacer con el John, y lo que debería ser una chorrada se convirtió en un buen rato de búsqueda infructuosa y prueba-error. El problema fue tanto que estaba escribiendo mal las opciones del John como que hay que modificar el hash:
36302dcd47193e2c6dbc3cfc6f70e11d$KPAvp1xf0bQJppoU. 
Cambiamos los dos puntos por el símbolo del dolar, lo guardamos en prueba.txt, y hacemos: ./john --format=MD5-gen --subformat="md5_gen(1)" prueba.txt

sábado, 25 de febrero de 2012

IV Jornadas de Seguridad Informática en A Coruña (Tercer Día)

FaceCat: Covert Channels over Social Networks

 Aunque hoy me dormí y llegué a medias, me pareció muy interesante la charla de Jose Selvi. Se basaba en el intercambio de información de forma oculta, como por ejemplo la forma de la que se comunican algunos troyanos con sus dueños, usando recursos como Twitter o Facebook. Vimos una demo grabada (ya que Jose nos comentó que de vez en cuando cambian las webs así que no quería arriesgarse en directo) donde usaba el FaceCat para intercambio de información usando un muro de Facebook.

Repaso del HackContest

Miguel Gesteiro comentó un poco los retos del hackcontest, dió pistas e interactuó con los que participamos para ver opiniones y cómo iba todo. Muy interesante la verdad. Espero poder dedicar el año que viene más tiempo al HackContest, éste me ha sido imposible.

Voip (In)security  

Jesús Rubio y mi amigo Pepelux dieron una charla muy buena acerca de la Voz sobre IP, un tema que yo desconocía casi completamente. Debido a mi poca base no pude quedarme con todo lo que expuso, sin embargo me quedé con muchas ganas de aprender más sobre ese tema y montar un servidor o algo para probar.

Me gustaron mucho también las demos que hicieron, interceptando tráfico, añadiendo a Belén Esteban, usando el sipvicious, el ettercap + script en perl de Pepelux, genial.

Mesa Redonda

Charla/coloquio en principio sobre Sotfware Libre vs Privativo vs Yo me lo guiso yo me lo como a la hora por ejemplo de montar una web, después derivó sobre la omnipresencia de Google, sus nuevas políticas, etc.

Yo llevaba tiempo pensando sobre estos temas, y me gustó saber la opinión de profesionales como los ponentes.


Así acaban las IV Jornadas de Seguridad Informática del GSIC. Espero veros a todos en la Rooted Con.

Un saludo!

viernes, 24 de febrero de 2012

IV Jornadas de Seguridad Informática en A Coruña (Segundo Día)

El dilema del erizo, una visión alternativa

Alberto Partida, dió una charla teórica sobre las relaciones de las empresas con los equipos de seguridad usando el símil del erizo que pincha si le tocan o se acercan mucho pero sin embargo necesita del calor de otros erizos para vivir.

Spaniards: Yes we can!

Diego Ferreiro, ahora trabajador de Yahoo!, pero antes de eso estudiante de la Facultad de Informática con el que coincidí alguna vez, dió una charla tremenda que a mí me motivó muchísimo.

Hablaba de cómo empezó todo desde que llegó la universidad, cómo le fueron las cosas, las decisiones que fue tomando, el profesor de física que se nos atragantó a todos... Después contaba cómo pasó de ser un estudiante más a aspirar a trabajar en empresas como Microsoft, Google, Amazon, etc. y que realmente no están tan lejos como nosotros pensamos.

Con un poco de esfuerzo todo se puede conseguir. Al fin y al cabo, no todos los trabajadores de Google, Yahoo!, Amazon... son grandes ingenieros, ¿no?

Frase de la charla: ¿Y por qué yo no?

Web mashups, widgets y addons. El futuro de Internet es inseguro por naturaleza

Caridy Patiño daba una charla sobre desarrollo web, JSON, consejos para incrustar widgets en los sitios web de forma segura, tracear... No sabría hacer un resumen, me gustaría ver las trasparencias y estudiarlas más a fondo ya que no ando muy puesto en el tema.

Hackeando el mundo 4.0

Como ya nos tiene acostumbrados todos los años, Ángel Prado dió, más que una charla, una magistral clase de cómo romper cosas. Impresionante.

Sencillamente me encantan sus exposiciones. Va rapidísimo, pero explicando todo correctamente (sólo me perdí al final con la desofuscación que hacía de un lado para otro), lo que es de agradecer, ya que en lo que dura su presentación aprendes muchísimo debido al alto aprovechamiento del tiempo.

El "modo película" es impresionante, se pone a hackear algo, enciende su musiquita y se pone a ello, la verdad me encantaría tenerlo grabado para verlo actuar cuantas veces quisiera. Hasta los chavales de los colegios de delante de todo, que supongo que muchos no tendrían mucha idea de qué estaba haciendo, estaban impresionados. Se pasó de la hora y nadie se dió cuenta, todos queríamos que siguiese ahí. Los aplausos se oían constantemente como twiteó Miguel Gesteiro.

Que por cierto, como ya le dije cuando hablé con él (una persona muy muy agradable) que se monte un blog o algo, que seguro que tiene muchísimas cosas que contar (más que yo seguro).


La verdad hoy he disfrutado muchísimo, y mañana aún queda un día.

Un saludo a todos!

jueves, 23 de febrero de 2012

IV Jornadas de Seguridad Informática en A Coruña (Primer Día)

Tecnologías de seguridad en switches

Fran Novoa, profesor de la Facultad de Informática de A Coruña explicó cómo realizar un ataque man in the middle sin los programas habituales. La experiencia se basó en copar las direcciones DHCP que puede asignar un switch (cambiando la MAC de la tarjeta de red y reconectando una y otra vez), y una vez acabadas las IPs ofrecer otro servidor DHCP que esta vez envía los parámetros de conexión "envenenados". Todo explicado de forma teórica, práctica y hasta con emulación en el Cisco Packet Tracer. Muy buena charla, esperamos las trasparencias que prometió colgar "en algún sitio".

Frase de la charla: Aquí con 3 teclados parezco Nacho Cano.

Playing the piano

Chema Alonso nos hizo reír una vez más a todos con una charla, a mi parecer magistral, en la que explicaba cómo hackear de forma sencillísima Terminal Services de Microsoft. Se basaba en ejecutar programas que no estaban permitidos, y llegaba a ellos a través de cosas como sticky keys -> ayuda -> imprimir etc... y mediante menús, clicks, shortcuts y muchas risas llegaba a un control casi absoluto de la máquina. También hacía lo mismo con macros, para desesperación de los administradores, porque ya se sabe Bosses Love Excel, Hackers Too
 
Frase de la charla: Es que en las aduanas te pueden copiar la información del portátil, joder, si quieren el porno que se lo descarguen ellos.

Infecciones web: [ SQL | FTP | Cache ] Injection

Por último David Barroso dió esta impresionante charla sobre las chachés de los sitios web. La idea es que los sitios web usan unos servidores caché, como por ejemplo la caché en nuestros procesadores, que mantienen la información más usada o más recientemente accedida. Sin embargo, para conservar la velocidad de acceso todo esto va sin ningún tipo de encriptación y tampoco lo hay para acceder simplemente vía telnet al servidor y modificar lo que queramos. Sin hacer falta explicar mucho más, ya veis todas las maldades que se pueden hacer. No he tomado nota del puerto que usaba ni del programa que extraía los datos automáticamente de la caché, que alguien me lo comente por favor.

H4ckContest

Interesantísimo(como siempre) el H4ckContest de este año de la mano de Miguel Gesteiro, incluyendo pruebas físicas como la de lockpicking. Ya me voy a comprar en breves a DealExtreme mi juego de ganzúas, me siento orgulloso de haber abierto el candado la primera vez que lo intenté (suerte, luego no fui capaz de abrir ningún otro).

Así acaba el primer día de las jornadas de seguridad

viernes, 17 de febrero de 2012

Descifrando cualquier WPA2/WPA/WEP en horas mediante WPS



Hace unos meses cuando probé mi nuevo router, y vi que traía WPS (QSS en el caso de mi TP-LINK), me dió un poco de yuyu. Con un PIN de 8 dígitos te podías conectar sin problema, sin necesidad de clave WPA o WEP, de hecho cuando metes el PIN correctamente el router te devuelve la clave para que te asocies a la "vieja usanza".

Hay 3 formas de conectar por WPS:
  • Mediante el botón de pulsar para conectar (necesitamos acceso físico al dispositivo)
  • Configurando en el router (interfaz web normalmente) el PIN de la tarjeta WIFI que queremos conectar.
  • Mediante el PIN del router (esto es realmente el problema y lo que permite realizar ataques de fuerza bruta)
  Realmente ya es una cagada muy grande. Si hasta incluso yo hace unos meses me quedé pensando en esto (si no experimenté más fue porque no tengo tiempo), cualquiera podría haberse dado cuenta.

Ah, pero que aún es peor de lo que parece. Según lo que tengo entendido hay dos clases de routers:
  • Los "listos", como el mío, necesitan los 8 dígitos para saber si la clave es correcta.
  • Los "tontos", que sólo con los 4 primeros dígitos ya te dicen si el PIN va bien o no, lo que reduce considerablemente el crackeo.
Crackeo propiamente dicho

  La herramienta usada para esto se llama Reaver-WPS. La última versión en este momento es la 1.4. Nos la descargamos, extraemos y compilamos.

wget http://code.google.com/p/reaver-wps/downloads/detail?name=reaver-1.4.tar.gz
tar -xvf reaver-1.4.tar.gz
cd reaver-1.4/src
./configure
make
sudo make install

  Ejecutarlo y que funcione es tal que así, suponiendo que nuestra tarjeta wifi es wlan0 y que tenemos el paquete aircrack-ng instalado (para airmon-ng). Recordamos que el BSSID es el MAC inhalámbrico del router.  

airmon-ng start wlan0 
sudo ./reaver -i mon0 -b BSSID 

  Y ya está. Nos ponemos a esperar que le llevará unas horitas. Necesita una buena señal para que no se pierdan los paquetes, si no tendrá que estar reenviándolos todo el rato y perderemos mucho tiempo, en vuestras casas con vuestros routers no tendréis problema.

Recordad, ¡desactivad el WPS! Aún no se sabe de ninguna solución ni parche.

Un saludo!