Hackeado el repositorio del código fuente de PHP: fuerte alarma para el lenguaje usado por casi el 80% de todos los sitios web

Hackeado el repositorio del código fuente de PHP: fuerte alarma para el lenguaje usado por casi el 80% de todos los sitios web

Este domingo 28 de marzo, hackers lograron acceder al repositorio Git interno del lenguaje de programación PHP y lograron añadir una puerta trasera al código fuente del mismo. Estamos hablando del lenguaje del lado del servidor más usado en toda la web y que se calcula está en uso en el 79.1% de todos los sitios web.

Como explican en las listas de correo de PHP, el ataque insertó dos cambios maliciosos en el repositorio php-src, y aunque aún se desconoce la causa y hay una investigación en marcha, todo apunta a que el servidor oficial git.php.net fue comprometido.

Aunque el ataque fue detectado rápido, es una enorme advertencia

El mecanismo de puerta trasera fue detectado por primera vez por Michael Voříšek, un ingeniero de software de República Checa. Si este código malicioso hubiera llegado a producción, podría permitir a los hackers ejecutar sus propios comandos PHP maliciosos en los servidores de las víctimas.

Algunos expertos creen que es posible que los atacantes querían ser descubiertos, o que se trataba de un cazador de bugs por los “mensajes” que dejó en el código. Lo que pasa es que para poder desencadenar la ejecución del código malicioso, el atacante tenía que enviar una petición HTTP a un servidor vulnerable con un user agent que comenzara con la cadena “zerodium”.

Zerodium es una plataforma famosa de ciberseguridad especializada en la adquisición y venta de exploits zero day. Zerodium ha declarado ya que no tiene nada que ver con esto, por lo que se piensa que quien sea que hackeó el código no buscaba ser nada sutil, pero no se saben sus intenciones.

Además de esto, los atacantes añadieron un mensaje en uno de los parámetros de la función que ejecuta: “REMOVETHIS: sold to zerodium, mid 2017“. Claramente se busca implicar o hacer referencia a la empresa en esto, pero nadie sabe si se vendió algo a Zerodium en 2017 ni mucho menos qué fue.

En los chats de PHP en Stack Overflow hay muchas conjeturas. Algunos creen que podría haber sido un “pobre intento” de hacking de sombrero blanco, mientras que otros incluso apuntan a un “skript-kiddie completamente inepto”.

Mientras la investigación continua y se está realizando una revisión más minuciosa del código fuente de PHP, se ha decidido que el mantenimiento de una infraestructura Git propia es un riesgo de seguridad innecesario y por lo tanto el servidor git.php.net se va a descontinuar.

A partir de ahora los repositorios en GitHub que antes eran solo mirrors, pasarán a ser los principales, por lo que los cambios deberán enviarse directamente a GitHub en lugar de a git.php.net.

El código malicioso que se añadió al código fuente se hizo a través de las cuentas de dos de los miembros del equipo core de PHP, Rasmus Lerdorf and Nikita Popov, pero ya ambos expresaron no estar involucrados. Además, el equipo usa autenticación de doble factor para sus cuentas, por eso creen que se trató de un fallo crucial en el servidor Git principal en lugar de la violación de alguna cuenta individual.

Aunque el incidente fue resuelto rápidamente, en la práctica hubiese afectado a una pequeña porción de los sistemas que usan servidores PHP, puesto que suele ser usual que la mayoría se tarden mucho tiempo en actualizar a la última versión.

Esto es otro problema que viene plagando a la web hace tiempo, el cómo un enorme porcentaje de las webs en Internet usan una versión de PHP que no tiene soporte, y aunque ha mejorado en los últimos años, todavía casi el 40% de todas las webs que usan PHP usan una versión antigua y sin soporte.

Fuente: Genbeta.com

OpenSSL parchea dos vulnerabilidades de alta gravedad

OpenSSL parchea dos vulnerabilidades de alta gravedad

OpenSSL han publicado un parche para dos fallos de seguridad graves en su software que podían aprovecharse para realizar ataques de denegación de servicio (DoS) y eludir la verificación de certificados.

OpenSSL es un proyecto de software libre basado en SSLeay, desarrollado por Eric Young y Tim Hudson. Consiste en un robusto paquete de herramientas de administración y bibliotecas relacionadas con la criptografía, que suministran funciones criptográficas a otros paquetes como OpenSSH y navegadores web.

Identificados como CVE-2021-3449 y CVE-2021-3450, ambas vulnerabilidades han sido parcheadas en una actualización (versión OpenSSL 1.1.1k) publicada el jueves. Mientras que CVE-2021-3449 afecta a todas las versiones de OpenSSL 1.1.1, CVE-2021-3450 afecta a las versiones de OpenSSL 1.1.1h y posteriores.

