sábado, abril 26, 2014

Configuracion de Chromecast

Hace poco pedi a Amazon un aparatito de Google llamado Chromecast, especializado en realizar streaming al TV por el puerto HDMI; aunque Google lo ha lanzado muy capado, realmente al principio solo servia para ver videos de youtube; desde que liberaron el SDK de chromecast, han comenzado a salir muchas aplicaciones que han aumentado las posibilidades de este aparatito.

Para su configuracion he tenido algunos  problemas; primero desde el navegador Chrome y linux ( en concreto Debian) no se puede configurar, De todos modos, pense que con el movil sería suficiente con Android y la aplicación Chromecast. Pero aunque lo detectaba siempre me salia que no podía configurarlo ¿? Por internet comprobe que para instalarlo el router debe tener activo varias opciones:

  1.  Activar UPnP. Hay que activarlo en la configuración avanzada del router.
  2.  Activar IGMP Snooping. En mi router (Comtrend) en la configuración de  LAN.
  3.  Activar WMF en la configuración Wireless. En mi caso marco "Enable Wireless Multicast Forwarding (WMF)".
Reiniciamos el router y compruebo que con el movil sigue apareciendo el mismo mensaje. Después de varias pruebas, tristemente tuve que instalarlo a través del navegador Chrome en Windows 7. Para ello vamos a la pagina:

www.google.com/chromecast/setup

 Alli en Windows descargaremos un aplicación que debemos instalar y siguiendo sus pasos podemos tener el chromecast operativo, pues ya podemos introducirle la contraseña wifi para que se pueda comunicarse con la red local.

La verdad es que para Youtube funciona muy bien y las aplicaciones nuevas dan la posibilidad de ver las imagenes y algunos tipos de video de tu movil en la TV.
Una de las que mejor me ha funcionado ha sido Streambels y LocalCast, aunque cada dia salen nuevas aplicaciones que debemos probar.

Nos vemos.
[JJ]

lunes, febrero 24, 2014

Evitar la sincronización del tiempo en VirtualBox


Hace poco tuve que adelantar el tiempo en un sistema Debian virtualizado por VirtualBox; curiosamente el sistema para cambiar el tiempo funcionaba, pero al momento volvía a los valores normales. En ese momento me acorde que al instalar "Guest Additions" se conseguía tener sincronizado el tiempo entre el sistema anfitrión y el invitado. Para evitar ese comportamiento debemos ejecutar esta orden en el sistema anfitrion:

$ vboxmanage setextradata Debian VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled 1

En vuestro caso sustituir "Debian" por el nombre de la maquina virtual donde queréis quitar esa opción.

Para volver a sincronizar el tiempo, se le da un valor de 0.

$ vboxmanage setextradata Debian VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled 0

Un saludo
[JJ]

PD. En internet encontré la misma orden con partes entre comillas que posiblemente antes funcionaba; en mi caso la orden me funcionó tal como le he colocado, sin comillas "".

viernes, febrero 21, 2014

Tiempo en GNU/Linux

 

Tiempo hardware, controlado por la bios:


En cada reinicio se coloca en el archivo /etc/adjtime:

Tiempo en segundos desde el 1 de Enero del 1970 a las 00:00

# cat /etc/adjtime
0.249739 1390232980 0.000000 //desviacion  en segundos dia - segundos - 0
1390232980
UTC
Se controla el tiempo hardware con hwclock:

# hwclock --show
vie 21 feb 2014 12:09:40 CET  -0.645455 segundos

Mas información "man hwclock"

Tiempo real, comando "date":

$ date
vie feb 21 12:43:40 CET 2014

-Cambiar la fecha del sistema, como root:

# date --set "2014-03-22 20:00"

Se iguala la hora del sistema con la hora hardware

# hwclock --systohc

- A la salida de "date" se le puede dar formato, con %s
se verá la fecha como los segundos trascurridos
desde 1-01-1970 00:00

$ date +%s
1392983057

Si tenemos el tiempo en segundos, se convierte en fecha:

$ date --date='@1392983057'
vie feb 21 12:44:17 CET 2014

Podemos saber fechas relativas:

$ date -d "+1 month"
vie mar 21 12:55:35 CET 2014

Y se le puede dar formato:

$ date +%s -d "+1 month"
1395403007

$ date +%s -d "March 20 2014"
1395270000

