Mostrando las entradas con la etiqueta tecnica. Mostrar todas las entradas
Mostrando las entradas con la etiqueta tecnica. Mostrar todas las entradas

miércoles, 17 de octubre de 2012

Crónica de medio fracaso, u otra forma de instalar windows 7 desde el pendrive.


“Cuando no se tienen recursos, más vale tener opciones” 
(Proverbio árabe que acabo de inventar)

Este blog empezó llamándose “Informática del subdesarrollo”, para tiempo después pasar a ser “Subdesarrollados”, principalmente porque no me gusta la palabra “informática”. Como sea, siempre se trató de divertirse con poca plata y algo de tiempo: cosas que se pueden hacer con un pendrive y material que se descarga desde la red, distribuciones de linux que aparte de ser libres eran free as in free beer; circuitos armados con tres leds y anécdotas sin copyright.

Y en lo técnico, se trató de buscar herramientas novedosas, divertidas y sencillas para hacer las cosas que tenemos que hacer todos (o casi todos) los días. Novedosas, sencillas, divertidas y agregaría: redundantes.
Porque está muy bien conseguir la killer app (o killer tool) que nos soluciona siempre-de-la-misma-manera un problema X, ahorrándonos tiempo (y plata, porque "el tiempo..." etc); pero es todavía mejor tener a mano un par de no tan bonitas y no tan sencillas herramientas para el momento en que nuestra killer app (o killer tool) hace agua y nos deja a gamba.

En eso andaba pensando esta mañana (mentira, pero como enganche sirve) cuando me encontré en la necesidad de instalar un windows 7 cuya iso yo tenía en mi pendrive en una máquina que no tenía sistema. 

Lo que tenía

  • Mi pendrive de trabajo: 16gb (2gb libres)

En el pendrive: 


Lo que NO tenía: 

  • Un CD o DVD virgen.
  • Un pendrive que pudiera borrar. 
  • Una máquina extra.


Mi idea original era bootear con el hirens 10, correr el WinNTSetup, apuntarlo a la iso (que la versión 2.3 clama poder abrir) y dedicarme a tomar mate mientras corría la instalación. Pero a veces las cosas no son tan fáciles en la realidad como en nuestra imaginación, y me topé con que el minixp no veia el disco de la máquina host. Malditos controladores sata. Reinicié con DART70x86, pude ver los discos pero al intentar cargar la iso me choqué conque el soporte no funcionaba tan bien como decía, o no era tan intuitivo como yo pensaba.
Entonces voy a la carpeta de wintools del hirens 15 (el menú no arrancó por falta de vb6) y con 7zip extraigo el contenido en una carpeta graciosamente llamada W7. Trato de correr el WinNTSetup apuntando al archivo install.wim, me acepta y reconoce la fuente, seteo los discos, le doy play y ni bien empieza se quiebra con un error “1” que no me deja salida.
Terco, intento con el NT6.x fast installer, un instalador que es un cmd que por lo que dice extrae el install.wim a la fuerza e instala el bootsector a lo guapo. Me desayuno en ese momento que la descarga no incluye (por cuestiones de copyright) un ejecutable llamado imagex.exe que pertenece a WAIK, y se me trunca la carrera.

Derrotado, sintiéndome del siglo pasado voy a buscar un CD para grabar la imágen desde el minixp con algún programita que seguro tengo por ahí (InfraRecorder, o BurnISO), cuando me acuerdo de Grub4dos.

Copio a la raíz del pendrive el contenido de la carpeta W7 (el archivo bootmgr y las carpetas boot y sources), reinicio, voy a la cosola de grub4dos y escribo:

find --set-root --ignore-floppies /bootmgr

boot

Pongo “instalar”, y preparo mate.


martes, 11 de septiembre de 2012

Rescate (mas que) emotivo del XP

Hace aproximadamente 10 años quien les escribe instalaba por primera vez windows XP en un AMD duron 800 con 128 Mb de RAM, y comprobaba que los muchachos de Microsoft habían hecho un buen laburo: un windows 2000 con mejor aspecto, más fácil de usar, con mejores drivers y compatibilidad hacia atrás con DOS y todos sus desktop managers (lease windows ME, 98 y 95). Un par de service packs más tarde el XP se convirtió en un tanque, un sistema liviano para cualquier máquina que todavía funcione, que se colgaba mucho menos de lo que hubiera querido Stallman.
Cinco años después del lanzamiento del XP, la gente de Redmond iba a lanzar una campaña que elevaría su viejo sistema al rango de leyenda: la estrategia se llamó windows Vista, y fue tan efectiva que la gente estuvo más que contenta de comprar un sistema con 6 años de antigüedad con tal de evitarlo. El lanzamiento del SP3 le dio larga vida al rey, que para la salida de windows seven en 2009 ya llevaba 7 años como mejor opción.

El windows 7 ha demostrado ser un buen sistema, que consume mucho más espacio de disco que el XP (pero a quién le importa), que funciona bien con los 2Gb de ram mínimos que cualquier pc debería traer instalados (vender una pc con seven y 1Gb de ram debería considerarse estafa) y soporta los 8 Gb que van a ser necesarios dentro de un par de años. Y tiene una bonita cantidad de drivers, y se ve bien. Ya son pocos los clientes que piden un downgrade, los que se resisten a aprender a usar la barra de inicio, los que conservan una impresora incompatible. El futuro llegó hace rato, e instalar xp en un Intel i7 es como ponerle nafta común a un Lamborghini.

Pero los años de reinado del XP dejan sus huellas, y nuestros clientes conservan en sus máquinas agonizantes sistemas comerciales, de contabilidad, aplicaciones de cálculo y demases hechas a medida por desarrolladores inubicables, empresas que cerraron o sacaron versiones que no permiten importar los datos del 2004. Programas que se pagaron a precio de oro, llaves de puerto paralelo cuyos controladores no distinguen un W7x64 de un Ubuntu 12.

Aquí es cuando la habilidad del técnico se pone a prueba. Habilidad para convencer al cliente de que a pesar de haberse comprado una máquina nueva tiene que seguir arrastrando un sistema operativo que tiene diez años, o para montar un xp en una máquina virtual modesta adentro de la bestia y explicarle al cliente (aunque sea mínimamente) el concepto de tener su sistema en una máquina dentro de una máquina.

Desde hace un tiempo esa viene siendo mi opción preferida, y descubrí que los clientes son menos refractarios a aceptar la idea de lo que yo suponía. En parte se debe también a que VMware player hace un muy buen trabajo integrando el mouse de forma transparente, y permitiendo un manejo simple de los dispositivos.

Ahora: instalar un XP dentro de una máquina virtual supone duplicar el trabajo de instalación (un poco menos que eso, claro: no hacen falta los programas y los drivers), o haberse tomado el trabajo de pasar por VMware converter un sistema físico para llevar la máquina virtual en el pendrive. Es un trabajo que muchos de mis lectores ya hicieron. Pero estoy seguro de que algunos están todavía en veremos, por lo que, como premio por haberse aguantado este choclo autoreferente que no le hace honor al resto del blog (esto es un nuevo comienzo, entiendan), les voy a dejar justo aca una descarga de 200Mb que tiene un XP SP2 limpio de cargo y culpa (aunque todavía sin bautizar), y listo para cargar en el player. Si lo usan, recuerden agradecer a su bloguero amigo, preferentemente cobrando por la instalación lo que vale una hora de trabajo extra y gastándosela en cervezas o picadas a mi mala salud.

Por si no se vio: Link de descarga.

Enjoy!

PD: Este post fue inspirado por este sistema (Sivet), su llave de puerto paralelo y su última versión made in 2005.
PD2: Supongan los que bajaron el archivo que el dueño de la máquina que virtualizé se llama Roberto García.
PD3: Avisen si el link se cae! (Es posible, tengo la sensación de que el tema de licencias es un poco mas delicado con esto que con el grub4dos).

PD4: Feliz día a todos los maestros!
PD5: A la memoria de Salvador Allende.
PD6: I'll be back.

sábado, 16 de julio de 2011

Consejos gratuitos para la hora de cobrar


Cuando dos técnicos de PC se sientan por casualidad (por casualidad o no, tanto que se sienten como que sean colegas) a compartir un mate o birra por mas de media hora, hay un tema de conversación que siempre de algún modo termina saliendo: el tema de los honorarios,.
Y yo no se si es que el viento nos amontona o es una sensación común a los laburantes independientes que tienen que lidiar con clientes, pero mis amigos y yo vivimos con la sensación de estar cobrando de menos.

Por eso, para mis amigos y para mi, para que lo recordemos a la hora de tirar un precio, para que lo completemos con el tiempo, van estos consejos gratis, que doy gratis porque estoy seguro de que nadie me pagaría por darlos, aunque quizás me pagarían mejor si los siguiera.

1) (Y principal) El laburo que hacemos es técnico, y saber distinguir el monitor de un televisor tiene su valor. No por nada todos nos pasamos horas instalando todo lo que nos cayó en las manos en vez de jugar al quake, no por nada sabemos arrancar el hirens y los pibes de 13 nos rompen el culo en el counter-strike.

Si estamos cobrando, y suponemos que podríamos vivir de esto, nuestra hora de trabajo debería valer lo suficiente como para mantenernos. Saquemos una cuenta, que nos gusta. Un empleado público (administrativo sin antiguedad) gana aproximadamente $3500 por 6 horas de trabajo de lunes a viernes*. Eso son 30 horas a la semana por $900= 30 pesos la hora.Por supuesto, este empleado tiene estabilidad, obra social, vacaciones y jubilación incluidas en sus 30 pesos. Digamos entonces 40 para equiparar. Es un piso bastante bajo, pero nos dice que una instalacion que nos lleva 3 horas no se puede cobrar menos de 120 pesos.