Según un aviso publicado por OpenSSL, CVE-2021-3449 se refiere a una posible vulnerabilidad de denegación de servicio (DoS) debida a la desreferenciación de punteros NULL que puede hacer que un servidor TLS de OpenSSL se cuelgue, si, en el curso de la renegociación, el cliente transmite un mensaje «ClientHello» malicioso durante el «handshake» entre el servidor y un usuario. El problema se introdujo como parte de los cambios que se remontan a enero de 2018.

CVE-2021-3450, por su parte, se refiere a un «flag» X509_V_FLAG_X509_STRICT que permite realizar comprobaciones de seguridad adicionales de los certificados presentes en una cadena de certificados. Aunque esta bandera no está activada por defecto, un error en la implementación hacía que OpenSSL no comprobara que «los certificados no CA no deben poder emitir otros certificados», lo que daba lugar a un bypass de certificados.

Como resultado, el fallo impedía que las aplicaciones rechazaran los certificados TLS que no estuvieran firmados digitalmente por una autoridad de certificación (CA) de confianza del navegador.

Aunque ninguno de los dos problemas afecta a OpenSSL 1.0.2, también hay que tener en cuenta que la versión está fuera de soporte desde el 1 de enero de 2020 y ya no recibe actualizaciones. Se recomienda a las aplicaciones que dependen de una versión vulnerable de OpenSSL que apliquen los parches para mitigar el riesgo asociado a los fallos.

Fuente: Hispasec.com

Más información:

https://thehackernews.com/2021/03/openssl-releases-patches-for-2-high.html
https://www.openssl.org/news/vulnerabilities.html
https://www.openssl.org/news/secadv/20210325.txt
Malware Android disfrazado de actualización del sistema

Malware Android disfrazado de actualización del sistema

Investigadores de Zimperium zLabs han descubierto una nueva aplicación maliciosa con múltiples funcionalidades que se hace pasar por una actualización del sistema.

Este nuevo troyano enfocado al robo de información cuenta con múltiples funcionalidades, desde la recopilación de búsquedas en el navegador hasta la grabación de audio y llamadas telefónicas. A continuación dejamos una lista con las características.

Funcionalidades

Robo de mensajes de aplicaciones de mensajería.
Robo de archivos de base de datos de las aplicaciones de mensajería instantánea.
Inspeccionar los marcadores y las búsquedas del navegador predeterminado.
Inspeccionar el historial de marcadores y búsquedas de Google Chrome, Mozilla Firefox y el navegador de Internet Samsung.
Búsqueda de archivos con extensiones específicas (incluidos .pdf, .doc, .docx y .xls, .xlsx).
Inspeccionar los datos del portapapeles.
Inspeccionar el contenido de las notificaciones.
Grabación de audio.
Grabación de llamadas telefónicas.
Tomar fotografías periódicamente (ya sea a través de la cámara frontal o trasera).
Listar las aplicaciones instaladas.
Robar imágenes y vídeos.
Monitoreo de la ubicación GPS.
Robo de mensajes SMS.
Robo de contactos telefónicos.
Robo del registro de llamadas.
Extracción de información del dispositivo (por ejemplo, aplicaciones instaladas, nombre del dispositivo, estadísticas de almacenamiento).
Ocultar su presencia ocultando el icono.

Si bien el malware en Android anteriormente se ha disfrazado de aplicaciones legítimas esta nueva aplicación maliciosa se hace pasar por una actualización del sistema para tomar el control de los dispositivos comprometidos.

«El software espía crea una notificación si la pantalla del dispositivo está apagada usando el servicio de mensajería Firebase», dijeron los investigadores de Zimperium. Esta notificación nos notifica una búsqueda de actualizaciones falsa.

Una vez instalada, la aplicación espía comienza su tarea registrando el dispositivo en un servidor de comando y control (C2) de Firebase con información como el porcentaje de batería, estadísticas de almacenamiento y si el teléfono tiene WhatsApp instalado, seguido de la acumulación y exportación de cualquier dato de interés para el servidor en forma de archivo ZIP cifrado.

«La funcionalidad del software espía y la exfiltración de datos se activan bajo múltiples condiciones, como un nuevo contacto agregado, un nuevo SMS recibido o una nueva aplicación instalada haciendo uso de los receptores contentObserver y Broadcast de Android«, dijeron los investigadores.

Además, el malware no solo organiza los datos recopilados en varias carpetas dentro de su almacenamiento privado, sino que también elimina cualquier rastro de actividad sospechosa al eliminar los archivos ZIP tan pronto como recibe un mensaje de «éxito» del servidor C2 después del envío de los datos robados.

Aunque la aplicación «System Update» nunca se ha distribuido a través de la tienda oficial de Google Play, la investigación destaca una vez más cómo las tiendas de aplicaciones de terceros pueden albergar malware peligroso. La identidad de los autores de este malware y el objetivo o motivo final de la campaña aún no están claros.

Fuentes

New Advanced Android Malware Posing as “System Update”

