El Cerebro de Dedalo

Ir al contenido | Ir al menú | Ir a Buscar

sábado 7 Marzo 2015

Activismo de verano: 1 Hackaton y 2 CryptoParties

El 6 de Enero, regresaba a Guayaquil para terminar con un trabajo pendiente y pensé, necesito hacer algo que ayude a Ecuador a estar mejor. Comencé a leer sobre organizaciones activistas en Ecuador y pues quise colaborar con Techo Ecuador. Me encontré con un problema, no habían misiones para realizar en los próximos días y decidí pensar en algo para hacer mientras tanto.

Originalmente pensé en ir a visitar colegios a promover el hacking, como ya lo había hecho antes en Ambato. Sin embargo, necesitaba ir un poco más allá después de conversar con algunas personas. Una CryptoParty era exactamente lo que tenía que hacer. Tuve una conversa telefónica con Felipe Morbo, le cambio el apellido porque un fanático pseudo-feminista lo acusó de morboso, patán, sexista, etc. Para no detallar la interesante conversación, la conclusión fue, esa cryptoparty se hace si o si. He quedado con un tema cruzado en mi cabeza y es el de trascender. Sentía que no era suficiente el hecho de hacer una cryptoparty, un día x en Guayaquil. Si lo piensas, mucha gente tendría que viajar si quisiera asistir. Por el 11 de Enero, se me vino la idea a la cabeza de extender un poco más la cryptoparty, tenía a Byron en quito y el definitivamente me iba a querer ayudar. Conversé con el y tal como lo supuse, me dijo que me apoyaría buscando apoyo en Quito.

Mientras esto pasaba, me llega un correo de Gregor MacLennan de Digital Democracy contándome de la hackaton "HackTheRainFores" que bien se traduce como "HackeaLaSelva". Era una iniciativa independiente y muy llamativa. Íbamos a trabajar junto con nativos, para poder reportar y mapear de una manera mas simple los derrames de petroleras y contaminación de mineras. Le dije a Gregor que quería ayudar. Coordinamos lo mejor que se pudo y terminé en la Selva. La programación se dividió en tres grupos. En mi grupo, éramos lo encargados de crear una tecnología p2p que permitiera la comunicación entre 2 dispositivos (PC - MÓVIL). En mi grupo estaba Josh y Damian. Quiero hacer un importante alto aquí y es para que lo tengan muy en cuenta a la hora de imaginarse esta historia. Escribir un pequeño texto en inglés es fácil y con ayuda de algún traductor, mucho más. Intente estar 4 días hablando puro ingles, cansa la mente. Josh subió todo lo que habíamos hecho a un Github público

Quiero comentarles algo de esta foto, Josh estaba intentando levantar un git en su máquina puesto que, aunque no lo crean, no teníamos internet. Creo que aquí es cuando se ven a los verdaderos desarrolladores, intenten programar durante horas sin poder "googlear" errores. Entre los principales problemas que hubo fue el del internet y que quisimos innovar y hacer todo con extensiones de chrome y ninguno conocía la API bien jajajaja de verdad fue cómico vernos sufrir tanto. Ya este es otro tema, pero dentro de todo el trabajo duro, tuvimos momento de diversión cuando fuimos a hacer canotaje. Llevé mi Go Pro y, si bien este no es el mejor video, es uno de los que tiene mas acción.



Esta es una foto grupal de muchas de varias personas que estuvimos en el HackTheRainForest

Cuando regresé a Lima, estaba atrasado con el Tema de la CryptoParty. Sin embargo, regresé lo más rápido que pude a Guayaquil. Conversé con algunas personas y logramos establecer muy buenos contenidos tanto para Guayaquil, como para Quito.

El 20 de febrero me desperté a las 6 de la mañana, fui a recoger a Byron al terminal, nos encontramos con Felipe y fuimos a la Unviersidad Católica de Guayaquil a asegurarnos que todo fuese de Puta Madre. a las 8:30 de la mañana ya todo estaba listo para que la gente fuese llegando, el evento salió increíble, en total de asistentes entre los que se van y llegan, tuvimos como 120. Y acabó cerca de las 6 de la tarde, a esa hora fui a hacer mi maleta para irme a Quito, salió el vuelo para quito a las 10 de la noche y llegamos al hotel en quito como a la 1 AM, al día siguiente despertarnos a las 6AM para coordinar los últimos arreglos del evento, fue realmente complicado y cansado. Si quieren ver fotos, Byron hizo un excelente trabajo recopilando fotos y subiéndolas al Facebook de la CryptoParty [Guayaquil] y [Quito]. Quisiera compartirles un video que grabé de cuando todos estaban conectándose a CryptoCat, me encanta el sonido que hace CryptoCat cuando genera las llaves.



Actualmente nos encontramos coordinando la CryptoParty de Manta y de Cuenca, la información saldrá en la Página Web, Twitter y/o Facebook. Debo además agregar la colaboración que hubo por parte de algunas personas como Cristian Tabango, Jose Pino y Jhonn Vinces.

Gracias Ecuador por ser tan cálido conmigo.

Saludos,
Dedalo

viernes 26 Diciembre 2014

Viajando por Ecuador promoviendo El Arte

Originalmente viajé a Guayaquil (Ecuador) a realizar un trabajo (freelance) de pentesting. Antes de viajar a Ecuador, decidí viajar a Apurímac vía Arequipa, necesitaba conocer lo que se estima debe ser uno de los lugares más jodidos de mi Perú. 

Terminé cruzando la frontera por tierra y conociendo varios lugares, hice el primer reporte a las 2 semanas, el segundo reporte 2 semanas después y así se me han venido pasando las semanas y los meses... ¿Cómo terminé en quito? es difícil responder esa pregunta, me loquié un miércoles por la noche, tenía que ir a ver a molotov y a calle13 si se presentaban a solo 8 horas en bus. Decidí viajar para llegar jueves por la mañana a quito e ir al Alterfest, Byron me consiguió las entradas y se convirtió en mi compañero de viajes.

Valió totalmente la pena, me gustaría compartir videos pero no los grabé, pasé casi todo el concierto pogueando las canciones de molotov y cantando con calle13, sin despreciar, muy hábil en el escenario, Cafe Tacvba. Igual pueden encontrar videos en youtube. Sin embargo, no sabrán lo que fue vivir Latinoamerica y Give me the power. Otra vez quiero agradecer a Byron, sin el no hubiese podido ir al concierto me consiguió las entradas y baratas.