*Es cierto que se complica vivir con 3500 al mes, sobre todo si uno alquila y tiene, pongamos, un auto con el que trabaja y algún hijo que mantener. Pongo el objetivo en un mínimo para resaltar el punto.

2) La asistencia telefónica también es trabajo. Hay clientes que solo llaman cuando se les rompe algo y clientes que nos tienen al teléfono con el catálogo de Compumundo para ver qué notebook se compran. Y casi nunca dicen “que te debo?” antes de cortar. Por lo que podemos tener dos posturas: o les cobramos la próxima vez que nos traigan una máquina para arreglar (que puede ser nunca, claro) o ponemos la hora de laburo a 50 pesos.

3) Los trabajos tienen garantía. Al menos algunos de nosotros nos hacemos responsables por las máquinas y partes que vendemos, y los trabajos que salen del taller. Y eso es algo a tener en cuenta a la hora de presupuestar. Puede que el cliente conecte la máquina y no nos llame hasta la próxima o puede llamar al otro día porque no le anda el programa x, o porque el teclado quedó configurado distinto al que tenía, o porque conectó la impresora y no anduvo, o porque el disco que recién pusimos se partió al medio. Hay que ser explícitos a la hora de aclarar qué esta incluido y qué no, pero no tanto como para que el cliente piense que nuestro trabajo falla muy seguido. No es fácil. Y otra vez, el tiempo perdido en garantías se cobra después, o mejor antes. Digamos 60 pesos la hora.

4) Digamos que un cliente nos pregunta: A cuanto una reinstalación del xp? Nosotros nos atenemos al presupuesto como está hasta ahora, y teniendo en cuenta que la reinstalación se puede hacer en unas 2 horas decimos “120 pesos”.
El cliente acepta el presupuesto, y nos trae la maquina que hay que reinstalar. Es un pentium 3 con un disco de 10Gb y 128Mb, lleno hasta la manija de fotos. La lectora de CD no funciona desde hace años y la mother no bootea desde el pendrive. Al encender el equipo nos damos cuenta de que el trabajo va a tardar al menos 4 horas, entonces llamamos al cliente para acomodar el presupuesto. Si es mas que el doble, puede que el cliente (que mantiene el pentium 3 y no piensa gastar un peso) se lleve la maquina con el trabajo. Si es menos estamos regalando nuestro trabajo. En ambos casos estamos perdiendo plata, salvo que le cobremos por el presupuesto (que levante la mano el técnico independiente que pueda).

Y este es un ejemplo afortunado: también puede ser que la reparación se extienda al doble o triple del tiempo que estipulamos porque si, porque la mother no acepta el desatendido y hay que hacerlo a mano, instalar service packs, bajar drivers etc, porque el antivirus que instalamos se niega a arrancar y hay que buscar uno que lo haga, porque la webcam dice ser X pero el chip está tocado y el driver oficial no funca, y (coloque aquí su anécdota de horas perdidas).

Entonces, promediando las reparaciones que nos llevan mas tiempo de lo que pensábamos con las que nos llevan menos, salimos perdiendo otra vez. Pongamos entonces 70 pesos la hora.

5) A veces no podemos solucionar las cosas en nuestro taller (que por lo que vimos acerca de los tiempos suele ser lo mejor), y tenemos que ir a lo del cliente. Esto supone tiempo de traslado, movilidad, logística para encontrarlo o para encontrar al usuario que sabe que le pasa al equipo. Todo ese tiempo invertido se cuenta al la hora de cobrar, o de presupuestar, por lo que la hora de trabajo a domicilio no puede cobrarse menos de 90 pesos. Puede hacerse quizás un descuento en la segunda hora dividiendo el gasto del viaje, pero eso ya lo dejo a su criterio.

Invito a cualquiera que ejerza de técnico a exponer su tarifario, su criterio o su sistema. estoy seguro de que sus consideraciones van a servir para que un colega cobre mejor!

Enjoy! O mejor: charge!

PD: Cuanto son 70 pesos? Para aquellos colegas que no sean de Argentina, o para aquellos que lean este divague en el incierto futuro (buuuh!), 70 pesos son, aproximadamente:

15 litros de nafta super,
2 kilos de carne para hacer al horno,
14 litros de leche entera, etc.
Saquen ustedes la cuenta según su pais.

PD2: Hay un par de cuestiones que surgieron en los comentarios y que me parece atinado presentar acá.

1) Cuando la reparación es una pavada (por ejemplo llegar a lo del cliente y comprobar que la maquina está desenchufada, caso real BTW), y uno tiene la tentación de cobrar 20 pesos por el viaje, conviene no hacerlo. Es mejor cobrar una visita completa o no cobrar nada a que el cliente se quede con la impresión de que nuestro trabajo vale 20 pesos. Sentando precedentes así tenemos mas probabilidades de perder al cliente cuando queramos cobrar lo que el trabajo vale realmente o peor, abrimos la puerta a que el cliente nos recomiende a otros no porque trabajamos bien sino porque cobramos poco. Y eso nos lleva al punto...

2)Cobrar lo que el trabajo vale tiene otro efecto secundario positivo: espanta a los clientes con el bolsillo mas duro. Estos son los que siempre van a querer hacernos trabajar "de onda", los que nos van a llamar por cada pavada que les pase, los que van a cambiar de técnico ni bien encuentren otro que cobre mas barato, y van a volver con los problemas mas difíciles, los que el tecnico barato no puede solucionar; los que nos van a pedir un presupuesto para una máquina nueva cada seis meses y van a terminar comprando una en Carrefour. Hay que escapar de estos para tener tiempo para clientes fieles, que sepan lo que vale lo que hacemos y que confíen en que lo hacemos bien. Hay que cobrarles por todo y alegrarse cuando nos dicen "bueno, después te llamo...".

Enjoy!

jueves, 14 de abril de 2011

Dragones.

En la película “Cómo entrenar a tu Dragón” hay un momento en que al protagonista le muestran un libro que tiene un extenso catálogo de dragones, con su peligrosidad, formas de ataque y modo de combatir. Nuestro héroe no tarda en comprobar que el libro es inútil porque a pesar de contener mucha información acerca de cada dragón, a la hora de enumerar métodos de defensa todos decían lo mismo: “Muy peligroso. Tirar a matar”.

Los que hacemos soporte técnico conocemos la sensación. Quizás de un modo menos épico pero no sin entusiasmo, nos enfrentamos con distintos tipos de alimañas, entre las que cuentan los virus. Y no han sido pocas las veces en las que, buscando algun método eficiente para deshacernos de alguno, nos topamos con el famoso “tirar a matar”.

La mayor parte de las páginas con información acerca de virus y métodos de remoción son como estas: Ejemplo1 , ejemplo2 .

Estos son los primeros resultados de una búsqueda acerca de la dupla de virus mgking.exe/arking.exe, conocidos y molestos virus de pendrive. Podemos notar a simple vista que las páginas están hechas con una plantilla, en la que se han rellenado los datos de los archivos y claves de registro que crea el virus, y el modo en que los antivirus lo llaman.

Y es completamente entendible, claro. Los virus mutan mucho mas que los dragones, y mantener un archivo extenso es una tarea que reite de Sísifo. Los pobres vendedores de lo que sea que vendan estas páginas tienen demasiado trabajo persiguiendo las búsquedas mas realizadas, tratando de recibir visitas a costa de agrandar su catálogo de páginas todas-con-la-misma-recomendación.

Debo decir que al menos sus sugerencias son interesantes (sobre todo en el primer link) : arranque en modo seguro, borre tales archivos, trate de matar los procesos, borre las claves de registro, use process explorer, pase el ccleaner. Eso es tener suerte en la búsqueda, porque lo mas usual es “Instale nuestro antivirus y nuestro antimalware, haga varios escaneos completos del sistema”, proceso que por supuesto lleva varias veces mas tiempo que reinstalar todo lo que hay en la máquina, y es recomendable únicamente en el caso de tener que perder mucho tiempo pero que parezca que estamos haciendo algo: “estoy pasando el antivirus”.

En el ABC de cualquier técnico/soporte que no resuelva todo reinstalando o tirando una imagen están todos estos métodos, junto con otros que los complementan o los completan: Borrar temporales y archivos sospechosos desde un miniXP, deshabilitar entradas con autoruns, restaurar asociaciones con FixEXE o habilitar la visualizacion de ocultos con RRT.

Estas acciones son similares para todos los virus que nos encontramos, y configuran el mínimo a probar antes de tomar la decisión de reinstalar.
Ya todos sabemos que no tiene sentido mirar el manual.

PD: un apunte sobre mgking/arking: una vez que entran en el sistema, el antivirus ya no los detecta, pero si captura los autorun.inf, b9v.exe y demases que estos amigos colocan en TODAS las unidades, sean discos físicos o de red. Por eso empecé a extender el consejo acerca de la carpeta \autorun.inf a las unidades de disco comunes. Si les interesa, aca les dejo un script para limpiar/crear los autorun.inf despues de deshabilitar el virus:

