Google EL TIPO DE INFORMATICA: Herramientas
Mostrando entradas con la etiqueta Herramientas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Herramientas. Mostrar todas las entradas

domingo, 1 de febrero de 2015

Conseguir Claves WEP en Mac OS X con Aircrack-ng

Este tema de romper claves WEP en redes WiFi no es nada nuevo, todos sabemos lo vulnerable que es WEP y lo rápido que se puede conseguir la clave o "key" una vez se logra capturar suficiente tráfico. Pero en este post veremos como hacerlo en Mac OS X usando la herramienta nativa de diagnostico de redes inalámbricas (Wireless Diagnostic) para capturar paquetes y luego "Aircrack-NG" para descifrar o calcular la clave en base a los datos capturados. Generalmente para el escaneo de redes inalámbricas, la captura de los datos y/o inyección de datos se utilizan programas como KisMAC, pero generalmente estos programas no funcionan con los drivers de la tarjeta WiFi de Mac OS X, por lo que usualmente se utilizan tarjetas externas USB con drivers que soporten. Pero si no tenemos otra tarjeta o drivers compatibles, podemos usar esta utilidad del sistema, nos permitirá conseguir la información necesaria de la red y también capturar los datos para descifrar la clave WEP. Lo que no podremos hacer con con esta utilidad es inyectar trafico a la red, así que si la red no es muy activa tendremos que durar mucho tiempo capturando hasta que se consiga una cantidad de suficiente de paquetes. Pero para muchos casos podremos usar esta herramienta nativa, así que empecemos.

Conseguir Información de la Red

Lo primero que necesitaremos es información de la red que queremos "auditar", o a fin de cuentas conectarnos. Lo que buscaremos será el canal en que transmite, el nombre de la red (o SSID) y el BSSID, que seria el Mac Address del router inalámbrico que transmite la red. Para esto usaremos como les dije la herramienta del sistema para diagnostico de Redes Inalámbricas, para abrirla presionamos la tecla "option" y manteniéndola presionada hacemos clic encima del icono que nos muestra las redes inalámbricas (en el menu de arriba), luego hacemos clic en "Open Wireless Diagnostic", como se muestra mas abajo:

Herramienta de Diagnostico Wireless
Herramienta de Diagnostico Wireless del Sistema

Se les pedirá escribir el usuario/password de un usuario con privilegios administrativos en el equipo, luego abrirá la siguiente ventana. Abrirá una especie de "Wizard" que se usa para determinar problemas de conexión, pero esto no es lo que usaremos. Junto a esta aplicación el sistema tiene una ventana de utilidades, para acceder a ella haremos clic en "Windows" (en el menú superior) y seleccionaremos "Utilities", como se ve mas abajo:

Mac OS X Wireless Diagnostic

Esto nos traerá la ventana que necesitamos. Como verán esta herramienta tiene varias opciones que nos resultaran de mucha utilidad. Tiene varios tabs: Info, Frame Capture, Logging, Wi-Fi Scan, Perfomance. Primeramente utilizaremos la opción "Wi-Fi Scan", que como ya se imaginaran usaremos para escanear y detectar las redes wi-fi cercanas y conseguir la  información que necesitamos. Hacemos clic en "Scan Now" y veremos un listado con las redes WiFi, donde buscaremos alguna que utilice WEP:

Redes WiFi

Ahora que tenemos identificada la red que queremos "auditar", podemos empezar a capturar datos. Como les había comentado al inicio, para conseguir la clave necesitamos capturar todo el trafico posible. Nos movemos a la sección "Frame Capture". Solo tenemos que seleccionar el canal (Channel) en que transmite la red (en el ejemplo del gráfico anterior, se encuentra en el canal 1) y hacemos clic en "Start". Con esto empezara a hacer la captura de los datos, dependiendo de que tan activa este la red este proceso puede tomar desde varios minutos hasta varias horas, mientras mas tiempo estemos capturando mas posibilidades de capturar.

Captura de Datos WiFi


Luego de que haya pasado un tiempo considerable detenemos la captura. Nos generara un archivo en el Desktop con extension ".wcap", el nombre estara compuesto por la fecha de creación, por ejemplo "150131_223736.wcap" (año - mes - mes). Este archivo contiene los datos que capturamos en el canal que especificamos. Ahora podemos pasar a intentar calcular el key usando aircrack-ng.


Aircrack-NG

Aircrack es toda una suite de herramientas para auditoría de redes inalámbricas, tiene herramientas para la captura de datos (lo que hicimos anteriormente con la herramienta del sistema), para inyección de trafico entre otras, pero como les comente antes, algunas no funcionan con los drivers de Mac OS X. Pero si tenemos suerte, no necesitaremos inyectar trafico. En caso de que no tengan Aircrack instalado, pueden instalarlo con Homebrew (y si no lo han utilizado Hombrew aquí les digo como instalarlo, es bastante sencillo). Para instalarlo utilizan el siguiente comando:

 brew install aircrack-ng

Bien, ya con Aircrack instalado, solo tenemos que ejecutarlo sobre el archivo que contiene la captura que hicimos. Este archivo contendrá muchos datos, no solo de la red en cuestión sino de todas las redes que estén en el área transmitiendo en el canal que hicimos la captura. Así que le indicaremos a Aircrack el BSSID de la red que queremos que nos descifre el Key, así que ejecutaremos:

$ aircrack-ng -b bssid-de-la-red archivo-capturado.wcap

Con la opción "-b" le indicamos el BSSID de la red, seguido del archivo capturado. Si se capturaron suficientes paquetes, Aircrack calculara en unos segundos la clave. En caso de que no hayan suficientes, aircrack les dirá que necesita más paquetes (IVs) para poder calcularla. En ese caso necesitarán hacer la captura nuevamente pero por mas tiempo. En el caso de este ejemplo, deje la captura por unos 40 minutos y mi archivo de captura alcanzó unos 900 MBs, al ejecutar aircrack solo necesito unos segundos para calcular la clave:

Aircrack calculando Clave WEP

