Hackear paginas web II (Fingerprinting and Information gathering)

En el articulo anterior (como hackear paginas web, en serio) de esta serie, se vio lo básico de las vulnerabilidades web mas comunes, que si bien no son todas ni son muchas las que se cubrieron, y no están cubiertas a un nivel muy profundo, nos dan un overview básico de por que un sitio web puede ser comprometido y nos dan un par de enlaces interesantes para ampliar nuestros conocimientos.

Nota: Quiero agradecer a COSO por permitirme utilizar su servidor para hacer las pruebas. No autorizo que nadie mas lo haga, aunque tal vez me autorice a mi para investigar quien esta intentando hacer fingerprinting de su servidor en un futuro. (seria interesante para un capitulo 3)

Quiero aclarar que este articulo lo escribo para mi mismo con fines de aprender y comprender mas del tema, y tener una referencia mas clara para utilizar en algún momento en el qué me pueda ser útil. En mi opinión, el tener una habilidad no nos da el derecho ni la obligación de usarla como queramos, y es responsabilidad de cada una de las personas que lea este articulo el uso que haga de él.

El propósito de este articulo es descubrir con quien tratamos: El servidor al que estamos investigando, de ahora en mas nombrado como COSO, ¿Qué versión de apache corre? ¿Corre un CMS en nadakedecir.net? y si es asi, ¿Qué versión es?, y ¿Qué plugins tiene instalados? Otras preguntas interesantes son ¿Existe algún medio de contacto que podría usar para comunicarme con COSO? ¿Puedo llegar a encontrar un dump de la base de datos en su public_html? Procedemos a responderlas todas.

Nota: La intención de este articulo no es ilustrar como se instalan las herramientas, ni como se usan las herramientas, sino lo que se puede llegar a hacer con ellas.

Conociendo a COSO (¿Qué servidor usa COSO? ¿En que OS lo corre?)

Este es un post con muchas preguntas ya, y queremos empezar a querer tener alguna respuesta. El mundo del fingerprinting es muy gracioso, porque podemos interesarnos mucho en una computadora en la que no deberíamos interesarnos tanto. ¿Qué tanto nos podemos interesar? Veamos ahora…

Todo con mucho cuidado, porque COSO también se puede interesar mucho por sus clientes :). Ademas este tipo de herramientas dejan MUCHÍSIMAS evidencias en el servidor que estamos investigando.

Respecto a la pregunta, lo podemos saber usando nmap. Esto nos va a decir que puertos tiene abiertos:

root@droope-VirtualBox:~ nmap -sV -O -A -T4 nadakedecir.net
PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD 1.3.3c
22/tcp open ssh OpenSSH 4.3 (protocol 2.0)
[...snip...]
25/tcp open smtp qmail smtpd
[...snip...]
80/tcp open http Apache httpd
| robots.txt: has 2 disallowed entries
|_/wp-admin/ /wp-includes/
|_html-title: nadakedecir*
106/tcp open pop3pw poppassd
110/tcp open pop3 Courier pop3d
[...snip...]
143/tcp open imap Courier Imapd (released 2004)
[...snip...]
443/tcp open ssl/http Apache httpd
[...snip...]
465/tcp open ssl/smtp qmail smtpd
[...snip...]
587/tcp open smtp qmail smtpd
[...snip...]
993/tcp open ssl/imap Courier Imapd (released 2004)
[...snip...]
995/tcp open ssl/pop3 Courier pop3d
[...snip...]
3306/tcp open mysql MySQL 5.1.54
[...snip...]
8443/tcp open ssl/https-alt?

Y tambien nos va a decir que sistema operativo potencialmente esta corriendo:

Running (JUST GUESSING) : Linux 2.6.X|2.4.X (94%), Google embedded (90%), Cisco Linux 2.6.X (89%), Riverbed embedded (89%), Buffalo embedded (87%), D-Link embedded (86%), Linksys embedded (86%), HP embedded (86%)
Aggressive OS guesses: Linux 2.6.30 (94%), Linux 2.6.9 (91%), Google Mini search appliance (90%), Linux 2.6.18 (CentOS 5.1, x86) (90%), Linux 2.6.18 (90%), Linux 2.6.9 - 2.6.27 (90%), Linux 2.6.9 (CentOS 4.4) (89%), Linux 2.6.11 (89%), Riverbed Steelhead 200 proxy server (89%), Linux 2.6.28 (88%)
No exact OS matches for host (test conditions non-ideal).

