sábado, 16 de febrero de 2008

Como todos sabemos el C...

Bienbenidos a BlackHat

El botón rojo

Asran [asran@isppr.rimed.cu]



El Botón rojo suena tan romántico como la misma primavera como una flor por abrirse pero no es mas que la mas brutal de la fallas del sitema Windows NT aunque en realidad es algo que se abre y funciona como explico gustosamente a continuación :) Pero antes una breve introducción necesaria.

Introducción necesaria:

Esta falla es sumamente poderosa en redes de área local. Con alcance empresarial en laboratorios de escuelas y redes como estas. Debes tener en cuenta que también su éxito se multiplica si la usas contra nodos claves en la red, como máquinas con servicios al público (e-mail, ftp y cosas así). Por lo tanto no me gustaría que el conocimiento fuera usado en pillerías al final de todo como dice The Mentor Todos somos iguales :-)

Asumo que el usuario tiene conocimientos de Trabajo con Windows NT su consola, el Registro de configuraciones.

El caso es que los S.O NT de Microsoft son netamente dependientes del NETBIOS y este proporciona una amplia API (Aplication Program Interface) abierta a explotación de quien la necesite. Pues nada, sin rodeos como casi todos sabemos el puerto TCP/IP 139 permanece a la escucha (las razones todavía las estamos investigando) y existe una tecniquilla para conectarnos a recursos compartidos del sistema de destino (para no decir víctima)

Pues nada, tecleamos en la línea de comandos algo con esta sintaxis
Net use \\ \ * /user

Aquí la descompongo para su mejor entendimiento
El comando a utilizar es net use seguido de una dirección IP y el recurso compartido al que nos queremos conectar luego un * y /user que indica la solicitud de un usuario anónimo integrado

Veamos la cosa con un ejeplo:

Net use \\10.89.87.24\IPC$ ** /u""
Como habrás notado aparecen dos asteriscos y en vez de user una u seguida de doble comillas, bueno no es puesto nada mal, simplemente que esta es la forma de trabajar con el usuario anónimo pero si conoces algún usuario remoto puedes hacer la connection = de esta forma, ejemplo:

Net use \\10.89.87.24\IPC$ * /user:administrador

Luego el sistema solicita el pas y nosotros solo lo tecleamos, damos enter y esperamos un tantico comiéndonos las uñas.

Quien da la trampa da la ley

Bueno algo muy sensato sería protegernos de este bug y nada aquí lo paso. En el Regedit, como ya sabes trabajar en el, se crea el valor de abajo en el camino que se indica, bin ban, una vuelta de carneras una pata a la lata un sube y baja y pumm ya ta

HLMS\system\CurrentControlSet\LSA

Nombre Tipo Valor
RestrictAnonymous REG_DWORD 1 o podemos darle un 2 tambien

Nota: Luego Reiniciar la máquina para que Winditows el lindo se acuerde de lo que paso ...

Un tirón de Orejas
Leer el intro arriba

El registro desde C#

Asran [asran@ispp.rimed.cu]


Bien Comunidad! :-)

Aquí estoy otra vez con el tema del Registro de Configuraciones de Windows. Por lo pronto aprovechando la fuerza con que ha entrado el C# al mundo de la comunicación hombre-maquina me decido a presentarles la Using Microsoft.Win32 que da soporte al trabajo con dicha componente del sistema.
Para no volver a explicar como funciona la rueda, quien no tenga conocimientos de lo que es el registro pues nada, que valla un poquito atrás en ediciones pasadas y lea lo antes publicado por Alien.
Bueno:

Empezamos:

Primero tenemos que adicionar la Using Microsoft.Win32, como debes saber esta es una librería que nos brinda una serie de funciones, tipos de datos etc. Para el trabajo entre otras cosas con el registro de Windows que es el tema que nos ocupa.

Dentro de la Ussing:

-El tipo RegistryKey
Veremos que es un tipo de datos que nos permitirá una ves que lo hallamos instanciado acceder a todo un conjunto funciones que facilitan las labores.
A continuación se listan las funciones más usadas:

Funciones más Utilizadas....
OpenSubKey ---------------------------------> Abre una subclave
CreateSubKey --------------------------------> Crea una subcalve si no existe, si existe la abre
DeleteSubKey --------------------------------> Elimina una subcalve
DeleteSubKeyTree ---------------------------> Elimina una subcalve que contenga subclaves
SetValue -------------------------------------> Crea una valor en la subclave abierta
DeleteValue ---------------------------------> Elimina el valor especificado en la subclave abierta
GetType ------------------------------------> Devuelve el tipo de valor (Binario, Cadena etc...)
GetValue ------------------------------------> Devuelve el valor especificado.

Nota: A la hora de abrir una subclave se recomienda la función CreateSubKey. Las razones de porque no se abren las claves con OpenSubKey habrá que preguntársela a Microsoft.

-El tipo Registry
Este es el tipo de datos que encapsula las Root que le asignaremos posteriormente a la variable de tipo RegistryKey para que pueda direccionar la Root donde estaremos trabajando.

- Los enumerados
Bueno sabiendo como trabajan los Enum en C# aquí tenemos una lista de los que tiene que ver con el tema.

Para tipos de dato.
- RegistryValueKind.DWord
-RegistryValueKind.ExpandString
-RegistryValueKind.MultiString
-RegistryValueKind.QWord
-RegistryValueKind.String
- RegistryValueKind.Unknown


Para Restricciones
-RegistryKeyPermissionCheck.Default
-RegistryKeyPermissionCheck.ReadSubTree
-RegistryKeyPermissionCheck.ReadWriteSubTree


Para la navegación por el árbol
-RegistryValueOptions.DoNotExpandEnvironmentNames;
-RegistryValueOptions.None;

El pollo del arroz con pollo

Bueno lo primero que deberíamos hacer es crear una variable de tipo RegistryKey. Después le asignamos la Root. Sería como sigue:

RegistryKey Reg;
Reg = Registry.LocalMachine;

Bueno teniendo un mínimo técnico sobre el tema pienso que no será difícil entender el código del parche que les presento. Está bien corto y fácil de entender, ya se los adjunto en la folder de las tools!!

Nota: No olvidarse de cerrar el registro con la función Close() al finalizar la jugada porque si no nunca nos vamos a enterar de lo que paso.
Otra nota: la mayoría de los cambios en el registro son efectivas luego de volvernos a loguear en el Sistema.

Bueno people ... espero que las automatizaciones lluevan ahora solucionando problemas.

Hasta un próximo sombrerazo y recuerda

El conocimiento es patrimonio de la humanidad
Todos somos ='s

Zero Day

Asran [asran@ispp.rimed.cu]


Bien amigos la cosa es otra ves con Windows, bueno aquí presento algo que le será de muchísimo interés a estudiantes y personas que usan maquinas publicas. Se trata de un bugs de los Sistemas Operativos Windows basados en la New Tecnologic (NT) de los Microsoft. Este (bichito) permite que un usuario (restringido) o sea con privilegios limitados ejecute aplicaciones con permisos de una sesión NT AUTHORITY\SYSTEM.
Nota: esta cuenta tiene más privilegios que un Administrador.

Pues bien el caso es que el comando AT.EXE que se utiliza para programar tareas ejecuta las aplicaciones bajo licencia del usuario SYSTEM. y asi es como podemos ejecutar el explorador de Windows o una aplicación cualquiera con mas privilegios que el mismísimo Administrador.

Como trabajar con 0-day:

1- Levanta el símbolo del sistema inicio--> ejecutar -- > escribe cmd.exe ---> enter.
2- Mira en la barra de tareas la hora local del sistema, (ejemplo 5:35am)
3- Escribes la siguiente línea

C:\ at 23:06 /interactive "cmd.exe"

4- Espera que te aparezca otra ventana de simbolo del Sistema.
5- Cierra la primera y tecla lo que sigue

C:\ taskkill /F /IM explorer.exe

6- Luego esto

C:\ explorer.exe

