A partir de ahora la nueva dirección del blog es:
http://dlerch.blogspot.com
hack1t continuará online de momento, pero no se añadirán nuevas entradas.
Disculpad las molestias.
martes, 18 de noviembre de 2008
hack1t se traslada
Etiquetas:
Noticias
domingo, 16 de noviembre de 2008
Power Over Ethernet Casero
Existe un estándar que define la forma de usar cableado de red que incluye alimentación elétrica. Aunque actualmente no resulta sencillo encontrar dispositivos que lo implementen. Por este motivo dedico un post a realizar una implementación casera. Yo lo he usado con éxito en instalaciones de camaras web.
Si utilizamos para el cableado la norma 568B el esquema de colores queda como sigue:
PIN COLOR TIPO
------------------------------
1 Blanco/Naranja TX D1+
2 Naranja TX D1-
3 Blanco/Verde RX D2+
4 Azul Libre
5 Blanco/Azul Libre
6 Verde RX D2-
7 Blanco/Marron Libre
8 Marron Libre
La idea consiste en usar alguno de los pares libres para transmitir el voltaje necesario para la camara. Por ejemplo, en mis instalaciones de camaras web (uso cámaras Axis 206 que necesitan 5V y unos 500mA cada una) no hay ningún problema de interferencias, pero con más de 50V podríamos tener sorpresas.
Como he indicado en el listado anterior, los pares libres son el Blanco/Azul - Azul y el Banco/Marrón - marrón. Se trata, simplemente, de usar uno de esos pares para la alimentación del dispositivo.
En principio, resulta más sencillo crimpar el RJ45 con todos los cables y despues cortar el par que nos interesa para la alimentación. Aunque con un poco de práctica no resulta complicado crimpar solo los cables necesarios, y la instalación siempre queda más 'mona'.
Bueno, aquí queda el código de colores. A ver quien nos cuenta sus experiencias!
Si utilizamos para el cableado la norma 568B el esquema de colores queda como sigue:
PIN COLOR TIPO
------------------------------
1 Blanco/Naranja TX D1+
2 Naranja TX D1-
3 Blanco/Verde RX D2+
4 Azul Libre
5 Blanco/Azul Libre
6 Verde RX D2-
7 Blanco/Marron Libre
8 Marron Libre
La idea consiste en usar alguno de los pares libres para transmitir el voltaje necesario para la camara. Por ejemplo, en mis instalaciones de camaras web (uso cámaras Axis 206 que necesitan 5V y unos 500mA cada una) no hay ningún problema de interferencias, pero con más de 50V podríamos tener sorpresas.
Como he indicado en el listado anterior, los pares libres son el Blanco/Azul - Azul y el Banco/Marrón - marrón. Se trata, simplemente, de usar uno de esos pares para la alimentación del dispositivo.
En principio, resulta más sencillo crimpar el RJ45 con todos los cables y despues cortar el par que nos interesa para la alimentación. Aunque con un poco de práctica no resulta complicado crimpar solo los cables necesarios, y la instalación siempre queda más 'mona'.
Bueno, aquí queda el código de colores. A ver quien nos cuenta sus experiencias!
Etiquetas:
Seguridad Física
domingo, 9 de noviembre de 2008
Volúmenes cifrados con OpenSSL
Cada vez hay más productos que se venden como 'criptografía fàcil' para todo tipo de usuarios. Estos te permiten montar un volumen de datos de forma realmente sencilla y cifrarlos con criptografía fuerte. Pero no es el propósito de este artículo repasar ni estudiar dichos productos. Aquí, siguiendo la folosofía del blog, lo que haremos es crear un sistema propio.
Usaremos la herramienta openssl que nos permitirá lidiar con el cifrado y algunos comandos unix para el manejo del volumen.
Creando un nuevo volumen
Para crear un volumen usaremos la herramienta 'dd' que nos permitirá crear un archivo vacío de cierto tamaño. Como ejemplo creamos un volumen de 100MB.
$ dd if=/dev/zero of=volume bs=1M count=100
A continuación necesitaremos crear el sistema de ficheros. Por ejemplo, ext3:
$ mkfs.ext3 volume
y finalmente cifraremos con blowfish. En este paso openssl nos pedirá la contraseña con la que queremos cifrar el sistema.
$ openssl enc -blowfish -in volume -out volume.ciph
Abrir el volumen
Para abrir el volumen solo tendremos que descifrar-lo con
$ openssl enc -blowfish -d -in volume.ciph -out volume
paso en el que se nos pedirá la contraseña de cifrado. A continuación, para acceder al volumen, lo montaremos.
$ mount volume /mnt -o loop
De esta manera, todo lo que guardemos en /mnt quedará almacenado en nuestro volumen de cifrado.
Cerrar el volumen
Una vez hemos terminado de trabajar con nuestro volumen de datos procedemos a cerrarlo y dejarlo cifrado hasta la proxima vez.
Para tal proposito, desmontaremos el volumen:
$ umount -l /mnt
lo cifraremos
$ openssl enc -blowfish -in volume -out volume.ciph
y borraremos la copia sin cifrar
$ rm -f volume
Comentarios finales
Hemos visto como, de forma muy sencilla, y sin recurrir a nada más que los comandos habituales de cualquier sistema unix, podemos tener nuestro propio sistema de volumenes cifrados.
Lógicamente, se le pueden añadir muchas mejoras, como automatizar los comandos con sencillos scripts del estilo create_volume.sh, open_volume.sh, etc o añadir seguridad al sistema, por ejemplo sustituyendo 'rm' por una herramienta de borrado seguro como 'shred'.
En este caso, sustituir
$ rm -f volume
por
$ shred volume
aunque el tiempo autmentará considerablemente.
Usaremos la herramienta openssl que nos permitirá lidiar con el cifrado y algunos comandos unix para el manejo del volumen.
Creando un nuevo volumen
Para crear un volumen usaremos la herramienta 'dd' que nos permitirá crear un archivo vacío de cierto tamaño. Como ejemplo creamos un volumen de 100MB.
$ dd if=/dev/zero of=volume bs=1M count=100
A continuación necesitaremos crear el sistema de ficheros. Por ejemplo, ext3:
$ mkfs.ext3 volume
y finalmente cifraremos con blowfish. En este paso openssl nos pedirá la contraseña con la que queremos cifrar el sistema.
$ openssl enc -blowfish -in volume -out volume.ciph
Abrir el volumen
Para abrir el volumen solo tendremos que descifrar-lo con
$ openssl enc -blowfish -d -in volume.ciph -out volume
paso en el que se nos pedirá la contraseña de cifrado. A continuación, para acceder al volumen, lo montaremos.
$ mount volume /mnt -o loop
De esta manera, todo lo que guardemos en /mnt quedará almacenado en nuestro volumen de cifrado.
Cerrar el volumen
Una vez hemos terminado de trabajar con nuestro volumen de datos procedemos a cerrarlo y dejarlo cifrado hasta la proxima vez.
Para tal proposito, desmontaremos el volumen:
$ umount -l /mnt
lo cifraremos
$ openssl enc -blowfish -in volume -out volume.ciph
y borraremos la copia sin cifrar
$ rm -f volume
Comentarios finales
Hemos visto como, de forma muy sencilla, y sin recurrir a nada más que los comandos habituales de cualquier sistema unix, podemos tener nuestro propio sistema de volumenes cifrados.
Lógicamente, se le pueden añadir muchas mejoras, como automatizar los comandos con sencillos scripts del estilo create_volume.sh, open_volume.sh, etc o añadir seguridad al sistema, por ejemplo sustituyendo 'rm' por una herramienta de borrado seguro como 'shred'.
En este caso, sustituir
$ rm -f volume
por
$ shred volume
aunque el tiempo autmentará considerablemente.
Etiquetas:
Criptografía
lunes, 6 de octubre de 2008
¿Qué pasa con atoll()?
Como programador de sistemas UNIX a veces me encuentro con algunas cosas curiosas con las APIs. Hoy, sin ir mas lejos, me he vuelto loco intentando hacer funcionar atoll().
En una parte de un viejo programa, se manejaba un identificador de menos de 32 bits. Ese identificador, que provenía de una máquina Cisco en formato cadena, estaba declarado como 'int' y se transformaba mediante atoi().
Por necesidades ligadas al crecimiento de la empresa, ahora el identificador debía poder almacenar hasta 56 bits.
En pocos segundos tenía el programa funcionando con un identificador declarado como 'long', pero ooops! no funcionaba. De hecho, se comportaba como un 'int'.
El sistema, un CentOS 5.2, el compilador, gcc 4.1.2, sin problemas conocidos. Así que me dediqué a hacer algunas pruebas:
En una parte de un viejo programa, se manejaba un identificador de menos de 32 bits. Ese identificador, que provenía de una máquina Cisco en formato cadena, estaba declarado como 'int' y se transformaba mediante atoi().
Por necesidades ligadas al crecimiento de la empresa, ahora el identificador debía poder almacenar hasta 56 bits.
En pocos segundos tenía el programa funcionando con un identificador declarado como 'long', pero ooops! no funcionaba. De hecho, se comportaba como un 'int'.
El sistema, un CentOS 5.2, el compilador, gcc 4.1.2, sin problemas conocidos. Así que me dediqué a hacer algunas pruebas:
$ cat test1.c
#include<stdio.h>
int main()
{
/* 2^31 = 2147483648 */
char *str="2147483648";
long long i;
i = atoll(str);
printf("%ld\n", i);
}
$ gcc test1.c
$ ./a.out
-2147483648
Overflow, exactamente igual que un 'int'.
Me dirijo al man de atoll() y me encuentro con esto:
"The atol() and atoll() functions behave the same as atoi()"
y efectivamente. La culpa es de la función de conversión, pues con una función my_atoll() personalizada, no existe tal problema:
$ cat test2.c
#includes<stdio.h>
long long my_atoll(char *str)
{
long long res;
res = 0;
for (; *str; str++)
res = 10*res + (*str - '0');
return res;
}
int main()
{
/* 2^31 = 2147483648 */
char *str="2147483648";
long long i;
i =my_atoll(str);
printf("%lld\n", i);
}
$ gcc test2.c
$ ./a.out
2147483648
Sorprendente ...
Etiquetas:
Programación segura
lunes, 22 de septiembre de 2008
Linus Torvalds y OpenBSD
Recojo otra de las lindezas de Linus. Es que es para coleccionarlas ...
ref: http://article.gmane.org/gmane.linux.kernel/706950
From: Linus Torvalds linux-foundation.org>
Subject: Re: [stable] Linux 2.6.25.10
Newsgroups: gmane.linux.kernel
Date: 2008-07-15 16:13:03 GMT (9 weeks, 5 days, 16 hours and 5 minutes ago)
On Tue, 15 Jul 2008, Linus Torvalds wrote:
>
> So as far as I'm concerned, "disclosing" is the fixing of the bug. It's
> the "look at the source" approach.
Btw, and you may not like this, since you are so focused on security, one
reason I refuse to bother with the whole security circus is that I think
it glorifies - and thus encourages - the wrong behavior.
It makes "heroes" out of security people, as if the people who don't just
fix normal bugs aren't as important.
In fact, all the boring normal bugs are _way_ more important, just because
there's a lot more of them. I don't think some spectacular security hole
should be glorified or cared about as being any more "special" than a
random spectacular crash due to bad locking.
Security people are often the black-and-white kind of people that I can't
stand. I think the OpenBSD crowd is a bunch of masturbating monkeys, in
that they make such a big deal about concentrating on security to the
point where they pretty much admit that nothing else matters to them.
To me, security is important. But it's no less important than everything
*else* that is also important!
Linus
Etiquetas:
Noticias
domingo, 14 de septiembre de 2008
Liberar la HTC Touch
Recientemente me he visto en la obligación de liberar mi HTC Touch. Es sencillo y útil, así que, aunque existen muchos tutoriales en la red, dejo aquí los pasos a sequir.
- Descargar y ejecutar Cert_SPCS.cab en la PDA.
- Descargar y ejecutar EnableRapi.cab en la PDA.
- Descargar Touch_Unlock.exe en el PC.
- Conectar la HTC con el PC mediante ActiveSync (USB).
- Ejecutar el Touch_Unlock.exe, el cual generará un archivo unlock_code.txt.
- Apagar la HTC Touch, introducir la SIM de otro operador e iniciar.
- Solicitará el pin de la nueva SIM, introducirlo.
- Solicitará un código de red, introducir los primeros 8 dígitos de unlock_code.txt.
La HTC Touch debería estar desbloqueada.
Estas cosas no funcionan siempre. así que en caso de no poder desbloquear el móvil en dos o tres intentos, mejor no continuar.
Etiquetas:
Varios
domingo, 7 de septiembre de 2008
El Criptograma del 2008
Actualización:
El criptograma se resiste, así que pasa de ser "El criptograma del verano" a ser "El criptograma del año". Lo dejaré hasta enero y si nadie lo consigue, pondré la solución. Aunque tengo fe en vosotros ...
Viendo que los criptogramas semanales duran bien poco, he decidido poner un reto un poco más complejo para que os podáis estrujar las neuronas durante las aburridas tardes de verano.
En linea con los criptogramas anteriores, se trata de un sistema que en su momento fué ampliamente utilizado.
ADZMO YHADG TIYMM ZCAUG CZYJA DYJTG LKSKM DKOZJ
OKEIG JHKAC EZSGQ HYZOG EZMVG HAZSG MYJOZ MNJEG
SZENH GHEIZ JHKDG COMKS ZCCAB IYFAJ GSZMY JOGMN
JZEON FNHGH CNACO ZEYME GHADY JABNT KVZHY VGEAM
DYEMA YMPIA YCOZD ARKCC NYCOG DARKC ZSGMY JOZMP
IACYA COGEY MEZSK JAMEY UKCSG MZGOM ZAMGD YJABN
TKTKD SYZMG DAJYB NTKEI ZJHKA COGHY CKMHA JZHKS
MYSGM ZMCAE KJOMG YDEIZ JHKAC OGCYT IMKAJ OKHZC
SGMOY CAFNO ZMDYH IMGJO AIJON YBSKE IZJHK ACBGC
XIYMO ACNOI KSKJY JOAON YJAIJ OYBSA MZBYJ OKEKD
AMNEK NJOYJ OGNMM NOZMD ACNYC GMMKT ZJOAO MGOZH
YXKBA JOGMC IYTKO NCBKC NDZCO MKSGC AJYBN TZCCA
VGDDZ JUNYJ SMASG MZHGC OMZCI JGMYK MTZJN QGENK
JNJOA JOZHY CKMHA JGMDZ CCNYC OGJIJ NHZCC NABUM
GDZHN CYJCN KJAJO MYCIC XNDGC ZOGEZ GDAJY BNTKE
IZJHK JKACO GSMYS ZMGHK WZSGM AEYEI ZJHKJ KOAYC
SAMGY COZCC KJDGC EDZFA CHYDG FNEOK MNZSG MZADY
COMGO ATZCI JOQIY DGMOA HYDZT IAMMG
Feliz criptroanálisis.
Etiquetas:
Criptoanálisis,
Retos
Suscribirse a:
Entradas (Atom)