Esto también nos dijo que CMS esta usando, pero para hacerme el misterioso no voy a decir por que. Si abandonáramos el tutorial exactamente en este momento, ya sabríamos que COSO esta corriendo un worpdress. De todas maneras lo vamos a determinar mas adelante.

¿Quién es COSO? y ¿Cómo me contacto con él?

Lo mas importante al encontrar una vulnerabilidad es encontrar la forma de contactarnos con el dueño del sitio web para que él pueda arreglarla antes de que alguien con malas intenciones la encuentre. En este tutorial no nos vamos a interesar en encontrar vulnerabilidades, pero quizás queramos contactarnos con el usuario por otros motivos.

Usando theHarvester vamos a obtener información sobre los humanos que trabajan con este dominio y otras cosas sobre el PC:

root@pc:~# python theHarvester.py -d nadakedecir.net -l 500 -b all
*************************************
*TheHarvester Ver. 2.1 (reborn)     *
*Coded by Christian Martorella      *
*Edge-Security Research             *
*cmartorella@edge-security.com      *
*************************************

Full harvest..
[-] Searching in Google..
	Searching 0 results...
	Searching 100 results...
	Searching 200 results...
	Searching 300 results...
	Searching 400 results...
	Searching 500 results...
[-] Searching in PGP Key server..
[-] Searching in Bing..
	Searching 100 results...
	Searching 200 results...
	Searching 300 results...
	Searching 400 results...
	Searching 500 results...
[-] Searching in Exalead..
	Searching 100 results...
	Searching 200 results...
	Searching 300 results...
	Searching 400 results...
	Searching 500 results...
	Searching 600 results...

[+] Emails found:
------------------
No emails found

[+] Hosts found in search engines:
------------------------------------
72.10.32.61:www.nadakedecir.net
72.10.32.61:mail.nadakedecir.net

[+] Proposed SET
---------------
[]
[+] Virtual hosts:
==================
72.10.32.61:www.twitter.korochi.com
72.10.32.61:notengoenie.com
72.10.32.61:naotenhocedilha.com
72.10.32.61:evapedroza.com
72.10.32.61:barquitosdepapel.com
72.10.32.61:www.eckell.com
72.10.32.61:www.avioncitosdepapel.com
72.10.32.61:juguetesdoblo.com
72.10.32.61:korochi.com
72.10.32.61:www.conaini.com.ar
72.10.32.61:www.quierohablarconelgerente.com
72.10.32.61:lucasworcel.com
72.10.32.61:nadakedecir.net
72.10.32.61:www.iguanaovera.com.ar
72.10.32.61:ipa.notengoenie.com
72.10.32.61:fabulosospremios.com.ar
72.10.32.61:korochi.net
72.10.32.61:ceciliasluga.com
72.10.32.61:coqueterias.net
72.10.32.61:www.ahhhproject.com.ar
72.10.32.61:www.worcel.com
72.10.32.61:twitter.korochi.com
72.10.32.61:iguanaovera.com.ar

Bueno! No nos vamos a poder comunicar con COSO. Ahi tenemos un par de otros hosts que se corren en la misma computadora, que tambien pueden ser puntos de entrada en este caso.

COSO, ¿Corre un CMS en nadakedecir.net?

Ahora vamos al jugo, investiguemos si COSO tiene un CMS instalado en su servidor. Para eso, vamos a hacer WAFP, o Web application finger printing. Es un nombre muy cheto, pero basicamente nos sirve para saber que es lo que e que tiene hostiao ai. Importante mencionar que deberian sin falta clickear ese link que les dejo ahi, porque probablemente sea un mucho mejor articulo que este.

La app que me afane de ese web para probar, es whatweb. A ver que hace:

root@pc:~# ./whatweb nadakedecir.net
http://nadakedecir.net [200] Apache, Country[UNITED STATES][US], Email[nadakedecirnet@gmail.com], HTTPServer[Apache], IP[72.10.32.61], MetaGenerator[WordPress 3.4.2], Plesk[Lin], Script[text/javascript], Title[ nadakedecir*], WordPress[3.4.2], X-Powered-By[PleskLin], x-pingback[http://nadakedecir.net/xmlrpc.php]

Bueno! Quien te dice! Encontro un mail, no me la esperaba: nadakedecirnet@gmail.com. Genial, considerando que esta en la primera página, debería haberlo encontrado el harvester. En definitiva yo ya sabía que esto era un wordpress, porque el escaneo del nmap me tiró un link al archivo robots.txt, que decía:

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/

Tambien sabía que era un 3.4 porque hay un archivo de README que los wodpress dejan muy amablemente. Recomiendo el lugar donde aprendí esto, FLU project, que tiene una guia para fingerprinting de wordpress.

Tambien vamos a hacer uso de su aplicacion que nos permite determinar los plugins que tiene instalados un wordpress. Necesitamos descargar Flunym0us y tambien una lista de los plugins mas usados de wordpress, por ejemplo esta.

Sin mas, la corremos (tarda un buen rato, tiene que hacer miles de peticiones al servidor. Recomiendo cancelarlo luego de un tiempo.)

root@pc:~# python flunym0us.py -wp http://nadakedecir.net wp-plugins.lst

 Flunym0us is a scanner that allows you retrieve a list of all installed plugins
 in WordPress and Moodle

 Plugins:

 wp-db-backup

Asi que ahi tenemos un plugin, que podria tener una vulnerabilidad conocida, aunque no creo que sea el caso. Tambien podemos sospechar que, si el servidor esta mal configurado, el WP_BACKUP_DIR podria ser publico, creo que no es el caso.

Vamos a investigar eso con dirb. Esta complicado, hay que compilarlo, pero eventualmente hay que compilar algo. Yo lo compile, viene con wordlists en la carpeta worlists del source. Hay una alternativa en java llamada dirbuster, pero yo la verdad no soy un gran fanatico de las interfaces graficas. Lo voy a correr con dos diccionarios.

root@ip-10-29-235-201:/home/ubuntu/dirb# dirb http://nadakedecir.net/ wordlists/big.txt,wordlists/vulns/apache.txt

-----------------
DIRB v2.03
By The Dark Raver
-----------------

START_TIME: Fri Sep 21 00:56:00 2012
URL_BASE: http://nadakedecir.net/
WORDLIST_FILES: wordlists/big.txt,wordlists/vulns/apache.txt

-----------------

GENERATED WORDS: 4234

---- Scanning URL: http://nadakedecir.net/ ----
+ http://nadakedecir.net//
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/0/
    ==> DIRECTORY
+ http://nadakedecir.net/1
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/2
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/20
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/3
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/30
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/A
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/D
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/E
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/G
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/J
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/L
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/M
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/S
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/V
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/a
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/admin
    (FOUND: 302 [Moved Temporarily] - Size: 0)
+ http://nadakedecir.net/ar
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/archivo
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/archivos
    (FOUND: 200 [Ok] - Size: 17792)
+ http://nadakedecir.net/atom
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/cgi-bin/
    (FOUND: 403 [Forbidden] - Size: 275)
+ http://nadakedecir.net/css/
    ==> DIRECTORY
+ http://nadakedecir.net/d
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/demo/
    ==> DIRECTORY
+ http://nadakedecir.net/do
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/e
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/en
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/feed
    (FOUND: 200 [Ok] - Size: 10973)
+ http://nadakedecir.net/g
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/gr
    (FOUND: 301 [Moved Permanently] - Size: 0)
+ http://nadakedecir.net/img/
    ==> DIRECTORY
+ http://nadakedecir.net/j
    (FOUND: 301 [Moved Permanently] - Size: 0)

Esta es una busqueda de fuerza bruta, y si bien puede aportar algunos resultados, la verdad es que no sirve mucho. Vamos a hacer que la busqueda sea un poco mas efectiva. El comando que vamos a usar es

dirb http://nadakedecir.net/ wordlists/common.txt,wordlists/vulns/apache.txt -x mutations_common.txt

