"Hablaré con el corazón abierto en palabra de voluntad
y
razón de sentimiento."
---Si quieres construir un barco, no empieces por buscar madera, cortar tablas o distribuir el trabajo. Evoca primero en los hombres y mujeres el anhelo del mar libre y ancho---

martes, 16 de enero de 2007

Siete deseos para el Software Libre en 2007

El Libro Blanco del Software Libre ha publicado hoy sus Siete deseos para el Software Libre en 2007, que yo hago míos:

1. Que no se aprueben las patentes de software. Probablemente el problema más serio que puede afrontar el SL en 2007 en España y en la UE. Tú puedes hacer algo, infórmate y colabora.

2. Que los formatos realmente abiertos se generalicen en la administración pública. Que nuestros datos como ciudadanos, sean realmente nuestros, y no dependan de aplicaciones de terceros, y que de esta forma se abra el mercado a una mayor competencia. También puedes colaborar aquí e informarte aquí.

3. Que el software libre pueda competir en igualdad de condiciones con el propietario.

4. Que sigan creciendo las empresas que hacen negocio con el Software Libre.

5. Que las administracones públicas coordinen más sus esfuerzos en materia de Software Libre. ¿Hará esto el CENATIC?

6. Que Hispalinux comience una nueva andadura y los grupos locales de usuarios desarrollen muchas actividades.

7. Y que Stallman se afeite la barba para saber qué hay debajo. :-D



Al margen de la nota de humor del punto 7, creo que son cosas muy positivas que todos los amantes del SL deseamos. Ojalá se cumplan.

Wake On LAN: Arrancando equipos de forma remota

Wake On LAN es un estándar de redes que permite encender un equipo de forma remota, mediante el envío de un Magic Packet, un paquete especial que recibe la tarjeta de red.

Activar y usar Wake On LAN en nuestros equipos con Linux es muy sencillo (¿qué tarea de redes no lo es en *NIX?), y el software necesario lo tenemos en los repositorios de Debian.

Hay que decir que es necesario que la tarjeta de red soporte WOL, pero todas las tarjetas medianamente modernas lo soportan. También ha de estar la opción habilitada en la BIOS.

En primer lugar echaremos mano de ethtool, una herramienta sumamente útil que nos permite ver o modificar las características y configuración de la tarjeta de red. Lo vamos a usar en el equipo que queremos "despertar".

takashi:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x000000c5 (197)
Link detected: yes



Como vemos, la tarjeta soporta WOL (Supports Wake-on: pumbg), además de otros modos. También vemos que el modo está desactivado (Wake-on: d, por disabled). Para activarlo sólo tendremos que ejecutar

ethtool -s eth0 wol g

y ahora veremos cómo la función se ha activado (Wake-on: g). Por algún motivo, la mayoría de los drivers de red en Linux no dejan la tarjeta en modo WOL, y la opción se vuelve a desactivar durante el shutdown. Si os ocurre esto, podéis incluir un script en /etc/init.d (por ejemplo /etc/init.d/wol) para que se active el modo:

#!/bin/bash
ethtool -s eth0 wol g

Le dais permisos de ejecución y lo enlazais con los que se han de ejecutar durante el apagado (runlevel 0):

ln -sf /etc/rc0.d/K20wol /etc/init.d/wol

En el otro lado, el del equipo que tiene que enviar el Magic Packet, debemos instalar el software que envíe la señal. Podemos optar por etherwake o por wakeonlan. El modo es bien sencillo:

etherwake -i

o bien

wakeonlan -i

Si no especificamos la interfaz con la opción -i, el Magic Packet será enviado a través de la interfaz eth0.

También podeis crear el archivo /etc/ethers donde incluir pares MAC/alias, y poder de esta forma sustituir la dirección MAC del equipo remoto por un alias.

Así, cada vez que necesiteis hacer algo en otro equipo de vuestra red, no tendreis ni que levantaros a encenderlo: WOL + SSH y a tirar millas ;)

Recuperacion de contraseña en routers Cisco


Recuperaremos el enable password o enable secret passwords. Estos passwords protegen el acceso al modo EXEC privilegiado y al modo de configuracion. El enable password puede recuperarse, pero el enable secret password esta cifrado y la unica opcion es cambiarlo.