Como pueden ver pude conseguir una buena cantidad de paquetes (43743 IV's) en la captura, y más abajo Aircrack muestra el Key. Solo hay que remover los dos puntos ":" entre cada par de caracteres y tendremos el Key de la red. Así de rápido se puede conseguir la clave de una red que utilice WEP, por esto es que tiene que evitar usarlo. Espero que esto les sea de utilidad.

Hasta el Próximo!

martes, 24 de julio de 2012

Leer Conversaciones Guardadas de Skype con SQLiteBrowser

En estos días se ha estado hablando de Skype en la red debido a la publicación de su código fuente y también a un problema que causaba que mensajes llegaran a personas que nisiquiera estaban en la lista de contactos. Así que quise aprovechar para hablarles de algo que encontré hace un tiempo mientras revisaba los archivos de datos de Skype, por simple curiosidad. Y es que el historial de conversaciónes o chat y otras informaciónes (como la lista de contactos) del usuario son almacenadas en un archivo de base de datos, y lo mejor, no esta encriptado ni nada parecido. Y todavía mejor, por default Skype almacena un historial de todas las conversaciónes, a menos claro que le digamos lo contrario, cosa que por lo que he visto muy poca gente hace.

En Windows 7, los archivos de datos de Skype se almacenan en la dirección "C:\Users\nombre-de-usuario-de-windows\AppData\Roaming\Skype\", dentro de esta carpeta encontraremos una o varias carpetas con los nombres de usuarios de Skype que se hayan logeado en esa computadora, en la que encontraremos estos archivos:


Archivos Skype

Como pueden ver en el gráfico anterior esta señalado el archivo "main.db", este es el archivo que contiene el historial de chat, los contactos, etc. Aquí es entonces donde utilizaremos el programa "SQLite Database Browser" que pueden descargar desde este link. Verán que es bastante sencillo de utilizar, solo hacen doble clic encima del ejecutable, luego hacen clic en "File--> Open Database" y buscamos el archivo "main.db" en la ruta mencionada anteriormente o donde lo hayamos copiado. Al abrir nuestro archivo lo primero que veremos sera la estructura de la base de datos, como se ve a continuación:

Base de datos Skype

En esta ventana seleccionamos el tab "Browse Data", y luego en la sección "Table" seleccionamos la tabla "Messages". Esta tabla es la que contiene el historia de Chat del usuario. Como verán, aquí aparecen las demás tablas que también pueden contener información interesante. En este caso seleccionaremos "Messages":

Archivo de Datos Skype

Esta tabla contiene muchas columnas, para ver el mensaje transmitido tendremos que movernos hacia la derecha en la ventana hasta la columna "body_xml". Lo bueno es que esta herramienta nos permite también ejecutar Queries SQL en esta base de datos, lo que nos facilitaría la lectura de los mensajes, para esto nos movemos al tab "Execute SQL", y en la sección "SQL String:" podemos escribir nuestro query y filtrar los mensajes. Las columnas mas importantes son author, from_dispname, dialog_partner y body_xml, así que podríamos ejecutar el siguiente query:

Archivos de Datos Skye

Como ven, ahora nos resultara mas cómodo leer todas las conversiones. Ahora bien, que hacer para evitar que alguien pueda leer nuestras conversaciones de esta manera? Lo primero primero seria decirle a Skype que no conserve nuestras conversaciones, esto se hace en "Tools --> Options --> Privacy" en la sección "Keep history for" seleccionamos "no history":

Configuracion Skype


Otra opcion seria borrar periódicamente este log, como ven en el gráfico anterior hay un botón "clear hostory" que se encargaría de esto. En la mayoría de los casos creo que la mejor opción seria la primera, no guardar historial de conversaciónes. Así que ya saben, la próxima vez que tengan la computadora de un amigo o compañero en sus manos y este usa Skype... no sean malos y adviertanle sobre el setting para eliminar las conversaciónes :) . Bueno, espero como siempre que esta información les haya sido de utilidad (tanto como a mi :P ).

martes, 12 de junio de 2012

Tratando de Analizar (superficialmente) un Malware

Antes que nada quiero aclarar que no me refiero a un análisis profundo de un malware, a lo que me refiero es a ver las actividades que realiza, adonde intenta conectarse y que modifica en el sistema, a fin de que podamos tomar medidas para evitar la infección y facilitar la desinfección en caso de que uno de nuestros usuarios haya decidido ejecutar el malware antes de llamarnos, como usualmente pasa. Usare algunas herramientas, tanto locales como online, que nos ayudan a conocer un poco las intensiones del malware en cuestión y como intenta hacer la infección del equipo que lo ejecute. Teniendo esto claro, podemos continuar :) . En estos días recibí un correo SPAM que decía venir de un scanner HP, y como es normal en este tipo de mensajes traía consigo un archivo anexo ZIP, la diferencia con los que generalmente llegan es que este en lugar de contener un ejecutable contenía un archivo HTML, a continuación el mensaje:

Malware anexo

El archivo anexo se veía así al abrirlo con WinRAR:

Malware Anexo

Lo primero que hice fue crear una regla en el mail server para bloquear este mensaje especifico (por "subject", por "from", etc.) para tratar de evitar que llegue a otros usuarios. Luego subí mi  maquina virtual con XP que tengo como conejillo de indias. Configure la red de la maquina virtual (que en lo adelante llamare "la víctima") en modo "Bridge", la configure en el mismo rango IP de mi computadora host. La IP de mi maquina virtual sera 192.168.137.2 y la del host es 192.168.137.1, se necesita que tengan conexion entre si para poder utilizar el equipo host como proxy para la maquina virtual (como se vera mas adelante). Luego abrí con "notepad" el archivo  para ver el contenido sin ejecutarlo:

Archivo en Notepad

No se mucho de programación o html, pero no hace falta ser un experto para darse cuenta que esta pagina ejecuta un script y que esta aparentemente codificado. Haciendo una breve búsqueda en Google con la primera linea de este script encontre este enlace a Pastebin, de donde aparentemente viene el código. Luego encontré también este site que permite decodificarlo. Bueno, es hora entonces de verlo en acción, hice doble clic en el archivo HTML para que se ejecutara en mi maquina virtual, abrió con Internet Explorer 6 (que es el que tengo en mi maquina para pruebas) y presento el siguiente mensaje:

Descarga del Malware

El navegador me indica que este archivo esta intentando ejecutar cierto tipo de contenido que esta bloqueado, y que si quiero habilitarlo debo hacer clic en OK, hacer clic en la franja amarilla y seleccionar "Allow Bloked Content". Es posible que esta advertencia evite que algunos usuarios ejecuten este script, pero es seguro que la mayoría dará clic sin leer en "OK" y luego ejecutaran el código. Como mi intención es probar el script procedí a permitir que este se ejecutara, lo que hizo que el navegador me diera otra alerta mas sobre el contenido:

Descarga del Malware

Cualquiera pensaría que con tantas alertas los usuarios no ejecutarian este tipo de código, pero como todos sabemos los usuarios aman los botones "YES" y ciegamente hacen clic sobre ellos, así que muchos usuarios volaran esta advertencia y ejecutaran el código, que es lo que hice para esta prueba. Al hacer clic en "Yes" e ignorar la advertencia me devolvió el siguiente error:

Descarga del Malware

Si se fijan en la barra de estado del navegador, vemos que aunque se presenta el mensaje diciendo que se aborto la operación, Internet Explorer esta abriendo una pagina en un dominio de Rusia al puerto 8080 de ese servidor. En ese momento ejecute en una ventana de comandos el comando "netstat -na" para ver las conexiones que estaba haciendo mi maquina "víctima" hacia afuera:

Comando Netstat

Ahora necesitamos ver la conversación entre ese servidor y nuestra PC víctima, para esto configuraremos Internet Explorer en la maquina virtual para que utilice un proxy que correremos en el equipo Host, asi capturaremos los "Request" hacia el servidor en Internet y tambien las respuestas de este. Podríamos utilizar también un sniffer como Wireshark en nuestro Host y capturar todo el trafico entrante y saliente a nuestra maquina virtual, pero en este caso con el proxy es suficiente (y mas facil).

  • Monitoreando las conexiones a Internet con Burp Suite Free
"Burp Suite"es un proxy que permite entre otras cosas el ver las peticiones y respuestas a Web servers, podemos también modificarlas on line. Pueden descargarlo de este link. Esta hecho en Java, por lo cual requeriran tener instalado el RunTime. Una vez lo hayan descargado, lo ejecutan y se mueven al tab "proxy", y aquí al tab "options". En este tab le indicamos en que interface y en que puerto escuchara las peticiones, debe verse de esta manera:

Burp Proxy