que significa: usame los diccionarios common y vulnerabilidades y agregale las extensiones de respaldo mas comunes. Basicamente estoy buscando un archivo, por ejemplo index.php~ que seria un respaldo de index.php. Lo corri por bastante tiempo, pero la verdad es que todavia no encontro nada. Habria que tunear las wordlists para que tengan info mas relevante.

Asique eso seria todo, el resumen ejecutivo seria este:

  • ¿Qué versión de apache corre? Lo averiguo usando NMAP.
  • ¿Corre un CMS en nadakedecir.net? ¿Qué version es? ¿Qué plugins tiene instalados? Lo averiguo usando whatweb && flunym0us
  • ¿Existe algún medio de contacto que podría usar para comunicarme con COSO? Lo averiguo usando theHarvester
  • ¿Puedo llegar a encontrar un dump de la base de datos en su public_html? Lo averiguo usando dirb

Ahora la pregunta que se me ocurre es, ¿Qué otras cosas sería interesante averiguar?

¡Espero su input en los comentarios!

Un abrazo enorme,
Pedro

Tecnologias para pymes

Hola a todos!

Dos enlaces que quiero guardar por si un dia quiero abrir mi negocio:

Con estos dos, tenes todo lo que necesitas para enviar paquetes y cobrar por un servicio. Excelente!

Un abrazo grande,
Pedro

Como hackear páginas web ( en serio )

Las webs hoy en día son cada día mas seguras. ¿O no? Como intento demostrar frecuentemente en twitter, tal vez no sea asi.

Nota: Este capitlo es el primero de una serie de — por ahora — dos capitulos. El segundo es un articulo se especializa en identificar potenciales vulnerabilidades, como hackear paginas web (fingerprinting and information gathering).

Hay muchas herramientas hoy en día para encontrar vulnerabilidades en una web. Si una web utiliza una versión vieja de un CMS, cosa que podemos determinar utilizando una herramienta como Wappalizer o WhatWeb (ver el segundo capitulo de la serie), la cuestión es mas sencilla. Es muy importante hoy en día mantener actualizado nuestro software. En caso contrario, un atacante podría buscar en el changelog de nuestro CMS todo lo referente a correcciones de vulnerabilidades en versiones posteriores a la que nosotros tenemos actualmente.

También hay otras herramientas para hackeear webs, pero yo hoy voy a optar por explicar que tipo de vulnerabilidades se pueden encontrar una web de una manera mas “artesanal”. Este artículo no plantea demostrar un tipo de vulnerabilidad nueva, ni pretende ser la demostración de un conocimiento muy avanzado. Simplemente es una explicación básica de algunos tipos de vulnerabilidades que pueden encontrarse en una web y como un atacante explotaría de ellas. Básicamente, se trata de:

  • Inyecciones SQL
  • Cross Site Scripting ( Javascript injection )
  • Local file inclusion / Remote file inclusion

Para todos los ejemplos, usaremos código de Damn Vulnerable Web App. Te podés descargar esta aplicación para practicar los ejemplos que planteo acá. Todos los ejemplos estan hechos con la seguridad en low. Una vez instalado el app, andá a DVWA Security y elegí “low”.

Sigue leyendo

Compilado de enlaces

¡Hola gente!

Muy buenas tardes.

Traigo para ustedes un compilado de enlaces mas, un poco breve, pero mas intenso. Un excelente tutorial para crackear captchas, y una historia sobre localización.

Un saludo,

Pedro

Sitios web multi-idioma/región y indexación ( Google )

Hola amigos,

El otro día me encontré, navegando por ahi, un artículo del blog oficial de google que trata sobre la visión oficial de google frente a sitios web en múltiples idiomas, y otro que trata sobre la visión de google frente a sitios que apuntan a audiencias en múltiples regiones.

Google apoya ambos tipos de web y los considera perfectamente legales, mas tiene un cierto número de sugerencias para darnos.

Sitios multi-idioma