De esta forma se cargará un nuevo escritorio con permisos de SYSTEM, todo lo que ejecutemos a partir de ahora tendrá permisos de System.

La contra:

Bueno a quien le pueda interesar invalidar este bug puede eliminar la aplicación at.exe en C:\WINDOWS\system32
No digo esto para estar en paz con dios y el diablo que se sepa bien si no que uno nunca sabe de parte de quien esta la justicia y mucho menos quien tiene la verdad de la verdad.

Importante !!!

Algo que debes saber:
Las maquinas publicas son propiedad social y como mismo se comparte el conocimiento se comparten esos medios.
Nadie tiene el derecho de causar problemas en centros públicos y mucho menos tomarse privilegios no atribuidos con otros fines que no sea el de apoderarse de conocimiento.

BlackHat mantendrá su posición educativa.

Bueno Bro. como siempre te digo

You will never walk alone
I'm here

Dual Boot

Dual Boot
JKS [jksware@gmail.com]


La decisión de instalar un sistema operativo en una PC puede ser de gran peso si se quiere trabajar con más de uno pero no se sabe cómo.

Si has tenido que enfrentarte a la tarea de decidir si instalar un Windows 2000 o un XP – o un XP y un Vista – porque el último juego de Blizzard no te corre bien con cualquiera de los dos primeros, pero a la vez deseas conservar ciertas funcionalidades sin perder todos tus datos y configuraciones, entonces entenderás que estás ante un dilema.

Pero este dilema es se soluciona fácilmente si tienes una partición en desuso – o que esté poco habitada – para poder instalar tu segundo sistema operativo, con el cual el primero tendrá poca o ninguna intervención. Cuando me refiero a instalar un segundo sistema, no me refiero a que esta sea tu segunda instalación, sino que se encuentren alojados los dos sistemas en disco, y que tú seas capaz de elegir cada vez que bootee o arranque, con cuál es el que quieres trabajar.

A lo primero lo primero

La IBM PC o compatible, como se le suele llamar aún en algunas partes del mundo donde abundan mucho las Mac de Apple – o computadoras personales que no sigan la arquitectura del gigante azul – se comportan de manera muy monótona para iniciar el sistema. A continuación explico – a grandes rasgos:

Atendiendo a que esta se encuentre totalmente apagada, cuando se pulsa el botón de encendido, el POST del BIOS – esta jerigonza es el programa encargado de revisar que la computadora esta bien – realiza varios test o pruebas de rutina, que todo lo que hacen es comprobar cuánta memoria RAM tienes, las posiciones de tus unidades de almacenamiento con respecto a la cinta de datos, que tu monitor se vea, que no te olvidaste de conectar el teclado, … y cuando todas las comprobaciones terminan el sistema determina, a partir de una lista almacenada en la CMOS – que es la memoria que guarda la información del Setup del BIOS – por cual de tus unidades empezar a buscar un sector de arranque válido.

Ahora bien, el sector de arranque de un dispositivo de almacenamiento x – en que se incluyen disquetes, discos duros, lectoras de CDs, DVDs y memorias flash o extraíbles – es un espacio físico dentro de la unidad que se destina a archivar un programa de booteo. A este programa es al cual se le transfiere todo el control del sistema una vez que se termina el POST, y es el encargado de transferirle a su vez el control al sistema operativo al cual pertenece – casi siempre.

Digo casi siempre porque es aquí donde interviene la mano del hombre – o de la mujer, puede que haya alguna señorita leyendo – y decide hacer uso del derecho al v… hmm! a escoger cuál sistema desea iniciar.

Boot dual entre ventanas

El instalar un segundo sistema Windows cuando ya existe uno de la misma bandera suele ser un problema mínimo si ya conoces cómo es que la máquina arranca. Por suerte o por desgracia, todas las ediciones del Windows NT hasta el Vista – sin incluirlo – usan versiones compatibles del mismo gestor de arranque, NTLDR, lo que facilita mucho la gestión a la hora de instalar tu segundo Windows.