Deben quitar la selección de la opción "Listen on loopback interface only" para que el programa escuche en todas las interfaces, en mi caso elegi el puerto 8080. En esta misma ventana deben también seleccionar la opción "intercept if" debajo de la sección "intercept server responses", para poder capturar también las respuestas de los servidores Web. Ya teniendo el proxy preparado para capturar, configuramos el navegador en nuestra maquina virtual para que lo utilice, en el caso de mi maquina virtual utilizo Internet Explorer 6 (lo se, un poco viejo, pero esa es la idea). Por si no saben como hacerlo, abren el Internet Explorer, luego hacen clic en Tools--> Internet Options --> Connections --> Lan Settings. En el caso de mi configuracion se veria de esta forma:



Ahora, volvemos a ejecutar de nuevo el archivo HTML y esperamos a recibir la solicitud de conexion al proxy en nuestro equipo. Cada conexion (http o https) que intente hacer nuestro equipo virtual a Internet pasara por Burp donde podremos revisar cada solicitud antes de aprobar que salga a su destino, en este caso el dominio ".ru".  Al ejecutar el archivo podemos ver la primera solicitud que hace:

Burp Proxy

Como vemos hemos capturado la primera solicitud la hace al sitio "http://uzindexation.ru:8080" y esta solicitando la pagina "/forum/showthread.php?page...". Para que esta solicitud pueda llegar al servidor debemos dar clic en esta ventana en el boton "Forward", y esperamos entonces por la respuesta del servidor, que llegara en unos segundos y verán algo como lo siguiente:

Burp Proxy

El servidor responde con otro script, aparentemente también codifcado. Podemos copiar todo este código, guardarlo en un documento html y subirlo a este site que les mencione al principio, aqui podemos decodificarlo y ver que es lo que esta transfiriéndole ese servidor a nuestro equipo. Pero para seguir observando el Malware, hacemos clic en "Forward" en esta ventana para permitir que este paquete llegue a nuestra maquina virtual. Al hacer esto veremos pronto otra solicitud que hace la maquina al servidor del atacante:

Burp Proxy

Ahora nuestro equipo víctima hace otra solicitud al servidor "malicioso", solicita la ejecución de un archivo PHP (/forum/data/ap2.php), hacemos clic nuevamente en "Forward" para permitir esta solicitud y esperar la respuesta del servidor. Como se puede ver en los headers, en esta ocasión el servidor le envía a la maquina víctima un archivo PDF, es muy posible que sea un archivo "especialmente manipulado" que explote alguna vulnerabilidad en Acrobat Reader y se use para descargar/ejecutar codigo malicioso en el equipo víctima y continuar la infección del equipo. La ventaja de usar un proxy en el medio de la conexion entre la víctima y el atacante es que podemos facilmente reconstruir el archivo que envía el servidor y salvarlo en nuestro equipo. Para esto solo tenemos que hacer clic derecho en el cuerpo del reply del servidor, como se ve en el gráfico siguiente, y seleccionar "copy to file" e indicarle donde queremos guardar el archivo y con que nombre. En mi caso, lo nombre "pdf-bad.pdf".

Burp Proxy

  • Analizando el Archivo en Virus Total
Teniendo ya grabado nuestro PDF de dudosa reputación, podemos subirlo a Virus Total para analizarlo contra los motores de las principales casas antivirus. Por si no lo conocían, VirusTotal es un servicio gratuito que permite analizar tanto archivos como direcciones Web y como les dije los analiza con las versiones actuales de los principales motores antivirus. Es muy utilizada tanto para comprobar archivos sospechosos como nuestro PDF, como para comprobar que tan detectable seria ante los antivirus un ejecutable que hayamos creado. Como verán el PDF es detectado en 6 de los 42 motores antivirus contra los que VirusTotal lo evaluó, lo cual nos confirma que este PDF se trae algo entre manos, y que aparentemente es una explota alguna vulnerabilidad reciente ya que pocos motores antivirus lo reconocen (a la fecha en que hice la evaluacion), como se ve en el siguiente gráfico:

Virus Total


Hasta ahora sabemos que el archivo HTML que llego por correo contiene un script (codificado) que envía al navegador a un sitio web desde donde se ejecuta un archivo PHP que descarga a la maquina víctima un archivo PDF especialmente modificado que aparentemente explota una vulnerabilidad en Acrobat Reader. La versión que tengo instalada en la maquina virtual es la version 9.3 y esta es evidentemente vulnerable al exploit que contiene este PDF, ya que al permitir que llegue a la maquina victima, Internet Explorer llama a Acrobat Reader para abrir el archivo malicioso y al ejecutarlo (en background) realizara esta otra petición:

Burp Proxy

Aquí la maquina víctima solicita otra pagina PHP, a lo que el servidor responde con el archivo que se ve en el gráfico siguiente. Nuestro amigo en Rusia envía a nuestra victima un archivo ejecutable (contacts.exe), el nombre de este archivo varía, en otras ocasiones el servidor enviar "calc.exe". Al igual que hicimos con el archivo PDF, podemos copiar todo este contenido, guardarlo en un archivo en nuestra computadora, y subirlo a VirusTotal para ver como lo reconocen los motores antivirus.

Burp Proxy

Al momento en que subí este ejecutable a Virus Total, solo era reconocido por 4 casas antivirus, lo que quiere decir que es muy probable que si uno de los usuarios lo hubiese ejecutado, el antivirus no lo hubiese detectado. A esta altura ya tenemos el archivo ejecutable que se descarga del servidor del atacante, ahora queremos saber que como se comportaria este ejecutable, una forma seria usando la misma descripción que dan las casa antivirus que lo detectan, pero en el caso de este ejecutable las pocas que lo detectan lo describen de forma genérica. A continuacion veremos una forma sencilla de saber las actividades que realizaria este ejecutable en nuestro equipo sin tener que ejecutarlo nosotros.

  • Utilizando un Sandbox para analizar el Ejecutable

En esta parte utilizaremos el site GFI Threat Track, este sitio nos permite subir una muestra de un archivo para su análisis, luego nos envían un elegante reporte con todas las actividades que realiza el archivo que subimos, los archivos que crea, las conexiones que intenta hacer y hacia adonde, las claves del registro que modifica, etc., lo que nos economiza tener que seguirle nosotros mismo el rastro a este malware en el equipo virtual de prueba que tenemos, y lo mejor, el servicio es gratuito! Luego de unos minutos de haber subido el archivo, recibiremos un correo con el reporte anexo de todas las actividades que detectaron realiza nuestro archivo, el reporte es bien detallado y tiene varias paginas, nos servirá de ayuda para detectar este malware en otros equipos posiblemente infectados y evitar la infección de otros. En el siguiente gráfico se muestran algunas partes del reporte, porque como les dije tiene varias paginas. En esta gráfica se muestra en resumen algunas de las actividades que realiza este ejecutable:


Como pueden ver, nuestro amigo crea archivo ocultos, crea mutaciones de el mismo y borra el archivo original que descarga, hace conexiones de red, etc. Mas adelante en el reporte veremos los archivos que crea o modifica este ejecutable, las claves del registro modificadas y hacia adonde intenta conectarse, lo cual nos servirá para bloquear esta IP en nuestro Firewall:



Resumiendo, podemos decir que el atacante envía masivamente correos con un archivo HTML comprimido en un ZIP haciendo creer que el mismo es enviado por un Scanner en la red. El archivo HTML posee un script camuflajeado que solicita la descarga de un archivo PDF manipulado que explota cierta vulnerabilidad en Acrobat Reader (aparentemente en la versión 9.3), el codigo que se ejecuta tras explotar la vulnerabilidad descarga y ejecuta un archivo "EXE". Una vez este archivo se ejecuta, periódicamente nuestro equipo infectado envia informacion hacia varios servidores (intenta varios servidores en caso de que no pueda conectarse al primero de donde descargo el malware). La información que transmite el equipo infectado es aparentemente encriptada. Bueno, los mas avanzados dirán que esto no es nada nuevo, que es la forma tradicional en la que trabajan los malwares hoy en día, eso es cierto, pero creo que es interesante que nosotros mismos podamos ver por lo menos por arriba como se realizan estas actividades. 

A continuación algunas recomendaciones que entiendo nos pueden ayudar a evitar que este tipo de malware infecte a nuestros usuarios:

  1. Educar a los usuarios para que reconozcan este tipo de amenazas y entiendan el riesgo que estos traen consigo, enseñarlos a no abrir o ejecutar ningún archivo anexo que venga en un correo no solicitado o que no reconozcan la dirección o el remitente, y claro, a contenerse las ganas de hacer clic en todos los "OK" que se les presenten.
  2. Mantener los sistemas operativos y aplicaciones actualizadas, el PDF que descarga el archivo HTML no ejecuta el código que descarga el ejecutable si se abre con versiones recientes de Acrobat Reader.
  3. Filtrar el trafico de salida lo mas que se pueda, en el caso de este malware, intenta hacer conexiones a un puerto no standar (8080), muy pocas aplicaciones que utilicemos utilizaran este puerto, para las que lo usen podemos permitirlo, pero para la mayoría del trafico solo se debería permitir la conexion a traves de proxy y a los puertos standar (80 para HTTP y 443 para HTTPS).
  4. Restringir en lo posible el acceso a Internet de los usuarios, en el caso de que un usuario reciba y ejecute un archivo como este, si solo tiene permiso a navegar en ciertos sitios, este malware no se ejecutaria ya que no podría descargar ni el PDF ni el Ejecutable.
  5. Por ultimo tener un antivirus y mantenerlo actualizado, tanto en los clientes como en nuestro servidor de correo. Lo dejo de ultimo porque como pudimos ver en este ejemplo muy pocos antivirus (solo 4 de 42) pudieron detectar el archivo malicioso, por lo que no podemos apostar toda la seguridad de nuestro sistema a los antivirus.
Bueno, espero como siempre que esto les haya parecido interesante y sobre todo que les haya servido de ayuda.

Hasta el Próximo!

jueves, 10 de mayo de 2012

Convertir una Presentacion de PowerPoint en ScreenSaver

Recientemente he estado trabajando en unos tips de seguridad para los usuarios en la compañía donde trabajo, como parte de un pequeño programa de "Security Awareness". La presentación es corta y básicamente incluye unos consejos sobre como manejar el correo de una forma segura y tener precaución a la hora de recibir correos, especialmente correos que contengan archivos anexos. El caso es que aparte de la presentación, pensé también en crearles un Screen Saver con los mismos tips para que cada 5 o 10 minutos de inactividad la computadora empiece a mostrárselos, y ver si así (aunque sea de manera subconsciente) asimilen y apliquen algunos de estos tips, por lo que empecé a buscar la forma de convertir mi presentación (con unas cuantas modificaciones para que se vea un poco animada) en Screen Saver, o ".scr". La primera opción que se me ocurrio fue utilizar el Screen Saver que trae Windows por defecto (My Pictures Slideshow) que te permite utilizar fotos que tengas en una carpeta. Para esto es necesario primero guardar todos los Slides de tu presentación como archivos JPG, esto se hace de la siguiente manera:
  1. En PowerPoint, hacemos clic en "Save as"
  2. Elegimos la opción "Other Formats"
  3. Seleccionamos entonces "JPGE File Interchange Format (*.jpg)
  4. Luego seleccionamos "Every Slide" y seleccionamos la carpeta donde guardaremos los slides
Luego, tomamos esos esos JPG's y los copiamos a una carpeta compartida en la red a la cual los usuarios que queremos que tengan este screen saver deben tener acceso (solo de lectura). Si la computadora tiene Windows XP, nos vamos a la sección de Screen Savers y seleccionamos el screen saver llamado "My Pictures Slideshow" y hacemos clic en "Settings", aquí nos saldrán las opciones como el tiempo en que las fotos cambiaran, el tamaño entre otras, haremos clic en el botón "Browse" y nos moveremos al icono "My Network Places" y buscamos el equipo que contiene la carpeta compartida con los JPG que grabamos de nuestro PPT y  hacemos clic en OK. Con esto ya tenemos un Screen Saver con los datos de la presentación.

Pero este método, aunque es sencillo, tiene un par de inconvenientes. Lo primero es que se pierde cualquier animación que hayamos incluido en la presentación, como efectos en las letras o algún sonido que contenga la presentación, lo que puede tornar nuestro screen saver un poco aburrido (que de hecho seguro que lo sera para la mayoría de los usuarios) Tambien tiene el inconveniente de que hay que configurarlo usuario por usuario, porque este screen saver no tiene una forma de configurarlo via una GPO por ejemplo (al menos, yo no encontré la forma, quizás a se pueda a traves del registro). La mejor forma para mi es usar un programa que haga la conversión de PPT a SCR porque asi traerá las animaciones y sera mas fácil copiarle el archivo a las computadoras e indicar por GPO que usen ese screen saver. Luego de una larga búsqueda en Google, donde encontré muchisimos programas que lo hacen, la gran mayoría requería licencia y los que me daban el Demo entonces incluían una marca al Screen Saver, encontré uno sencillo y lo mejor, no me incluía ninguna marca o limitaba la presentación, llamado "Presentation to Screen Saver Converter for PowerPoint 1.0" que pueden descargarlo (o comprarlo) desde este link

El programa es bastante sencillo, solo hay le decimos donde esta nuestra presentación, agregamos algún archivos de audio si queremos, y le indicamos donde queremos guardar nuestro nuevo screen saver y listo. A continuación un "print screen" de la ventana del programa:

Powerpoint to Screen Saver

Una vez hemos incluido estos datos hacemos clic en "Convert" y ya tendremos nuestro Screen Saver con los efectos y animaciones que hayamos incluido en nuestra presentación y podemos distribuirlo.

viernes, 12 de noviembre de 2010

Fin de Semana en el Centro de Servidores (Parte 2: Acceso SSH y Backup de VMWare ESX 3i)

Bueno, siguiendo con la historia que empecé en el pasado post, les voy a hablar ahora de como hacer Backups o copias de seguridad de las maquinas virtuales en VMWare ESX 3i. Como les había dicho en el post anterior, una vez había encontrado que lo que estaba provocando el problema de performance en el servidor era el hecho de que estaba utilizando discos SATA en lugar de SAS, debía reemplazar los discos del equipo, por lo cual necesitaba sacar primero los archivos de las maquinas virtuales para luego copiarlas nuevamente al servidor una vez haya reemplazado los discos. A continuación los pasos:
  • Habilitando SSH en VMWare ESX 3i