cls
echo Borrando/creando autoruns.
for %%d in ( C D E F G H I J K L M N O P Q R S T U V W X Y Z ) do (
if exist %%d:\autorun.inf attrib -s -h -r %%d:\autorun.inf
if exist %%d:\autorun.inf del /A:S %%d:\autorun.*
mkdir %%d:\autorun.inf
)
echo Presione cualquier tecla para salir...
pause > nul


Disfruten!

lunes, 9 de agosto de 2010

El regreso del freak: The Super Duper ISO booter

Desde el comienzo de los tiempos el ser humano buscó un modo de bootear una imagen iso desde un pendrive de forma automágica, es decir, sin tocar un solo archivo de configuracion, por el solo expediente de colocarla en una carpeta. Siglos han pasado desde entonces, y para que semejante hazaña sea posible fue necesario que primero se inventaran (o descubrieran según seamos aristotélicos o platónicos) los pulgares oponibles, las herramientas, el lenguaje, la rueda, el fuego, la imprenta, la electricidad, las computadoras, los cds, las imagenes ISO, los puertos usb, los discos extraibles, syslinux, grub4dos y grub2.

A nosotros, seres humanos que vivimos una época en la que todo lo anterior existe, nos queda entonces la obligación de disfrutar de nuestros inpulsos frikis haciendo uso de las herramientas a nuestro alcance.

En eso me encontraba cuando empece a investigar el entonces nuevo grub2, descubriendo que incorpora un interprete LUA, que hasta donde pude ver (tengo la referencia del lenguaje para leer, solo me da paja hacerlo) es un lenguaje de programación similar a C y que puede usarse como lenguaje scripting. Y entonces me surgió la curiosidad de saber si bootmanager+scripting me podían dar el famoso boot automático de isos por el que varios lectores preguntaron al comienzo de las andadas de este, su blog amigo, cuando incursionabamos en pendrives booteables. Y resultó que sí.

Y el pueblo: ¿Quiere saber de que se trata?

O mejor dicho: si no quiere saberlo, puede saltar directamente a la sección "Todo masticado", en la que encontrara una bonita descarga con, justamente, todo masticado.

Para los que quieran saber de que se trata, les cuento: Se trata de una coleccion de utilidades, scripts archivos de configuración robados de otros proyectos y colocados todos juntos para que funcione. Para dar crédito a los autores originales vos a explicar como funciona.

El script de instalacion es una modificacion (y semi traduccion) del que se encuentra al final de la pagina del hirens para bootear por usb, y se encarga de copiar los archivos grub.exe, syslinux.conf, menu.lst, sgd.iso y m.lua a la raíz del pendrive. Luego crea el directorio /iso y mueve sgd.iso ahi, y al final instala el sector de arranque de syslinux en el pendrive. Con esto tenemos todo instalado.

Al bootear, el pendrive lee el sector de arranque y carga el syslinux. Este lee el archivo de configuración syslinux.cfg y carga el grub4dos (grub.exe modificado para que no saltee el floppy) , que lee el menu.lst y carga la iso del Super Grub Disk (modificada para agregarle la entrada del Super Duper Iso Booter) , que lee el script m.lua (que es modificacion del script bootiso.lua que trae el SGD2) y nos muestra un menú con todas las iso que haya en el directorio /iso. Cuando seleccionamos una entrada del menú, grub2 vuelve a cargar grub4dos, con parametros de configuración que mapean la iso y bootean desde el sector de arranque.

Y por qué es tan complicado?

Es complicado porque al hacerlo me encontré con algunos problemas:

- No instalo directamente grub4dos como arranque porque syslinux es mas compatible con maquinas viejas, y de todos modos uso grub.exe después.
- No puedo bootear la iso desde syslinux porque no lo soporta.
- No pude editar el floppy de SGD2 porque no pude montarlo en linux o en windows. Si alguien quiere hacerlo y poner el grub.cfg de la iso lo espero en mediafire.
- No puedo generar el menú desde grub4dos porque no soporta scripts.
- No puedo bootear las iso desde grub2 porque no soporta chainload, y eso nos deja sin bootear muchas cosas (el hirens, por ejemplo. O el silverdisk).

Verán que son muchos items, poniendo solo los que se me ocurrieron y no pude resolver. Por otra parte, la ventaja del método actual es que nos quedan a la vista un syslinux.cfg y un menu.lst para agregarle lo que queramos!

Un poco de código:

CorraMe.bat

@echo off
echo.
set udrv=
for %%x in (syslinux.cfg syslinux.exe grub.exe menu.lst sgd.iso m.lua) do if

not exist files\%%x goto error
set /p udrv=Ingrese la letra del disco USB (Por ejemplo F:)
if "%udrv%"=="" goto nodrv
echo.
echo !! CUIDADO !!
echo.
echo ESTO INSTALARA SYSLINUX EN %udrv%
echo PRESIONE CUALQUIER TECLA PARA CONTINUAR (O CIERRE ESTA VENTANA)
pause
echo Copiando archivos al pendrive ...
for %%x in (syslinux.cfg grub.exe menu.lst sgd.iso m.lua) do echo copy /y

files\%%x %udrv%\ && copy /y files\%%x %udrv%\
for %%x in (syslinux.cfg grub.exe menu.lst sgd.iso m.lua) do if not exist

%udrv%\%%x goto errcopy
mkdir %udrv%\iso
move %udrv%\sgd.iso %udrv%\iso

echo Instalando el boot en el USB...
echo files\syslinux.exe -ma %udrv% -f
files\syslinux.exe -ma %udrv%
if errorlevel 0 goto ok
echo syslinux.exe error
pause
goto end
:ok
echo done
pause
goto end
:nodrv
echo nothing is selected
pause
goto end
:errcopy
echo Error while copying
pause
goto end
:error
echo file(s) missing (syslinux.cfg syslinux.exe grub.exe menu.lst sgd.iso

m.lua)
pause
:end



Este es el "instalador", modificacion del que viene en el paquete de syslinux del hirens. Primero chequea que existan los archivos necesarios en /files, después pide la letra de la unidad y copia los archivos. crea el directorio /iso y mueve ahi el sgd.iso .Despues escribe el boot en el mbr y sale, Lo que sigue son los mensajes de error que nos muestra si algo falla. Verán que no están traducidos, con lo que notarán mi lazyness.

Syslinux.cfg

default /grub.exe

Simple, carga el grub.

Menu.lst

timeout 2
default 0

title SuperGrubDisk ISO
find --set-root /iso/sgd.iso
map /iso/sgd.iso (0xff) || map --mem /iso/sgd.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)

Encuentra la iso del super grub disk, la mapea directamente o en memoria y bootea desde ahi. Esta forma de cargar las iso en grub4dos está robada del proyecto winsetupfromusb.

Grub.cfg (dentro de la iso)

...
#Super iso booter
menuentry "Super duper iso booter" {
search -f --set /m.lua
configfile /m.lua
}
...

Agregado la entrada del menu. Search es el reemplazo de find (diferencia entre grub4dos y grub2), y se pasa como archivo de configuracion el script que genera el menu

m.lua

#!lua

isofolder = "/iso"

function enum_file (name)
local title = string.match (name, "(.*)%.[iI][sS][oO]")

if (title) then
local source = "search -f --set /grub.exe \n linux /grub.exe --config-file=\"root (hd0,0); map /iso/" .. name .." (0xff) || map --mem /iso/" .. name .. " (0xff); map --hook; root (0xff); chainloader (0xff)\" "

grub.add_menu (source, title)
print ("titulo: "..title.. " ruta: "..source)
end
end

grub.enum_file (enum_file, isofolder)

Este es el mas robado (lo que implica que no hubiera podido programarlo yo sin leer muuuucho mas)! Para mas datos, está robado específicamente del script listisos.lua de esta pagina de ubuntuforums. Crea una funcion que por cada archivo terminado en .iso (mayuscula o minuscula) agrega una entrada del menu con los parametros definidos en source y title. Yo solo le cambié la llamada a la funcion bootiso.lua por la llamada directa a grub4dos con los parametros de arranque.

Y listo!

Todo masticado!


Acá tienen la descarga del instalador en rar. Se descomprime en cualquier lado (el escritorio, por ejemplo, aunque yo lo dejaría en el pendrive por si hay que restaurar) y al ejecutar CorraMe.bat pregunta la letra de la unidad y se instala ahí.
Para agregar una iso al menu solo hay que copiarla en la carpeta /iso en el pendrive.


Notas:

- Cuidado! Si hay otro sector de arranque, syslinux.cfg o menu.lst en la raiz del pendrive hagan un backup antes de instalar, porque el CorraMe.bat sobreescribe sin preguntar.
- El grub4dos intenta mapear la imagen directamente, y si falla lo hace en memoria. Esto último sucede cuando la imagen iso esta fragmentada en el pendrive, y aparte de ser lento consume memoria, por lo que si vamos a tirar isos de 700Mb en la carpeta, es recomendable wincontig.
- Desde seven o vista, hay instrucciones en la última posdata!
- Las isos booteadas no siempre andan.
- Puede fallar!



PD: para toquetear los archivos de configuracion y probar, les recomiendo este probador de boot basado en qemu (robado del paquete UBCD4Win) .

PD2: (Arreglado. No les debo nada) .Les debo los links a las paginas de hirens, grub4dos, grub2, syslinux, lua, wincontig, UBCD4WIN y mil mas. Capaz que mas tarde, es decir dentro de seis meses, con mi ritmo de publicación.

PD3: Soy lento para despedirme y escribo muchas posdatas. Pero si alguien prueba esto deje un comentario, para saber que no soy el único friki al que le interesa esto. O que si.