También se puede ver en nanosegundos:

$ date +%s%N -d "March 20 2014"
1395270000000000000

Si sólo quieres milisegundos:

$ date +%s%N | cut -b1-13
1393002021964


Mas información:

http://www.linuxtotal.com.mx/?cont=info_admon_007

Orden "man date"

[JJ]


sábado, febrero 15, 2014

Exploitin en Linux




"Gracias a mi "amigo invisible",estos reyes me han regalado el libro "Linux Exploiting: Técnicas de explotación de vulnerabilidades en Linux para la creación de exploits" de David Puente Castro, mas conocido por Blackngel"

Asi comienzo  esta serie de tutes que estoy haciendo sobre el exploiting en GNU/Linux; son muy básicos y los hago mientras voy aprendiendo con ese gran libro. Es una manera de tener claro las cosas mas elementales, necesarias para ir profundizando en estos temas tan complicados:  

Introducción a los ShellCodes en Linux, se estructura en los siguientes puntos:

  1. Lecturas recomendadas.
  2. NASM.
  3. Hello World!
  4. Shellcodes.
  5. Shellcode de 32 bits.
  6. Shellcode de 64 bits.
  7. Conclusión.
Descargar 

La Pila de una Funcion en C y sus Abusos, con los siguientes puntos:

  1. Estructura de la Pila en Memoria.
  2. Manejo de la Pila en Ensamblador.
  3. Un programa en C.
  4. Siguiendo la Pila.
  5. Uso y abuso de la pila:
  • Stack Overflows
  • Ataque al Frame Pointer
  • Off-by-One
    6. Conclusión
 Descargar

Espero se entienda y sea una ayuda para los que como yo, estan comenzando en el mundo del Exploiting.

Nos vemos:
[Juan Jose]




miércoles, junio 13, 2012

Instalar Android SDK y Eclipse en Debia Squeeze 64.

Estas son la notas de la instalación, por si a alguien les son útiles.

1.Requisitos básicos


Aunque comentan en varios foros que con la máquina java libre debería funcionar (java-6-openjdk), yo tenía instalada la maquina java de Oracle (antigua Sun) y me ha funcionado. Por tanto para instalarla:

aptitude install sun-java6-jdk sun-java6-jre

Importante en debían, cuando hay varias alternativas a un programa como en este caso con java, se utiliza la orden updates-alternatives para decirle al sistema que programa usar por defecto:

# update-alternatives --config java
Existen 3 opciones para la alternativa java (que provee /usr/bin/java).

  Selección   Ruta                                      Prioridad  Estado
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      modo automático
  1            /usr/bin/gij-4.4                           1044      modo manual
  2            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      modo manual
  3            /usr/lib/jvm/java-6-sun/jre/bin/java       63        modo manual

Pulse para mantener el valor por omisión [*] o pulse un número de selección: 3
update-alternatives: utilizando /usr/lib/jvm/java-6-sun/jre/bin/java para proveer /usr/bin/java (java) en modo manual.


Por último. como el SDK de Android para linux solo tiene una versión de 32 bits y nuestro sistema es de 64, debemos tener instaladas las librerias que den soporte al sistema de 32 (normalmente ya se tienen, pero por si no es el caso):

# aptitude install ia32-libs

2. Instalar Android SDK:


Nos vamos a la página de descarga de Android:

http://developer.android.com/sdk/index.html

Te descargas el archivo indicado para linux (i386)

http://dl.google.com/android/android-sdk_r18-linux.tgz

Lo descomprimes, cada uno en su "home":

/home/juanjo/android-sdk/

Y metes en el $PATH la carpeta "/tools" donde tenemos los ejecutables que vamos a utilizar:

$ export PATH=${PATH}:/home/juanjo/android-sdk/tools



Si queremos instalar lo básico, ejecutamos la orden "android" dentro de la carpeta /tools" y seleccionamos lo que queramos. Si quieres una instalación completa la orden sería así:

$ sh /home/juanjo/android-sdk/tools/android update sdk --no-ui




Sistituid "juanjo" por vuestro nombre de "home".

