jueves, 11 de septiembre de 2014

Como quitar la advertencia - warning en el uso de EditText (Android)

0 comentarios
Cuando se hace uso de un control EditText en android, aparece siempre un signo de admiración indicando una advertencia que algo no está del todo bien...  ¬¬

Aunque la app puede ejecutarse y funcionar con toda normalidad, no deja de molestar que quede por allí ese warning.

Después de buscar un poco de información sobre eso en stackoverflow encontré la solución a ese detalle, y aunque no está muy documentada (allí) sí resuelve la necesidad de quitar ese incómodo signo de advertencia...

La solución es agregar en el fichero activity_main.xml (o donde sea que se esté diseñando el Layout donde insertemos un EditText) una directiva "android:hint". Sí, solamente eso!

En mi caso, he quitado el warning poniendo:

android:hint="@string/sugerencia"

Donde android:hint=" ... " es la directiva y @string/sugerencia es una cadena que he creado previamente en /res/values/strings.xml ya que si no existe una cadena creada en ese fichero para que complete la directiva "android:hint" dará otro warning indicando que debería de usar un "@string/nombre_del_string" en lugar de introducir un mensaje de texto directamente.

Espero que a alguien que también haya tenido esta duda o inquietud (de como quitar el único warning del control EditText) le pueda servir esta traducción.

Saludos.
Read more ►

martes, 19 de agosto de 2014

Exception raised during rendering [ADT Bundle]

2 comentarios
Reinstalando el ADT Bundle para seguir haciendo cosillas con Android (muy feo el splash, prefiero el del ADT que el de Eclipse Juno), éste instala unas cosas predeterminadas, entre ellas la API 20 (Android 4.4w / Android Wear) lo que dará cierto problema al agregar un control EditText, ya que no está soportado.

El error mostrado es este:

" Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V
Exception details are logged in Window > Show View > Error Log "

Tranquilidad, no hay nada que un Ctrl+Z no pueda solucionar.
Luego de dejar las cosas como estaban antes de intentar agregar este control, volvemos a guardar y ese problemilla se soluciona de la siguiente manera:

1) Instalando la API 19 (Android 4.4.2)
2) Desisntalando la API 20 (Android 4.4w)

El orden de los factores no altera el resultado, al final da la solución esperada.

Para agregar la API 19 y eliminar la 20, hay que ir a:
Window > Android SDK Manager > poner el check a Android 4.4.2 (AP 19) y también ponerlo a Android 4.4W (API 20) > Hacer click en los botones "Install package" y "Delete package" respectivamente.

Cerrar el SDK manager y reiniciar el ADT, listo, problema resuelto. A proceder con la agregación del control EditText.

Espero que esto pueda ser de ayuda para alguien mas así como ha sido de ayuda para mí y me queda para futuras referencias. Dicha ayuda la encontré en su versión original en inglés en: Stackoverflow.

Saludos.
Read more ►

sábado, 26 de julio de 2014

[SOLVED] [SOLUCIONADO] XAMPP nuevo concepto de seguridad – httpd-xampp.conf

23 comentarios
Por cuestiones académicas me he visto en la necesidad de instalar XAMPP en una máquina virtual con Windows para hacer algún tipo de ataque web en plataforma Windows específicamente.

Todo fue de lo más normal, el problema lo tuve cuando quise acceder desde "otro" equipo para probar que el servidor Apache de XAMPP se había instalado satisfactoriamente...

La máquina virtual tenía dirección 192.168.1.11 y desde la máquina anfitrión tenía esta dirección 192.168.1.100 y cuando quise acceder por el navegador a la máquina virtual me dio el infame error

“Acceso prohibido!

XAMPP nuevo concepto de seguridad:
El acceso a la solicitada directorio sólo está disponible desde la red local.
Este ajuste puede ser configurado en el archivo “httpd-xampp.conf”.

Si usted cree que esto es un error del servidor, por favor comuníqueselo al administrador del portal.

Empecé a revisar el fichero "httpd-xampp.conf" que se encuentra en: C:\xampp\apache\conf\extra (allí mismo lo encontrará alguien más si es que lo instaló en la ruta predeterminada y la letra de su disco duro es la tradicional "C", hay otros que pueden tener otra letra).

Probé muchas soluciones que se ofrecían tanto para GNU/Linux y Windows por igual, pero no me solucionaba el problema que tenía, otros sitios presentan el mismo encabezado del problema pero según leía solamente tenían problema para acceder a phpmyadmin, o el contenido de "New XAMPP security concept" es un poco diferente a esta fecha del año 2014, ya que la fecha de otros sitios que revisé eran desde 2011. Definitivamente ha cambiado el contenido.