PD5: Enjoy!

PD4: En W7 o Vista tenemos una problema: necesitamos ser administradores para poder escribir el mbr, pero el sistema cambia el path a \windows\system32 cuando ponemos el modo administrador, con lo que el batch no encuentra los archivos. Para solucionar eso debemos:
1) Abrir una consola en modo administrador. Eso se hace buscando en el menu "cmd", y después con boton derecho sobre el ícono "Ejecutar como administrador".
2) Cambiar el path al lugar donde tenemos el archivo CorraMe.bat. En mi pendrive, el comando es cd "F:\boot tools\SuperIsoBooter"
3) Ejecutar el batch a mano desde la consola.
4) Debería funcionar!
Of course, si alguien tiene una solucion mas elegante, lo espero en los comentarios y será agradecido. No eternamente, pero agradecido.

miércoles, 17 de febrero de 2010

Obsesiones surtidas: sincronizar la hora de una maquina en una LAN

Versión larga

Hay ocasiones en las que uno se embarca en tareas que (a ojos de terceros) pueden parecer desproporcionadas para su propósito original. Así, hay quienes queman una biblioteca para deshacerse de un libro, o escriben un libro para hacer de marco a un capítulo que ya tienen (la historia de Cortázar y el capítulo de los tablones en Rayuela es probablemente falsa, pero ilustra).

Pongamos como ejemplo un poema reciente, escrito para sacar de mi cabeza el loop de la primera estrofa, robada de "cada loco con su tema".

Sentidos

Por lo general
Me gustan las palabras
mas que los sonidos,
y los sonidos
mas que los colores

Pero claro

El frio del vaso
el sabor de una cerveza
en un dia de calor

El olor a manzana
verde en la cabeza
recien lavada de mis hijas

Tu piel en la yema
de mis dedos
como preámbulo

La obra de arte
de tu cuerpo desnudo

Valen mas que mil volando.




El poema y este blog, como todo lo que escribo, tienen ese defecto.

Hace unos días estuve tratando de resolver un problema: una máquina que no mantiene la fecha, que está atrás de un proxy sin soporte NTP y que no puedo abrir fisicamente. Las búsquedas en google acerca del tema me daban siempre salidas de relojes atómicos, foros con preguntas sin responder, servidores de hora shareware y demás.

Así que de intentar actualizar por internet pase a actualizar por lan, y de intentar instalar un servidor NTP propio a buscar como hacer un script usando los viejos "time" y "date".En algún momento, investigando las opciones del comando NET TIME me encontré este articulo del soporte de Microsoft, que solucionó mi problema.


Versión corta

El comando que hay que usar es:

net time \\maquinaenlaredconlahorabienpuesta /set /y

Conviene ponerlo en un .bat y cargarlo al inicio de la sesión.
Y eso es lo que quería decir!

PD: Tres días, tres entradas. Para mantener mi ritmo de publicacion de los últimos tres meses debería dejar de escribir hasta Agosto!

lunes, 15 de febrero de 2010

Ingeniería social básica, o el juego de los 3 bits

Ingeniería social es el nombre que los freaks de la informatica como yo le dan al trato con otros seres humanos. A mi en particular siempre me interesó el tema, sea desde el lado oscuro de la fuerza, investigando las formas que los hackers, spammers y creadores de virus usaban para que los usuarios ejecuten sus programas , o desde el otro lado (¿el lado claro?) mirando como los que saben de usabilidad se las arreglaban para que un tipo pudiera manejar algo totalmente nuevo como si ya supiese.

En nuestro trabajo como técnicos hay ocasiones en las que tenemos que usar ingeniería social para sacar información de los usuarios acerca de la falla del equipo. En este caso no se trata de conseguir un dato que el cliente nos quiera ocultar (como una contraseña, por ejemplo), sino de guiarlo para que nos de una informacion que él no sabe que tiene. Las dificultades de la tarea son varias:

a) El tipo cree que no sabe nada, por lo que nuestra investigación le resulta incómoda y/o vergonzante. Cuando le preguntamos que problema tiene solo suele repetir "yo de esto no se nada", y es complicado sacarlo de ahí.
b) El cliente está en shock. La máquina es como una parte de su cuerpo, y verla ahí inerte le provoca pavor, por lo que no atina ni siquiera a apagarla y volverla a prender.
c) Superado cierto número de preguntas, el susodicho empieza a pensar que nosotros no sabemos nada. Y es que nosotros deberíamos saber que le pasa a la máquina por ósmosis o clarividencia.

Lo cierto es que no somos nosotros los que pasamos varias horas por día frente a la máquina, y si lo fuéramos no seríamos capaces de cobrar por ellas. Por lo que muchas veces necesitamos esa información para trabajar.

Hace unos días volví a ver un capítulo de Cosmos (el 11: La persistencia de la memoria), en el que Sagan habla del juego de las 20 preguntas. Así como Akinator, con 20 preguntas bien elegidas contestadas con sí o no se puede identificar cualquier cosa de este mundo. No es poco: 20 bits nos dan (2^20)-1 posibilidades, poco mas de un millón. Con esa cantidad sería sencillo hacer un pre-diagnóstico de la máquina, lo que nos ahorraría tiempo de trabajo.

Pero la vida no es tan sencilla, y mas que Carl Sagan o el genio de la web nuestros clientes son como el genio de la lámpara o el rey de los minisúper: no nos permiten mas de tres preguntas.

Así con esos tres bits, tenemos que tratar de aproximar el diagnóstico.

Dejo un par de ejemplos como muestra:

Atención telefónica

Cliente: La máquina no anda (información=0).
Técnico: 1- ¿Prende alguna luz, o hace algún ruido?
C: Si, pero después no anda (1 bit)
T: 2- ¿Llega a mostrar el fondo de escritorio, y el botón inicio?
C: Si, pero la flechita no se mueve (digamos 2 bit)
T: 3- En su teclado tiene una tecla con el logo de windows. Está entre el control y el alt izquierdo. Si la aprieta: ¿Se ve el menú de inicio?
C: No sé, la compu está en mi casa y yo en el trabajo.(0 bits)

Ya está. Se gastaron las preguntas. Logramos reducir el problema a algunas posibilidades: O hay un programa al inicio que cuelga la PC, o hay un problema de temperatura, o bien el mouse está roto o desconectado. En el caso de que el cliente esté en su casa y comprenda la pregunta 3, la respuesta es la diferencia entre ir a lo del cliente con un mouse nuevo por las dudas o ir a retirar la máquina para ver en el taller.
También nos faltó el famoso “¿Ha probado apagarla y volverla a encender?”, que podría haber sido la tercera pregunta. Pero no hay nada que hacer ahora. Apostamos, y perdimos.

Otro caso similar:

Cliente: La máquina no anda.
Técnico: 1- ¿Prende alguna luz, o hace algún ruido?
C: Si, pero después no anda (1 bit)
T: 2- ¿Llega a mostrar el fondo de escritorio, y el botón inicio?
C: No, se queda la pantalla en negro con letras blancas (1bit).
T: 3- ¿Pasan varias pantallas con letras y después vuelve a empezar?
C (se fija): Sí, eso! (1bit)

En este caso tuvimos éxito. De "no anda" llegamos a "se reinicia continuamente", lo que nos dice que es un laburo real, con urgencia para el cliente y cobrable. Si la respuesta 3 era negativa podía ser un disco roto, o un diskette viejo en la diskettera, con un mensaje de "non system disk...". Por desgracia, para determinar eso nos hubiera faltado una pregunta. O una bola de cristal nueva.

Saludos!
Los dejo con sus clientes. Pregunten bien, y Good Show!

PD: Para aquellos preocupados por cuestiones de género, el post hace referencia a un cliente masculino. Por comodidad en la lectura me abstengo de poner cliente/a, tipo/mina, susodicho/a y demás correcciones.
Por el mismo motivo, el que se sienta mas cómodo podrá reemplazar "cliente" por "usuario". No suelo usar "luser", porque no quiero ofender al que me mantiene. Will you bite the hand that feeds you?

martes, 10 de noviembre de 2009

Convite VIP

Cualquier día, en el laburo de 486...

Usuario: Che, 486. Podés venir? Tengo un mail que no puedo abrir.
486 recorre los diez metros hasta la maquina de Usuario, tratando de interpretar "mail que no puedo abrir": ¿Contraseña olvidada?¿Mayúsculas encendidas?¿Falla del navegador?¿Ausencia de conexión?¿Attachment no estandard?... Las apuestas son infinitas, aunque la experiencia suele acotar las posibilidades. Llega hasta la máquina y ve ésto.


(No exactamente, lo vio en Hotmail+IE. La captura es en gmail+firefox)

486 (a primera vista): No lo abras, es un virus.
Usuario: Cómo sabés?
486: Uno: Está en portugués. Dos: Intenta imitar el formato de los links a los adjuntos de hotmail, pero las palabras tambien estan en portugués. Tres: Quiere que abras el adjunto a toda costa. Cuatro: Todos los links llevan a "http://hostsite2008.blogspot.com/feeds/posts/default". Por eso: no lo abras, es un virus.
Usuario: Bueno, pero igual no anda!
486: Cómo sabés?
Usuario: Porque lo bajé al escritorio, le hice doble click y no hace nada...

Conclusión.
Querido encargado de mantenimiento de pcs con internet:Nunca subestimes las ganas que tiene un usuario de abrir un attach de fuente desconocida. En este caso, la bestezuela habilito los links del mensaje, bajó el archivo y lo ejecutó tratando de ver su invitación a la fiesta VIP. Y hasta llamó al técnico!