Al día siguiente desperté y byron me llamó temprano para irnos a ambato a hablar sobre hacking, me habló de un colegio pero no había entendido la mágina del asunto. El camino de quito a ambato, debo reconocer es de los mas hermoso que he visto jamás... no los dejaré con la curiosidad véanlo ustedes mismos.

Perdón si no pude capturar la esencia correcta pero recién me he comenzado a entrenar en lo que es fotografía. En Ambato nos recogió un agradable niño de 13 años, quien había fundado un club de computación en su colegio y era quien había invitaron a Byron y el me invitó a mi, eso emocionó a Denis. Llegamos al colegio de ambato...

Para ser muy honesto creí que habría hecho mi ppt por las puras pues desde afuera, creí que no tendrían proyector, una vez mas juzgué demasiado ráṕido, tenían proyector que habían comprado para el club de computación. Denis llegó al colegio sacando pecho y mostrándonos el camino llegamos al aula, me cagué de risa y lo exterioricé cuando todos se pararon, se arreglaron el uniforme y dijeron "Bueeeenaaaasssss Taaaaardeeeeeeesssss" jajajajaja recordé en la época de colegio que te dicen que hagas cosas que te denigran como humano pero que no sirven para nada durante el resto de tu vida, en fin, público difícil, jóvenes entre 12 y 16 años.

Expuse sobre ingeniería social, les enseñé y conté historias de hacking que incentivaron mucho a los chicos a ser mejores persona, la mayoría del club quería ser ingeniero en algo, les dije que no era necesario que sean ingenieros para lograrse como personas pero en fin se cagaron de risa durante mi charla, esto la verdad es que me hizo muy feliz, eran niños de pocos recursos y la verdad es que llenarles las boca de sonrisas fue indescriptiblemente lindo. Les dejo una pic mas de cuando nos tomamos la foto en el patio del colegio.

Regresamos a Quito para al día siguiente asistir al Barcamp Security Edition. Desperté temprano para terminar mi presentación, hablaría sobre criptografía en Webs 2.0, tema muy interesante, hablé sobre el uso de Crypto-JS como librería y en que situaciones usarla. 

Después de eso junto con algunas excelentes personas que conocí, nos fuimos a tomar un trago, bebí la temible aguardiente colombiana y un riquísimo pisco sour.

Un dato que me pareció bastante fuerte, conocí a una pareja de cubanos y el varón, hasta que no vivió en quito, no sabía lo que era una tapa twist off. Al día siguiente fui al teleférico de de Quito, fue de lo mas alucinante que he visto, pasamos los límites de dónde se podía ir y había una vista alucinante, fue increíble la vibra que generaban esas montañas. Muy recomendable ir a quito y al teleférico.

Regresé a guayaquil para seguir trabajando. No pasaron muchos días y me invitaron al Barcamp Manabí. En si, no conocía manta, tampoco bahia de caraquez, lugar dónde terminé ese viaje.

El evento era jueves y viernes pero las charlas eran el viernes, mi primera charla a las 11 y son 4 horas de viaje en feriados de guayaquil a manta, por lo que tuve que salir a las 6 de la mañana, el viaje de ida fue chévere viajé con: Felipe, Tania, Thay, Brenda, María, Eve y por su puesto Sol llegamos a la calurosa Manta, nos encontraríamos con Byron allá, debo confesar se ha hecho un grupo interesante de compañeros, colegas y sobre todo amigos.

Expuse sobre Ingeniería Social, Tor Project y Hacking de Aplicaciones web, todas las charlas fueron increíbles, de verdad muchas gracias manta.

Aunque los organizadores del evento no nos sacaron a ningún lado, nos organizamos bien y fuimos a una discoteca llamada Sensation, debo admitir que aunque no ganamos ninguna botella (estaba todo arreglado para que la ganen ciertas personas) la pasamos muy de puta madre.

Pixeleo las caras porque estabamos con cara de borrachos xD y me da risa que en todas las fotos esa chica sale detrás haciendo sonrisas a la cámara era una intrusa, no supimos aprovecharla, estaba buena como para que se quede bailando solita en la discoteca xD. Al día siguiente desperté como si me hubiesen cogido a palos la chicas nos fueron a despertar, querían encebollado, caminamos como 8 cuadras para comer un encebollado malísimo. Encebollado es una comida tipo sopa que se suele tomar cuando estás con resaca, es popular en la costa Ecuatoriana porque tiene pescado. Bueno luego vino el momento de despedirnos y regresar a casa pero Byron me llamó por teléfono y dijo: "Oe vamos a bahía, es chévere, las chicas quieren ir." me puso a pensar, Felipe me dijo que me podía quedar en su casa y que la juerga era buena así que nos fuimos. No regresé para guayaquil, me fui para Bahía de Caraquez, se suponían eran 3 horas de camino aproximado, nos demoramos como 4:30 en llegar, en fin ya estabamos ahí.

Fuimos a conocer la ciudad, me gustó mucho más que manda, es un pueblo, dónde la mayoría de gente se conoce, todos son relajados y sobra la caña manabita. Primero fuimos a algo que parecía un muelle pero es como que una construcción mal terminada... bastante interesante, se podía mirar todo el puente que cruza de bahía a san vicente, estaba mas que lindo, muy iluminado.

Necesitaba un poco más de emoción el asunto, la marea estaba baja y se podía llegar a una de las bases de puente si es que trepábamos como 2.20 Metros, pero tendríamos una vista espectacular del puente, veríamos todo el puente por dentro de las bases, Byron y Felipe, buenos compañeros nos fuimos a trepar, las chicas se cagaban de risa de la estupidez que íbamos a hacer, pero es que era obvio, nos estábamos temprando a un lugar alto y las piedras estaban mojadas cualquiera se resbalaba.

Creo que de las partes mas graciosas era el factor "sólo tengo una camiseta", como solo tenía una camiseta para salir ese día tuve que trepar sin camiseta y la pared raspaba mucho, fue bastante gracioso para los que veían la situación. Pero todo tenía un motivo. 