Al ver que en unas partes ofrecían solución al problema con agregar líneas en algunas directivas, en otras ofrecían poner una "almohadilla" ( # ) a alguna línea de directivas específicas, que es lo mismo a dejarla inhabilitada como un comentario.

Ya mucha explicación de mi experiencia personal en la búsquda y solución del problema, vamos a lo práctico. Todo es cuestión de añadir # en la línea que dice Require local. Nada más, ni nada menos. Eso es la solución al problema. Tiene que quedar de esta forma:

#
# New XAMPP security concept
#

     #Require local
     ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var

Luego de modificar el fichero "httpd-xampp.conf" guardamos y reiniciamos el servicio, Y LISTO!!! :D

Después de eso, ya pude acceder al servicio Apache desde una máquina que no fuese sólo la local donde está instalado XAMPP.

Espero que alguien más se pueda ver beneficiado de esto que me costó un poco tiempo leyendo foros y blogs que al final solamente vino a ser cuestión de usar un poco de lógica, ya que con el paso del tiempo este fichero con este nuevo concepto de seguridad ha venido cambiando de tiempo en tiempo.

Saludos.







Read more ►

miércoles, 23 de julio de 2014

Gracias Google Dorks

0 comentarios
B"H los google-dorks me han sido de gran ayuda!!!

No tiene precio esto a la hora de buscar cosillas por la red:

site:dropbox.com +PalabrasClaves (es sólo un ejemplo por decirlo así, de obtener material buscado o encontrar nuevas palabras claves que sirvan para una nueva búsqueda)

filetype:extension-de-archivo (búsqueda por tipo de extensión de archivo)

http://archive.org/ (cuenta con un mejor ancho de banda que los FRee hostings de algunos países europeos)

Agradecer también a la linda gente que comparte su ancho de banda para poder descargar torrents sin necesidad de registrarse y dejar datos botados por toda la red para hacer colección de spam. El software que adquirí por torrent es legal, sin embargo la compañía propietaria para permitirte descargar su software te pide que le confieses parte de tu vida...  ¬ ¬

Fue y sigue siendo más difícil poder hacer espacio en mi disco duro, en el sistema operativo con soporte técnico sede en redmond, muchas cosas tuvieron que salir volando.

1 minuto de silencio por quienes ya tienen poco espacio en disco duro! =(

PD: Tampoco menospreciar los sitios que cuyo TLD son ".com" ya que algunos no venden cosas sino que son blogs personales y tienen recursos gratuitos muy buenos... libros pdf de muy buen contenido, por ejemplo.

Bytes.
Read more ►

sábado, 12 de julio de 2014

Virtual Network Manager de VMWare Player en Kali

0 comentarios
Un problema con el me he encontrado es que no he podido administrar muy bien las redes internas de máquinas virtuales con VMware Player.

Estoy trabajando con la versión 6.0.1 build-1379776 para GNU/Linux, y tal como su similar en Windows, no trae a simple vista el administrador de las interfaces de redes.

Después de googlear un poco, he encontrado este página de los foros de VMware donde explica como traer a luz el administrador de interfaces virtuales: https://communities.vmware.com/thread/450758

El administrador de las interfaces de red virtuales se encuentra en esta ruta de nuestro sistema: /usr/lib/vmware/bin/vmware-netcfg así que como es un lío eso de estar memorizando la ruta o estar buscando una y otra vez en la web donde se encuentra, la forma más simple es crear un enlace simbólico de esta ruta hacia el directorio /usr/bin/ que es aquí donde se encuentran los demas binarios que están a nuestra disposición para ejecutarlos desde cualquier directorio donde nos encontremos.

Pero ojo, que esto de poder ejecutar binarios desde cualquier directorio no es por arte de magia, sino que obedece que esa ruta (/usr/bin/) se encuentra guardada en la variable de entorno $PATH y para visualizar el contenido de esta basta con ejecutar echo $PATH y veremos los directorios donde se encuentran binarios que podremos ejecutar con los privilegios asignados a nuestro usuario. Pero qué es mejor, agregar la ruta /usr/lib/vmware/bin/a la variable de entorno o simplemente un enlace simbólico?

Volvamos a lo nuestro, por cuestiones de practicidad y que sólo necesitamos este binario para administrar las interfaces virtuales de VMware player, pues sólo hay que anclar un enlace simbólico de ese binario y se hace de la siguiente manera:

 ln -s /usr/lib/vmware/bin/vmware-netcfg /usr/bin/vmware-netcfg

De esta forma, con el comando ln se crea un enlace, con el parámetro -s se le indica que será suave o simbólico, luego colocamos la ruta de origen origen del binario que deseamos enlazar, y luego, separado por un espacio, ponemos la ruta de destino con todo y el nombre que le vamos a asignar. En este caso, y para no perder la idea que se trata de un binario auxiliar de las herramientas de vmware le he dejado el mismo nombre.

Si se desea hacer un acceso directo de forma gráfica, con un iconito en la barra de tareas, solamente es cosa de (en Kali Linux)presionar la tecla Alt y al mismo tiempo hacer un clic derecho en un lugar vacío de la barra de tareas, seleccionar "Añadir al panel..." y luego doble clic en la primera opción "Lanzador de aplicaciones personalizado". Al aparecer la ventanita hay que llenar los datos que allí pide (Nombre, Comando, Comentario), y en la caja de texto de comando, vamos a poner en nuestro caso la ruta del enlace simbólico de nuestro binario.

Con esto he despejado parte de la duda que tenía de cómo se manejan las interfaces de red virtuales de VMware player, y que buscando información en mi idioma natal me fue imposible encontrar. Espero que esta información en español le sea de utilidad a alguien que se encuentre con la misma dificultad y que no esté muy familiarizado con el idioma inglés.

Su forma similar de cómo hacerlo en Windows lo encontré primero en este enlace del sitio de Pello Xabier Altadill Izura, de quien ya había visitado su material por el excelente material él ha realizado ya hace años sobre iptables. 

Bytes.-

Editor de redes virtuales de VMware player

Actualización (2014/07/13 - 02:10am):

He decidido dar de baja el VMware Player, por le hecho que es toda una chorrada intentar configurar las interfaces virtuales, a pesar que tiene esta utilidad (inicialmente escondida), el vmware-netcfg pero no sirve de mucho, al menos ahora que lo he estado utilizando no me obedece a lo que le configuro.

He puesto que la vmnet1 sea NAT y le he configurado que me otorgue direcciones IP del rango 192.168.10.0/24

Para la interfaz vmnet8 sea host-only y que entregue direcciones IP del rango 192.168.7.0/24 para haber tenido red internas entre las máquinas virtuales, pero no funcionó. Siendo así que, cuando se crean las máquinas virutales no permite hacer esta selección.

Se asume que si en la máquina virtual escoges que la tarjeta de red sea host-only te de una dirección IP del rango establecido (192.168.7.x), sin embargo, al echar a andar la VM veo que me ha dado una dirección IP como que fuera NAT, y si cambio el adaptador de red a NAT no me entrega ninguna dirección porque aparece como desconectado.

Y por más vueltas que le he dado al vmware-netcfg este es muy limitado y no hay mucho que hacer, así que es definitivo, me pongo en este instante a instalar virtualbox.

Dicho y hecho, como quien se pone manos a la obra esperando que todo va a salir bien, no falta un error inesperado como esto:

[ ok ] Stopping VirtualBox kernel modules.
[FAIL] Starting VirtualBox kernel modules[....]
No suitable module for running kernel found ... failed!

Sin embargo, al finalizar la instalación apareció esto:
DKMS: install completed.
[ ok ] Stopping VirtualBox kernel modules.
[ ok ] Starting VirtualBox kernel modules.
Configurando virtualbox-qt (4.3.10-dfsg-1~bpo70+1) ...
Configurando linux-headers-amd64 (3.14+57+kali1) ...
Configurando virtualbox-ose (4.1.18-dfsg-2.1) ...
Configurando virtualbox-ose-dkms (4.1.18-dfsg-2.1) ...
Procesando disparadores para menu ...
root@kali:~#


#TrulyHappy ^__^

Definitivamente, hasta experimentar con software ultra-privativo da dolores de cabeza... Y pensar que me estaba perdiendo de las tomas de instantáneas para regresar una máquina virtual a un estado previo, o las configuraciones de red fáciles, y la configuración automática de la hora del Sistema Operativo virtual con el anfitrión que permite virtualbox.

Sin mencionar que no fue necesario volver a crear las máquinas virtuales que tenía ya hechas con el producto "gratuito" de VMware (al menos una con Win7 está funcionando de maravilla), sino que la versatilidad del software Open Source (como la del Software Libre) tiene buena compatibilidad con formatos de software privativo.

Definitvamente, para hacer virtualización libre perfiero y me quedo con Virtualbox en lugar de VMware Player. Esto ha sido como un reencuentro. =3
 2:16am W7 creado con WMware Player funciona perfecto en Virtualbox

Read more ►

domingo, 29 de junio de 2014

Nuevamente el teclado se desconfigura

0 comentarios

Hace un par de años tuve el mismo problema, de la nada el teclado deja de funcionar, pero no es que sea un problema físico, sino más bien es debido a un fichero de configuración de XORG (xorg.conf).

La última vez que tuve ese problema, obviamente lo solucioné y me acuerdo haberlo documentado (no me acuerdo en qué fichero de texto o en qué navegador lo guardé en los sitios favoritos), sin embargo, esta será una nueva oportunidad para hacerlo.

Algún fanático de Winbugs que por casualidad venga a parar hasata aquí puede decir "hahahaha... en mi ultra-archi-mega-poderoso-windows no me pasa eso, todo funciona de maravilla..."

Ok, ok, yo, con GNU/Linux aprendo cosas nuevas sobre como funciona y como configurar mi hardware, los usuarios Windows aprenden cosas nuevas de sus virus y la maravillosa e inolvidable experiencia de cómo tuvieron que removerlo porque su flamante antivirus no lo pudo detectar. =p

Todos vivimos en paz con el Sistema Operativo de nuestra elección... y es bueno aclarar, no es que piense que uno sea mejor que otro... (sí, lo acepto, mentí, yo sé que GNU/Linux es mejor que Windows... muahahaha }:-D ), bueno, para lo que yo lo ocupo lo es, va a saltar alguno por allí sacando a flote que la familia de productos "Adove Fotochop" y similares no funciona en GNU/Linux, pero vamos... no todos los usuarios son diseñadores gráficos, si el usuario promedio solamente lo utiliza para navegar la web, hacer cartitas en una suite de ofimática, juntamente con unas cosas en hojas de cálculo, eso se puede hacer de maravilla en GNU/Linux!!

Bueno, tengo que investigar como hacer funcionar neuvamente el teclado, sin embargo, como buen usuario que me siento libre y feliz con mi Sistema Operativo LEGAL quisiera que aquellos que no pueden costearse uno y que tampoco pueden costearse una suite de ofimática profesional le dieran la oportunidad a alguna versión de GNU/Linux, LibreOffice, Chrome ó Firefox y si quieren editar imágenes "Like a Boss" también le den una oportunidad a The GIMP y que no se desanimen en el maravilloso mundo del re-aprendizaje.
Read more ►

lunes, 23 de junio de 2014

Problema con VMware-Player en Kali 1.0.7

4 comentarios
Hace dos semanas que actualicé la paquetería de Kali Linux 1.0.6 y obtuve la versión 1.0.7, sin embargo, al no haber realizado el apt-get dist-upgrade me mantenía con el mismo kernel.

Ayer por la tarde decidí hacer dist-upgrade y después de reiniciar con el nuevo kernel, cuando quise utilizar VMware-Player (para continuar con la prueba de la distro/firewall Untangle) me aparecía que no encontraba los archivos de cabeceras, así que al ejecutar el comando "uname -r" me dio la versión del nuevo kernel y en base a ese resultado busqué los header con: apt-cache search linux-headers-`uname -r` teniendo esa información, instalé el paquete que me indicó ingresando: apt-get install linux-headers-3.14-kali1-amd64

Todo parecía ir normal, el problema fue cuando lo quise ejecutar me aparecía una ventanita que indicaba que no se podía compilar el módulo de red virtual, señalando que para encontrar más información del error que visitara un ficheron del log alojado en el directorio /tmp


Problema para iniciar el Módulo del Dispositivo de Red Virtual

Al revisar dicho fichero me encontré un error particular, pensé que se trataba de la versión de GCC que trataba utilizar versus la que tenía instalada en el Sistema.

2014-06-22T21:44:26.686-06:00| modconfig| I120: Setting destination path for vmnet to "/lib/modules/3.14-kali1-amd64/misc/vmnet.ko".
2014-06-22T21:44:26.686-06:00| modconfig| I120: Extracting the vmnet source from "/usr/lib/vmware/modules/source/vmnet.tar".
2014-06-22T21:44:26.700-06:00| modconfig| I120: Successfully extracted the vmnet source.
2014-06-22T21:44:26.700-06:00| modconfig| I120: Building module with command "/usr/bin/make -j2 -C /tmp/modconfig-LY2zXV/vmnet-only auto-build HEADER_DIR=/lib/modules/3.14-kali1-amd64/build/include CC=/usr/bin/gcc IS_GCC_3=no"
2014-06-22T21:44:36.438-06:00| modconfig| W110: Failed to build vmnet.  Failed to execute the build command.

Al parecer, como que estaba comprobando si la versión de gcc era versión 3 y yo tengo en Sistema la 4.7.2

La googleada en español empezó, sin encontrar buenos resultados, cuando pasé a hacer la búsqueda en inglés hubieron resultados mejores, y que por buena fortuna, fui a parar al sitio correcto donde pude solventar el problema.

La búsqueda fue:
failed to build vmnet +kernel 3.14 CC=/usr/bin/gcc IS_GCC_3=no

Y el primer resultado fue el que me sirvió, del cual pongo el enlace a la página, así como la traducción de los pasos que fui siguiendo hasta la resolución del problema (con la poca diferencia que el problema que plantea daveti es con un kernel 3.13.x y el mío es 3.14.5):

Sitio:
http://davejingtian.org/2014/03/04/hack-make-vmware-player-6-0-1-start-on-linux-kernel-3-13-x/

Iniciamos.

Paso 0: El Error: failure to build vmnet

En este post que he citado, encuentro que el problema reside en el módulo vmnet.rar más no en la versión del compilador GCC.

2014-06-22T21:44:26.686-06:00| modconfig| I120: Extracting the vmnet source from "/usr/lib/vmware/modules/source/vmnet.tar".
2014-06-22T21:44:26.700-06:00| modconfig| I120: Successfully extracted the vmnet source.
2014-06-22T21:44:26.700-06:00| modconfig| I120: Building module with command "/usr/bin/make -j2 -C /tmp/modconfig-LY2zXV/vmnet-only auto-build HEADER_DIR=/lib/modules/3.14-kali1-amd64/build/include CC=/usr/bin/gcc IS_GCC_3=no"
2014-06-22T21:44:36.438-06:00| modconfig| W110: Failed to build vmnet.  Failed to execute the build command.

Así que la causa de la raíz para que VMware Player se iniciara, es la falla en el intento de la construcción del módulo del kernel llamado vmnet.

Afortunadamente, el dódigo fuente de vmnet está abierto y es disponible para editar. El log de arriba te ha dicho donde encontrar los archivos fuentes de vmnet.tar .

Paso 1: Verificar manualmente la construcción del módulo

Para navegar hsata el arhivo vmnet.rar vamos a:
/usr/lib/vmware/modules/source/

Por motivo de comodidad me fui de forma gráfica a extraer el contenido del ficheron vmnet.tar, una vez decompreso en una carpeta llamada "vmnet-only" ingresé a este directorio y procedí a realizar la compilación con make obteniendo este resultado:

root@kali:/usr/lib/vmware/modules/source/vmnet-only# make
Using 2.6.x kernel build system.
make -C /lib/modules/3.14-kali1-amd64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= modules
make[1]: se ingresa al directorio `/usr/src/linux-headers-3.14-kali1-amd64'
  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/driver.o
In file included from /usr/lib/vmware/modules/source/vmnet-only/monitorAction_exported.h:31:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnet.h:29,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetInt.h:24,
                 from /usr/lib/vmware/modules/source/vmnet-only/driver.c:51:
/usr/lib/vmware/modules/source/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
In file included from /usr/src/linux-headers-3.14-kali1-common/include/linux/kernel.h:13:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/driver.c:23:
/usr/src/linux-headers-3.14-kali1-common/include/linux/printk.h:96:0: note: this is the location of the previous definition
  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/hub.o
In file included from /usr/lib/vmware/modules/source/vmnet-only/monitorAction_exported.h:31:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnet.h:29,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetInt.h:24,
                 from /usr/lib/vmware/modules/source/vmnet-only/hub.c:43:
/usr/lib/vmware/modules/source/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
In file included from /usr/src/linux-headers-3.14-kali1-common/include/linux/kernel.h:13:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/hub.c:23:
/usr/src/linux-headers-3.14-kali1-common/include/linux/printk.h:96:0: note: this is the location of the previous definition
  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/userif.o
In file included from /usr/lib/vmware/modules/source/vmnet-only/monitorAction_exported.h:31:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnet.h:29,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetInt.h:24,
                 from /usr/lib/vmware/modules/source/vmnet-only/userif.c:45:
/usr/lib/vmware/modules/source/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
In file included from /usr/src/linux-headers-3.14-kali1-common/include/linux/kernel.h:13:0,
                 from /usr/src/linux-headers-3.14-kali1-common/arch/x86/include/asm/percpu.h:44,
                 from /usr/src/linux-headers-3.14-kali1-common/arch/x86/include/asm/preempt.h:5,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/preempt.h:20,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/spinlock.h:50,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/wait.h:8,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/fs.h:6,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/highmem.h:4,
                 from /usr/lib/vmware/modules/source/vmnet-only/userif.c:26:
/usr/src/linux-headers-3.14-kali1-common/include/linux/printk.h:96:0: note: this is the location of the previous definition
  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/netif.o
In file included from /usr/lib/vmware/modules/source/vmnet-only/monitorAction_exported.h:31:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnet.h:29,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetInt.h:24,
                 from /usr/lib/vmware/modules/source/vmnet-only/netif.c:42:
/usr/lib/vmware/modules/source/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
In file included from /usr/src/linux-headers-3.14-kali1-common/include/linux/kernel.h:13:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/netif.c:23:
/usr/src/linux-headers-3.14-kali1-common/include/linux/printk.h:96:0: note: this is the location of the previous definition
  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/bridge.o
In file included from /usr/lib/vmware/modules/source/vmnet-only/monitorAction_exported.h:31:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnet.h:29,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetInt.h:24,
                 from /usr/lib/vmware/modules/source/vmnet-only/bridge.c:52:
/usr/lib/vmware/modules/source/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
In file included from /usr/src/linux-headers-3.14-kali1-common/include/linux/kernel.h:13:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/bridge.c:23:
/usr/src/linux-headers-3.14-kali1-common/include/linux/printk.h:96:0: note: this is the location of the previous definition
  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/filter.o
In file included from /usr/lib/vmware/modules/source/vmnet-only/monitorAction_exported.h:31:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnet.h:29,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetInt.h:24,
                 from /usr/lib/vmware/modules/source/vmnet-only/filter.c:48:
/usr/lib/vmware/modules/source/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
In file included from /usr/src/linux-headers-3.14-kali1-common/include/linux/kernel.h:13:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/filter.c:20:
/usr/src/linux-headers-3.14-kali1-common/include/linux/printk.h:96:0: note: this is the location of the previous definition
/usr/lib/vmware/modules/source/vmnet-only/filter.c:206:1: error: conflicting types for ‘VNetFilterHookFn’
/usr/lib/vmware/modules/source/vmnet-only/filter.c:64:18: note: previous declaration of ‘VNetFilterHookFn’ was here
/usr/lib/vmware/modules/source/vmnet-only/filter.c:64:18: warning: ‘VNetFilterHookFn’ used but never defined [enabled by default]
/usr/lib/vmware/modules/source/vmnet-only/filter.c:206:1: warning: ‘VNetFilterHookFn’ defined but not used [-Wunused-function]
make[4]: *** [/usr/lib/vmware/modules/source/vmnet-only/filter.o] Error 1
make[3]: *** [_module_/usr/lib/vmware/modules/source/vmnet-only] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: se sale del directorio `/usr/src/linux-headers-3.14-kali1-amd64'
make: *** [vmnet.ko] Error 2
 

Entonces, hemos confirmado que la raíz de la causa es el módulo vmnet.ko. Específicamente, VNetFilterHookFn en el fichero filter.c que es lo que causa el error en la construcción. Así que, ¿qué es lo que pasó allí?

Paso 2: RCA - Root Cause Analysis (Análisis de la raíz de la causa)

En la más última versión del kenel, 3.13.5, la firma del enganche de la función de netfilter (nf_hookfn) ha sido cambiada como resultado de las reparciones del código. Sin embargo, VNetFilterHookFn todavía está utilizando la definición antigua de nf_hookfn. Eso es el motivo por el cual no podía compilar vmnet.ko. Para más detalles, por favor revise el siguiente enlace: http://lxr.linux.no/linux+v3.13.5/include/linux/netfilter.h#L46 (este enlace a fecha de hoy 23/06/2014 no conecta")

Paso 3: Haciendo las repaciones.

En el artículo original, utiliza el comando diff para sacar las diferencias entre el archivo filter.c contra de otro llamado filter.c.orig sinceramente, no se si del enlace del Paso 2 es que sacó el archivo con estensión .orig sin embargo, al no encontrar dicho archivo me puse a repararlo a mano.

Así que, estas son las líneas que hay que cambiar:

[root@daveti vmnet-only]#  diff   filter.c.orig   filter.c
206c206,207
< VNetFilterHookFn(unsigned int hooknum,                 // IN:
—
> //VNetFilterHookFn(unsigned int hooknum,                 // IN:
> VNetFilterHookFn(const struct nf_hook_ops *ops, //daveti: fix
255c256,258
<    transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
—
>    //transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
>    //daveti: fix
>    transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
[root@daveti vmnet-only]#

Las diferencias estaban en las líneas 206 y 256 del archivo filter.c, por lo que para ubicar los números de línea con mayor rapidez ejecuté en ese mismo directorio gedit filter.c


Siendo un archivo con código fuente del lenguaje C, lo que hice tal como lo indica, comentarear las líneas que tiene indicadas con doble barra "//" y luego poner en la siguiente línea (copiando y pengando) las líneas de código que se encuentran de color rojo en su lugar correspondiente.

Paso 4: Verificando la reparación (ejecutando make de nuevo!)

Después de haber realizado el parcheado del archivo filter.c, ahora deberíamos de estar en la disposición de construir en el kernel el módulo vmnet. Asegurémonos que la reparación funciona.

root@kali:/usr/lib/vmware/modules/source/vmnet-only# make
Using 2.6.x kernel build system.
make -C /lib/modules/3.14-kali1-amd64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= modules
make[1]: se ingresa al directorio `/usr/src/linux-headers-3.14-kali1-amd64'
  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/filter.o
In file included from /usr/lib/vmware/modules/source/vmnet-only/monitorAction_exported.h:31:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnet.h:29,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetInt.h:24,
                 from /usr/lib/vmware/modules/source/vmnet-only/filter.c:48:
/usr/lib/vmware/modules/source/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
In file included from /usr/src/linux-headers-3.14-kali1-common/include/linux/kernel.h:13:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/filter.c:20:
/usr/src/linux-headers-3.14-kali1-common/include/linux/printk.h:96:0: note: this is the location of the previous definition
  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/procfs.o
In file included from /usr/lib/vmware/modules/source/vmnet-only/monitorAction_exported.h:31:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnet.h:29,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetInt.h:24,
                 from /usr/lib/vmware/modules/source/vmnet-only/procfs.c:43:
/usr/lib/vmware/modules/source/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
In file included from /usr/src/linux-headers-3.14-kali1-common/include/linux/kernel.h:13:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/procfs.c:23:
/usr/src/linux-headers-3.14-kali1-common/include/linux/printk.h:96:0: note: this is the location of the previous definition
  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/smac_compat.o
In file included from /usr/lib/vmware/modules/source/vmnet-only/monitorAction_exported.h:31:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnet.h:29,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetInt.h:24,
                 from /usr/lib/vmware/modules/source/vmnet-only/smac_compat.c:53:
/usr/lib/vmware/modules/source/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
In file included from /usr/src/linux-headers-3.14-kali1-common/include/linux/kernel.h:13:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/smac_compat.c:33:
/usr/src/linux-headers-3.14-kali1-common/include/linux/printk.h:96:0: note: this is the location of the previous definition
  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/smac.o
  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/vnetEvent.o
In file included from /usr/lib/vmware/modules/source/vmnet-only/monitorAction_exported.h:31:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnet.h:29,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetEvent.h:27,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetEvent.c:57:
/usr/lib/vmware/modules/source/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
In file included from /usr/src/linux-headers-3.14-kali1-common/include/linux/kernel.h:13:0,
                 from /usr/src/linux-headers-3.14-kali1-common/arch/x86/include/asm/percpu.h:44,
                 from /usr/src/linux-headers-3.14-kali1-common/arch/x86/include/asm/preempt.h:5,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/preempt.h:20,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/spinlock.h:50,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/mmzone.h:7,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/gfp.h:5,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/slab.h:14,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetKernel.h:30,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetEvent.c:56:
/usr/src/linux-headers-3.14-kali1-common/include/linux/printk.h:96:0: note: this is the location of the previous definition
  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/vnetUserListener.o
In file included from /usr/lib/vmware/modules/source/vmnet-only/monitorAction_exported.h:31:0,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnet.h:29,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetInt.h:24,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetUserListener.c:39:
/usr/lib/vmware/modules/source/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
In file included from /usr/src/linux-headers-3.14-kali1-common/include/linux/kernel.h:13:0,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/plist.h:78,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/pm_qos.h:7,
                 from /usr/src/linux-headers-3.14-kali1-common/include/linux/netdevice.h:28,
                 from /usr/lib/vmware/modules/source/vmnet-only/vnetUserListener.c:33:
/usr/src/linux-headers-3.14-kali1-common/include/linux/printk.h:96:0: note: this is the location of the previous definition
  LD [M]  /usr/lib/vmware/modules/source/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /usr/lib/vmware/modules/source/vmnet-only/vmnet.mod.o
  LD [M]  /usr/lib/vmware/modules/source/vmnet-only/vmnet.ko
make[1]: se sale del directorio `/usr/src/linux-headers-3.14-kali1-amd64'
make -C $PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= postbuild
make[1]: se ingresa al directorio `/usr/lib/vmware/modules/source/vmnet-only'
make[1]: `postbuild' está actualizado.
make[1]: se sale del directorio `/usr/lib/vmware/modules/source/vmnet-only'
cp -f vmnet.ko ./../vmnet.o

root@kali:/usr/lib/vmware/modules/source/vmnet-only#

Y efectivamente, compiló y se construyó el módulo en el kernel sin problema alguno.

Paso 5: Volver a empacar con tar e iniciar.

Ahora es tiempo de volver a empacar con tar la carpeta vment-only para que se llame "vmnet.tar", pero antes renombramos el fichero vmnet.tar antiguo (por ejemplo: vmnet.tar.old). Siempre por motivos prácticos, yendo a la interfaz gráfica, se hace clic-derecho sobre la carpeta vmnet-only y se escoge la opción comprimir y se escoge que sea extensión .tar

Empacando con tar la carpeta vmnet-only a su estado original vmnet.tar

En el lugar de destino, he dejado que cree el archivo vmnet.tar dentro de la misma carpeta vmnet-only, pero luego corto el archivo y lo pego fuera de la carpeta que es donde debe quedar.

Ahora para probar que todo funciona como debe ser, vamos a "Aplicaciones - Herramientas del Sistema - VMware Player", y a disfrutar de las máquinas virtuales, y de Untangle que me estaba esperando.

Compilando el módulo de Dispositivo de Red Virtual: Ok


Untangle, estado: Up and Running

Espero que esta versión en español (personalizada con mi versión del kernel) sea de utilidad para alguien como lo fue para mí la versión original en inglés:
http://davejingtian.org/2014/03/04/hack-make-vmware-player-6-0-1-start-on-linux-kernel-3-13-x/

Bytes.
Read more ►

domingo, 8 de junio de 2014

Los expertos en cibernética deben poseer Pasión y Curiosidad para lograr una variedad de objetivos

0 comentarios
[IDF - SEGURIDAD INFORMÁTICA - CYBER WARFARE]


Estudiantes de secundaria, preparándose en seguridad cibernética,

EDUCAR EL FUTURO: LA GUERRA CIBERNÉTICA Y LA PRÓXIMA GENERACIÓN

En un mundo siempre cambiante e interconectado, la influencia de los ordenadores está aumentando rápidamente. El ejército israelí está entrenando a los jóvenes de Israel para luchar contra las amenazas informáticas incluso antes de entrar en el ejército.

Israel ha sido llamado la "nación de emprendedores" y se distingue por producir el mayor número de empresarios per cápita en el mundo. A medida que la sociedad israelí se vuelve más conectada a Internet, las amenazas informáticas son cada vez más prominentes.

"Cuando nos fijamos en los centros de datos y sistemas de información, casi en su totalidad en la dimensión cibernética, vemos que todo puede ser atacado potencialmente. Todo es cibernético", dijo el mayor general Uzi Moshkovitz, el jefe de la rama de Telecomunicaciones de las IDF, en abril. Esto coloca a una nación como Israel en gran riesgo, ya que se enfrenta a constantes amenazas de sus enemigos que tratan de romper esta infraestructura cibernética.

La defensa cibernética también se está volviendo cada vez más importante para el Cuerpo de Inteligencia de las IDF. Con el fin de preparar al soldado de próxima generación para la guerra cibernética, el ejército israelí ha llevado a cabo programas para educar a los estudiantes de secundaria en las tecnologías de la información, ciencias de la computación, y defensa cibernética.

Un Estándar Superior de Educación Tecnológica

El año pasado, el ejército israelí implementó el Programa Heights, un programa de escuela secundaria en educación de nivel para estudiantes de 10º, 11º y 12º grados. "El programa está diseñado para enseñar a los estudiantes de secundaria los fundamentos de la defensa cibernética", explicó el teniente coronel S., Jefe del Servicio de Educación informática del Cuerpo de Inteligencia.

Al educar a los profesores y con la creación de un plan de estudios exigente, las IDF elevan el nivel de la educación cibernética. "Mejores clases y mejores lecciones permitirán una mejor preparación para hacer de los alumnos expertos de la defensa cibernética", explicó el teniente coronel S.

Los 400 estudiantes que participan en el Programa Heights se enfrentan a una carga de trabajo difícil y exigente de 900 horas. Sobre una base diaria, aprenden lenguajes de programación, infraestructura de red, y cómo hacer frente a las amenazas informáticas.

Por ejemplo, los estudiantes analizan virus informáticos y los investigan para aprender cómo funcionan, multiplicar e infectar los sistemas informáticos. El curso está a la par con los programas de tecnología de pregrado y empuja a los estudiantes a ser los mejores en el campo cibernético.

Con el fin de crear un alto nivel de aprendizaje en el aula, el Servicio de Cyber Educación hace pasar a sus educadores dos cursos rigurosos de 200 horas antes de enseñar el material a los estudiantes. Aunque el ejército israelí entrena a los maestros, escribe el plan de estudios, proporciona los libros y la enseñanza, los soldados no dan las clases en el aula.

Del mismo modo, el Programa de Cumplimiento trabaja con los estudiantes en una clase extraescolar y en campamentos de verano. Según el teniente coronel S, los expertos en cibernética deben poseer la pasión y la curiosidad para lograr una variedad de objetivos. El Programa de Cumplimiento da a los estudiantes la oportunidad de hacer uso de estas cualidades y perfeccionar sus habilidades cibernéticas.


Habilidades para el Futuro

Los programas cibernéticos contribuyen directamente a los alumnos en el servicio militar y proporciona a los participantes habilidades muy valiosas para el futuro. "[Estas habilidades] se pueden usar en todas partes: en el ejército, en sus cursos académicos más tarde, o en la industria de alta tecnología. Se trata de un alto nivel de información y de una vida de conocimiento que los estudiantes están ganando ", concluyó el teniente coronel S.

Fuente:
http://www.idfblog.com/2014/06/08/educating-future-cyber-warfare-next-generation-soldier/
Read more ►

viernes, 6 de junio de 2014

Kali revisión 1.0.7 liberada

0 comentarios
La semana pasada, el 27/05/2014, la que a mi parecer es más completa en lo que a distribuciones GNU/Linux para Pentesting y Auditorías de Seguridad Informática se refiere, ha sido liberada una nueva revisión, Kali 1.0.7

Esta nueva revisión viene con características nuevas e interesantes.

Kali Linux es una distribución de fuente abierta basada en Debian para Pruebas de Penetración y Análisis Forense Informático, esta distro es mantenida y apoyada por Offensive-Security, una empresa que proporciona servicios de Pentesting y entrenamiento en Seguridad Informática con calidad de clase mundial.

A principios de este año Offensive-Security liberó la revisión 1.0.6 con la versión de kernel 3.12 donde fue añadida la característica de Auto-Destrucción, lo que le permite a los usuarios de Kali encriptar completamente el disco duro para que haga inaccesible toda la información para que en un caso de emergencia pueda destruir de forma irreversible cualquier dato existente al introducir una contraseña secreta en tiempo de inicio.

Esta última revisión de Kali Linux (1.0.7) ha añadido más características a las existentes de la revisión anterior, engrandeciéndola con nuevas herramientas de hacking & Penetration Testing. También incluye la última y más estable versión del kernel (3.14) con errores arreglados, mejoras en el desempeño y soporte para más hardware.

KALI LIVE USB CON ENCRIPCIÓN Y PERSISTENCIA

La característica más atractiva que se ha añadido a esta última revisión de Kali Linux es "Live USB persistence encryption", la cual le permite al usuario crear un Kali Linux booteable con una partición encriptada y persistente en un pendrive USB, la cual da la opción de guardar de forma segura los cambios en la memoria USB aún después de haber reiniciado.

Sin duda alguna, esta es una de las características que muchos pentesters y hackers habían estado esperando para proteger sus datos y sus scripts personalizados, así como herramientas de otros proveedores organizados todos en un pendrive Booteable con Kali Linux Live USB.

Si ya se tiene instalada la versión anterior de Kali Linux, no hay necesidad de volver a descargar y re-instalar desde cero la última revisión. Solamente basta digitar esta secuencia de comandos para actualizar a Kali Linux 1.0.7:

apt-get update
apt-get dist-upgrade
#Cuando se halla terminado de actualizar el kernel y las herramientas
reboot
Esta nueva revisión incluye script de imagen para la arquitectura ARM, y el equipo ha prometido proveer máquinas virtuales personalizadas de la arquitectura ARM en un futuro cercano.

Información e imagen cortesía de: TheHackerNews.



Read more ►

viernes, 9 de mayo de 2014

B"H 35

0 comentarios
#Happy :)

Read more ►

¿Emprendiendo un nuevo business?

0 comentarios

Emprender un nuevo negocio
Lo primero en lo que tienes que pensar es en escoger algo que te guste hacer y que beneficie a muchos. Para ello identificar oportunidades en pequeños segmentos es muy importante, ya que recordemos que en hoy en el mundo somos más de 7 mil millones de personas y seguramente ese negocio que a ti se te ocurrió mientras te duchabas o en esa noche de insomnio pudo ser también idea de alguien mas al otro lado del mundo. No importa si tienes 20 o 65 años de edad recuerda que tú fuiste bendecido con una habilidad y eso es justo lo que tienes que explotar. Las buenas ideas guardadas en la cabeza son como los billetes de lotería que nunca te acercaste a la ventanilla para saber si fueron ganadores.

¿Qué es lo que sigue?
Ya que lograste escoger a qué te quieres dedicar los próximos años de tu vida, más vale que lo hayas analizado bien para que tu comienzo sea bueno y no cometas muchos errores. Si piensas en grande está muy bien, pero también piensa razonablemente en tu crecimiento, no asumas que te harás rico el primer año. Porqué no mejor, en vez de ello, te esfuerzas mucho más en hacer de tu nueva aventura algo que te permita el día de mañana ser DUEÑO DE TU NEGOCIO en vez de un auto empleado mas.

¿Cómo lo logras?
Es una muy buena pregunta y se contesta más fácil de cómo se aplica en la realidad. Tal vez esa sea la razón por la que sólo algunos logran ser tan inmensamente ricos; Pero la clave está en trabajar de manera inteligente, más que en trabajar fuertemente, o bien aprender a ser práctico, a hacer más con menos recursos. Trabajar de manera inteligente implica saber administrar el tiempo, delegar funciones, colaborar en equipo, automatizar transacciones y simplificar procesos que te den la libertad de seguir innovando o creciendo en tus oportunidades de expandirte a otros horizontes.

Siguiente...
Ahora crea un sistema propio y simple que te ayude a perfeccionarte y administrar tu negocio, de tal forma que el día de mañana cualquier persona pueda ejecutarlo en tu ausencia. Como por ejemplo lo hace McDonald´s y que hace que sea una de las franquicias mejor organizadas del mundo, por que el fundador de este negocio se preocupó lo suficiente para que las tareas sean tan simples que cualquier persona, de cualquier educación y nivel socioeconómico pudiera ejecutar. Obvio que si deseas mantener una actividad que sólo tu sepas cómo hacerla para no perder tu ventaja competitiva, se vale, y por algo nadie conoce la receta secreta del General Sanders en KFC, o la receta completa de la Coca-Cola, no crees!

Un sabio consejo.
No te gastes la utilidad antes de tiempo. Termina primero tus proyectos.
Una increíble manera de trabajar de forma simple es crear un sistema por proyecto, el cual te ayudará a saber exactamente cuánto dinero ganas al final de cada trabajo y qué opciones tienes para usar tu utilidad. Te aconsejo que guardes un poco de tu ganancia para invertir en equipo útil que te haga más fácil tus tareas así como el uso de la tecnología a tu favor, pero evita gastos innecesarios que te hagan aparentar lo que no eres.

Tercerizar lo que tú no sabes o no puedes hacer.
En vez de invertir gran capital en maquinaria, consigue todos los proveedores que puedas y luego selecciona los mejores. Págales bien para que exijas lo mejor de cada uno, siempre estén disponibles para ti y deseen atenderte.

Crecer depende de tu esfuerzo, y es mejor que rentarte 8-10 horas diarias de tu vida por causas ajenas.

En vez de trabajar para otros, mejor hazlo para ti mismo.
Tu mejor momento es ahora, porque hoy es el día que nunca pasa o el día que no ha llegado, así que tendrás que decidirte a hacerlo hoy mismo!

Haz mucha publicidad de boca en boca.
Busca la manera de obtener beneficios gratuitos por los que otros pagan mucho. Mantén tus gastos operativos a costos bajos, ahorra y sólo cuando tengas un modelo probado invierte. Muévete con la tendencias y busca a tu público ideal.

Asegúrate de evaluar tu desempeño con tu cliente y mejora lo que está mal.
Actualízate tanto como puedas, Usa internet y toma cursos para supérate cada año. No siempre podemos quedar bien con todo el mundo, es mas es imposible! pero lo importante es aprender a controlar la situación y siempre tratar de dejar una puerta abierta.

Tu cliente cada vez es más sofisticado, entiende sus necesidades rápido.
Prepárate para cerrar tratos rápidamente, ten toda la información a la mano y que sea clara. Usa tus credenciales con humildad, si blofeas que sea sólo para tomar mayores riesgos. Si te sobra tiempo inviértelo en perfeccionar tus procesos.

Dinero.
Olvídate por un segundo que trabajas por dinero, antes de ello preocúpate por resolverle problemas a los demás y te darás cuenta de lo fácil que es trabajar y generar recursos. Si solamente trabajas para ganar dinero, este puede ser muy traicionero y darte decepciones a la larga. El dinero que ganes o ganarás en el futuro debe de ser la consecuencia de tu éxito, así que mejor haz lo que te gusta, sé bueno en ello y el día de mañana lo agradecerás con grandes retribuciones.

Mantén limpio tu área de trabajo.
En ocasiones pasas más tiempo en él que en tu propia casa y por ello aconsejo que tengas un lugar muy agradable en el que te ayude a ser mas productivo, además atiende rápido tus pendientes para que no se junten.

Auto motívate tu mismo y siempre busca aprender de los mejores.
Fortalece tus fortalezas, ya que de tus debilidades puedes contratar al alguien mejor que tú. Una vez que lograste pasar por todos estos retos, por favor no te olvides de contar tu experiencia con el mundo, muchas gracias y mucho éxito.

Atentamente
Jose Smeke Farca
jose@smekefarca.com 

 Fuente del artículo.
Read more ►

jueves, 1 de mayo de 2014

libflashplayer.so no funciona en Mozilla Firefox para GNU/Linux

0 comentarios

Este post es para describir un problema que me pasó en el cual a pesar que instalaba la última versión de firefox no podía visualizar los objetos de contenido flash (usualmente videos de youtube), y aunque la librería libflashplayer.so estuviera guardada en su ubicación correcta, al visualizar los componentes instalados en firefox no lo reconocía.

Hasta la versión 24 de Mozilla Firefox estuvo funcionando bien la combinación Firefox + Plugin de Flash, sin embargo, por un motivo extraño cuando actualicé a la versión 25 dejó de funcionar.

Instalé y reinstalé firefox, borré todas las instancias del plugin de flash player y lo volví a copiar en los supuestos directorios donde debería funcionar...

A decir verdad, por un motivo de flojera preferí utilizar Google-Chrome porque no tendría que verme envuelto en estar actualizando este plugin debido a que en cada actualización el equipo de Chrome se encarga de ir arreglando de forma extra oficial las actualizaciones de este plugin que su última actualización por parte de adobe fue la versión 11.0.2.x

El problema fue cuando ya no pude actualizar Chrome y decidí quitarme ese peso de encima al saber que tenía que existir una solución para este asunto.

Pues como decimos, "querer es poder" y "el que busca encuentra", por fin encontré la solución en un hilo dentro de los foros de ayuda de Mozilla.

El problema residía en que las versiones de arquitectura entre navegador y plugin eran distintas. Tan simple como eso, pero como bien dicen, "el que no sabe es como el que no ve".

Y me vine a dar cuenta de ese detalle cuando seguí las sugerencias

Los enlaces donde busqué información fueron estos:
http://kb.mozillazine.org/Determining_plugin_directory_on_Linux
https://support.mozilla.org/es/kb/resolver-problemas-con-plugins-como-flash-o-java-p#firefox:linux:fx25
https://support.mozilla.org/es/questions/973617
https://support.mozilla.org/es/questions/976075

Donde realmente encontré la solución fue en:
http://forums.mozillazine.org/viewtopic.php?f=38&t=2756813

En su momento (no se cómo), estuve descargando Firefox de 32 bits, aunque a decir verdad, consciente de la arquitectura de mi equipo recuerdo haber elegido siempre el .tar.gz para arquitectura 64bits.

El meollo de la situación fue la incompatibilidad entre la arquitectura del navegador y la arquitectura del plugin. Una vez puestos en sintonía ambas piezas de software a 64bits todo funciona como se debe.

Para comprobar la arquitectura de firefox, basta con utilizar el comando "file" seguido de la ruta hasta donde se encuentra el binario "firefox-bin"

Cuando tenía firefox 24 que era arquitectura 32bits y el plugin de flash para 64bits, al comprobar la arquitectura de firefox obtuve un resultado similar a este:

file /home/$USER/firefox24/firefox-bin
/home/$USER/firefox24/firefox-bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, BuildID[sha1]=0xdea155d73d15c131e44f937ad9c4b64866883ba5, stripped


Cuando me puse a investigar la arquitectura que poseía la última versión de firefox que había descargado obtuve el siguiente resultado:

file /home/$USER/firefox28/firefox-bin
/home/$USER/firefox28/firefox-bin: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped


Y aquí vemos la arquitectura del plugin de flash (esta es la ubicación actual donde se debe almacenar el plugin):

file /home/$USER/.mozilla/plugins/libflashplayer.so
/home/$USER/.mozilla/plugins/libflashplayer.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped


Todo sirve en esta vida, cuando no se obtienen los resultados esperados se aprende de la experiencia, ya que en los enlaces que no me llevaron a la resolución del problema, aprendí sobre las posibles rutas donde puede estar guardado el plugin libflashplayer.so para que funcionen los componentes flash en el navegador, y en sí entendí un poco más cómo es que funciona este navegador.

Aprovechando para mencionar que ahora 1 de Mayo han sacado la release número 29 del navegador con una apariencia nueva llamada Australis, que según cuentan en barrapunto esta versión en general trae muchos cambios y mejoras. Así que a actualizar ya!

Saludos.

* Palabras clave que posiblemente servirán para encontrar ayuda sobre este caso:
No puedo visualizar contenido flash en firefox para GNU/Linux
No funciona flashplayer con firefox 25 en Debian
No funciona flashplayer con firefox 25 en GNU/Linux
libflashplayer.so instalado pero no lo reconoce firefox en GNU/Linux
Auxilio, no puedo ver videos de flash en Firefox para GNU/Linux (jajajaja...)

(no son todas las palabras claves comunes pero pueden ser de ayuda :D )


Interesante esta antena... =3
0wned...
Read more ►

miércoles, 30 de abril de 2014

No busques trabajo...

0 comentarios
En el perfil de mi amigo Cisko Rivera, leo este magnífico artículo:

No busques trabajo.

Así te lo digo. No gastes ni tu tiempo ni tu dinero, de verdad que no vale la pena. Tal como está el patio, con uno de cada dos jóvenes y casi uno de cada tres adultos en edad de dejar de trabajar, lo de buscar trabajo ya es una patraña, un cachondeo, una mentira y una estúpida forma de justificar la ineptitud de nuestros políticos, la bajada de pantalones eurocomunitaria y lo poco que les importas a los que realmente mandan, que por si aún no lo habías notado, son los que hablan en alemán.

No busques trabajo. Te lo digo en serio. Si tienes más de 30 años, has sido dado por perdido. Aunque te llames Diego Martínez Santos y seas el mejor físico de partículas de Europa. Da igual. Aquí eres un pringao demasiado caro de mantener. Dónde vas pidiendo nada. Si ahí afuera tengo a veinte mucho más jóvenes que no me pedirán más que una oportunidad, eufemismo de trabajar gratis. Anda, apártate que me tapas el sol.

Y si tienes menos de 30 años, tú sí puedes fardar de algo. Por fin la generación de tu país duplica al resto de la Unión Europea en algo, aunque ese algo sea la tasa de desempleo. Eh, pero no te preocupes, que como dijo el maestro, los récords están ahí para ser batidos. Tú sigue esperando que los políticos te echen un cable, pon a prueba tu paciencia mariana y vas a ver qué bien te va.

Por eso me atrevo a darte un consejo que no me has pedido: tengas la edad que tengas, no busques trabajo. Buscar no es ni de lejos el verbo adecuado. Porque lo único que te arriesgas es a no encontrar. Y a frustrarte. Y a desesperarte. Y a creerte que es por tu culpa. Y a volverte a hundir.

No utilices el verbo buscar.

Utiliza el verbo crear. Utiliza el verbo reinventar. Utiliza el verbo fabricar. Utiliza el verbo reciclar. Son más difíciles, sí, pero lo mismo ocurre con todo lo que se hace real. Que se complica.

Da igual que te vistas de autónomo, de empresario o de empleado. Por si aún no lo has notado, ha llegado el momento de las empresas de uno. Tú eres tu director general, tu presidente, tu director de marketing y tu recepcionista. La única empresa de la que no te podrán despedir jamás. Y tu departamento de I+D (eso que tienes sobre los hombros) hace tiempo que tiene sobre la mesa el encargo más difícil de todos los tiempos desde que el hombre es hombre: diseñar tu propia vida.

Suena jodido. Porque lo es. Pero corrígeme si la alternativa te está pagando las facturas.

Trabajo no es un buen sustantivo tampoco. Porque es mentira que no exista. Trabajo hay. Lo que pasa es que ahora se reparte entre menos gente, que en muchos casos se ve obligada a hacer más de lo que humanamente puede. Lo llaman productividad. Otra patraña, tan manipulable como todos los índices. Pero en fin.

Mejor búscate entre tus habilidades. Mejor busca qué sabes hacer. Qué se te da bien. Todos tenemos alguna habilidad que nos hace especiales. Alguna singularidad. Alguna rareza. Lo difícil no es tenerla, lo difícil es encontrarla, identificarla a tiempo. Y entre esas rarezas, pregúntate cuáles podrían estar recompensadas. Si no es aquí, fuera. Si no es en tu sector, en cualquier otro. Por cierto, qué es un sector hoy en día.

No busques trabajo. Mejor busca un mercado. O dicho de otra forma, una necesidad insatisfecha en un grupo de gente dispuesta a gastar, sea en la moneda que sea. Aprende a hablar en su idioma. Y no me refiero sólo a la lengua vehicular, que también.

No busques trabajo. Mejor busca un ingenuo, o primer cliente. Reduce sus miedos, ofrécele una prueba gratis, sin compromiso, y prométele que le devolverás el dinero si no queda satisfecho. Y por el camino, gánate su confianza, convéncele de que te necesita aunque él todavía no se haya dado cuenta. No pares hasta obtener un sí. Vendrá acompañado de algún “pero”, tú tranquilo que los peros siempre caducan y acaban cayéndose por el camino.

Y a continuación, déjate la piel por que quede encantado de haberte conocido. No escatimes esfuerzos, convierte su felicidad en tu obsesión. Hazle creer que eres imprescindible. En realidad nada ni nadie lo es, pero todos pagamos cada día por productos y servicios que nos han convencido de lo contrario.

Por último, no busques trabajo. Busca una vida de la que no quieras retirarte jamás. Y un día día en el que nunca dejes de aprender. Intenta no venderte y estarás mucho más cerca de que alguien te compre de vez en cuando. Ah, y olvídate de la estabilidad, eso es cosa del siglo pasado. Intenta gastar menos de lo que tienes. Y sobre todo y ante todo, jamás te hipoteques, piensa que si alquilas no estarás tirando el dinero, sino comprando tu libertad.

Hasta aquí la mejor ayuda que se me ocurre, lo más útil que te puedo decir, te llames David Belzunce, Enzo Vizcaíno, Sislena Caparrosa o Julio Mejide. Ya, ya sé que tampoco te he solucionado nada. Aunque si esperabas soluciones y que encima esas soluciones viniesen de mí, tu problema es aún mayor de lo que me pensaba.

No busques trabajo. Sólo así, quizás, algún día, el trabajo te encuentre a ti.

_______

Artículo de Risto Mejide
http://ristomejide.com/2013/05/19/no-busques-trabajo/
Read more ►

domingo, 9 de marzo de 2014

Remover OpenJDK 6 e instalar el JDK de Oracle en Debian

0 comentarios
Vamos con un post relacionado a la programación, y esta vez con Android.

Quiero divertirme jugando un poco con el ADT bundle en Debian Squeeze, pero al descomprimirlo y hacer doble clic me aparece un mensaje de error:


Esto se debe a que Debian Squeeze viene con el OpenJDK 6 instalado y lo trae predeterminado.

Intentando solucionar el problema que presenta por la versión antigua (dado que funciona con la JVM versión 1.6 o mayor), procedí a la descarga del JDK de Oracle más reciente que lo encontré aquí, y está en su revisión 7 update 51 hasta la fecha (10/03/2014).

Una vez hayamos aceptado la licencia y también ya tengamos descargado el paquete (rpm para distros basadas en RedHat, y .tar.gz para las distros basadas en Debian), lo descomprimimos en el directorio que lo guardamos (la tarea de descomprimir se puede hacer en el entorno fráfico con un usuario sin privilegios), y luego lo movemos (en la línea de comandos como usuario root) a la carpeta /opt

#cd /ruta/al/archivo/descargado/jdk-7u<version>-x86_x64.tar.gz
#mv jdk-7u<version> /opt

Una vez se haya movido el contenido en la carpeta /opt procedemos a crear un enlace simbólico dentro de la carpeta /usr/lib/jvm en mi caso ya se encontraba esa carpeta donde hay enlaces hacia la versión antigua de paquetes relacionados a java y OpenJDK, pero si no existe la carpeta habrá que crearla y movernos dentro de ella.

En caso que no exista dicha carpeta se creará y se accederá a ella con ejecutar:

#mkdir /usr/lib/jvm
#cd /usr/lib/jvm

Una vez dentro, el enlace simbólico que se crea se hace de la siguiente manera:

#ln -s /opt/jdk-7u<version> java-7-oracle

Lo que hace esta secuencia de órdenes es crear un enlace de tipo "suave" o simbólico (ln -s) desde la carpeta que contiene los nuevos binarios (/opt/jdk-7u<version>) hacia una carpeta dentro de /usr/lib/jvm que se creará en ese momento (java-7-oracle). El enlace simbólico creado tendrá la siguiente ruta: /usr/lib/jvm/java-7-oracle

Esa ruta es la que utilizarán todas las configuraciones que hagan uso del binario java, con el propósito que cuando te actualices a una versión más nueva del JDK de Oracle solamente modifiques el enlace simbólico hacia la nueva carpeta que tiene los binarios más recientes y todas las demás configuraciones queden funcionales de forma transparente.

Ahora vamos a definir la variable de entorno donde se encuentran los binarios que deseamos que utilicen nuestros programas que harán uso de java (/usr/bin/java).

Para definir la variable de entorno vamos a editar el archivo /etc/bash.bashrc como root y con nuestro editor favorito.

En mi caso: #nano /etc/bash.bashrc  y agregué al final:

JAVA_HOME=/usr/lib/jvm/java-7-oracle
export PATH=$PATH:$JAVA_HOME/bin


y aunque se haya instalado una versión nueva del JDK de Oracle (y su variable de entorno configurada) siempre resulta en el mismo mensaje de error.

Para solucionar esto, tenemos que echar mano de "update-alternatives" que en caso de existir dos o más versiones de un mismo programa nos permite elegir cual queremos dejar predeterminado para que funcione con nuestras aplicaciones.

Vamos desde el principio, debemos quitar el OpenJdk 6 que viene por defecto en Debian.

#apt-get remove openjdk-6-jre default-jre default-jre-headless

En otros sitios sugieren hacerlo de esta forma:

#apt-get purge openjdk-* icedtea-* icedtea6-*  (ser cuidadoso con lo que se borra!)

Aunque eliminados estos paquetes, y habiendo copiado en /opt la versión más reciente del JDK de Oracle, al ejecutar en una consola "java --version" siempre aparece una anitigua version en remanente:

java version "1.5.0"
gij (GNU libgcj) version 4.4.5

Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
.



Esto se soluciona poniendo nuestra instalación reciente como primer alternativa, y se hace de esta forma:

#update-alternatives --install nombre_genérico ruta/al/programa prioridad

update-alternatives --install: Determinado la instalación de un nuevo paquete dentro de /etc/alternatives/
 
nombre_genérico: (/usr/bin/java java)

ruta/al/programa: (/opt/jdk1.7.0_51)

prioridad: 1

#update-alternatives --install /usr/bin/java java /opt/jdk1.7.0_51 1 

Después de instalado procedemos a configurarlo siempre con update-alternatives:

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

  Selección   Ruta                              Prioridad  Estado
-------------------------------------------------------------------------------------
*0            /usr/bin/gij-4.4                    1044          modo automático
 1            /opt/jdk1.7.0_51/bin/java    1                modo manual
 2            /usr/bin/gij-4.4                     1044          modo manual

Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección: 1
(al presionar "1" que es la alternativa que quiero establecer como prioridad, aparece el siguiente mensaje...)

update-alternatives: utilizando /opt/jdk1.7.0_51/bin/java para proveer /usr/bin/java (java) en modo manual.

Una vez que establecimos el paquete que hará referencia cuando se invoque a /usr/bin/java, procedemos a comprobar la versión que se está utilizando del JDK. Cerramos las ventanas de línea de comandos que tengamos abierta y ejecutamos:

$which java:
/usr/bin/java

$java --version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)


Ahora sí, al ejecutar el ADT bundle nos aparece:



Más información sobre update-alternatives en Debian.
Otro post explicativo sobre update-alternatives.
De este otro post obtuve mucha información útil, prácticamente la base.
Obteniendo más información para eliminar OpenJDK y OpenJRE.
Más información de cómo eliminar OpenJDK.
Este post de cómo eliminar libgcj no lo utilicé, pero quien desee removerlo, ahí está la referencia.
Read more ►

jueves, 13 de febrero de 2014

Google Chrome sin privilegios de root en Kali Linux

0 comentarios
Es un problema ejecutar aplicaciones gráficas como usuario root, ya que si hay un bug para un determinado programa que se utiliza en entorno gráfico, y éste se está ejecutando como usuario root, ya no habrá necesidad que el atacante tenga que realizar una "escalada de privilegios" debido que se le habrá facilitado la tarea que planeaba, alcanzar los máximos privilegios en el sistema.

Por otra parte, no es entonces un problema que root sea el usuario predeterminado en Kali GNU/Linux ya que esta distribución está pensada para ser utilizada por usuarios que tengan unos conocimientos intermedios o avanzados en GNU/Linux. Un usuario principiante debería comenzar con otras distribuciones donde no se requiera ser root todo el tiempo.

Debido a que Kali es una distribución GNU/Linux para desarrollar auditorías informáticas o pruebas de penetración (Pentesting), la mayoría de software instalado necesita ejecutarse con altos privilegios ya que hace llamadas al Sistema, apertura de sockets, etc. Es por ello que solamente viene con root como único usuario.

Sin embargo, por una medida de precaución mostraré que podemos añadir una capa extra de seguridad a nuestra navegación web cuando utilizamos Google Chrome.

Antes que nada, debemos tener nuestros repositorios de esta forma:

deb http://http.kali.org/kali kali main non-free contrib
deb http://security.kali.org/kali-security kali/updates main contrib non-free

Después actualizamos con aptitude update && aptitude upgrade y procedemos a instalar la utilidad "sux".

Sux is a wrapper around the standard su command which will transfer your  X credentials to the target user. Sux is released under the terms of the X11 license.
Como lo dice la descripción, "Sux es un envoltorio del comando estándar su el cual transferirá las credenciales de las X al usuario que se especifique de objetivo. Sux está liberado bajo los términos de la licencia X11."

Para instalar sux basta con ejecutar aptitude install sux

Luego procedemos a crear un usuario del sistema sin privilegios administrativos, que es al que elegiremos como target y sobre sus credenciales de las X ejecutaremos Chrome con el usuario root. Para este ejemplo se creará un usuario llamado "noadmin", y se hace de la siguiente manera: adduser noadmin 

Una vez creado un usuario sin privilegios vamos a descargar Google Chrome para Kali. Siendo que esta versión de BackTrack conocida por muchos como "BackTrack 6", ahora tiene el nombre clave "Kali" y ahora viene basada en Debian y no en Ubuntu como su predecesor BackTrack 5r3.

En todo caso al entrar en https://www.google.com/chrome se nos dará la opción de descargar un paquete (.deb) para Sistemas Operativos basados en Debian ya sea para arquitecturas de 32 ó 64bits y la misma opción para paquetes basados en RedHat: CentOS, Fedora, OpenSuSE, etc. (paquetes con extensión .rpm)


En mi caso he descargado la versión de 64bit para Debian/Ubuntu



Por medio de línea de comandos llegamos hasta el directorio donde hemos descargado el paquete para Debian/Ubuntu y ejecutamos:

dpkg -i google-chrome-stable_current_amd64.deb


Terminada la instalación de Google-Chrome vamos a crear un lanzador en la barra de menú superior presionando la combinación de teclas Alt y clic derecho, seleccionamos "Añadir al Panel->Lazandor de Aplicación personalizado->botón Añadir", luego buscamos con el botón "Examinar..." la ruta donde se ha dejado un acceso a google-chrome junto con los demás binarios del sistema (/usr/bin/google-chrome-stable).

Hecho esto sólo nos queda añadir al pie de la ruta de Google-Chrome las opciones del comando sux que nos permitirán ejecutarlo como un usuario sin privilegios (en mi caso, añadí al Sistema un usuario sin privilegios administrativos llamado "kali"), por lo tanto el lanzador de la aplicación me quedaría de la siguiente manera (sux - usuario-común  /ruta/al/comando):


Podemos comprobar que Google-Chrome se está ejecutando en el entorno gráfico de root sin los privilegios de root sino como que lo estuviera ejecutando el usuario kali:


 En la línea de comandos podemos ejecutar el comando ps haciendo un filtro de resulatdos con grep hacia Google-Chrome (ps aux | grep "google-chrome-stable") obteniendo el siguiente resultado:


Espero que le pueda ser útil a alguien mas.

<< Sitios que me sirvieron de ayuda para este post: >>
* http://luisrato.wordpress.com/
* http://www.imh.es/
Para usar Google-Chrome directamente como root revisar:
* http://diegosamuel.blogspot.com/

Bytes.
Read more ►
 

Copyright © El igloo de Tux Design by O Pregador | Blogger Theme by Blogger Template de luxo | Powered by Blogger