Nos conectamos por puerto de consola al router. Lo primero es anotar el valor actual del registro de configuracion:

vlan7>sh version

Normalmente sera 0x2102. El ultimo numero es el campo de arranque, un 2 significa que pregunta a la NVRAM de donde cargar el IOS.

Reiniciamos y al arrancar pulsamos CTRL+Pausa. Con esto nos saltamos cargar la NVRAM, que cargaria configuracion y passwords.
El prompt del router cambia a:
ROMMON1>

Le decimos que arranque de la Flash para que no cargue la configuracion.

ROMMON1>confreg 0x2142

Reseteamos:

ROMMON2>reset

Pulsamos CTRL+C para abortar el procedimiento de configuracion inicial y llegamos al prompt

Router>

Pasamos al modo privilegiado y copiamos la configuracion de la startup-config a la running-config:

Router>en
Router#copy star run

Establecemos el registro a su valor original que apuntamos al principio:

Router#conf t
Router(config)#config-register 0x2102

Ahora deberiamos configurar las interfaces, etc. Y tras cambiar los passwords hacer un:

Router#copy run star

Pero sobre los passwords hablaremos en otro post.

Passwords en routers Cisco

Tipos de cifrado:
7: Usa un algoritmo de Cisco. Se usa por fuerza en line password.
5: Usa un hash MD5, mucho mas fuerte que el tipo 7.

Por defecto los passwords se almacenan en texto plano, si hacemos un sh run...

vlan7#sh run
...
line con 0
exec-timeout 120 0
password vlan7
login local
...

...ahi esta la contraseña en texto plano: vlan7

El primer nivel de proteccion es aplicar cifrado de tipo 7 a las conexiones que no soporten el tipo5:

vlan7(config)#service password-encryption
vlan7(config)#line vty 0 4
vlan7(config-line)#login local
vlan7(config-line)#password postal

Lo mismo para el puerto de Consola y el AUX.

Volvemos a hacer un sh run...

vlan7#sh run
line con 0
exec-timeout 120 0
password 7 06160032584F05
login local

Y ahora aparece cifrado, pero esta contraseña se puede descifrar en 1 segundo, ya veremos como.

Para proteger el modo EXEC privilegiado, no hay que usar enable password sino enable secret para que el cifrado sea MD5 (Tipo 5 de Cisco).

vlan7#config t
vlan7(config)#enable secret PasswordDificil
vlan7(config)#no enable password

Para crear usuarios tambien es recomendable usar secret:
vlan7(config)#username vlan7 secret miclave

Descifrar passwords Cisco tipo 7

En menos de 1 segundo podemos romper el cifrado Cisco tipo 7. Ahi va el programa:

/* This code is originally from a Bugtraq post by
Jared Mauch . I patched it with an improved
translation table by Janos Zsako
-Fyodor (fyodor@insecure.org) */

#include
#include

char xlat[] = {
0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f,
0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72,
0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53 , 0x55, 0x42
};

char pw_str1[] = " password 7 ";
char pw_str2[] = "enable password 7 ";
char pw_str3[] = "ip ftp password 7 ";
char pw_str4[] = " ip ospf message-digest-key 1 md5 7 ";

char *pname;

cdecrypt(enc_pw, dec_pw)
char *enc_pw;
char *dec_pw;
{
unsigned int seed, i, val = 0;

if(strlen(enc_pw) & 1)
return(-1);

seed = (enc_pw[0] - '0') * 10 + enc_pw[1] - '0';

if (seed > 15 || !isdigit(enc_pw[0]) || !isdigit(enc_pw[1]))
return(-1);

for (i = 2 ; i <= strlen(enc_pw); i++) {
if(i !=2 && !(i & 1)) {
dec_pw[i / 2 - 2] = val ^ xlat[seed++];
val = 0;
}

val *= 16;

if(isdigit(enc_pw[i] = toupper(enc_pw[i]))) {
val += enc_pw[i] - '0';
continue;
}

if(enc_pw[i] >= 'A' && enc_pw[i] <= 'F') {
val += enc_pw[i] - 'A' + 10;
continue;
}

if(strlen(enc_pw) != i)
return(-1);
}

dec_pw[++i / 2] = 0;

return(0);
}