Información adicional para el gremio: El famoso convite vip es un virus bastante simple (hasta donde pude ver, al menos). Se ejecuta al inicio del sistema, y cada vez que uno se loguea en su cuenta de hotmail se automanda a todos los contactos. También deshabilita la opción para ver archivos ocultos. Hasta ahora lo detectan la mitad de los antivirus (con una falla alarmante de Avast!) , y aunque Firefox reporta la web como atacante, IE nos da el cartelito de abrir o guardar como si nada, por lo que no viene mal tener algun apunte para su desinfección.

El virus un proceso que se esconde detrás de una llamada legítima a una dll (RUNDLL32.exe), cosa bastante astuta porque lo hace más difícil de encontrar con Process explorer (RUNDLL32.exe es parte del sistema, y tiene firma digital de MS). De todos modos, el HijackThis lo botonea así:

(ya saben, click para ampliar y todo eso)

Para sacarlo cerramos todo, matamos el proceso rundll32.exe, habilitamos la vista de ocultos y de sistema y borramos a mano el archivo C:\WINDOWS\SYSTEM32\Snxmsh.exe. También corremos el HijackThis y arreglamos la entrada en el registro. En caso de que no nos permita habilitar la vista de ocultos podemos usar el bonito RegUnlocker.

Enjoy!

viernes, 11 de septiembre de 2009

Cómo preparar un XP instalable desde USB en 3 pasos / Destripando WinSetupFromUSB



Los muchachos de MSFN y Boot-Land nos simplifican la vida poniendo en una gui sencilla de usar todo el conocimiento de sus foros sobre instalacion de xp desde pendrive, bla, bla, bla, etc.

Y que hay que hacer?

1) Bájese el WinSetupFromUSB desde acá e instálelo en su máquina.
2) Dígale al programita dónde está su cd de instalacion de windows y su pendrive/disco externo. Apriete GO.


3) Mientras espera, ponga un hielo grande en un vaso. Agregue una medida de Fernet Branca y cuatro o cinco de Coca Cola. Tómeselo y disfrute mientras espera.

Listo!

Y basta de intro y how-to. Pasemos a lo que nos interesa: Cómo lo hacen?

Básicamente, WinSetupFromUSB es una interfaz que maneja otras herramientas que ya conocemos. Espiando en su directorio de instalacion encontramos cosas que ya vimos (y llevamos en el pendrive por las dudas): grub4dos, syslinux, pe2usb, HP format tool, y otras que conocimos por bootland como RMprepUSB. También hay scripts y programas para preparar la instalación, y por lo que veo algún driver que reemplaza al que debíamos conseguir del SP1 del windows server 2003.

Así que cuando preparamos la instalación el programa se encarga de modificar lo necesario y copiar todo al pendrive, y además instala un boot basado en grub4dos, que divide la instalación en dos partes, arrancando la primera desde setupldr.bin (as usual) y la segunda desde el mismo pendrive corriendo ntldr, como vemos en su entrada del menú:

title First part of Windows XP Professional setup
root (hd0,0)
chainloader (hd0,0)/$WIN_NT$.~BT/SETUPLDR.BIN
savedefault 1

title Second part of Windows XP Professional setup
root (hd0,0)
chainloader (hd0,0)/NTLDR
savedefault

Todo muy lindo hasta acá. Ahora las malas noticias: La instalación sólo funciona tal como viene en mothers nuevas (que por lo menos reconozcan el pen como (hd0,0) y no como (fd0) ) y si bien dice soportar desatendidos, es necesario que hayan sido armados dejando habilitada la opcion para instalar desde DOS (que no está en nuestros desatendidos favoritos, como el winchiquito o las versiones updateadas del UE7). Como trampa, es posible engañar al instalador para que nos permita crear el usb copiando de un cd de windows original los archivos faltantes (todos los que empiezan con "winnt"), pero aun si esto pudiera hacernos pasar de la pantalla de carga de drivers (que yo no pasé) de todos modos creo que sería un dolor de cabeza: los desatendidos mas populares son muy dependientes del cd. Quizás los técnicos debamos esperar a que, ahora que existe la herramienta, algun amigo como BJ se ponga a armar el paquete con los scripts actualizados para pendrive.

Y entonces... por que tanto entusiasmo?

Bueno; para mi lo mejor que tiene este programa es algo que ya alabé en el instalador de Geexbox, y antes en unetbootin: por medio de una interfaz intuitiva, nos deja con configuraciones que funcionan para hacer las cosas que queremos hacer. Una mirada al menu.lst, por ejemplo, nos revela el modo más práctico de bootear desde una imagen iso que tenemos en el pen:

title Start AcronisMedia.iso from partition 0
root (hd0,0)
map /AcronisMedia.iso (0xff) || map --mem /AcronisMedia.iso (0xff)
map --hook
root (0xff)
configfile /grub4dos.lst || chainloader (0xff)

Esto es para mi como tener a Jaclaz (famoso en los foros que mas me interesan, y primero en la lista de agradecimientos) dictándome los comandos!
Vemos que mapean la iso a la dirección (0xff), y en la misma línea hacen lo mismo pero montándola en memoria (supongo que esa doble barra significa que hacen una cosa o la otra, segun cual funcione. Quizas sea mucho suponer). Después cambian la raiz a la iso montada, y al final se tiran a cargar bien una configfile de grub o directamente intentan cargar el bootsector con chainloader. Esta segunda opción es la que funciona con esta iso en particular (el cd de recuperacion de Acronis True Image). También funca para el silverdisk, y se me hace que entre las dos cubren gran parte de los booteables. Por suspuesto, también podemos hurgar un poco en la iso y escribir la linea correcta, que para algo venimos practicando con grub4dos!

Y no los molesto más. Si les interesa comentar lo que pudieron hacer arrancar (y cómo) los voy agregando al post. Por mi parte, pienso probar hirens, puppy y slitaz para empezar, ni bien tenga algo de tiempo para algo de diversion geek.

Mientras tanto, disfruten!
(Y si no pueden invitar, al menos cuenten).

viernes, 21 de agosto de 2009

Virus de pendrive... en pendrives, donde va a ser!

Hace algunos años, los tecnicos de pc tuvimos que empezar a lidiar con los virus. En un principio se trataba de cadenas de código autoreplicante, que se anexaban a los ejecutables y los "infectaban". En esa época los antivirus se encargaban de escanear y limpiar los ejecutables y, cuando las rutinas de deteccion descubrían el virus antes de que estuviera lista la rutina de desinfección, colocar el archivo en cuarentena esperando la cura.

Los mecanismos de infeccion eran azarosos para los que no andabamos por BBSs: el único modo era contagiarnos mediante algun diskette con archivos infectados, o un virus del sector de arranque. Cuando se popularizaron las grabadoras, quizas alguno haya llegado por un cd. Después vinieron los virus de macros en documentos de office, y luego la fauna de troyanos que conocemos ahora.

A mi siempre me interesaron los aspectos de ingeniería social en la distribución, es decir, aquellos que en vez de explotar vulnerabilidades del sistema se encargaban de explotar debilidades del usuario. Para nombrar un par, los archivos de extensión doble del tipo "miramisfotosentopless.jpg.scr" en el msn, y las páginas de falsos escaneos de disco como la que vimos aca me parecen ideas geniales.

Hace algún tiempo (dos o tres años aca en argentina, o desde que empece el blog) se popularizaron los discos extraibles en cualquiera de sus formas: pendrives, mp3, tarjetas de memoria etc, y los hacedores de virus observaron ese crecimiento con los ojitos brillantes por la emoción. Entonces se dedicaron a crear virus de pendrive.

Desafortunadamente para ellos, los diseñadores de pendrives y sistemas operativos ya no son como entonces: los discos extraibles no tienen autorun automático como los cds, y no se puede infectar el bootsector como en los diskettes. Es decir, que no hay manera de que el pendrive con virus infecte a la máquina sin intervención del usuario. Con solo enchufarlo no basta.

Y como cualquiera sospecharía de un archivo llamado "miraestevideocachondo.wmv.exe" en la raíz del disco (bueno, no cualquiera, seguro que algunos le harían doble click si se encontraran el pendrive tirado, pero digo cualquiera con dos dedos de frente, se entiende...), nuestros amigos tuvieron que buscar otras formas, principalmente de ingeniería social, para que el usuario ejecute el virus por si mismo en el uso normal del pen.

Detallo aqui los dos métodos que vi "in the field", con la esperanza de que mis lectores-técnicos de campo agreguen las joyas que hayan encontrado:

1) El viejo autorun.inf: Como ya vimos en este blog, es posible crear un autorun para asignar resultados específicos a las acciones sobre el pendrive. Así, un doble click al disco extraible desde Mi PC ejecuta sin preguntar el archivo que se indique en la linea open= o shellexecute= , mientras que si hacemos boton derecho sobre la unidad tendremos un menú que podemos personalizar a gusto. También se ejecuta la linea open= si aceptamos la accion predeterminada en el cuadro de dialogo de reproduccion automágica.

Usando este mecanismo, muchos virus de pendrive (la mayoría) se copian a la raiz del disco, y crean un autorun.inf oculto, que ejecuta el virus ante cualquier acción del desprevenido usuario. De estos vi también algunos que crearon una carpeta (oculta también) que pretendía pasar como una de sistema (recycler, por ejemplo) para dormir tranquilos ahi dentro.