Un sitio multiidioma es cualquier sitio que provea a sus usuarios contenido en dos o mas idiomas. A lo largo de el artículo, google declara las siguientes recomendaciones:

  • Deberias hacer que cada página, individualmente, sea de un solo idioma: Google automáticamente determina el idioma de tu página web, y es capaz de detectar si la página tiene, por ejemplo, el menú en griego y el contenido en inglés. Es, sin embargo, recomendable mantener cada página en un solo idioma (solo inglés, solo francés, etc). Nótese que google ignora completamente toda la información proveida a nivel código sobre el idioma de la web (etiquetas lang, DTD, etc.)
  • Las URLs deberían de estar escapadas: si quisieramos utilizar en nuestra URL caracteres especiales, tales como áéíóú, deberíamos de crear enlaces a esas urls de manera que esten codificadas (es decir, si tenemos una página ‘averías-web’, debería codificarse a ‘aver%C3%ADas-web’).  Esta función de PHP puede ser de interés.
  • Las traducciones automáticas no deberían ser indexadas automaticamente: Las traducciones automáticas no siempre tienen sentido y podrían potencialmente considerarse como spam.
  • Utilizar UTF-8: Se r ecomienda utilizar utf-8 siempre que fuese posible.

Sitios multi-regionales

Esto se refiere a sitios que disponen a hacer llegar sus contenidos a varias regiones del mundo. De acuerdo a google, la mayoría de los usuarios encuestados consideró que era mas importante el tener la información en su idioma que un buen precio… lo que nos indica que, si queremos ganarnos a los usuarios, tendremos que hacerlo en su idioma.

Google diferencia entre dos tipos de dominos:

  • ccTLDs (country-code top level domain names): Estos son los dominios que estan ligados a un pais en particular ( por ejemplo .com.ar, .pe, .pt, etc.). Los usuarios y navegadores consideran este un importante punto al considerar si el sitio web es de determinado país o no.
  • gTLDs (generic top level domain names): Estos no tienen un vínculo en particular con ningún idioma. Unos buenos ejemplos de estos idiomas serían .com, .net,.org. Hay que tener en cuenta que hay dominios que también, a pesar de incialmente ser ccTLDs, ahora son considerados gTLDs (.asia, .tv, .me)

Para ser reconocidos como un dominio de determinado país, google se basa en los siguientes factores:

  • Utilización de un ccTLDs. Esta es generalmente una señal muy fuerte que el dominio está apuntado a usuarios de determinado país. O, alternativamente, asignar un país manualmente utilizando google webmaster tools. Mas información sobre esto último puede encontrarse en este enlace. Los usuarios que utilizaron este método reportan un aumento en las visitas causadas por su SEO natural y también por su inversión en adwords.
  • La ubicación del servidor (a través de la ubicación del servidor) tiene que estar cerca tus usuarios. Google indica que este no es un factor determinante a la hora de decidir por una región.
  • Otras señales podrían determinar tu ubicación. Esto podría ser, por ejemplo, los teléfonos que se muestran en tu sitio, o la moneda que utilizas. También enlaces de otros sitios locales, y el uso de “Google local Business Center”.
  • Estructuras de URL

    Google nos deja en su sitio una comparación de estructuras de urls que podemos utilizar para dividir nuestro sitio en idiomas.

    ccTLDs

    (sitio.com.ar)

    Pros(+):
    – Clara geolocalización
    – La ubicación del servidor es irrelevante
    – Fácil separación de sitios
    – Requerimientos legales ( en ocasiones )

    Contras(-):
    – Mas caro
    – Mas infraestructura
    – Requerimientos de los ccTLDs ( en ocasiones )

    Subdominios con gTLDs

    (en.sitio.com)

    Pros(+):
    – Facil
    – Puede utilizar las herramientas de Webmaster para geolocalización
    – Permite utilizar distintos servidores
    – Conveniente separación de sitios

    Contras(-):
    – Los usuarios pueden no reconocer tu sitio como de su país ( el subdominio e refiere al país o al idioma?)

    Subdirectorios con gTLDs

    (sitio.com/ar/)

    Pros(+):
    – Fácil de armar
    – Puede usar las Google Webmaster Tools
    – Poco mantenimiento ( el mismo host)

    Contras(-):
    – Los usuarios pueden no reconocer su país
    – Una sola Ubicación de server
    – Separación de sitios mas dificil

    Basado en parámetros GET

    sitio.com?pais=ar

    No recomendada

    Contenido duplicado

    Sitios que provéen el mismo servicio en varios paises pueden generar contenido que es similar o idéntico para varios sitios. Aunque google fuertemente recomienda que esto no sea asi, comprende que en ocasiones esto es imposible. Se indica que no hay necesidad de hacer que el contenido no sea indexable ( utilizando un archivo robots.txt, por ejemplo ), pero, por otro lado, si el mismo contenido se muestra en dos urls sería conveniente hacer un redirect.

    ¡Espero que esto sea de utilidad!

    ¡Saludos!
    Pedro