usage()
{
fprintf(stdout, "Usage: %s -p \n", pname);
fprintf(stdout, " %s \n", pname);

return(0);
}

main(argc,argv)
int argc;
char **argv;

{
FILE *in = stdin, *out = stdout;
char line[257];
char passwd[65];
unsigned int i, pw_pos;

pname = argv[0];

if(argc > 1)
{
if(argc > 3) {
usage();
exit(1);
}

if(argv[1][0] == '-')
{
switch(argv[1][1]) {
case 'h':
usage();
break;

case 'p':
bzero(passwd, sizeof(passwd));
if(cdecrypt(argv[2], passwd)) {
fprintf(stderr, "Error.\n");
exit(1);
}
fprintf(stdout, "password: %s\n", passwd);
break;

default:
fprintf(stderr, "%s: unknow option.", pname);
}

return(0);
}

if((in = fopen(argv[1], "rt")) == NULL)
exit(1);
if(argc > 2)
if((out = fopen(argv[2], "wt")) == NULL)
exit(1);
}

while(1) {
for(i = 0; i < 256; i++) {
if((line[i] = fgetc(in)) == EOF) {
if(i)
break;

fclose(in);
fclose(out);
return(0);
}
if(line[i] == '\r')
i--;

if(line[i] == '\n')
break;
}
pw_pos = 0;
line[i] = 0;

if(!strncmp(line, pw_str1, strlen(pw_str1)))
pw_pos = strlen(pw_str1);

if(!strncmp(line, pw_str2, strlen(pw_str2)))
pw_pos = strlen(pw_str2);
if(!strncmp(line, pw_str3, strlen(pw_str3)))
pw_pos = strlen(pw_str3);
if(!strncmp(line, pw_str4, strlen(pw_str4)))
pw_pos = strlen(pw_str4);

if(!pw_pos) {
fprintf(stdout, "%s\n", line);
continue;
}

bzero(passwd, sizeof(passwd));
if(cdecrypt(&line[pw_pos], passwd)) {
fprintf(stderr, "Error.\n");
exit(1);
}
else {
if(pw_pos == strlen(pw_str1))
fprintf(out, "%s", pw_str1);
else if (pw_pos == strlen(pw_str2))
fprintf(out, "%s", pw_str2);
else if (pw_pos == strlen(pw_str3))
fprintf(out, "%s", pw_str3);
else if (pw_pos == strlen(pw_str4))
fprintf(out, "%s", pw_str4);

fprintf(out, "%s\n", passwd);
}
}
}

Descifrar passwords Cisco tipo 7 (II)

iku posteo el 12-Ene-1998 en la lista Bugtraq una version en perl del programa en C que rompia el cifrado tipo 7 de Cisco.

#!/usr/bin/perl -w
# $Id: cisco.passwords.html 1799 2003-05-08 20:33:12Z fyodor $
#
# Credits for orginal code and description hobbit@avian.org,
# SPHiXe, .mudge et al. and for John Bashinski
# for Cisco IOS password encryption facts.
#
# Use for any malice or illegal purposes strictly prohibited!
#

@xlat = ( 0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f, 0x41,
0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72, 0x6b, 0x6c,
0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53 , 0x55, 0x42 );

while (<>) {
if (/(password|md5)\s+7\s+([\da-f]+)/io) {
if (!(length($2) & 1)) {
$ep = $2; $dp = "";
($s, $e) = ($2 =~ /^(..)(.+)/o);
for ($i = 0; $i < length($e); $i+=2) {
$dp .= sprintf "%c",hex(substr($e,$i,2))^$xlat[$s++];
}
s/7\s+$ep/$dp/;
}
}
print;
}

Banners de advertencia en Cisco

Se pueden mostrar banners de advertencia a distintos niveles.

vlan7(config)#banner ?
LINE c banner-text c, where 'c' is a delimiting character
exec Set EXEC process creation banner
incoming Set incoming terminal line banner
login Set login banner
motd Set Message of the Day banner
prompt-timeout Set Message for login authentication timeout
slip-ppp Set Message for SLIP/PPP

