Contando líneas de ficheros en #Linux

Si en alguna ocasión has necesitado contar las líneas de un archivo de texto, lo más probable es que hayas visto información de algún menú de propiedades del archivo en tu editor de texto habitual. Esto requiere tener el archivo abierto y cuando éste es voluminoso se puede tardar bastante en conocer un dato tan simple como este.

Vamos a contar las líneas del archivo: wc

Afortunadamente, los usuarios de GNU/Linux disponemos de un comando muy agradecido, wc (sigla que responde al término Word Count). Este comando nos permite contar las líneas (entendiendo como tal el número de caracteres nueva línea que haya en el archivo), bytes o palabras. La sintaxis del comando, para contar las líneas, es muy sencilla:

En [ARCHIVOS] se introduce el nombre o nombres de los archivos en los que queremos efectuar la cuenta. Cuando son varios los archivos, el comando devuelve, además, una línea resumen con la suma de los conteos efectuados. Podemos usar wc también para contar palabras, en cuyo caso se consideran como tal las secuencias de longitud no-nula delimitadas por espacios o directamente caracteres. En este caso, la llamada  sería:

Otras opciones interesantes son -c y -m, que te devuelven el número de bytes y/o caracteres del archivo, respectivamente (hay que tener en cuenta que el carácter de fin de línea también se cuenta) y -L, que da la longitud máxima de línea (o sea, la longitud de la línea más larga). Si empleamos wc sin archivos de entrada, el conteo se hará sobre la entrada estándar y se contará sobre lo que escribamos en consola. para salir de este modo, se pulsará Ctrl+D y el programa nos devuelve los valores que hemos pedido al invocar el comando. Por último, si invocamos el comando sin opciones de conteo (contar las líneas, las palabras, etc), el comando nos devolverá directamente cuatro columnas: la cuenta de palabras, de líneas y de bytes totales del archivo.

Fuente: Imasdemase

Un poco de #Javascript: funciones anónimas y objetos

Uno de los paradigmas usados en la programación es el Orientado Objetos, en el cual se intenta imaginar nuestro programa como un conjunto de objetos (en el sentido estricto de la palabra) que interactúan entre sí para dar como resultado la ejecución deseada. Personalmente me resulta muy claro imaginar una pelota para entender correctamente este paradigma: una Pelota tiene un tamaño, peso y color (serán variables denominadas atributos) y es capaz de botar y rodar (funciones denominadas métodos).

Como ves es un paradigma de lo más sencillo aunque al final resulta ser increíblemente potente por su capacidad de modularización, es decir, la posibilidad de diseñar objetos independientes y que una vez formados podamos olvidarnos de su comportamiento interno.

Read More

Conectando tu dispositivo móvil de forma inalámbrica, a tu PC (y gratis)

Hay modelos de teléfono que se convierten en miniPC al conectarlos a un ordenador o a una pantalla con un dock especial, pero en la mayoría de casos, al unir un smartphone con una computadora mediante un cable, lo único que ocurre es que verás una unidad nueva en el Explorador de archivos.

De ahí que me llamen mucho la atención herramientas facilitadoras como la popular AirDroid, que en cuestión de segundos conecta tu Android con tu PC o Mac vía web y te ayudan a gestionar aplicaciones y contenido multimedia, así como enviar mensajes o realizar cambios o mejoras con el teclado y el ratón de toda la vida.

Hoy voy a hablar de AirMore, la competencia más directa a AirDroid, tanto en nombre como en prestaciones, ya que conecta tu Android a tu PC o Mac pero también tu iPhone y iPad. En ambos casos sin cables, de forma gratuita y desde cualquier navegador web.

Read More

[We Live Security] Modificando payloads de msfvenom para Android

En ocasiones, desde el lado de la investigación usamos componentes maliciosos en nuestros entornos de prueba, como por ejemplo un APK malicioso creado específicamente. Para hacerlo, se requiere algo de personalización: modificar el icono de la aplicación, el nombre de la aplicación, la lista de permisos peticionados, alguna funcionalidad que posee un bug o que necesita ajustarse a determinada plataforma o dispositivo, entre otras cosas.

Cuando se trata de una operación de única vez, uno puede arreglárselas en el momento con una consola y algunos comandos, pero cuando se trata de una tarea repetitiva, la automatización se vuelve necesaria.

En particular, me encontraba preparando una demostración que incluía la generación de un APK malicioso con msfvenom para generar una conexión TCP inversa. Según el escenario planteado, era fundamental que el icono y el nombre de la aplicación concordasen con los de la aplicación explotada. Para complicar las cosas, la IP de conexión no podía ser estática, por lo que necesitaría generar el APK malicioso una y otra vez antes de cada evento.

Read More

Rastreando documentos #Office gracias a la CIA y sus herramientas

WikiLeaks ha publicado una nueva entrega de la serie de filtraciones del proyecto Vault 7, destinado a sacar a la luz documentos clasificados que demuestran los supuestos programas de espionaje electrónico de la CIA.

Se trata de un manual de usuario que describe un programa de la CIA conocido como “Scribbles”. La h1erramienta permite a la agencia etiquetar y rastrear documentos creados con el software de Microsoft Office que sean filtrados por informantes o robados por “oficiales de Inteligencia extranjeros”

El proyecto está diseñado para permitir la inserción de etiquetas llamadas ‘web beacon’ en aquellos documentos que sean “susceptibles de ser robados“.

Comúnmente utilizadas en análisis web, las etiquetas ‘web beacons’, también conocidas como ‘web bugs’, ‘balizas web’ o ‘faros web’, son a menudo incorporadas de forma invisible en páginas web o correos electrónicos para realizar un seguimiento de quién los lee.

Read More

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