Esta última opción, que es la que yo utilice,  hay que tener en cuenta que va a tardar bastante ( con una buena conexión mas de media hora...) y además hay que estar atento, pues hay unas descargas de Motorola add-ons. ( se conectan a developer.motorola.com.)  que necesita estar registrado para la descarga. Como de momento. no creo que me haga falta, con darle a "Intro" varias veces para evitar esas descargas es suficiente. De todos modos, para los que vayan a dedicarse  a programar en Android, el registro en está página es gratuito:

http://developer.motorola.com/membership/join/

3. Instalar Eclipse:


Aunque Eclipse esta en los repositorios de Debian, no me funcionó bien (aunque no se si fue por no ser root al inicio). De todos modos, parece que en todos los sitios recomiendan ir a la web de Eclipse y descargarse la versión que encontramos allí:

http://www.eclipse.org/downloads/index-developer.php

Se aconseja descargar el Eclipse classic en nuestro caso la versión para 64 bits:

http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops4/S-4.2RC3-201205311500/eclipse-SDK-4.2RC3-linux-gtk-x86_64.tar.gz

Una vez descargada la descomprimimos en la carpeta "/opt/" como root. Se creara una carpeta llamada "eclipse" y en su interior tendremos el ejecutable "eclipse", que para no tener problemas  debemos de ejecutar como root, (esto me volvio loco) tanto con "sudo" en ubuntu y derivados, como haciéndonos root con "su" en Debian, de esta manera:


$ sudo /opt/eclipse/eclipse -clean &

En mi caso:

# /opt/eclipse/eclipse -clean &

En mi caso, al querer hacer el proceso sin ser root o administrador, me daba un error al instalar nuevo software ""org.eclipse.wst.sse.core 0.0.0".

Como root no tuve problemas, iniciamos eclipse con la orden anterior y nos vamos al menú “Help / Install new software”. Allí en "Work with" si le das a las diferentes opciones  me encontre con que aparecia la dirección de update:

The Eclipse Project Updates - http://download.eclipse.org/eclipse/updates/3.7

Como había tenido varios intentos fallidos, quise asegurarme, lo seleccione, tarda un momento en descargar todas las opciones, las señale todas "Select all", le das a "next" y "Finish" y se actualizará Eclipse. Nos pide que reiniciemos y lo hacemos.

Ahora volvemos a “Help / Install new software” y en "Work with" ponemos “http://download.eclipse.org/releases/indigo/” y le damos a "Enter". Tarda un buen rato, veremos la evolución de la descarga en la esquina inferior derecha “Fetching children of Indigo: (xx%)”. Una vez tengamos todas las opciones buscamos la sección “Web, XML and Java EE Development” y seleccionar el elemento “WST Server Adapters”. Pulsamos “Next” dos veces, aceptamos el acuerdo de licencia y pulsamos “Finish”.

Tendremos que reiniciar eclipse y ahora si que estamos preparados para instalar los complementos de Android para Eclipse. Volvemos de nuevo a “Help / Install new software” y Pulsamos en el botón “Add” y rellenamos el campo nombre con “Android plugin” y en “Location” ponemos la url “https://dl-ssl.google.com/android/eclipse/”. Pulsamos OK y nos vuelve
a cargar componentes. Seleccionamos todos los elementos de la sección “Developer Tools”. Otra vez “Next … Next … aceptar… y Finish” como antes. En algún momento nos dice que estamos instalando contenido sin firmar. No pasa nada. Pulsamos OK y seguimos. Al terminar, otra vez reiniciamos Eclipse para finalizar. En este momento, es cuando nos pide la ruta donde hemos instalado el SDK de android:


Colocamos el path completo "/home/juanjo/android-sdk/" y listo, ya hemos terminado de configurarlo todo.

Por comodidad vamos a crear un enlace que aparezca en el menú de Gnome, para ello creamos un archivo llamado eclipse en "/usr/bin/", debemos ser root para poder escribir en esa carpeta:

# touch /usr/bin/eclipse


Le damos los permisos adecuados:

# chmod 755 /usr/bin/eclipse


Con nano u otro editor de texto, abrimos el archivo:

# nano /usr/bin/eclipse

Y copiamos el texto siguiente:

#!/bin/bash
export MOZILLA_FIVE_HOME="/usr/lib/iceweasel/"
export ECLIPSE_HOME="/opt/eclipse"
export GDK_NATIVE_WINDOWS=1
/opt/eclipse/eclipse






Si en lugar de iceweasel tenéis firefox hay que sustituirlo.
Salvamos el archivo con Ctrl+O y listo. En cualquier terminal se puede ejecutar eclipse.