El especimen mas raro que encontré de este tipo es uno que consistía en un autorun.inf solitario (sin ejecutable a la vista) ,de 140k. Al abrirlo, aparecía la maraña de caracteres especiales que uno ve cuando abre un binario con un editor de texto, con alguna cadena legible a lo largo del archivo. Me imagino que sería un combo autorun/virus, lo cual sería interesante para tratar de descubrir como corno ejecutas un .inf, o algún método para evitar el borrado del autorun, lo cual sería inteligente, o algun truco para hacerme creer eso, lo cual sería humillante. Elijan la que quieran.

2) La nunca bien ponderada falsa carpeta: Esta la vi ayer, y me parece genial. Una compañera de laburo/cliente le compro un Mp5 a la hija, y me lo trajo porque no podía cargarle música, ni sacar las fotos de adentro, y el antivirus saltaba cada vez que quería abrir una carpeta. A pesar de eso, el aparato funcaba. Cuando lo conecté encontré algo como esto:


El fucking virus había ocultado las carpetas reales, y había creado sendos ejecutables con el mismo nombre e icono! También había un ejecutable suelto y un autorun, para no dejar vector de ataque sin usar. El usuario entraba al aparato, y solo podía ver los ejecutables, por supuesto, sin las extensiones… lo cual es un excelente modo de hacer que cualquiera haga doble click sobre tu virus.

A pesar de la inventiva de los muchachos, hay que decir que cualquiera de estos métodos queda al descubierto cuando tenemos acceso al pendrive con vista de extensiones, archivos ocultos y de sistema; y que es posible (por ahora, al menos) explorar cualquier pendrive sin riesgo abriendo el explorador de windows a mano, y simplemente eligiendo la unidad con un click en el arbol de directorios. Por supuesto, en una máquina limpia! Porque teniendo control sobre la maquina host, cualquiera puede ocultarte lo que no quiera que veas.

Para terminar, les dejo una segunda recomendación: inmunicen su pendrive, y los de sus usuarios. No es necesario instalar nada, ni llevar un antivirus. Basta con seguir el método de CoskiBukowski, creando una carpeta en la raiz con el nombre autorun.inf, asi cuando ponemos el pendrive en una maquina con virus el maldito no puede crear su autoarranque, y el pendrive colecciona los ejecutables sin contagiar. Esto nos deja sin el bonito autoarranque, pero nos libera de revisar el pendrive cada vez que pasamos por una maquina sospechosa.

Fin. Enjoy!

jueves, 6 de agosto de 2009

Uno de herramientas

En nuestro laburo diario como técnicos, hay ocasiones en las que tenemos que poner a prueba nuestra inteligencia, inventar soluciones, hacer uso de nuestra experiencia en el manejo del usuario o simplemente aprender algo nuevo "on the fly". Estos son los trabajos que mas nos gustan y mas nos desafían. También son aquellos por los que cobramos siempre menos de lo que valen. Y son los mas escasos.

Asi, que, en general, los trabajos que tenemos que hacer son rutinarios y aburridos: reinstalar un sistema, cambiar una fuente, instalar un router wifi, compartir una impresora ,cambiar un antivirus o armar un equipo nuevo. Por eso está bueno disponer de herramientas y técnicas que nos permitan hacer esas cosas de un modo simple y rápido, mientras jugamos al Call of Duty o leemos a Feinmann en pdf (se nota que no tengo internet en casa todavía).

Como ejemplo, les presento tres herramientas que uso en casi cualquier trabajo sobre un sistema en uso: reinstalaciones, limpieza de virus, restauración de imágenes de ghost y otras.


1) Windows XP live USB Angelina edition: creo que su nombre lo dice todo. Lo baje de Taringa! hace un tiempo, antes de que saliera el hirens 9.7, y lo sigo prefiriendo sobre el mini xp que viene ahi, aunque es mas limitado. No tiene soporte para red, y algunas aplicaciones no arrancan por falta de librerías, pero el wallpaper lo vale!

Llámenme baboso...

Lo pueden conseguir acá, y buscando "XP Angelina" salen varios más.
En el rar esta la imagen, y el PeToUsb configurado para ponerlo en el pendrive. Por supuesto, yo lo tengo arrancando desde el Grub4Dos del hirens con las lineas:

title Angelina
find --set-root /minint/setupldr.BIN
chainloader /minint/setupldr.BIN

Lo uso principalmente para examinar el disco en máquinas en las que el windows no aranca, para hacer limpieza de documentos antes de reinstalar y para jugar al solitario (portable, claro) mientras se hace o se restaura una imagen de ghost. En tareas de limpieza es ideal con la próxima herramienta...

2) Scanner: Una joya que encontré en la Lupo Pensuite. Es uno de los muchos programitas que nos muestran el disco de alguna forma mas o menos gráfica. En este caso, en forma de anillos. Una muestra recursiva: el pendrive que tiene el programa:

Gasto casi 19Mb en la iso del geexbox... porque lo vale!

Es asi de simple: sirve para ver porqué un XP que parece limpio y se usa "solo para navegar" pesa mas de 20Gb; para encontrar las carpetas de descarga (por ejemplo, viejos temporales del emule, o carpetas de música y películas), y desde el Angelina sirve para borrar sin problemas el archivo de intercambio, la informacion de restaurar sistema, los temporales de internet y todo lo que no nos parezca innecesario antes de hacer el backup de un sistema usado. La verdad, creo que son pocas las maquinas en las que no termino corriéndolo para ver que onda. Lo pueden bajar desde acá.


El otro infaltable a la hora de rescatar documentos de una maquina con virus (o de una que no arranca) es el archiconocido Total Commander. Para los perdidos que no lo conocen, es un clon del viejo Norton Commander pero para windows. Es muy útil para mover grandes cantidades de información a golpe de F5, y tiene una ventaja importante con respecto al explorador de windows: cuando falla la copia de un archivo por cualquier motivo, nos permite continuar con el siguiente item. Además nos permite sincronizar directorios, puede leer y copiar desde archivos comprimidos y tiene funciones para partir y combinar archivos (split/join). Una belleza!
Para los que no lo tengan, pueden bajar una versión shareware funcional de la página oficial, o una versión portable y trucha desde acá.


Y ahora que particionamos, limpiamos, backapeamos y estamos reinstalando un desatendido en la maquina del cliente, ya podemos bajarnos la iso del último puppy para poner en el pendrive. Y para probarla de inmediato, podemos usar Mobalivecd!

Trabajen... y disfruten!

viernes, 3 de abril de 2009

Resolviendo incompatibilidades del hirens 9.7 y grub4dos

Desde que escribi el apunte acerca del hirens 9.7 y grub4dos lo llevo conmigo en un pendrive, y tuve la oportunidad de probarlo en varias máquinas. Comprobé (al igual que algunos de los lectores de este blog) que el arranque es, digamos... mañoso. Tiende a fallar en máquinas que tienen éxito booteando syslinux, o directamente sectores de arranque de dos o ntfs. Por suerte también llevo encima otro pendrive con hirens 8.5 y slax... pero no es el caso. Nosotros queremos el oro y el moro, la chancha y los veinte. Y queremos que funcione el 9.7 con su XP live en las máquinas difíciles.

Por eso, porque somos tercos y obstinados, y porque un geek que se precie no se deja vencer por pequeñeces (en estas cosas al menos), es que vamos a poner el nuevo Hirens en el pendrive, pero con el método "old school", es decir booteando en el viejo y querido D.O.S.

Aquí un mini howto:

  1. Extraemos el contenido de la iso del hirens en una carpeta, digamos /hirens.
  2. De ahí extraemos el contenido del archivo /hbcd/boot.gz (que contiene el arranque en dos) a otra carpeta, digamos /boot. Es necesario extraer boot.img primero (puede ser con winrar) y después abrirlo con algún programa para manejar imagenes de diskette. Yo uso winimage (shareware).
  3. Formateamos el pendrive con la utilidad de hp, que pueden bajarse aca o aca. Tenemos que chequear "Create a DOS startup disk" y apuntar a la carpeta /boot para que saque de ahi los archivos de arranque.
  4. Copiamos al pendrive el contenido de las carpetas /hirens y /boot. Cuando copien /boot les tiene que pedir sobreescribir io.sys, msdos.sys y command com. Por las dudas pongan que no.
  5. Bajamos el ultimo grub4dos y extraemos a la raiz del pendrive los archivos ,grub.exe, grldr y menu.lst.
  6. Agregamos al menu.lst la linea para bootear el xp

    title Mini Windows Xp
    find --set-root /HBCD/XPLOADER.BIN
    chainloader /HBCD/XPLOADER.BIN

    (o si ya tenemos el grub de la pagina del hirens, usamos ese menu.lst)
  7. Y ahora la única novedad con respecto a los varios tutorials que hay acerca del tema en este blog: agregamos grub como opcion en el menu del hirens: esto se hace editando el config.sys que tenemos en la raiz del pen, agregando esta linea. después de la entrada [MOREMENU]:

    [MOREMENU]
    menuitem=GRUB, Grub del hirens9.7
    submenu=BOOTTOOL, MBR (Master Boot Record) Tools...
    ...
    y al final del archivo

    [GRUB]
    device=GRUB.EXE