La cámara no pudo captar la belleza de la situación y el momento que vivíamos, pero podíamos ver todo el camino del puente desde sus bases, gracias a que la marea está baja. Esa misma noche fuimos a un bar-discoteca llamado Maui, estuvo demasiado chévere, tomamos un shot de un trago que tenía todas las maravillas de la vida "La uña del diablo"... nunca había sentido un trago tan fuerte, una de las chicas que lo tomó con nosotros se quería tirar al mar, pero no se daba cuenta que habían unos piedrones, fue divertido, comenzaron a llover vasos y botellas en el bar así que nos fuimos a seguir tomándo a la casa de Felipe. Don Felipe, el papá de felipe, que tipaso, tenía en su casa cajas con juguetes que les iba a regalar a los niños pobres de un lugar pobre a las afueras de bahía "A los de la ciudad todos les dan, pero se olvidan de los del campo". Terminamos tomándo caña manabita... Trago hijo de puta. Desperté con resaca, comí encebollado, esta vez si era bueno... dormí hasta la tarde y luego tomé bus a guayaquil.

Debo reconocer que ha estado demasiado divertida mi estadía en Ecuador, a esto se le suman los talleres que me han pedido de manera independiente algunas empresas y estoy feliz de estar, aquí. de verdad muchas gracias por acogerme de esta manera... Gracias. Me regalaron una Go Pro por navidad, ahora podré tomar mejores fotos y hacer cosas mas extremas.



Saludos,
Dedalo

miércoles 26 Noviembre 2014

Chat por facebook usando OTR y Tor

Al igual que el 90% de las personas, tuve una época en la que usaba facebook. Luego, me di cuenta que no quería que toda mi información y fotografías estuviesen concentradas en un lugar en el cual yo no tuviese acceso. Borré mi cuenta, luego por temas de tener que comunicarme, decidí crearme una cuenta que no estuviese a mi nombre, luego me cree otra y cerré la anterior y así, luego un tiempo me quedé otra vez sin cuentas de esta red social y bueno he sido un nómada de cuentas facebookeras. Pero, tengo claro que hay personas que esta red les acomoda porque simplemente les gusta, pero al mismo tiempo estas personas no tienen por que ser condenadas a que facebook puedan revisar sus mensajes. Hay una forma de hacer que los mensajes por facebook sean cifrados y la alternativa se las traigo ahora.

Antes ya había hablado de ChatSecure como alternativa a comunicarnos de manera segura, hoy les enseñaré rápidamente a usar ChatSecure para comunicarse cifrando su chat con OTR y enviando todas las comunicaciones a través de la Red TOR.

Primer paso es loguearse a su cuenta de facebook desde ChatSecure de la siguiente manera:

La parte que está pixeleada es el usuario, en el usuario debes poner tu usuario de facebook @facebook.com o @chat.facebook.com de cualquiera de las dos manera funciona ¿cuál es im id? entra a facebook.com y en la barra de arriba dale click a tu nombre te va a llevar a facebook.com/esteestuusuario si te lleva a algo como facebook.com/profile.php?id=esteestuusuario ya saben que hacer :) no olviden seleccionar el check donde dice conectar a través de tor, si no tienen orbot instálenlo está en el google play. Entonces una vez logueados les aparecerá una pantalla como la siguiente:

En ese instante apreten el + que está en la esquina superior derecha les aparecerá una ventana como esta:

Luego den click en el usuario con el que desean conversar cifrado, apreten el candadito de la esquina superior derecha y pongan iniciar cifrado. Una vez que hagan esto la otra persona también debe poner en cifrado y ya estarás conversando de manera cifrada y facebook no sabrá desde dónde escribes, es decir no sabrá que escribes ni de donde lo escribes... ¿Estás seguro?...

Desde la Web:

Desde m.facebook.com

Verificación de dirección de facebook

Bueno espero que les sirva, cuando no haya otra opción para comunicarte por X motivo, ponerle una capa extra como para que Facebook no meta sus narices no queda mal. Quisiera mandarle un agradecimiento especial a @pd4nn1 por ayudarme a hacer las pruebas.


Saludos,
Dedalo

jueves 13 Noviembre 2014

Mi tor relay no se indexa

Resulta que durante casi 1 año estaba corriendo un par de exit nodes de tor, por seguridad no hice públicos los nombres de los relays (son exit). Pero, uno de ellos me lo tumbaron, la empresa suspendió mi cuenta y me quitaron mi relay a 3 meses de cumplirse 1 año del pago anual. Después de 5 ataques de paranoia, 3 de pánico y 1 cardíaco, pensé en que mejor debía animarme con los middle relays, también ayudan bastante a la red. Resulta que quería cambiar de proveedor y pues, no estoy tan familiarizado con proveedores de VPS que den mucho bandwith, sean baratos y no lloren por tener un relay en su red (para un middle relay lo ideal es tener mucho bandwith para aceptar todo el tráfico que puedan). Intenté comprar en hostgatorm, virpus y cheapvps y con los tres tuve la peor experiencia, ninguno me aceptó el dinero porque estaba usando tor en el momento de comprar los vps, ninguno respeta la privacidad del comprador, no compren en esos lugares. Después de tener muchos desaciertos, pregunté por twitter al creador de torservers cual proveedor me recomendaba para un middle relay y llegué a lowendbox, web en la cual se publicitaba lo siguiente.

Enterprise Virtual Cloud:
2GB RAM
1 CPU Core
40GB HDD space
100TB traffic
1Gbit uplink
1x IPv4
1x IPv6
KVM/HostBill
$7.00/month

Bastante bien, puedo ofrecer muchísimo tráfico diario a tor gigas diarios, yo lo configuré con 10 gigas diarios de tráfico como para probar que tal funcionaba el middle relay. Después de 3 horas fui a atlas y busqué mi relay pero no lo encontraba, me pareció muy raro pero como estaba ocupado ya no me preocupé en eso, por la noche (después de unas 12 horas de tener el relay corriendo) verifiqué y atlas seguía sin identificar mi relay, verifiqué las lineas de mi torrc y nada, revicé mi log y nada parecía fuera de lo común.