https://blog.zimperium.com/new-advanced-android-malware-posing-as-system-update/embed/#?secret=Xq5ZcQIDbg
https://thehackernews.com/2021/03/watch-out-that-android-system-update.html
Hackeado el repositorio del código fuente de PHP: fuerte alarma para el lenguaje usado por casi el 80% de todos los sitios web

Ver Imagen ocultando la url con PHP

El día de hoy necesitaba cargar una imagen pero que no se vea su ubicación real, leyendo y leyendo info obviamente de PHP me encontré con la funcion chunk_split() el cual se relaciona con base64_encode, el cual nos permite codificar en base64 la imagen y así mostrarla como si hicieras un simple <img src=”imagen.jpg”>

El código para esta función es:


// Seleccionamos la imagen que queremos codificar, también puedes poner la dirección donde se encuentra la 
imagen $imagen = file_get_contents("path + mi_imagen.jpg");
//Codificamos la imagen en base64 
$imagen_base64 = chunk_split(base64_encode($imagen));
// Para mostrar la imagen codificada sería lo siguiente 
echo '< img src="data:image/jpg;base64,'.$imagen_base64.'" />';

Se vería así:

[view_image64 type=jpg]2016/01/lluvia-1.jpg[/view_image64]

voilà!

Con eso tenemos la imagen, en codificación base64 sin necesidad de mostrar la url real de dicha imagen.

Saludos! 😀

Función Obtener IP en YII Framework Components

Función Obtener IP en YII Framework Components

Hola, hace rato no posteaba nada, he estado con hartas cosas he ahí el motivo, ahora les mostraré una función que utilizo en mis sistemas creados en YII para obtener la IP de quien se logea o realiza alguna acción en el sistemilla.

Es bastante sencilla y solo hay que alojarla en un nuevo archivo que se debe crear en la carpeta components obviamente que esta clase debe ser extención de controladores globales.

En la carpeta Components creado el siguiente archivo llamado Funcion.php (en realidad el nombre que deseen ponerle al archivo), el cual tendría el siguiente contenido.

<?php
class Funcion extends CController
{
  public static function obtenerIP()
  {
     if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
     {
        $client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : "unknown" );
        $entries = preg_split('/[, ]/', $_SERVER['HTTP_X_FORWARDED_FOR']);
   
        reset($entries);
        while (list(, $entry) = each($entries)) {
           $entry = trim($entry);
           if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) ) {
              $private_ip = array(
                    '/^0\./', 
                    '/^127\.0\.0\.1/', 
                    '/^192\.168\..*/', 
                    '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/', 
                    '/^10\..*/');
              $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
              if ($client_ip != $found_ip){
                 $client_ip = $found_ip;
                 break;
              }
           }
        }
     } else { $client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : "unknown" ); }
     return $client_ip;
  }
}
?>

Ahora para llamar la función es simple desde el controllador agregas la siguiente línea:

$model->ip = Funcion::ObtenerIP();

Y estaríamos listo.

Saludos! 😀

Linux – Comprimir carpeta o archivos desde consola

Linux – Comprimir carpeta o archivos desde consola

Es muy fácil y útil comprimir archivos y sobre todo carpetas enteras desde consola. Es útil a la hora de realizar backups o copias de seguridad de directorios, ya que permite comprimir un directorio entero y descargarlo de forma más segura y más cómoda.

El comando te tienes que ejecutar desde la consola es el siguiente:
tar -zcvf nombre-archivo.tar.gz nombre-directorio

Donde,

-z: Comprimir archivos usando gzip
-c: Crear un nuevo archivo
-v: Verbose, es decir, mostrar el proceso durante la creacion del archivo
-f: nombre de archivo
Ahora bien, Como Descomprimir un archivo .tar.gz.

El comando necesario para descomprimir sería el mismo pero cambiando algunos atributos.

tar -xvzf miarcho.tar.gz

Donde,

-x: extrae el contenido del archivo comprimido
-v: Verbose, es decir, mostrar el proceso durante la creacion del archivo
-f: nombre de archivo
Otros formatos y comandos para comprimir y descomprimir mas usados

Ficheros gz
Comprimir
gzip -9 fichero

Descomprimir
gzip -d fichero.gz

Ficheros bz2

Comprimir
bzip fichero

Descomprimir
bzip2 -d fichero.bz2

Tanto gzip como bzip2 solo comprimen ficheros. No son capaces de empaquetar carpetas, para esto se utiliza el comando tar que he indicado anteriormente.

Ficheros zip

Comprimir
zip archivo.zip ficheros

Descomprimir
unzip archivo.zip

Ficheros rar

Comprimir
rar -a archivo.rar ficheros

Descomprimir
rar -x archivo.rar

Tags de búsquedas:

comprimir carpeta linux, comprimir carpeta en linux, comprimir una carpeta en linux, linux comprimir carpeta, comprimir carpetas linux, comprimir directorio linux, comprimir carpeta tar gz, comprimir carpetas en linux, comprimir carpeta tar, comprimir una carpeta linux