Seamonkey configuraciones varias

Hola, muy buenos dias/tardes/noches:

Escribo a ustedes hoy también con un pequeño tutorial que nos permite hacer algo muy interesante para los usuarios de Seamonkey 2 que no estan acostumbrados a las opciones que trae este por defecto. Usuarios de linux, particularmente, nos daremos cuenta de que al hacer click del medio sobre cualquier sector de la página, en lugar de scrollear nos lleva a cualquer sea la dirección que tengamos copiada en el portapapeles o nos muestra un error de “Dirección inválida”.

Esto puede solucionarse de manera sencilla, poniendo en la barra de direcciones lo siguiente:

about:config

Una vez ahi, con un doble click, cambien las opciones que traen por defecto las siguientes configuraciones:

general.autoScroll // activa el scroll
genera.smoothScroll // lo mejora)

Y listo. También, usuarios que estan acostumbrados a firefox, quizás quisieran cambiar los siguientes valores, para hacer que las tabs se abran y cierren con el boton del medio del mouse:

middlemouse.contentLoadURL //deshabilita el hecho de que se carge la URL al clickear con el botón del medio
middlemouse.openNewWindow // deshabilita el hecho que el click medio abra una nueva ventana
browser.tabs.opentabfor.middleclick // hace que el click medio abra un TAB.

Después, solamente queda por customizar el hecho que, al abrirse una nueva pestaña, seamonkey se enfoca sobre esta al instante. Esto no se como configurarlo desde about:config, pero puede cambiarse desde Edit > Preferences > Tabbed Browsing y deshabilitando la opción “Switch to new tabs opened from links”.

Muy probablemente se preguntarán porque prefiero hacerlo todo desde about:config, y la verdad es que no tiene una explicación lógica, mas que el hecho que el saber como funciona la raiz de el asunto nos da cierta ventaja sobre aquella gente que no sabe, sobretodo al momento en que la interfáz que nos permite tan sencillamente cambiar esa opción falla.

Update: En la mayoría de los sitemas operativos el F5 no funciona por defecto en el seamonkey. Para aquellos interesados en corregir esto, pueden descargar keyconfig y en Tools/Herramientas -> key config, buscar Reload. Ahi donde dice control + r, ponemos el mouse y apretamos f5. :)

¡Espero sea de utilidad!

Un saludo,
Pedro

Correr emesene como root

Hoy estuve luchando con mi computadora en varias áreas. El msn dejó de funcionar, la ide se congelaba, y, finalmente mi usuario se rompió.

Nada grave, por suerte. Como solución se me ocurrió averigiuar como correr ubuntu como root, que también me serviría para evitar que se me desgasten las teclas “s” “u” “d” y “o” de mi teclado.

Una vez que logré eso, y conseguí que gdm (el manejador de sesiones de ubuntu) me dejara usar mi PC como root, me encontré con un problema también, poco grave:

Emesene – el mejor cliente de msn que hay – no me dejaba ejecutarlo como root. Me tiraba la opción de ejecutarlo como “emesene –i-know-running-as-root-is-bad”, pero no me gustó esa idea. Ya había visto un poco del código de emesene unos minutos antes, y supe que deshabilitar ese control era cuestión de cambiar una línea de el archivo Controller.py. El archivo Controller.py se encuentra en la misma carpeta que el ejecutable emesene. En caso de que no sepas donde se encuentra, podés saberlo tipeando .

which emesene

El cambio se realiza en la línea 963 (versión 1.6.1 “mate” de emesene)

return (username, minimized, leakdebug, iconified, badroot)

a

return (username, minimized, leakdebug, iconified, True)