Nov 12 06:25:02.000 [notice] Tor 0.2.5.10 (git-43a5f3d91e726291)
opening
new log file.
Nov 12 06:25:02.000 [notice] Configured hibernation.  This interval
began at 2014-11-12 00:00:00; the scheduled wake-up time was
2014-11-12
00:00:00; we expect to exhaust our quota for this interval around
2014-11-13 00:00:00; the next interval begins at 2014-11-13 00:00:00
(all times local)
Nov 12 11:50:58.000 [notice] Heartbeat: It seems like we are not in
the
cached consensus.
Nov 12 11:50:58.000 [notice] Heartbeat: Tor's uptime is 1 day 0:00
hours, with 0 circuits open. I've sent 1.99 MB and received 9.79 MB.
Nov 12 11:50:58.000 [notice] Heartbeat: Accounting enabled. Sent: 632
kB
/ 10.00 GB, Received: 4.46 MB / 10.00 GB. The current accounting
interval ends on 2014-11-13 00:00:00, in 12:09 hours.
Nov 12 11:50:58.000 [notice] Average packaged cell fullness: 21.362%
Nov 12 11:50:58.000 [notice] TLS write overhead: 18%
Nov 12 11:50:58.000 [notice] Circuit handshake stats since last time:
0/0 TAP, 0/0 NTor.
Nov 12 12:13:59.000 [notice] We'd like to launch a circuit to handle a
connection, but we already have 32 general-purpose client circuits
pending. Waiting until some finish.
Nov 12 12:14:05.000 [notice] Performing bandwidth self-test...done.

Resulta que envié un mail a la lista de relays de tor a ver si alguien daba con que pasaba y un compañero llamado sebastian me apoyó y me sugirió algunas pruebas, hoy por la mañana cuando desperté, vi un correo de sebastian sugiriendo un problema de red pero es muy raro porque si estaban usando mi conexión los otros relays así que el problema era en la indexada. 

Hay 10 autoridades que se dedican a verificar los relays y decir como están, y los que "indexan" la información de tu relay en atlas. Entonces cual era el problema, las autoridades y yo no nos estamos comunicando, pero la situación se pone mas épica y se confirman algunas teorías cuando al buscar en la lista de relays me encuentro con que 2 autoridades si me están verificando... Gabelmoo y Longclaw me pueden ver sin ningún problema y ya con un par de pruebas se supo que estaba pasando, Las autoridades de la red tor estaban blacklisteadas.

Aquí les pongo el resultado mas rudimentario contra 3 de las autoridades: tor26, maatuska, dannenberg:

Como pueden ver, no llego a las IPs de las autoridades, el mismo resultado fue para el traceroute y para el resto de las IPs excepto para el de las dos autoridades que si me indexaban:

Como se ve aquí, llego perfectamente a esta autoridad y bueno esa es la historia, No es la primera vez que va a pasar y bueno el ISP que bloquea los nodos de autoridades es NOC4Hosts Si van a correr relays no compren directo 1 año siempre hagan pruebas por 1 mes para que se aseguren de que no les pasen cosas como estas, esta situación es un poco preocupante ya que es un ISP en estados unidos y pues que bloqueen nodos de tor es un poco... RARO.


Saludos,
Dedalo

jueves 30 Octubre 2014

Usar DuckDuckGo en Safari es inútil

Resulta que hoy estaba viendo el código de algunos proyectos de la EFF y pues me di con una iniciativa llamada fix-macosx revisando las cosas que fixeaba me encontré con una de las mas descaradas, presten atención a la siguiente imagen.

Durante la instalación de Safari 7.1 aparece como nuevo "feature" que puede poner como motor de búsqueda DuckDuckGo un buscador que no trackea, DuckDuckGo no trackea es correcto sin embargo en una investigación que hicieron en la EFF se dieron cuenta que Safari enviaba a sus servidores todas las búsquedas que hacías en DuckDuckGo!!!