Para poder hacer backup de las maquinas virtuales en ESX 3i, debemos primero habilitar el acceso SSH, para esto:
  1. En la consola del equipo con VMWare ESX (en mi caso el servidor al que le debía reemplazar los discos), presionamos ALT+F1 y luego escribimos "unsupported".
  2. Nos presentara una advertencia y un promp donde introduciremos el password de "root" (este es el password que utilizamos con el cliente de VMWare para crear las maquinas virtuales y demas funciones).
  3. Una vez hayamos introducido el password de root, editamos el archivo inetd.conf. Para esto ejecutamos "vi /etc/inetd.conf".
  4. Dentro de este archivo buscaremos la linea que empieza con #ssh y presionamos la tecla "Insert", luego nos ponemos enfrente del signo de numero ("#") y presionamos backspace para borrarlo.
  5. Cuando lo hayamos borrado, presionamos la tecla "ESC" y luego escribimos ":wq" y presionamos "ENTER" para salvar los cambios y salir del editor. En caso de que hayan cometido algún error en la edición y quieran salir sin guardar cambios, en lugar de escribir ":wq" pueden escribir ":q!" para salir del editor sin guardar los cambios.
  6. Ejecutamos entonces "/sbin/services.sh restart" y ya con esto hemos habilitado SSH en nuestro VMWare ESX 3i
Para hacer la copia de las maquinas virtuales que residían en el equipo utilice un programa llamado Veeam FastSCP que permite hacer copias atraves de SSH, es rápido, fácil de usar y lo mas interesante es que es gratis!! Pueden descargarlo haciendo clic aqui, (necesitaran registrarse). El proceso de instalación es bastante sencillo, lo que deben tener pendiente es que en la instalación le solicitara las credenciales de un usuario con el privilegio "Log on as a Service", el cual podrían o agregarselo a su propio usuario o crear un nuevo usuario y asignarle ese permiso, de esta forma esta aplicacion correra bajo las credenciales del nuevo usuario. Una vez hayan instalado y ejecutado Veeam FastSCP les abrirá la siguiente ventana:


Para agregar nuestro equipo VMWare y empezar el proceso de copia, hacemos clic en el icono "Add Server" (encerrado en el circulo rojo en el gráfico). En la siguiente ventana escribimos el nombre o dirección IP del equipo donde se encuentran las maquinas virtuales. Como podrán ver nos presenta varias opciones de Servidor: VirtualCenter, ESX o ESXi y también Linux Server, ya que podríamos usar este programa como un "scp" grafico y copiar datos desde cualquier equipo Linux a traves de SSH. En mi caso, y seguro también el de ustedes, elegiremos "ESX or ESXi host" y hacemos clic en Next.


Luego tenemos que escribir el username y password para conectarnos al equipo VMWare, el cual es el mismo que utilizamos para conectarnos al equipo via la consola y que utilizamos para logearnos y habilitar SSH.