Esto agrega una opción "Grub" como primer ítem del menú "Next..." del hirens, y ejecuta grub4dos desde DOS cuando la elegimos. Así nos evitamos el problema de que grub no encuentre grldr, porque estamos trabajando desde la particion y no desde el MBR (la rima es involuntaria). Aclaro que hubiera preferido ponerlo como opcion en el primer menú, pero parece que hay un límite en 10 items. Fijense dónde les resulta mejor (por ahí mover uno de los submenus a "Next..." para hacer un lugar).

Para los que ya hayan puesto el hirens con el método viejo (como el amigo Norberto) , los pasos son menos: basta con copiar los archivos del boot.img y el grub.exe a la raiz del pendrive, modificar el config.sys y sacar el grub del mbr. Este paso puede hacerse booteando hirens con el probador de Ubcd4win (que debería funcionar, porque no depende de la bios) , arrancando hirens->next->dos->dos , cambiando a A: e ingresando fdisk /mbr, y sys c:

Avisen como les fue
Enjoy!

Actualización: al igual que con la otra entrada acerca del hirens 9.7, todo lo dicho en este apunte se ve superado por una línea al pie de la pagina de Hiren sobre el tema

Troubleshoot

If you get GRLDR error then use syslinux to boot grub4dos

En ese caso los pasos son:
  1. Bajar el syslinux de hirens y decomprimirlo en cualquier carpeta.
  2. Ejecutar RunMe.bat e ingresar la letra en la que se monto el pendrive.
Esto instala syslinux en el mbr del pen, y lo setea para correr grub.exe (incluido en el paquete).
Again, no tan entretenido, pero definitivamente mejor.
Suerte!

miércoles, 18 de marzo de 2009

Pequeña obra en tres actos

Primer acto. Mediodía, departamento de contabilidad de un gremio en el que 486 hace de técnico.

Usuario: -Esta máquina anda como el culo. Fijate 486 qué podés hacer.
486: - Lo que pasa es que tenés un win98 hecho pelota. Aprovechemos que hay que reinstalar y pongamos un winchiquito. Y de paso reutilizamos un disco que sacamos de la máquina de X, así no tenemos que borrar nada de éste.


(486 arregla la máquina. 2 horas, en cámara rápida).

Voz en off tipo Dogville: -Todo lo que el usuario usaba quedó funcionando, pero 486 olvidó instalar el Cobian Backup, que estaba programado para hacer incrementales de dos carpetas a través de la red. Olvido que pudo haberse debido al hecho de que en casi tres años NUNCA tuvo que usar aquel backup. O simplemente a una distracción de nuestro personaje...

Segundo acto. Dos semanas después, en el mismo lugar.

Usuario (interceptando a 486 en el pasillo de entrada): - Me caiste como un ángel, sabés? Me desaparecieron las carpetas Y y Z del escritorio. No es problema, no?
486: - Vamos a ver que podemos hacer. Por ahí se borraron los accesos directos, o las carpetas se movieron adentro de otras, o... bueno, vamos a ver.


(486 intenta arreglar la máquina. Tres horas en cámara rápida, con usuario mirando sobre su hombro. Abre el equipo, cambia cables y mira el monitor cada vez más encorvado)

Voz en off tipo Dogville: - Nuestro amigo maldice en colores a Murphy y su familia, en vistas de que el disco que tenía los datos se resiste a los programas de recuperación, apagándose tras unas pocas lecturas y cortando el flujo de datos con sonoros "click", que le sonaban como el tic tac de la bomba que se venía.

486: - Me llevo el disco a mi casa, y ni bien pueda recuperar tus carpetas te las mando por mail...


Voz en off tipo Dogville: - Por supuesto, ésta vez no olvidó instalar Cobian Backup antes de irse.

Tercer acto. Medianoche. Taller/casa de 486.

(486 trabajando en su taller. Primer plano del disco en el conversor IDE-USB y apertura hacia atrás)

Voz en off tipo Dogville: -Nuestro personaje ha pasado la tarde tratando de recuperar los datos del muerto, para sólo lograr escaneos parciales, archivos corruptos y algunos archivos del 2002 que se encontraban en el primer Gb del maldito disco. Trabaja gratis subsanando su error e intentando mantener su fuente de ingresos. El disco es inmune al GetDataBack y al Ontrack Easy Recovery, y el escaneo de archivos avanza una millonésima del total por cada vez que 486 enchufa y desenchufa el conector de alimentación.

Entonces, cuando lo daba todo por perdido y se disponía a cocinar para sus hijas; 486 abrió la heladera.
Fue en ese momento que la cocina, hasta entonces a oscuras, se iluminó con una extraña tonalidad; una penumbra que no alcanzaba para otra cosa que para sacar comida del freezer.
486 tuvo una idea.

(Corre hasta el taller y cancela el escaneo, se observa en pantalla que está detenido en el 15%.
Envuelve el disco en una bolsa, lo lleva hasta la cocina y lo mete en el freezer.
Cocina, y antes de comer saca el disco, lo conecta y reinicia el análisis con GetDataBack)

Voz en off tipo Dogville: -El disco anduvo bien, sin ruidos, sin frenarse hasta que volvió a tomar temperatura. Justo el tiempo suficiente para que 486 pudiera rescatar las carpetas que necesitaba. Exactamente el mismo tiempo que 486 necesitó para dejar de sentirse un pelotudo por intentar lo del disco en el freezer.

Por supuesto. Esa noche nuestro héroe no durmió bien. Pero eso es por otras razones, ajenas a esta historia ,que aquí termina.

FIN

miércoles, 25 de febrero de 2009

Hiren lo hizo: cómo poner el nuevo hiren 9.7 en el pendrive usando grub4dos

El nuevo Hiren´s boot cd 9.7 nos da una buena razón para actualizarnos; razón que les voy a dar ahora mismo, para que ustedes sigan leyendo: trae un mini windows XP con soporte para red y la posibilidad de usar todas las herramientas para windows del cd...en menos de 40Mb!


El fondo es asi, pixelado.

Debo decir (sin que a nadie le interese) que llevo un tiempo usando en mi pendrive el hirens 9.2, y no había encontrado motivos suficientes para cambiarlo: los 100 Mb de ramdisk que usaba el 9.6 me resultaban excesivos, y las herramientas no eran muy distintas.

Y ahora, que ya tengo mi pendrive funcionando con ese hirens, slax, puppy y un mini xp gracias a grub4dos, viene el amigo Hiren y me pone todo junto, mas útil, más lindo y mejor. Gracias!

Va el mini howto: Cómo poner el hirens 9.7 en el pendrive.


En esta versión del hirens cambia la forma en que se carga el boot, debido a la necesidad de arrancar un bootloader de xp. Esto nos simplifica enormemente el proceso. Resumiendo: isolinux carga los archivos de dos desde el comprimido /HBCD/boot.gz, y el bootloader de windows directamente como kernel. Nosotros vamos a hacer algo similar con grub.

Herramientas: Hiren´s boot Cd 9.7 (enlace a la página del viejo amigo Max Thrane. Ahí hay varios links de descarga.), Wingrub, grub4dos.

Procedimiento
  1. Extraiga de la imagen iso del hirens la carpeta /HBCD (puede ser con winrar. Gracias Yayuca!). Eso es todo lo que necesitamos del cd. Los que hayan hecho el tuto del hirens anterior notaran que les sobra tiempo aca.
  2. Instale el boot de grub con wingrub. Es conveniente fijarse cual es nuestro pendrive en la lista de discos en tools->partition list, y después usar el menú install->MBR y ahi seleccionar nuestro pendrive. Los más intrépidos pueden hacerlo desde la linea de comandos y ahorrarse wingrub, pero creo que los más intrépidos no necesitan esta guía.
  3. Sobreescriba grldr, grldr.mbr y menu.lst con las versiones que vienen en el paquete grub4dos (las de wingrub son anteriores, y el chainload no anda bien). También es útil copiar grub.exe, para volver al menú de grub desde DOS.
  4. Edite el menu.lst agregando estas lineas:

title HIRENS MINI XP
find --set-root /hbcd/xploader.bin
chainloader /hbcd/xploader.bin


title Hirens 9.7
find --set-root /hbcd/boot.gz
kernel /hbcd/memdisk
initrd /hbcd/boot.gz

Recomiendo dejar las entradas por defecto de grub4dos en el menú (son muy útiles).

listo!

PD: en la página de Hiren actualizaron el proceso de creación del usb, y están usando.....grub4dos. Así que los que quieran pueden pasarse por ahí a bajar un zip que en 170Kb simplifica los pasos 2,3 y 4 de esta guia en uno solo. Aunque seguro que no es tan divertido.

Yapa: Los muchachos de UBCD4Win pusieron (algo escondido) en su release un instalador usb que estoy usando mucho como probador. Básicamente, el botón Test USB crea una carpeta qemu con el kernel y un par de archicos esenciales, mas dos archivos de comandos que sirven para probar el boot del pendrive y el de la iso generada. Realmente es muy cómodo (y portátil) . Recomiendo bajar el paquete completo, que arma el live-xp en unos pocos clicks y tiene plugins más que interesantes; pero para los que sean impacientes y no quieran esperar 300Mb de descarga, acá subí el probador "standalone".

Disfruten!

miércoles, 4 de febrero de 2009

Gardel con guitarra eléctrica: Detectando virus y spyware con Process Explorer

Esta entrada está destinada a tres grupos de personas:
1) Los que no leyeron la entrada anterior.
2) Los que, habiendola leido, no miraron la conferencia de Russinovich por falta de tiempo, o desconocimiento del inglés, o imposibilidad fisica o moral de instalar silverlight.
3) Los que la leyeron y vieron la conferencia de Mark, pero quieren seguir leyendo para discutirme algo, de barderos nomás.