POST /fb?key=andromeda HTTP/1.1
Host: api.smoot.apple.com
Content-Type: application/json
Connection: keep-alive
X-Apple-ActionSignature: Am0uJFbPlOAzD1F8BkXIKUpEbXfxjZuwu/E3gFUa2xTKAAAB0AMAAAABAAABAHetzqTDT7HbKkiu22LWD3GsuuuQO3gCXOLdEiK/Q5SSLcZ1SSDt6cVt97pOUqs67df2DSLf5kM8UvvIuGHSogRALctyKWiJcbhYQsiEScc6w5chtbblWMZhr9Q7GTFvZ40kVvVpvxjOKwjq0RF+mYwsAkNXM7BITSky1DNkANzIPdS0cJVcAkHG7SpOych5IrLUNzUDAwAy7Im8IGz4J8952RBCWQvRyUPuNvEau/x0jMCfDhlP6mX5rwdi96NBXkYt5v8wH1FdLyB5CuRO/4V85zxz43d58p9+zN9HNd8JIMBm++z9cp2FDXsyQCib01PQ5vOOhCbIJo1JFYicFEEAAAAXHogvj0TBJjMVKrTWzE7kOYeQi47JbnUAAACfAf/g3XJcJ0BUWy5hr1HiViM+uxaIAAAAhgMGbMDpd5X7bJixfdkuCpyfk1REHhPHHcLeyCaUJjfpfrj1ikGjxS9wv4ECfRItDRI+R1JBDrQsq6fKyRGNcJsCnpobqB8wWhnHRFIWJHDD3V7Mx4Jtn9TA5/d5ZdIp9inmQ7SHpd/h8r2Nm+9Kh/R5NUrlHf9dKrYekpJzOcXs7j2MxJeAAAAAAAAAAAAA
Accept: */*
X-Apple-UserGuid: 6a78c927-fc35-44df-4d55-71ce9cb10270
Accept-Language: en-us
Content-Length: 19240
Accept-Encoding: gzip, deflate
User-Agent: SafariShared/10600.1.25 (Mac OS X 14A389) Version/8.0 Safari/600.1.25
[{"timestamp":0,"input":"W","type":"search_local","latency":0},{"local_results":["ddg_search","history","bookmark","history_search","go_to_site","find_on_page"],"timestamp":142,"input":"W","type":"render","trigger_timestamp":0,"fbr":[]},{"timestamp":272,"input":"Wh","type":"search_local","latency":0},{"timestamp":329,"input":"Whe","type":"search_local","latency":0},{"timestamp":385,"input":"Wher","type":"search_local","latency":0},{"latency":414,"input":" ","ttfb":412.6380085945129,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[]"},"type":"search_remote","timestamp":414,"url":"https:\/\/api.smoot.apple.com\/search?q=%20&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"timestamp":464,"input":"Where","type":"search_local","latency":0},{"timestamp":536,"input":"Where ","type":"search_local","latency":0},{"latency":326,"input":"Wh","ttfb":324.3659734725952,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[]"},"type":"search_remote","timestamp":598,"url":"https:\/\/api.smoot.apple.com\/search?q=Wh&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"timestamp":626,"input":"Where i","type":"search_local","latency":1},{"latency":337,"input":"Whe","ttfb":335.4560136795044,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[]"},"type":"search_remote","timestamp":665,"url":"https:\/\/api.smoot.apple.com\/search?q=Whe&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"timestamp":714,"input":"Where is","type":"search_local","latency":1},{"latency":348,"input":"Wher","ttfb":347.2740054130554,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[]"},"type":"search_remote","timestamp":733,"url":"https:\/\/api.smoot.apple.com\/search?q=Wher&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"timestamp":785,"input":"Where is ","type":"search_local","latency":0},{"timestamp":873,"input":"Where is t","type":"search_local","latency":0},{"timestamp":920,"input":"Where is th","type":"search_local","latency":0},{"latency":466,"input":"Where","ttfb":464.1069769859314,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[]"},"type":"search_remote","timestamp":930,"url":"https:\/\/api.smoot.apple.com\/search?q=Where&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"latency":407,"input":"Where ","ttfb":404.7200083732605,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[]"},"type":"search_remote","timestamp":943,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"latency":418,"input":"Where i","ttfb":416.238009929657,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Wh\"]"},"type":"search_remote","timestamp":1043,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20i&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"latency":336,"input":"Where is","ttfb":335.3539705276489,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Whe\",\"Wh\"]"},"type":"search_remote","timestamp":1049,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"local_results":["ddg_search","history_search","go_to_site","find_on_page"],"timestamp":1060,"input":"Where is th","type":"render","trigger_timestamp":920,"fbr":[]},{"timestamp":1176,"input":"Where is this","type":"search_local","latency":0},{"latency":407,"input":"Where is ","ttfb":405.1949977874756,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Whe\",\"Where \",\"Wh\"]"},"type":"search_remote","timestamp":1192,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"timestamp":1201,"input":"Where is this ","type":"search_local","latency":0},{"latency":424,"input":"Where is t","ttfb":421.8549728393555,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Whe\",\"Where \",\"Wh\"]"},"type":"search_remote","timestamp":1296,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20t&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"timestamp":1321,"input":"Where is this s","type":"search_local","latency":0},{"local_results":["ddg_search","history_search","go_to_site","find_on_page"],"timestamp":1360,"input":"Where is this s","type":"render","trigger_timestamp":1320,"fbr":[]},{"latency":448,"input":"Where is th","ttfb":444.4220066070557,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Whe\",\"Where \",\"Wh\"]"},"type":"search_remote","timestamp":1368,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20th&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"local_results":["ddg_search","history_search","go_to_site","find_on_page"],"timestamp":1459,"input":"Where is this s","type":"render","trigger_timestamp":1320,"fbr":[]},{"timestamp":1472,"input":"Where is this se","type":"search_local","latency":0},{"latency":420,"input":"Where is this","ttfb":418.8010096549988,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Whe\",\"Where \",\"Wh\",\"Where is \"]"},"type":"search_remote","timestamp":1596,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20this&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"local_results":["ddg_search","history_search","go_to_site","find_on_page"],"timestamp":1611,"input":"Where is this se","type":"render","trigger_timestamp":1472,"fbr":[]},{"latency":1618,"input":"W","ttfb":1610.521018505096,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[]"},"type":"search_remote","timestamp":1618,"url":"https:\/\/api.smoot.apple.com\/search?q=W&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"timestamp":1625,"input":"Where is this sea","type":"search_local","latency":0},{"timestamp":1657,"input":"Where is this sear","type":"search_local","latency":0},{"latency":496,"input":"Where is this ","ttfb":495.0270056724548,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Whe\",\"Where \",\"Wh\",\"Where is \"]"},"type":"search_remote","timestamp":1698,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20this%20&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"local_results":["ddg_search","history_search","go_to_site","find_on_page"],"timestamp":1795,"input":"Where is this sear","type":"render","trigger_timestamp":1657,"fbr":[]},{"latency":497,"input":"Where is this s","ttfb":496.4020252227783,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[\"i:14146451\"]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Whe\",\"Where \",\"Where is the love\",\"Wh\",\"Where is \"]"},"type":"search_remote","timestamp":1818,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20this%20s&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"latency":348,"input":"Where is this se","ttfb":346.314013004303,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[\"i:14146451\"]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Whe\",\"Where \",\"Where is the love\",\"Wh\",\"Where is \"]"},"type":"search_remote","timestamp":1820,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20this%20se&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"timestamp":1857,"input":"Where is this searc","type":"search_local","latency":0},{"timestamp":1944,"input":"Where is this search","type":"search_local","latency":0},{"latency":365,"input":"Where is this sea","ttfb":363.5750412940979,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[\"mv:MV005497690000|143441;TR8082,TR2877;1413723780\",\"i:14146451\"]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Where \",\"W\",\"Where is this is\",\"Wh\",\"Where is \",\"Where is the love\",\"Whe\"]"},"type":"search_remote","timestamp":1990,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20this%20sea&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"latency":361,"input":"Where is this sear","ttfb":359.5319986343384,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[\"mv:MV005497690000|143441;TR8082,TR2877;1413723780\",\"i:14146451\"]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Where \",\"W\",\"Where is this is\",\"Wh\",\"Where is \",\"Where is the love\",\"Whe\"]"},"type":"search_remote","timestamp":2018,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20this%20sear&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"timestamp":2041,"input":"Where is this search ","type":"search_local","latency":0},{"timestamp":2113,"input":"Where is this search s","type":"search_local","latency":0},{"local_results":["ddg_search","history_search","go_to_site","find_on_page"],"timestamp":2251,"input":"Where is this search s","type":"render","trigger_timestamp":2112,"fbr":[]},{"timestamp":2281,"input":"Where is this search se","type":"search_local","latency":0},{"latency":456,"input":"Where is this searc","ttfb":453.5250067710876,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[\"mv:MV005497690000|143441;TR8082,TR2877;1413723780\",\"i:14146451\"]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Where \",\"Where is this s\",\"Where is this se\",\"W\",\"Where is this is\",\"Wh\",\"Where is \",\"Where is the love\",\"Whe\"]"},"type":"search_remote","timestamp":2313,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20this%20searc&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"latency":370,"input":"Where is this search","ttfb":367.7120208740234,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[\"mv:MV005497690000|143441;TR8082,TR2877;1413723780\",\"i:14146451\"]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Where \",\"Where is this s\",\"Where is this se\",\"W\",\"Where is this is\",\"Wh\",\"Where is \",\"Where is the love\",\"Whe\"]"},"type":"search_remote","timestamp":2314,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20this%20search&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"timestamp":2400,"input":"Where is this search sen","type":"search_local","latency":0},{"local_results":["ddg_search","history_search","go_to_site","find_on_page"],"timestamp":2420,"input":"Where is this search sen","type":"render","trigger_timestamp":2399,"fbr":[]},{"latency":346,"input":"Where is this search s","ttfb":344.8419570922852,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[\"mv:MV005497690000|143441;TR8082,TR2877;1413723780\",\"i:14146451\"]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Where \",\"Where is this s\",\"Where is this se\",\"Where is this sea\",\"W\",\"Where is this is\",\"Wh\",\"Where is \",\"Where is the love\",\"Where is this sear\",\"Whe\"]"},"type":"search_remote","timestamp":2459,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20this%20search%20s&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"latency":419,"input":"Where is this search ","ttfb":418.6079502105713,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[\"mv:MV005497690000|143441;TR8082,TR2877;1413723780\",\"i:14146451\"]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Where \",\"Where is this s\",\"Where is this se\",\"Where is this sea\",\"W\",\"Where is this is\",\"Wh\",\"Where is \",\"Where is the love\",\"Where is this sear\",\"Whe\"]"},"type":"search_remote","timestamp":2460,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20this%20search%20&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"timestamp":2513,"input":"Where is this search sent","type":"search_local","latency":0},{"local_results":["ddg_search","history_search","go_to_site","find_on_page"],"timestamp":2539,"input":"Where is this search sent","type":"render","trigger_timestamp":2512,"fbr":[]},{"local_results":["ddg_search","history_search","go_to_site","find_on_page"],"timestamp":2652,"input":"Where is this search sent","type":"render","trigger_timestamp":2512,"fbr":[]},{"latency":354,"input":"Where is this search sen","ttfb":352.4810075759888,"headers":{"Accept":"*\/*","X-Apple-UI-Scale":"1.0","X-Apple-CachedResults":"[\"mv:MV005497690000|143441;TR8082,TR2877;1413723780\",\"i:14146451\"]","X-Apple-UserGuid":"6a78c927-fc35-44df-4d55-71ce9cb10270","Accept-Language":"en-us","User-Agent":"SafariShared\/10600.1.25 (Mac OS X 14A389) Version\/8.0 Safari\/600.1.25","Accept-Encoding":"gzip, deflate","X-Apple-CachedQueries":"[\"Where is this search\",\"Where is \",\"Whe\",\"Where \",\"Where is this is\",\"Wh\",\"Where is this se\",\"Where is this s\",\"Where is the love\",\"Where is this sea\",\"Where is this searc\",\"W\",\"Where is this sear\"]"},"type":"search_remote","timestamp":2754,"url":"https:\/\/api.smoot.apple.com\/search?q=Where%20is%20this%20search%20sen&locale=en-US&key=andromeda&context=com.apple.Maps&time_zone=America\/Los_Angeles&calendar=gregorian®ion=en-US"},{"timestamp":2877,"input":"Where is this search sent","type":"engagement","local_result":"ddg_search"}]HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json; charset=utf-8
Date: Sun, 19 Oct 2014 20:45:34 GMT
Content-Length: 3
Connection: close
""

Aunque vendieron la idea de que no era trackeable para que los usuarios se sintieran mas seguros, esto es mentira.

Si quieren hacer un fix de esto pueden ir a https://github.com/fix-macosx/ y bajar el script ejecutarlo y estarán libre de este y otros problemas de privacidad que son detallados en ese github.


Saludos,
Dedalo

miércoles 29 Octubre 2014

Mi 100 USD Not in Scope Vulnerability en Magento

ESTA ENTRADA ES ANTIGUA, TIENE COMO 6 MESES. NO LA PUBLICABA PORQUE NO HABÍA FIXEADO LA VULNERABILIDAD Y LUEGO OLVIDÉ PUBLICARLA. AQUÍ SE LAS DEJO ES UNA INTERESANTE AVENTURA.

No suelo escribir sobre las vulnerabilidades que encuentro pero esta fue tan interesante que tengo que exponerla...

Después de unos mails y conversaciones con unos amigos, me enteré de Magento estaba lanzando su programa de recompensa y decidí tratar de bajarle el calzón, después de los primeros minutos encontré 2 Xss, fue rapidísimo, luego me estanqué por varios minutos y dije, voy a buscar XSF usando mi XSFF, después de una búsqueda de unos cuantos minutos de búsqueda de los dominios válidos, di con la siguiente ruta:

https://store03.prostores.com/storeadmin/widget/widget.swf

Era un flash pero me interesó lo siguiente de la ruta:

https://store03.prostores.com/storeadmin/

Después de jugar un rato con el widget.swf di con la ruta mas interesante de todas...

http://usability.kurant.com/servlet/StoreSense/SysAdminLogon <-- kurant.com redirecciona a prostores.com entonces me dí cuenta que tenía el panel de administración de prostores, además de tener el menú de administración descubierto, seguí buscando a ver si encontraba algo más... y fue cuando dí con el hallazgo.

Cross Site Scripting en el subdominio donde se encuentra el panel de administración de prostores... después de una rápida búsqueda di con los siguientes correos:

trobison[[arroba]]kurant.com
curtis[[arroba]]kurant.com
info[[arroba]]kurant.com
sprzedaz[[arroba]]kurant.com
marketing[[arroba]]kurant.com
james[[arroba]]kurant.com
b25a646e[[arroba]]kurant.com
kfr[[arroba]]kurant.com
jay[[arroba]]kurant.com
agnieszka[[arroba]]kurant.com
stephanie[[arroba]]kurant.com
kfries[[arroba]]kurant.com
root[[arroba]]kurant.com

La convinación de esos correos con un Xss en el panel de administración pudo haber acabado muy mal. Después de presentar estas pruebas, y en menos de 7 días, me dieron 100 USD como pago por la vulnerabilidad a pesar de que el dominio no estaba "In Scope", me es reconfortante saber el excelente criterio que han tenido el equipo de magento para calificar esta vulnerabilidad, aunque creo que el precio es un poco mayor, google o facebook me hubiesen dado una patada en el culo como ya lo han hecho antes.


Saludos,
Dedalo

lunes 27 Octubre 2014

Respuesta al video de exploiterco

Bueno en realidad no hay mucho que decir, los videos son la mejor descripción de que fue lo que pasó pero para ponerlos en contexto, exploiter.co es una plataforma que "te enseña a hackear" y bueno entre los videos que subieron, subieron uno que en esencia tiene contenido errado y pues quise hacer un video corrigiendo lo que decían puesto que es un tema que me compete (Tor Project).

El video que ellos subieron:


El video de mi respuesta:



Como recalco en el video, no le quiero hacer mala publicidad a exploiter.co, por el contrario quiero contribuir para hacerles saber sus errores cuando los tienen, primero les escribí por twitter y no me contestaron ni se rectificaron por lo que decidí hacer el video.

Edit: Recibí una respuesta por parte de @fixpl0it (co-founder de exploiterco) en el mensaje me dijo que agradecía el feedback, que le dijera lo que pensaba de exploiterco, entre otras cosas. Como recomendación le dije que hicieran un video aceptando que se habían equivocado, no se si adoptarán esta medida pero mi intención de lo que lo hagan ya estuvo. Quisiera recalcar que a pesar de que me intenté comunicar con eljach para decirles sus errores nunca contestó. También quiero decir que fixpl0it fue muy educado a la hora de conversar conmigo y no tuve ningún tipo de problema con el.


Saludos,
Dedalo

Dom Xss Persistente

Resulta que en estos días he tenido unos flashes de ideas en la cabeza que me han llevado a hacer algunas pruebas con javascript... Por mas que encontré el término por algunas páginas no encontré un ejemplo real de esto y con un poco de imaginación llegué a algo interesante... DOM-Based Xss PERSISTENTES... Primero un ejemplo rápido de DOM Xss...

<html>
<script type="text/javascript">
var prueba = location.hash;
document.write(prueba);
</script>
</html>

Guardamos ese código como dom.html (http://localhost/dom.html) lo abrimos y no pasa nada pero si ponemos algo como: http://localhost/dom.html#"><img src=x onerror=prompt(1337)> tenemos un bonito prompt... ahora... he estado haciendo pruebas con localStorage y WebSQL y bueno miren la siguiente situación.

<html>
<script type="text/javascript">
var msg;
var prueba = location.hash;
window.localStorage.prueba = prueba;
msg = window.localStorage.prueba;
document.write(msg);
</script>
</html>

Creamos un archivo con ese contenido y lo guardamos como dom1.html ingresamos y nos sale undefined verdad? ahora pongan http://localhost/dom1.html#"><img src=X onerror=prompt(1337)> como pueden ver salta el lindo prompt... se guardó en local y luego lo mostró en el sitio pero, ¿cómo confirmar esto?

<html>
<script type="text/javascript">
var msg;
msg = window.localStorage.prueba;
document.write(msg);
</script>
</html>

creamos un documento llamado dom2.html con el contenido de arriba e ingresamos... casi como magia verdad? como pueden ver se ha mostrado el contenido del xss de un documento en el otro debido a que estaba guardado temporalmente...

Me pareció interesante compartirlo porque se me ocurren algunas formas interesantes de explotación imagen solamente que este storage vulnerable esté en un util.js que se use en todas las páginas...


Saludos,
Dedalo

sábado 18 Octubre 2014

Usando WebSQL con CryptoJS

Me encontré que con la ayuda de nuevas funciones de javascript podemos hacer bases de datos locales, algo muy similar a sqlite. El problema con este sistema, también conocido como WebSQL, es que no tiene funciones de cifrado de información como tal. Entonces, decidí hacer un ejemplo de como implementar CryptoJS con WebSQL para poder cifrar la data en las bases de datos.

Primer paso -> Importar AES:

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>

Segundo paso -> Cifrar la data que queremos y crear (abrir) la base de datos que queremos usar:

var encrypted = CryptoJS.AES.encrypt("estoesunaprueba", "password"); // Cifrar "estoesunaprueba" con AES usando "password" como Contraseña
var db = openDatabase('encripted', '1.0', 'Test DB', 2 * 1024 * 1024); // Nombre, Versión, Descripción, tamaño
var msg; // Crear variable msg

Tercer paso ->  Ejecutar lo correspondiente en la base de datos:

db.transaction(function (tx) { // Empezar el proceso de la base de datos
tx.executeSql('CREATE TABLE IF NOT EXISTS PRUEBAS (id unique, prueba)'); // Crear la tabla
var secquery = 'INSERT INTO PRUEBAS (id, prueba) VALUES (1,"' + encrypted + '")'; // Poner la data cifrada en la base de datos
tx.executeSql(secquery); // Ejecutar el Query
msg = '<p>Data inserted in row.</p>'; // Crear mensaje de que la data fue ingresada
document.querySelector('#status').innerHTML =  msg; // Escribirlo
});

Cuarto Paso -> Cambiar de Hexadecimal a Ascii :

function unhex(hexx) { // Esto es para cambiar de hex a ascii el contenido desencriptado del AES
var hex = hexx.toString();// forzar la conversión
var str = ''; // crear variable str
for (var i = 0; i < hex.length; i += 2) // moverse por la palabra de dos en dos
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); // sacar el texto de los hexadecimales
return str; // Mostrar el valor de STR
}

Quinto paso -> Sacar la data, descifrarla y mostrarla:

db.transaction(function (tx) { // Empezar el proceso de la base de datos
tx.executeSql('SELECT * FROM PRUEBAS', [], function (tx, results) { // Query para sacar la data de PRUEBAS
msg = "<p> Data Found:</p>"; // Mensaje para el usuario
document.querySelector('#status').innerHTML +=  msg; // Escribir el mensaje para el usuario
msg = "<p><b>" + unhex(CryptoJS.AES.decrypt(results.rows.item(0).prueba, "password")) + "</b></p>"; // Obtener data de la BD - Mostrar mensaje descrifrado
document.querySelector('#status').innerHTML +=  msg; // Escribir mensaje descifrado
}, null);
});

El resto ya es poner el div llamado status para poder hacer que el código corra,  y listo muchachos, este es un ejemplo de como se puede usar WebSQL con CryptoJS para poder guardar data de manera segura.


¿Como lo usaría?

Imaginen poder hacer un script para escribir data sensible que deba ser guardada de manera urgente y lo puedan guardar en una base de datos en su navegador. Quiero ver si me da el tiempo para hacer una pequeña extensión de chrome para poder emular lo que digo.


Información útil:

Esto fue probado desde chromium en linux. Sin embargo, los navegadores modernos ya disponen de esto... (Firefox, Safari, Chrome). Para poder ver la base de datos y ver que el contenido si está cifrado pueden entrar a: ~/.config/chromium/Default/databases/ en caso de que estén usando su usuario por default de chromium

Si desean el script completo que hice pueden bajarlo de mi github dándo click aquí, los comentarios están en inglés, si no manejan mucho inglés, para comprender el código mejor mirar el de este tutorial.


Saludos,
Dedalo

viernes 17 Octubre 2014

Uso seguro de AES ENCRYPT con Mysql

Después de un tiempo sin escribir el buen clima hizo que mi perspectiva y mente se abrieran como para escribir un post interesante sobre una función de cifrado que tiene mysql. La función de la cual hablaré es AES_ENCRYPT();.

Primero, para desasnarnos un poco. ¿Qué es AES?.

AES es un algoritmo de cifrado simétrico (que depende de una password para descifrar), está calificado como un cifrado muy seguro. Mayor información sobre el cifrado googleen, por ahora me dedicaré a explicar cual el problema que hay con mysql.

Para cifrar información directo con la función de mysql debemos especificar lo que queremos cifrar y la contraseña para cifrar/descifrar. Esto se realiza de la siguiente manera.

mysql> SELECT HEX(AES_ENCRYPT('textoquequierocifrar', 'password'));
+------------------------------------------------------------------+
| HEX(AES_ENCRYPT('textoquequierocifrar', 'password'))             |
+------------------------------------------------------------------+
| 3FBC9CB7DE3881CB47A2007AF57B94C3849648881F12E3B49A23D83CF5842A9A |
+------------------------------------------------------------------+
1 row in set (0,02 sec)

Entonces, como pueden ver, nos devuelve el hex del AES de lo que hemos cifrado con la contraseña "password".

¿Dónde recae el "error" de esto? Por defecto Mysql no pone 256 bits al cifrado. Lo deja en 128 bits por lo que no es lo estandarizado para que el uso de AES sea completamente seguro. Haremos la consulta a la variable del sistema block_encryption_mode.

mysql> SELECT @@session.block_encryption_mode;
+---------------------------------+
| @@session.block_encryption_mode |
+---------------------------------+
| aes-128-ecb                     |
+---------------------------------+
1 row in set (0,00 sec)

Aquí se muestra lo que digo, se está usando AES-128-ECB -> AES es el cifrado 128 los bits y ECB el modo de operación. Esta información se puede corroborar en la página oficial de developers de mysql donde se documenta el uso de esta variable del sistema puedes dar click aquí.

Para cambiarla a la de 256 solo debemos ejecutar la siguiente consulta -> SET @@session.block_encryption_mode = 'aes-256-ecb';

Una vez realizada la consulta pueden volver a hacer un select de block_encryption_mode y el resultado será diferente:

mysql> SELECT @@session.block_encryption_mode;
+---------------------------------+
| @@session.block_encryption_mode |
+---------------------------------+
| aes-256-ecb                     |
+---------------------------------+
1 row in set (0,00 sec)

Entonces, ahora, si ciframos un contenido se cifrará con un estándar realmente seguro. Cifraré lo mismo y veremos como cambia el resultado.

mysql> SELECT HEX(AES_ENCRYPT('textoquequierocifrar', 'password'));
+------------------------------------------------------------------+
| HEX(AES_ENCRYPT('textoquequierocifrar', 'password'))             |
+------------------------------------------------------------------+
| 6D9E4A37311B9A9FAB28BB183020341FADB51A99E038F22213B44876F88FD15A |
+------------------------------------------------------------------+
1 row in set (0,00 sec)

Si nos fijamos el hash que nos dio en el primer ejemplo con el de ahora son diferentes porque el cifrado fue fortalecido.

Primero Resultado:
3FBC9CB7DE3881CB47A2007AF57B94C3849648881F12E3B49A23D83CF5842A9A

Segundo Resultado:
6D9E4A37311B9A9FAB28BB183020341FADB51A99E038F22213B44876F88FD15A

Para decifrar estos hashes es muy simple:

mysql> SELECT AES_DECRYPT(UNHEX('6D9E4A37311B9A9FAB28BB183020341FADB51A99E038F22213B44876F88FD15A'), 'password');
+----------------------------------------------------------------------------------------------------+
| AES_DECRYPT(UNHEX('6D9E4A37311B9A9FAB28BB183020341FADB51A99E038F22213B44876F88FD15A'), 'password') |
+----------------------------------------------------------------------------------------------------+
| textoquequierocifrar                                                                               |
+----------------------------------------------------------------------------------------------------+
1 row in set (0,00 sec)

En el caso que quieran descifrar el de 128 bits no van a poder, deberán volver a cambiar la variable global a 128 bits para que puedan realizar el descifrado.

Espero que les sirva, pueden aprovechar esta función al máximo para poder brindarle una mayor seguridad y privacidad a los usuarios de sus sistemas. Pueden usarlo para cifrar información personal del usuario y a menos que el no ponga su password, que también se debe guardar cifrada, no se pueda ver la información personal. De esa manera ni el administrador podrá leer la información personal y se le dará una mayor privacidad al usuario. Sé que se lee redundante pero es complicado de explicar un uso masivo. Ya haré un post sobre como usarlo de manera masivo con varios usuarios y su información.

Saludos,
Dedalo.

- página 1 de 4