Si escribimos bien las credenciales de "root", al hacer clic en Next el programa intentara conectarse al equipo y veremos una ventana como la siguiente, la cual nos muestra un resumen de la información del equipo al cual estamos conectado (donde se encuentran las VM's), diciendo el nombre o IP del equipo, el tipo de servidor y versión, el usuario con el cual estamos conectados y el puerto. Seleccionaremos entonces en esa ventana el cuadro "Connect when I click Finish" y luego hacemos clic en Finish.


Ya que hemos agregado nuestro equipo VMWare a Veeam FasSCP, lo único que tenemos que hacer es movernos hacia los archivos de la maquina virtual que queremos copiar y moverlos hacia nuestra computadora, como cuando transferimos archivos vía FTP o SCP. Cuando la ventana de Veeam FastSCP abre nos mostrará a mano izquierda el servidor VMWare que hemos agregado y los discos que posee nuestra computadora, hacia los cuales podemos arrastrar los archivos de las VM's.


Como se puede ver en el grafico, el programa nos presenta debajo del nombre del servidor las maquinas virtuales presentes. En el caso del server del ejemplo, tiene 2 maquinas virtuales. A mano derecha nos presenta un archivo representando el "Data Storage" (vmDisk1) que fue creado en VMWare. Solamente tenemos que arrastrar las carpetas con el nombre de la maquina virtual que queremos hacia uno de nuestros discos y listo, al finalizar ya tenemos nuestro backup.

Y bueno, volviendo a mi historia, el proceso descrito anteriormente me tomo varias horas porque una de las maquinas virtuales que estaba copiando tenia mas de 1TB y la otra algunos 80GB. Luego de concluir esta fase y tener mis maquinas virtuales seguras en una unidad externa, procedí entonces a apagar el servidor, reemplazar los discos SATA por los nuevos SAS y crear la nueva unidad RAID10 donde copiaría devuelta las maquinas virtuales. En el próximo post les diré entonces como crear estas unidades en los servidores Dell PowerEdge 2950 y el proceso de restauración de las maquinas virtuales. Espero como siempre que esto les haya sido de utilidad.

miércoles, 3 de noviembre de 2010

Fin de Semana en el Centro de Servidores (Parte 1: Desempeño de discos en Linux)

Hola nuevamente!
Lo que les voy a narrar a continuación lo hago con la intensión no solo de desahogarme y de  tener escrito las cosas que hice ese fin de semana en caso que tenga que repetirlo, sino también para evitarles a ustedes algunos de mis errores. Si les contara todo en un solo post seria un cuento demasiado largo, por eso la dividire en base a las tareas principales que realice y que creo podrían ser de utilidad para ustedes, por ejemplo, en este les hablare acerca del monitoreo del desempeño de equipos Linux,  en el proximo como hacer un Backup de las maquinas virtuales de VMWare ESX 3i, y quizás algunas otras cosas que espero les sea de importancia. Es posible que en algún momento necesiten hacer lo que yo estuve haciendo, aunque seguramente ustedes tienen mejor planeacion que yo y mas experiencia. Pero quizás haya algún otro "Tipo de Informática" que necesite esta información, así que aquí les va.

Recientemente, tuve uno de esos "fines de semana con todo pago" en el cuarto de servidores haciendo un upgrade a uno de los servidores, bueno, quizás se podría decir a 3 servidores, porque era un servidor de Virtualizacion en el cual residen 2 maquinas virtuales. El upgrade consistía en reemplazar los 6 discos duros SATA a 7.2K rpm de este servidor por discos SAS 15K rpm debido a un problema de Performance que se venia presentando hacía unos meses atras. Este upgrade también incluía cambiar el nivel RAID que estábamos utilizando (RAID 5) por RAID 10 para obtener todavía mejor desempeño de los nuevos discos. El sistema operativo que utilizamos para la virtualizacion es VMWare ESX 3i, el cual esta instalado en un stick USB interno del servidor, por lo que la unidad RAID se utiliza para almacenamiento, o sea, crear en ella las maquinas virtuales. Para hacer este upgrade debía primero hacer un backup de las maquinas virtuales, luego reemplazar los discos, crear la nueva unidad RAID10 en el servidor, restaurar los backups de las maquinas virtuales a la nueva unidad RAID, arrancarlas y listo! así de simple. y habia que hacerlo en ese fin de semana, de viernes a domingo a mas tardar. Pero como siempre aparece Murphy y sus leyes y con ellas las complicaciones, además claro de los errores de un "Tipo de Informática" inexperto.

Creo que seria bueno empezar desde el principio y contarles como conseguí mi ticket para este fin de semana. Hace poco mas de un año, se decidió comprar un servidor en la compañía donde trabajo. Este servidor se utilizaría básicamente para alojar un Mail Server, pero se decidió también que este mail server corra virtualizado sobre el equipo que se iba a adquirir, asi que debia cotizar y presentar una propuesta de servidor para estos fines. Bueno, me decido por un Dell PowerEdge 2950 III, con 2 procesadores Intel Xeon Quad Core, 16 GB de RAM y 6 discos SATA a 7.2 K rpm, y esto ultimo fue lo que pago el fin de semana que da origen a este post. Para disminuir el costo del servidor y hacer el presupuesto un poco mas atractivo para la Gerencia, me decidí por los discos SATA en lugar de los discos SAS, claro, en ese tiempo no le daba mucha importancia a los discos y a su velocidad, en ese momento me preocupe mas por el espacio de almacenamiento y el presupuesto. El software que se iba a utilizar como servidor de Email es un programa llamado Kerio MailServer, es un software de colaboración, parecido a Microsoft Exchange, que permite a los usuarios tener sus buzones sincronizados con el servidor a través de un programa cliente que trabaja junto a Microsoft Outlook. Este tipo de softwares (Mail servers) requieren de mucha velocidad de acceso a los discos en el servidor, porque realiza muuuchas operaciones I/O (o lectura/escritura) en los discos, y aquí es donde radica la diferencia entre los discos SATA y SAS: los discos SAS ofrecen mucho mas operaciones I/O y a mayor velocidad (15,000 revoluciones por segundo) que los discos SATA (7,000 revoluciones), y también tienen un tiempo de vida mas largo. Los discos SATA pueden utilizarse en servidores, digamos de Backups, o servidores que demanden de mas capacidad de almacenaje que velocidad. Así que ahí esta la primera lección de este post, elegir bien el hardware que se utilizara tomando en cuenta la función que el servidor desempeñara.
  • Determinando el Problema
Comando top

Ahora se que mi problema eran los discos que estaba utilizando, pero en esos días no tenia una idea clara del problema, solo sabia que el trabajar con emails se había puesto bastante lento. Cada vez que un usuario intentaba moverse de folder en el Outlook, o simplemente abrir un mensaje, moverlo, borrarlo, etc, tenían que esperar varios minutos para poder realizar la tarea. Así que empecé a revisar que estaba pasando en el servidor, con la herramienta que empecé fue el muy conocido comando "top",este comando nos muestra en tiempo real todos los procesos que que esta ejecutando el servidor y nos muestra, entre muchas otras cosas, el porciento de CPU y memoria que estos están utilizando. A continuación les muestro lo que me devolvió "top" cuando lo ejecute en el servidor:


Comando top

Este screenshot fue tomado en un momento en que el servidor estaba bastante ocupado (y bastante lento). Como pueden ver el comando top muestra todos los procesos corriendo así también como los recursos que están consumiendo (en cuanto a memoria y procesador), también muestra el PID de los procesos. Como se imaginaran el proceso "mailserver" es el correspondiente al servidor de email que esta corriendo en el servidor y como se ve en el gráfico esta consumiendo el 191% del CPU. Al principio pensé que el problema estaba aquí, en el quizás la capacidad de procesamiento del servidor no era suficiente para el software, pero vi que en otras ocasiones el uso del CPU estaba bajo y de todas formas había lentitud en el servidor. Así que seguí buscando e incluso envié el screenshot al foro de usuarios del Mailserver y alguien me señalo algo en lo que no me había fijado en la salida de este comando; el "Load Average" (parte superior derecha del gráfico). Si se fijan este indicador muestra un "porcentaje de carga" de 68. Comencé a investigar en Internet para ver que significaba este medidor y mas o menos lo que pude entender es que esto muestra el porcentaje de procesos en cola esperando por recursos del sistema, por ejemplo, esperando tiempo del CPU, esperando acceso al sistema de discos, etc. y que lo recomendable es que se encuentre por debajo del 10%. Si se fijan este medidor esta separado en 3, lo cual expresa el valor del momento actual, la carga en los próximos 5 minutos y luego en los próximo 15 minutos. En el gráfico se ven los números 68.37, 61.71 y 55.27. Una lectura alta en ese medidor generalmente indica un cuello de botella, o sea, que algún recurso del sistema esta, digamos, quedando pequeño o que no esta respondiendo a tiempo las solicitudes, por esta razón empecé entonces a monitorear la actividad en el sistema de discos para ver si el "cuello de botella" se encontraba en los discos.

Comando iostat

Fue entonces cuando empecé a utilizar la herramienta "iostat". El comando iostat brinda "las métricas de desempeño de las interfaces de almacenamiento". Este comando, entre otras informaciones, nos muestra el porcentaje de utilizacion del disco o partición (%b), el tiempo que tarda en responder a una solicitud (service time o svc_t),  y la longitud promedio de la cola de solicitudes para el dispositivo monitoreado (queue). Ejecute iostat con las siguientes opciones:

# iostat sda7 -x 3

Esto le indica a iostat que nos muestre información extendida (-x) de la partición sda7 y que muestre la información en intervalos de 3 segundos hasta que cancelemos el comando con CTRL-C. A continuación lo que me mostró iostat al ejecutarlo en el servidor:

Comando iostat

Como se puede ver en el gráfico, iostat me mostró que el cuello de botella se encontraba realmente en el sistema de discos: el porciento de utilizacion (%b) no bajaba de un 100%, la cola de procesos siempre se encontraba por encima de los 100 (actualmente difícilmente llega a 10). Claro, esta lectura también podría indicar que uno de los discos del arreglo (RAID5 en ese momento) estaba defectuoso o algún problema en la partición, por lo que primero me asegure de que este no sea el problema (usando fsck). Al comprobar que tanto los discos como la partición estaban funcionando correctamente, solo quedaba la opción de hacer un upgrade al sistema de discos reemplazando los discos actuales, SATA 7.2K RPM, por discos SAS a 15K RPM y gracias a la información provista por iostat ya tenia las pruebas para solicitar el cambio.

Creo que la moraleja es que a la hora de hacer una recomendación, debemos siempre recomendar lo óptimo para el trabajo y no basarnos solamente en lo económico, debemos presentar, claro esta, la justificacion de porque se recomienda tal o cual dispositivo (o servidor en este caso) y las consecuencias de inclinar la balanza solamente por el lado económico, que fue el error que yo cometí. En caso de que la gerencia o las personas que deben tomar la decisión se inclinen por la solución mas barata pero no la mas óptima para el trabajo, bueno, eso ya debe quedar a responsabilidad de ellos, pero por lo menos nosotros cumplimos con recomendar el equipo adecuado, y hay que tratar de hacer la recomendación por escrito como evidencia para cuando explote el problema :D. Claro, a fin de cuentas de todas formas nos tocara a nosotros, los "Tipos de Informática", cargar con las consecuencias de su elección, pero por lo menos podremos decir (aunque sea solo en nuestra mente) "Se lo dije!!"

Bueno, todo esto fue lo que motivo que me pasara el fin de semana aquí en el cuarto de los Servidores haciendo el trabajo de Upgrade de los discos. En los próximos post les contare entonces el proceso de cambio y algunos problemas que se presentaron. Espero como siempre que esto les haya sido de provecho y que no hayan perdido su tiempo leyendome. Hasta el próximo!!

(Fin de Semana en el Centro de Servidores Parte 2)

domingo, 7 de febrero de 2010

Manejando los Servicios de Windows desde la consola con Sc

Vamos a hacer una pequeña pausa en la instalación de nuestro “Proxy Linux con Autenticación en Active Directory” del que hemos estado hablando en los últimos 3 post, y vamos a ver una utilidad de Windows que nos permite manejar los servicios de este. Y cuando digo "manejar" no me refiero a solo iniciarlos o detenerlos como hacemos con el comando "net start" y "net stop", sino también a listar todos los servicios, modificar su forma de inicio e incluso modificar la acción a tomar en caso de que el servicio presente algún error y hasta la descripción del servicio, en fin, todo lo que podemos hacer con los servicios desde la consola grafica (services.msc), pero desde una ventana de comandos.

SC es un comando utilizado para comunicarnos con el administrador de servicios, lo que nos permite manejar los estados de los servicios rápidamente. También tiene la ventaja de poder integrarlo en scripts. SC contiene también una serie de subcomandos, los cuales se utilizan dependiendo del tipo de acción que se realizaran en el servicio. Para ver el listado ejecutamos “sc /?”, al lado de los subcomandos veremos una descripción de lo que hace el comando.



Ejemplos de SC
Vamos a ver ejemplos de algunas de las funciones que podemos hacer con “Sc”. Vamos a empezar con el uso más simple, iniciar o detener un servicio. Para este ejemplo utilizaremos el servicio “Spooler”, para detenerlo utilizando “Sc”, ejecutamos:

C:\> sc stop spooler
Y si queremos iniciarlo:

C:\> sc stop spooler
También con “Sc” podemos conseguir el listado de los servicios de nuestro sistema y sus estados actuales, para lo utilizamos:

C:\> sc query
Esto nos devolverá el siguiente resultado:

Como pueden ver, en este listado nos aparece el nombre del servicio (Service_Name) y, digamos, el nombre completo del servicio o “Dsiplay_Name”. Para trabajar con SC, usaremos el nombre del servicio o “Service_Name”. Podemos también conseguir el estado de un servicio en particular usando, por ejemplo, “sc query spooler” en caso del servicio Spooler. También podemos exportar esta lista de servicios a un archivo .txt usando: “sq query > lista.txt”. Otro uso de “Sc” es cambiar la forma de inicio del servicio, o sea, si queremos hacer que el servicio inicie al bootear el equipo, hacemos:
 
C:\ sc config spooler start= auto
 
Bueno, creo que con esto ya tienen una idea de lo que pueden hacer con “Sc”, esto es solo lo básico que podemos hacer. Espero que esto les haya sido de utilidad, en el próximo post volveremos al tema de prepara el Web Proxy con Squid, asi que hasta el próximo!

sábado, 21 de noviembre de 2009

Eliminando Archivos y Carpetas de forma Segura con SDelete

En esta ocasion les comentare sobre otra herramienta desarrollada por Mark Russinovich de Systernals: SDelete (Secure Delete). Como su nombre lo indica, esta herramienta nos permite borrar de forma segura archivos o carpetas, y cuando digo de forma segura me refiero a que no pueden ser recuperados utilizando programas de recuperacion de datos ya que SDelete se encarga de sobreescribir los sectores utilizados por el archivo en el disco con unos (1) o ceros (0).

Cuando eliminamos un archivos o carpeta de la papelera de reciclaje, el sistema operativo no lo elimina inmediatamente, el archivo es marcado como eliminado y no puede ser accedido por el usuario, pero la informacion del archivo aun reside en el disco duro. Al ser marcados como borrados, el sistema de archivos puede entonces en cualquier momento utilizar el espacio fisico (sectores) que esta utilizando este archivo o carpeta eliminado para almacenar nuevos archivos. Por esta razon es que, si tenemos un archivo con informacion confidencial el cual queremos eliminar de un disco de forma tal que este no pueda ser recuperado, se debe borrar sobreescribiendo los sectores que este utiliza de "1" o "0" y esto es precisamente lo que hace SDelete. La forma de uso de SDelete es super sencilla, no requiere instalacion ya que como las demas herramientas de Mark Russinovich es un archvo ejecutable el cual podemos copiar en cualquier parte de nuestro disco (por ejemplo en C:\tools\) y luego agregar esa ruta en el PATH para asi poder invocarlo desde cualquier ubicacion en una ventana de comandos. Si queremos por ejemplo eliminar la carpeta "C:\carpeta" solo tenemos que hacer lo siguiente:

C:\sdelete -s carpeta

La opcion -s le indica a SDelete que debe hacer una eliminacion recursiva, o sea, que eliminara el folder "carpeta" y todos los archivos y sub-carpetas que se encuentren dentro de esta. Para mas informacion sobre esta como funciona esta herramienta y para su descarga pueden hacer clic en este link. Espero que esta informacion les haya resultado util.

miércoles, 26 de agosto de 2009

Dejando a un lado los Privilegios

Hoy en día, navegar y estar conectado a Internet puede representa un gran riesgo de seguridad, ya que por el simple hecho de visitar un sitio Web podemos quedar infectados con algún Maleware y sin darnos cuenta acabamos siendo parte de una Botnet. Y esto no se queda en la navegación en Internet, podemos también recibir un correo con algún archivo PDF, especialmente manipulado, que explote alguna vulnerabilidad en nuestro lector de PDF y es el mismo caso. Pero también podría ser un documento Power Point, Word, o cualquier otro tipo de archivo, incluso un archivo MP3.

Las vulnerabilidades que se descubren en estas aplicaciones (que últimamente son el mayor vector de ataque) generalmente permiten “ejecución de código”, o sea, que el atacante puede manipular un documento o sitio web e insertar en él código que será ejecutado en el computador del usuario si el programa con el que este lo abre es vulnerable. Existe un principio de seguridad que nos dice que debemos utilizar cuentas de usuarios con el menor privilegio posible, es decir, cuentas "limitadas" o "sin privilegios administrativos". Utilizar nuestro equipo con una cuenta de usuario limitada nos ayuda a disminuir considerablemente el riesgo de infección de virus y Maleware ya que, al abrir algún archivo el contenido del mismo se ejecuta bajo el contexto de seguridad del usuario logeado, es decir, con los privilegios del usuario que lo invoca. Por esto, si nuestro usuario tiene privilegios administrativos en el equipo, el atacante podría ejecutar o instalar cualquier programa en nuestro sistema. Y peor aun si nuestro usuario tiene privilegios de “Administrador de Dominio”.

Utilizar cuentas con privilegios administrativos, sumado a no mantener los sistemas operativos y aplicaciones actualizadas son, a mi entender, las principales razones del porque las Botnet y el Spam (ya que a veces utilizan las botnet para envío masivo de SPAM) continúan creciendo. En los ambientes Unix y Linux esto no es nada nuevo, el usuario “root” es el “todopoderoso” y las demás cuantas que se crean son simples usuarios. Si se quiere se puede elevar el privilegio de un usuario creado al nivel de root, pero por defecto se crea sin privilegios. El caso de Windows es algo diferente: Al instalar el sistema operativo la cuenta “Administrador” se crea por defecto y se nos pide un password para esta, luego se nos pide un nombre para una cuenta de usuario, pero esta es creada, por defecto, con privilegios administrativos.


Cuentas limitadas en Windows XP (utilizando “runas”)

Aunque es lo recomendable, a veces resulta un poco tedioso utilizar en el día a día una cuenta limitada y alejarnos de nuestro privilegio de Administrador, sobre todo cuando en nuestro trabajo necesitamos con frecuencia instalar/desinstalar programas, hacer modificaciones en el registro, etc., en algunos casos para realizar algunas de estas tareas tendríamos que cerrar nuestra sesión y entrar con un usuario Administrador. Para evitar esto podemos utilizar el comando “runas”, este comando nos permite ejecutar comandos o programas en el contexto del usuario que especifiquemos, por ejemplo, Administrator. También podemos utilizar runas en el entorno grafico haciendo clic derecho sobre un programa o aplicación y moviéndonos en el menú hacia “Run As”, el cual nos permitirá indicar el usuario con el cual queremos ejecutar la tarea. Por ejemplo, si queremos abrir una consola de comandos para ejecutar desde ella comandos o aplicaciones con privilegios de administrador, ejecutamos el siguiente comando:
runas /user:DOMINIO\USUARIO cmd.exe

Donde “DOMINIO” corresponde al nombre del dominio al que pertenece la cuenta y “USUARIO-ADMIN” es el usuario con privilegios con el cual invocaremos la consola, por ejemplo, Administrador. Cualquier comando o aplicación que llamemos desde esta consola se ejecutara con los privilegios del usuario que especificamos, de esto forma podemos ejecutar desde aquí, por ejemplo, regedit.exe (editor del registro), netsh, etc. En caso de que, por ejemplo, necesitemos ejecutar alguna utilidad del Panel de Control (Control Panel) como “Add/Remove Software” y alguna Política de Grupo (GPO) nos prohíbe el acceso a esta utilidad. Podemos ejecutar de forma grafica “runas” haciendo clic derecho encima del archivo “appwiz.cpl” y luego moviéndonos hacia “Run As” e indicando un usuario con privilegios para ejecutar esta utilidad (el archivo “appwiz.cpl” se encuentra en “c:\windows\system32\”, mayormente las utilidades del Control Panel se encuentran en esta carpeta con extensión “.cpl”).

· Usuario Limitado en Windows Vista (User Account Control)

Como vimos anteriormente, aun con “runas” puede resultar un poco tedioso trabajar con una cuenta limitada. En Windows Vista, Microsoft intentó mejorar esto con el (odiado por muchos) “User Account Control”. La idea de UAC es precisamente controlar las actividades del usuario y programas en el sistema requiriendo la debida autorización antes de realizar alguna tarea que necesite la elevación de privilegios. UAC resulto molesto por los constantes mensajes requiriendo al usuario elevación de privilegio. El problema es que aunque el usuario tuviera privilegios de Administrador (todavía en Windows Vista cuando se instala el sistema el usuario que se crea tiene privilegios administrativos) UAC de todas formas informaba al usuario que para realizar tal o cual tarea necesitaba elevar sus privilegios, a lo que el usuario solo tenía que hacer clic en “Aceptar” y eso era todo. Por eso muchos optaban por desactivarlo y en algunos casos hasta desinstalar Vista y volver a XP.

Estos problemas con UAC se han disminuido considerablemente a partir del SP2 de Windows Vista. Ahora si nuestro usuario tiene privilegios administrativos en el equipo podemos realizar cualquier tarea sin que UAC nos solicite elevación de privilegios (porque ya lo tenemos). Ahora con UAC es más fácil dejar a un lado los privilegios administrativos y vestirnos de usuarios comunes y simples. UAC nos permite utilizar nuestra cuenta limitada y en caso de que necesitemos realizar alguna tarea como instalar/o desinstalar un programa, utilizar alguna utilidad del “Administrative Tools” o cualquier otra tarea que requiera privilegios elevados, el sistema nos pedirá las credenciales correspondientes, evitándonos la fatiga de tener que utilizar “runas” para llamar dicha utilidad. Si utilizan Windows Vista, les recomiendo que (si no lo han hecho) descarguen e instalen el Service Pack 2 desde este enlace y habiliten nuevamente UAC (que me imagino lo tienen desactivado) para que comprueben ustedes mismos las mejorías. Y también claro, que dejen a un lado los privilegios administrativos y se vistan del más simple y “des-privilegiado” de los usuarios y solo utilicen las cuantas administrativas para ciertas tareas. Al principio puede resultar un poco incomodo, pero valdrá la pena acostumbrarse. Bueno, como siempre espero no haberles hecho malgastar su tiempo con este post y que esta información les haya sido de provecho.

viernes, 21 de agosto de 2009

Configuracion TCP/IP a traves de linea de comandos usando "Netsh" (Windows)

En ocaciones necesitamos hacer modificaciones a la configuracion TCP/IP de un equipo (local o remotamente) o un grupo de equipos, como por ejemplo, cambiar la dirección del DNS, Gateway, Subnet Mask, etc, tambien puede darse el caso que necesitemos cambiar, agregar o eliminar alguna regla en el Firewall de Windows, ya sea para abrir un determinado puerto o cerrarlo. Todas estas configuraciones podemos realizarlas desde la comodidad de nuestra ventana de comandos (para los que nos gusta trabajar desde la consola) utilizando la herramienta "NETSH". Netsh (o "Network Shell") se utiliza a través de la linea de comandos y permite visualizar y modificar la configuracion de red de un equipo local o remoto y viene integrada en los sistemas operativos Windows a partir de Windows XP. Podemos utilizar Netsh en scripts que al ser ejecutados modifiquen la configuracion IP de un determinado equipo o grupo de equipos.


A continuación algunas de las tareas básicas que podemos hacer con Netsh:

* Configurar IP estatica: En este ejemplo le asignaremos una dirección IP estática a la interface de red "Local Area Connection", la IP que le asignaremos sera "192.168.1.10", subnet mask "255.255.255.0", Gateway "192.168.1.1" y la metrica "1"



netsh interface ip set address "local area connection" static 192.168.1.10 255.255.255.0 192.168.1.1 1

* Configurar DNS primario: En el ejemplo anterior solo agregamos la direccion IP del equipo, en este agregaremos el DNS primario (192.168.1.2) para esta conexion:

netsh interface ip set dnsserver "Local Area Connection" static 192.168.1.2 primary

* Configurar IP usando DHCP: En este ejemplo configuraremos la tarjeta de red para que reciba de la configuracion IP desde un servidor DHCP.


netsh interface ip set address name="Local Area Connection" source=dhcp

* Abrir puertos en el Firewall: En este ejemplo configuraremos el Firewall de Windows para que permita conexiones VNC al equipo en el cual estamos haciendo los cambios, este protocolo utiliza el puerto TCP 5900:
netsh firewall add portopening TCP 5900 "VNC"


Esta es la forma basica y mas permisiva de abrir un puerto en el Firewall ya que permite acceso a cualquier equipo establecer una conexion con este equipo a traves de este puerto. Podemos crear una regla mas detallada en el Firewall tambien con Netsh especificando un rango de direcciones IP que podrán conectarse a este equipo (generalmente el rango IP de la red interna), podemos también especificar el protocolo a usar (TCP o UDP). Para esto usamos el siguiente comando:

netsh firewall add portopening protocol=tcp port=5900 name=VNC mode=enable scope=custom addresses=192.168.1.0/255.255.255.0


Estos son solo usos básicos de Netsh, si quieren mas información acerca de este y que mas se puede hacer con el visiten este link. Es muy útil también utilizarlo junto con PsExec, así podemos conseguir una consola remoto en un equipo y ejecutar desde esta los comandos de Netsh. Bueno, espero que esto les sea de utilidad y que hayan perdido su tiempo en este Blog, nos leeremos luego!!.