Creamos un banner que aparezca al intentar conectar...

vlan7(config)#banner login #
Enter TEXT message. End with the character '#'.
~ WARNING ~
Authorized Access ONLY!
All connections are logged and monitored. Any unauthorized use will be prosecuted to the fullest extent of the law. If you do not agree to this conditions, disconnect now.
#
vlan7(config)#

...y otro que aparezca una vez estamos dentro del sistema.

vlan7(config)#banner motd #
Enter TEXT message. End with the character '#'.
You are connected to a monitored network. Unauthorized access and use of this network will be vigorously prosecuted.
#
vlan7(config)#

Probemoslo:

vlan7@probador ~ $ ssh 192.168.2.1
vlan7@192.168.2.1's password:

You are connected to a monitored network. Unauthorized access and use of this network will be vigorously prosecuted.
vlan7>

Vaya, solo nos aparece el banner motd. Hay un problema, y es que si entramos por SSH no nos muestra el banner login. En cambio si entraramos por Telnet si que nos lo mostraria. ¿A alguien se le ocurre como solucionar esto?

posted by vlan7 at 12:28 PM 0 comments
miércoles, marzo 22, 2006
Niveles de privilegio en Cisco
Existen 16 niveles de privilegio:

Nivel 1: Predefinido para el acceso a nivel de usuario.
Niveles 2..14: Privilegios personalizables.
Nivel 15: Predefinido para el modo enable.

Es aconsejable mover ciertos comandos del nivel 1 al 15:

vlan7(config)#privilege exec level 15 connect
vlan7(config)#privilege exec level 15 telnet
vlan7(config)#privilege exec level 15 ssh

Asi solo puede iniciar sesion en otro equipo el usuario con privilegio 15.

vlan7>sh priv
Current privilege level is 1
vlan7>ssh 1.2.3.4
^
% Invalid input detected at '^' marker.

Pero ¿y si tenemos un usuario al que queremos permitirle ssh pero no queremos que tenga acceso al modo 15?

Pues definimos un nivel (2 en el ejemplo) para ese usuario...

vlan7(config)#enable secret level 2 0 pass_enable

...y un usuario para ese nivel:

vlan7(config)#username pepe secret 0 pass_user

Por ultimo bajamos el comando ssh al nivel 2. El 2 y todos los niveles superiores podran usarlo.

vlan7(config)#privilege exec level 2 ssh

Lo probamos:

vlan7>sh priv
Current privilege level is 1
vlan7>en 2
Password:
vlan7#sh priv
Current privilege level is 2
vlan7#ssh -l vlan7 192.168.2.2
Connection refused by remote host

Cisco no recomienda crear usuarios en los niveles personalizables, pero lo cierto es que existen buenos motivos para no hacer caso a Cisco:
1.- El usuario tiene que entrar con user/pass, no solo con 1 password.
2.- En los logs queda registrado el nombre de usuario con lo que hizo.

miércoles, 10 de enero de 2007

DESENCRIPTADOS DISCOS HD-DVD

El pasado día 27 de diciembre saltó la voz de alarma en la industria cinematográfica. Un hacker -cuyo nick es muslix64- llevado por la ira, había sido capaz de volcar a su disco duro y desencriptar una película en formato HD-DVD.

Dicho hacker cayó en el lado oscuro llenándose de odio e ira al comprobar como su recién estrenada unidad HD-DVD no le permitía reproducir una película HD en su monitor de alta resolución. Todo era culpa de su tarjeta gráfica, que como la inmensa mayoría disponible actualmente en el mercado no soportaba HDCP. Pero, ¿que es HDCP? Dichas siglas corresponden a High-Bandwidth Digital Content Protection. Se trata de un sistema desarrollado por Intel (por el que ya cobra unos céntimos por cada dispositivo que lo incorpora) que encripta la señal de video digital al ser enviada por HDMI/DVI para desencriptarse después en el monitor/TV. Este proceso se realiza via hardware y requiere que ambos dispositivos, gráfica/reproductor y televisión/monitor, tengan integrado el correspondiente chip desencriptador. En caso de no disponer de dicho chip la resolución final se ve limitada no disfrutandose de la alta definición.