Si además queremos tener un acceso directo en el menú de Gnome tenemos que crear un archivo .desktop en /usr/share/applications/:

 # nano /usr/share/applications/eclipse.desktop


Y le copiamos este cointenido:

 [Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse IDE
Exec=eclipse
Icon=/opt/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=GNOME;Application;Development;
StartupNotify=true

Lo salvamos y ya podemos ver el icono de eclipse en el menú "Aplicaciones>Programacion>Eclipse".

Ahora ya solo queda empezar a programar alguna aplicación para nuestro movil android, haber si todo funciona bien.

Información obtenida de:

En Ingles:
http://workaround.org/developing-android-applications-on-debian
En español:
http://hotsechu.wordpress.com/2012/04/14/318/
La solución a mis problemas:
http://kistindigo.blogspot.com.es/2011/12/instalar-eclipse-y-plug-in-android.html
http://kistindigo.blogspot.com.es/2011/12/instalar-android-sdk.html

Nos vemos
[JJ]

 

martes, mayo 29, 2012

Unlearning Security

Excelente blog en español, recomendable tanto por la tematica de exploit
como en temas de ingenieria inversa, yo no lo conocia y he encontrado
cosas interesantes y muy bien explicadas:

Buffer overflow en Linux:

http://unlearningsecurity.blogspot.com.es/2012/05/exploit-corehttp-web-server-053-stack.html

Pdf sobre Stack Buffer Overflow:

http://unlearningsecurity.blogspot.com.es/2012/04/documento-explotacion-de.html

Va directo al google reader......

Un saludo
Juan Jose

miércoles, marzo 14, 2012

LSOF al rescate

En Debian a veces al utilizar aptitude o algún programa para instalar paquetes, nos encontramos con este aviso:

# aptitude search firefox
E: No se pudo bloquear /var/lib/dpkg/lock - open (11: Recurso no disponible temporalmente)
E: No se pudo bloquear el directorio de administración (/var/lib/dpkg/), ¿quizás haya algún otro proceso utilizándolo?
W: No se pudo bloquear el fichero de almacén. Esto significa habitualmente que dpkg u otra herramienta apt está instalando paquetes. Se abrirá en modo de sólo lectura, ¡se PERDERÁN todos los cambios que realice al estado de los paquetes!
v firefox-firegpg -
p firefox-sage - transitional dummy package

De momento, ya nos ponemos en guardia, parece que hay alguien instalando algo sin nuestro permiso ¿? Miramos en la bandeja del sistema y no vemos aviso del update-manager, que en gnome seria el programa mas normal que estuviese utilizando el administrador de paquetes.

Por tanto, algo no va bien, si miramos el administrador de procesos (yo utilizo qps) no nos aclaramos pues hay muchísimos procesos y es difícil dar con el que este utilizando un determinado archivo.
De momento sabemos que algún proceso tiene abierto el archivo /var/lib/dpkg/lock, por tanto debemos buscarlo y para ello existe el programa lsof, que nos da la lista de los archivos abiertos.

Si ejecutáis lsof como root sin parametros vemos que la cantidad de información que nos ofrece es grandísima, por tanto vamos a filtrar los resultados con grep, buscando las lineas donde aparezca el archivo que buscamos:

# lsof | grep /var/lib/dpkg/lock
update-ma 14888 root 3uW REG 8,1 0 17506328 /var/lib/dpkg/lock
update-ma 14888 root 36uW REG 8,1 0 17506328 /var/lib/dpkg/lock

Bueno, esto nos tranquiliza, al final era update-manager que parece se ha quedado bloqueado, como sabemos el PID 14888, podemos matarlo como root con la orden kill:

# kill -9 14888

De modo que si volvemos a ejecutar aptitude el aviso no aparece:

# aptitude search firefox
v firefox-firegpg -
p firefox-sage - transitional dummy package

Lsof es un programa que tiene muchas posibilidades, con la opción -i nos va a indicar todos los programas que tienen conexión a internet, y si queremos ver que programa esta detrás de un determinado puerto se puede utilizar la orden:

# lsof -i :"puerto" Ejemplo # lsof -i :22

Hay muchas mas opciones, para mas información "man lsof" o nuestro amigo google ;)

Nos vemos
[JJ]