Hace unos días miré la excelente presentación de Mark Russinovich: "Advanced Malware Cleaning", y aparte de quedar obsesionado con el tema de los rootkits, me lleve un par de consejos para la detección de malware con Process Explorer, que en estos días me han resultado útiles.

ProcEx es un process manager que nos da mucha información acerca de los procesos que están corriendo en nuestra máquina. Podemos distinguir de un vistazo los servicios (en rosa), los procesos del propio usuario (en celeste), los ejecutables empaquetados (en violeta), los íconos de las aplicaciones, su descripcion y la companía de la que provienen. Tamben se ve, gracias a la vista por ramas, desde que proceso se ejecuto cada tarea (por ejemplo, las aplicaciones que tengo abiertas las corri desde el explorer, mientras que los servicios se lanzan desde winlogon.exe).

Casi nada sospechoso...

Sobre esta vista básica Mark nos da una guía rápida de búsqueda: son sospechosos todos los procesos que figuran en violeta (porque el empaquetado es un método de burlar a los antivirus que buscan por firmas), los que no posean ícono, o carezcan de descripción y/o nombre de empresa.

Un segundo filtro para descartar falsos positivos es la verificación de firmas (options->verify image signature). Esto achica el rango de sospechosos a los procesos no firmados, y nos permite distinguir procesos maliciosos que pretenden ser de windows. Igualmente hay que tener cuidado con esto, porque hay algunos procesos legítimos que no estan firmados. Y el otro problema es que necesitamos estar conectados a internet, lo que no es del todo recomendable si sospechamos que tenemos virus. Aquí que cada uno haga su solucion de compromiso.

Cuando el virus/spyware tiene alguna manifestacion visible (por ejemplo, muestra un mensaje de "Su PC esta infectada"), tenemos una herramienta para encontrar el proceso que pertenece a una ventana.

Y cuando ya tenemos a los sospechosos, ProcEx nos muestra más información en las propiedades del proceso. Ahí podemos consultar la ubicación del ejecutable, ver si está conectado a internet y a que sitio; e incluso realizar un volcado de las cadenas de texto dentro del ejecutable (o en memoria, si está empaquetado) para mirarle las tripas buscando mensajes del hacker en cuestión, tratando de ubicar cadenas de texto sospechosas o páginas de internet a las que el bicho intenta conectarse (una búsqueda por "http" basta para eso).

Aqui persiguiendo a un inocente: FScapture quiere que lo registre.

Una vez que identificamos el/los procesos maliciosos, podemos proceder a matarlos y borrarlos a mano. Hay que tener especial cuidado con los procesos solidarios, que se reviven entre si haciéndos mas difíciles de borrar. En ProcEx es fácil identificarlos gracias al highlight: Los procesos que mueren se subrayan en rojo y se muestran durante un segundo (puede cambiarse en las opciones), y los que nacen lo mismo, pero en verde. Para eliminar estos Mark recomienda usar la función "suspend" sobre todos los implicados, y después matarlos sin problemas.

Y hasta aquí llega el uso que le doy al programa. No exprime toda su funcionalidad (por ejemplo, la vista de las librerías en uso no me dice nada), pero es un avance con respecto al uso que le encontré a otros visores como Procx o Dtaskmanager.

En la próxima entrega de "Russinovich´s fanatics" (la tercera) voy a ver si puedo secribir algo acerca de la otra herramienta estrella de Sysinternals: Autoruns. O por ahi no.

PD: A los amigos del gremio que pasen por aca; se aceptan sugerencias!

martes, 27 de enero de 2009

Jugando con fuego: rootkits

El blog del Maligno es una fuente inagotable de sabiduria y mala leche (pero con onda).
Hace unos días pasaba por ahi, y me topé con estas im-pre-sio-nantes conferencias de Mark Russinovich, que los amigos de M$ nos regalan a cambio de que instalemos su Silverlight.

Como ultimamente estoy pro M$ y estaba usando la beta del seven, no tuve ningun reparo moral en instalarlo y pasarme una hora y cuarto mirando la charla "Advanced Malware Cleaning", en la que Mark repasa los métodos de detección y remoción de malware, enfocandose principalmente en el uso de las herramientas de sysinternals, ProcessExplorer y Autoruns. A los que trabajen de ésto, les recomiendo verla. Es en inglés, pero les aseguro que mi nivel no es muy bueno, y Mark habla claro y lento, así que es difícil perderse algo. Como ayuda, les dejo un pdf con la presentación que Russinovich usaba de guia.

Lo que más me interesó de la charla fue la parte en la que habla acerca de los rootkits. Estos son programas diseñados para esconderse a si mismos, y esconder tambien otros programas que pueden ser maliciosos o no, de modo que sean indetectables para cualquier programa que intente verlos a traves de las llamadas al sistema (APIs). En resumen, una cagada para el técnico (lease yo), que puede pasarse horas mirando el ProcessExplorer, el Hijackthis, el Autoruns, el regedit o cualquier otro programa que no esté diseñado específicamente para verlos, sin sospechar que la máquina sigue infectada.

Pasada la introducción, pasamos a la diversión.

Me suscribí a www.rootkit.com, y dediqué un rato a "infectar" una máquina con pruebas de concepto, para ver cómo se ven.

Materiales:

Maquina (1)
PIII con winchiquito, usada desde la cuenta administrador (una bomba de tiempo). No es de lo más estable (se cuelga sin infectarla), pero es lo mejor que tengo para pruebas.

Rootkit (2)
HideToolz: herramienta que nos presenta una interfaz desde la que podemos ocultar procesos. No corre junto con Hacker Defender (cuelga la maquina), por lo que no lo incluyo en los análisis. para el que quiera probarlo, es bastante inocuo (igual no me hago responsable etc.)
HackerDefender: Más completo, nos permite ocultar procesos, claves del registro, archivos y más. Además puede setearse para iniciar un proceso oculto.

AntiRootkits (4)
RootkitRevealer (RKR): La herramienta de sysinternals es bastante buena detectando el problema pero no nos permite solucionarlo desde el programa. En la presentacion Mark usa un depurador en modo kernel (una herramienta que le permite "tocar" los parametros del kernel en vivo, en este caso softice) para sacar el rootkit . Véanlo. Es demasiado para mi.
Gmer: un limpiador mas amigable, con acceso a procesos ocultos (y la posibilidad de matarlos), servicios ( y cómo deshabilitarlos), vista del registro y claves ocultas e incluso archivos que no se ven en el explorador.
Rootkit Unhooker (RU): Un programita "Quick and dirty" que nos muestra facil y rápidamente si hay un bicho en nuestro sistema. También mata procesos e intenta borrar drivers y servicios malos.
System Virginity Verfier (SVV): uno de los juguetes de Joanna Rutkowska. Es una utilidad de linea de comandos que nos permite chequear rápidamente si el sistema está comprometido, e incluso tratar de repararlo. Y nada más. No nos dá mucha info, pero es muy util.

Y ahora a los bifes... Digo, a las capturas.

1) SVV nos dice que esta todo OK.


2) RU también


3) Corremos HackerDefender. Le decimos que se oculte, saque de nuestra vista todos los archivos y carpetas que lleven "hxdef*" y corra el bloc de notas pero "in the backround". Nos hace caso. Acá no hay captura: no hay nada que ver ahora!

4) SVV no está tan contento...

5) RU nos muestra el problema


6) GMER nos avisa ni bien entramos, y nos deja ver los procesos, servicios y archivos ocultos.

7) El escaneo completo del sistema, tanto con RKR como con GMER o RU, nos lleva a una bonita BSOD, asi que no hay cap.

8) Tratamos de limpiar. Gmer nos deja matar el proceso, con lo que recuperamos la vista de los archivos ocultos. También nos permite deshabilitar el servicio asociado. Con esto nuestro rootkit pasa a ser como cualquier otro virus, porque quedan a la vista los procesos, servicios, archivos y drivers que este se encargaba de ocultar. Borramos todo lo que parezca sospechoso (puede que haya que reiniciar para borrar los servicios malvados despues de deshabilitarlos).

9) Para terminar la limpieza, le pedimos ayuda a Joanna:


10) Reiniciamos y volvemos a chequear: Gmer muestra un par de entradas sospechosas (probablemente ya estuvieran ahi antes), pero ningun proceso oculto, ni driver o servicio fuera de lugar, y ninguna referencia a HackerDefender. RU no encuentra problemas, RKR no sé, porque el escaneo tarda mucho (si quieren una reseña profesional vayan a otro lado) y SVV vuelve al nivel 1 (good).

Y hasta acá llegamos con la prueba. Quien quiera repetirla y tenga algo para agregar, que no sea tímido. Para eso estamos.

FAQ

Q: Los reportes del final significan que el sistema quedó limpio?
A: No. Sólo quieren decir que está más limpio que antes. Lo fundamental de los rootkits es su habilidad para esconderse, y siempre se buscan nuevas técnicas para hacerlo. De todos modos, si uno no quiere volverse paranoico, un par de reportes limpios son buenas noticias. Y si no, siempre queda reinstalar.
Q: Por qué no hay capturas de la limpieza?
A: Porque el objetivo del post es mostrarles cómo se ven las infecciones de rootkits en general con las herramientas que probé. La limpieza es opcional (siempre queda reinstalar).
Q: Se te ocurre una pregunta mejor para terminar?
A: No. Chau.