En los foros de doom9 -portál dedicado al video digital-, es el propio muslix64 quien cuenta la cronología de los hechos, posteando incluso un video que demuestra el proceso.

¿Cómo lo ha hecho? o mejor, ¿qué ha logrado?

Los discos HD-DVD incorporan dos claves cifradas (Volume Key y Title Key) mediante las cuales se encripta el contenido del disco. Igualmente los reproductores HD-DVD tienen en su memoria una clave (Player Key) con la que es posible desencriptar las anteriores claves cifradas. Conociendo la clave del reproductor solo queda hallar las claves de disco, volcarlo y desencriptarlo. Fácil, ¿no?. Hasta ahora el problema era encontrar las claves de reproductor, las cuales estaban integradas en el mismo y no se podían leer. Lo que este hacker ha hecho ha sido cargar una película en su reproductor software de HD-DVD (por ejemplo PowerDVD 6.5) para después buscar por toda la memoria de su sistema la posición en la cual el Title Key se encontraba. Una vez hallada esta Key solo ha tenido que volcar el contenido y desencriptarlo. Para ello ha creado un programa java llamado BackupHDDVD capaz de realizar dicho proceso de desencriptado. Además, ha prometido publicar este próximo 2 de enero una nueva versión capaz de desencriptar más Volume Keys de distintas películas.

Como podeis observar, el punto débil del sistema se encuentra en los reproductores via software, como ya sucedió con los DVD. En este aspecto AACS es mas robusto que CSS, ya que es capaz de revocar las claves de los reproductores. En otras palabras, una vez hallado el reproductor del que se ha extraido su Player Key es posible añadirla a la lista negra y que todas las películas encriptadas desde ese día no se puedan leer en dicho reproductor. Ahora bien, ¿y si no sale a la luz que reproductor es el que tiene la fuga? Entonces previsiblemente tendremos el mercado negro de Volume Key's.

Esta noticia en sí no representa el fin de la protección AACS, ya que no se asegura la continuidad de este hack. Tan solo demuestra que la protección no es totalmente invulnerable como nos intentaban hacer creer. Además, otros formatos como BluRay, que también incorporan AACS, contemplan la posibilidad de cambiar la encriptación en un futuro -ahora menos lejano-.

Nuevo Truco para Megaupload

FIREFOX

Primero en la barra de direcciones de Firefox (recomiendo usar el FIREFOX2) aunque tambien funciona con cualquier version de firefox. En la barra de direcciones escribimos about:config y damos enter

Despues de dar enter, aparece muchas entradas como en la siguiente imagen, en esas entradas buscamos la que es: general.useragent.extra.firefox

ya despues de seleccionarlo, le damos doble click y aparece una ventana.



En esa ventana aparace la version de Firefox que tenemos, puede ser 2.0 o 1.5, debemos agregar MEGAUPLOAD 1.0 por lo que debe quedar Firefox/2.0 MEGAUPLOAD 1.0 (cuidado con los espacios y no mover nada de la version de firefox)

damos enter, y reiniciamos el Firefox, y listo volvemos a descargar sin tener que instalar nada.

Internet Explorer

Este escríbanlo en el notepad y guárdenlo como valor de registro

REGEDIT4[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform]
“MEGAUPLOAD 1.0″=”"

o

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform]
“Alexa Toolbar”=”"
“MEGAUPLOAD 1.0″=”"

Lo guardamos como .REG y despues le damos doble clic y listo entra al registro y se puede bajar sin instalar nada.


Aqui les dejo el .REG para que lo bajen y solo le den doble click y listo.

Deja bajar alrededor de 500 mb por ip y luego hace esperar como 2 horas. a veces se baja mas y se espera menos, es variable.

PC Repair System: una "caja de herramientas" en 32 MB


PC Repair System se descarga como un fichero zip que contiene 37 herramientas libres -o al menos freeware- para diagnosticar, reparar, mantener y recuperar ficheros de un PC con Windows.

Se descomprime el fichero en un USB de 32 MB -o más- y listo para utilizar en caso de apuro.

jueves, 4 de enero de 2007