Si acostumbras a correr la instalación de manera “sucia” – por contrario a como dice si introduces el disco de instalación con el Windows corriendo y seleccionas instalación “en limpio” o “clean install” – entonces no te preguntará en ningún momento sobre qué partición deseas instalar, ya que se supone que una instalación no “limpia” es más bien una reinstalación para asegurarse de que todos los drivers están bien copiados; lo que hace es reemplazar algunos de los archivos viejos con los que trae en el disco, llegando a conservar usuarios, algunas configuraciones y las carpetas de program files (archivos de programas) y windows o winnt, haciendo que al final de la misma funcionen sólo la mitad de tus programas – probablemente los que no dependían de archivos externos a su carpeta ni dependían del registro – es decir, casi ninguno.

La rutina más común para instalar consiste en insertar un disco booteable con la copia del sistema que deseas en la unidad lectora – habiendo previamente configurado la secuencia de arranque en el Setup del BIOS – y realizar los procedimientos habituales hasta que el Programa de instalación de Windows – no confundir con Instalador de Windows – pregunte sobre cuál partición deseas instalar. En este momento seleccionamos cualquier partición que no sea sobre la cual ya se encuentra el otro Windows, pero – y mucho cuidado con esto – que se encuentre en el mismo disco duro físico. ¿Por qué? Como expliqué anteriormente cada uno de los discos duros posee su propio sector de arranque, y por tanto aloja su propio gestor de booteo, y desafortunadamente el gestor de booteo para Windows de Microsoft – ya que existen otros muchos como verán posteriormente son capaces de llamar al Windows pero que no son nativos de MS – cuenta con un archivo de texto que se alberga en una partición determinada, que es el que contiene la lista de sistemas Windows/DOS que es capaz de llamar el gestor.

La mala noticia es que, si por casualidad habías instalado el sistema en una partición que no fuera la primera – algo que es muy poco común – y decides instalar otro sistema en la misma – o lo que es lo mismo – si formateas la partición en que se encuentra el archivo boot.ini, dejas prácticamente inservibles todos los sistemas Windows que tengas. No recuerdo que el programa de instalación en algún momento muestre una alerta acerca de “Considere no formatear tal partición ya que esta contiene archivos imprescindibles para el booteo”. De todas formas, si cometiste el error, es aún recuperable el o los Windows instalados mediante la creación/recuperación del archivo o mediante la instalación de otro gestor de arranque que no sea el de MS – la primera solución es mejor.

Por suerte, el gestor de booteo de MS Windows NT es modificable mediante la edición del boot.ini que se encuentra con propiedades de archivo del sistema oculto en la raíz de la partición primera de la unidad en que se encuentra el sistema instalado, o también se modifica mediante Propiedades del sistema (clic derecho sobre Mi PC > propiedades) > Opciones Avanzadas > Inicio y recuperación > Configuración.

Si con todos los pasos que he dado no todo sale como esperabas, probablemente necesites asesoría de algún tipo – puedes consultarme – o leerte un par de documentos de ayuda de Partition Magic o cualquier guía para gestores de booteo que aparezca en la web, que te hable de cómo realizar la instalación de los sistemas y en qué orden para tu caso dado. Si saliste airoso cuando bootees observarás una lista con los sistemas que tienes instalado y un contador regresivo que te da 30 segundos para optar entre uno y otro.

Hasta aquí lo que corresponde al boot entre dos banderas de MS, en próximas ediciones trataré acerca del boot pingüino-ventana y del problema específicos con relación al gestor del Vista, así como saber particionar para sistemas que tengan el problema con la barrera del boot de 2 Gb.

Disclaimer

JKS (a continuación el autor) no se hace responsable por una falla eléctrica durante la instalación, que formatees una partición incorrecta y pierdas todo tu trabajo, que te abduzcan los ovnis, que te ocurra una combustión espontánea, o ninguna otra causa atribuible al autor mientras leas el artículo. Cualquier falta ortográfica o error técnico es probablemente culpa del autor y es totalmente a propósito.

martes, 12 de febrero de 2008

Bienvenido

Revista BlackHat