Seguridad

Validación en PHP, usando Valitron

En este post te mostraré a validar los datos que el usuario ingresa en PHP ya sea a través de un formulario o de otras fuentes; usando la librería Valitron, que funciona muy bien para validar en PHP.

El repositorio de esta librería está aquí, y su uso es simple, además de que no requiere ningún framework o dependencia externa.

Un extra que tiene esta librería de validación de PHP es que permite mostrar los mensajes en idioma español.

Nota: el código que se expone aquí, es decir, la demostración, está en mi GitHub.

Continue reading…

Cifrar archivos con PHP

Resumen

Vamos a cifrar y descifrar archivos con PHP de dos maneras; la primera usando una clave “general” y otra con una contraseña.

Para cifrar y descifrar vamos a usar la librería php-encryption.

La diferencia es que con el segundo ejemplo podremos hacer que los usuarios tengan sus archivos cifrados con una contraseña que solo ellos sepan, y cada uno tendrá una clave distinta.

Continue reading…

Cifrar y descifrar información con PHP

En este artículo te voy a mostrar cómo encriptar y desencriptar datos usando PHP, para mantener los datos seguros. Veremos cómo:

  • Cifrar datos
  • Descifrar datos
  • Cifrar datos usando la contraseña de un usuario
  • Descifrar datos usando la contraseña de un usuario

Estos dos últimos ejemplos funcionan muy bien para cuando queremos asegurar la información incluso para los desarrolladores de la aplicación.

Recuerda que encriptar es distinto a hashear; porque cuando encriptamos un valor con PHP lo hacemos de esa manera para desencriptarlo más tarde. En cambio, al hashear una contraseña, su valor no es reversible.

La librería que vamos a usar para encriptar y desencriptar datos en PHP se llama php-encryption y su repositorio en GitHub lo puedes ver aquí.

Nota: voy a usar encriptar y cifrar como sinónimos para este post, al igual que desencriptar y descifrar.

Continue reading…

3 - Elegir root

Resetar contraseña de Ubuntu

Hoy, al intentar iniciar una máquina virtual con Linux Ubuntu que usé hace tiempo para unos ejercicios de la escuela me di cuenta de que había olvidado la contraseña.

No me costaba nada reinstalar el sistema, pues solo lo usaba para fines didácticos, pero la pereza pudo conmigo y preferí resetear la contraseña del usuario, además de documentar el proceso.

Recomendado: mira la administración de usuarios en Ubuntu para que entiendas cómo obtenemos la lista de usuarios y reseteamos la contraseña.

Continue reading…

Java: Calcular hash MD5 de archivo

En este post te voy a mostrar cómo puedes calcular la suma de verificación MD5 de un archivo en Java, sin usar dependencias externas ni paquetes extraños, solo usaremos código nativo de Java.

El Hash MD5 de un archivo funciona para verificar la integridad del mismo, ya que, por ejemplo, al descargar un archivo, alguien podría corromperlo mientras se transmite.

La suma de verificación comprueba que el archivo original y el que tenemos son exactamente el mismo.

Continue reading…

Respaldar instalación de WordPress periódicamente en Google Drive

WordPress es un popular CMS que usan muchísimos sitios en internet, ya sea para sitios de noticias, blogs, tiendas, etcétera.

Este CMS se compone de archivos para funcionar, además de los archivos que el usuario sube, plugins, temas y finalmente una base de datos en donde están los artículos, páginas y configuraciones del sitio.

En este post voy a mostrarte cómo respaldar toda la instalación de WordPress junto con su base de datos en un archivo que será subido a Google Drive.

Como extra, te mostraré cómo hacer que estos respaldos sean automáticos usando cron.

Continue reading…

Respaldar carpeta de Linux en Google Drive, periódicamente

En este post voy a hacer una guía y mostrar un script para respaldar todo el contenido de una carpeta de Linux y subir la misma a nuestra cuenta de Google Drive.

También voy a mostrar cómo podemos hacer estos respaldos automáticos y periódicos usando cron para ejecutar el archivo cada cierto tiempo y realizar la subida del archivo a Google Drive.

No sé si va contra las políticas de Google (cosa que no creo, ya que estás usando el almacenamiento para cosas personales) así que hazlo bajo tu propio riesgo.

Continue reading…

Hackear cuenta de Facebook con Phishing | Ejemplo de código

En este artículo voy a mostrarte cómo se puede hackear una cuenta de Facebook de prácticamente cualquier persona, usando una técnica llamada phishing.

Vamos a ver cómo:

  • Crear una página idéntica a Facebook
  • Programar el botón para que envíe los datos al servidor
  • Redirigir a otra página

Ejemplo de Facebook Phishing con PHP

Usaremos PHP como lenguaje para guardar los datos.

Continue reading…

Identificar correos electrónicos falsos que hablan sobre hackeos

Seguramente a muchos de nosotros nos han llegado correos que dicen cosas como:

Importante: la direccion [correo] fue hackeada.

O mensajes que:

  • Dicen que nos han grabado con la cámara web
  • Han visto nuestro historial
  • Amenazan con enviar un vídeo nuestro a nuestros contactos

La mayoría de ocasiones estos mensajes son falsos y aunque cosas como esas son totalmente posibles (si no, pregunten a la NSA) ya sea por gobiernos o por hackers especializados, la mayoría de estos mensajes son por gente no tan especializada que solo quiere dinero fácil.

Continue reading…

Un ransomware para Linux usando GPG

Hoy vamos a ver cómo crear un ransomware programado para Linux (será un shell script) utilizando GPG y el cifrado asimétrico; será más que nada un ejercicio didáctico pero claro que se puede llevar a la práctica (cosa que no recomiendo, en serio),

Si no sabes qué es un ransomware veamos lo que dice la wikipedia:

Un ransomware (del inglés ransom, «rescate», y ware, acortamiento de software) o “secuestro de datos” en español, es un tipo de programa dañino que restringe el acceso a determinadas partes o archivos del sistema operativo infectado, y pide un rescate a cambio de quitar esta restricción.

El ransomware que vamos a programar va a cifrar archivos con nuestra clave pública (que se va a descarga en la PC de la víctima), los cuales solo vamos a descifrar con nuestra clave privada (la cual solo posee el atacante).

Ransomware en Linux

Será un script de bash muy sencillo pero poderoso, con la única dependencia de GPG.

Continue reading…

Obtener IP de un usuario a través de un correo electrónico

En este post vamos a ver cómo disfrazar un correo electrónico para obtener la IP de un usuario con el simple hecho de que lo abra y vea su contenido, o mejor dicho, una imagen.

Lo que haremos, en pasos sencillos, será enviar una imagen de un perro (no es broma) la cual será servida a través de PHP con readfile. La IP se registrará con el código que vimos aquí.

Este método funciona correctamente en correos de dominio personal (es decir, .com, .me, .io, etcétera) y en hotmail; pero no en gmail, ya veremos por qué.

Recuerda que esto se hace con fines didácticos y que no me hago responsable de lo que se pueda hacer con esto.

Continue reading…

Decompilar APK (app de Android) y obtener código fuente (casi) original

Una de las debilidades de Java (y otros lenguajes que compilan a bytecode) es que se puede decompilar o descompilar, como le quieras llamar. O decompile, si hablas inglés.

Hoy vamos a ver un decompilador de aplicaciones de android, es decir, de apps con extensiones APK.

Estuve probando el decompilador y funciona de maravilla, obtiene casi el mismo código que el original.

Para hacer esta demostración y no hacer nada ilegal, voy a usar el CRUD de SQLite con Android cuyo código fuente está aquí, y su APK está aquí.

Continue reading…