seguridad en windows con autoit
seguridad en windows con autoit
alguno de ustedes sabe como leer los usuarios y permisos de una carpeta usando autoit?
- Ximorro
- Profesional del Autoit
- Mensajes: 1500
- Registrado: 10 Jul 2009, 12:35
- Ubicación: Castellón, España
Re: seguridad en windows con autoit
Supongo que te refieres no a los atributos (sólo lectura, oculto, etc.), sino a qué permisos tiene cada usuario en una carpeta (o archivo en general).
Bueno... hay una udf que trabaja precisamente con las ACL (Access Control List) de Windows. Es esta y por los comentarios parece bastante buena:
http://www.autoitscript.com/forum/topic ... sions-udf/
Eso sí, para manejar eso hay que entender el ACL y sus estructuras, que ya es cosa avanzada. En esa entrada remiten aquí para la estructura utilizada:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Si ya sabes de estas cosas y el problema es pasarlo a AuoIt esa UDF te irá a las mil maravillas (y ya nos enseñarás a usarla).
Si no sabes manejar el ACL el AutoIt será el menor de tus problemas, porque primero tendrás que entender eso...
Otra opción que se me ocurre es usar un comando del Dos Shell que te da esta información y tratar la salida desde AutoIT. Es el comando cacls. Por ejemplo si hago en mi ordenador en una ventana DOS:
cacls c:\Windows
(en este caso es una carpeta pero funciona con cualquier tipo de archivo)
Eso me devuelve:
Por el formato veis que es un XP pero supongo que en Vista seguirá la misma estructura.
Ahí ves para cada DOMINIO/usuario los permisos que tiene. Salen líneas repetidas que habrá que depurar en AutoIt, supongo que es por los permisos heredados, pero no lo tengo claro.
Ejecuta simplemente cacls sin parámetros para ver la ayuda:
OI, CI y IO son códigos para indicar tipo de herencia.
En el ejemplo sólo aparece el permiso F (Full-control total) pero también pueden aparecer R (Read-lectura), W (Write-escritura), C (Change-modificar)
Por el foro hay ejemplos de cómo ejecutar comandos del shell y tomar la salida (lo más fácil es redirigirla a un archivo y leer de ahí, también se puede capturar directamente la salida estándar aunque eso es algo más complicado).
Para ejecutarlo puedes usar esto:
Así es independiente de la versión y nombre del intérprete de comandos
Y luego analizas "salida.txt" para elaborar el listado que buscas.
Ya nos dices.
Bueno... hay una udf que trabaja precisamente con las ACL (Access Control List) de Windows. Es esta y por los comentarios parece bastante buena:
http://www.autoitscript.com/forum/topic ... sions-udf/
Eso sí, para manejar eso hay que entender el ACL y sus estructuras, que ya es cosa avanzada. En esa entrada remiten aquí para la estructura utilizada:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Si ya sabes de estas cosas y el problema es pasarlo a AuoIt esa UDF te irá a las mil maravillas (y ya nos enseñarás a usarla).
Si no sabes manejar el ACL el AutoIt será el menor de tus problemas, porque primero tendrás que entender eso...
Otra opción que se me ocurre es usar un comando del Dos Shell que te da esta información y tratar la salida desde AutoIT. Es el comando cacls. Por ejemplo si hago en mi ordenador en una ventana DOS:
cacls c:\Windows
(en este caso es una carpeta pero funciona con cualquier tipo de archivo)
Eso me devuelve:
Código: Seleccionar todo
C:\Documents and Settings\carto1\WINDOWS DOMIX\carto1:F
DOMIX\carto1:F
DOMIX\carto1:(OI)(CI)(IO)F
DOMIX\carto1:(OI)(CI)(IO)F
NT AUTHORITY\SYSTEM:F
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F
BUILTIN\Administradores:F
BUILTIN\Administradores:(OI)(CI)(IO)F
Ahí ves para cada DOMINIO/usuario los permisos que tiene. Salen líneas repetidas que habrá que depurar en AutoIt, supongo que es por los permisos heredados, pero no lo tengo claro.
Ejecuta simplemente cacls sin parámetros para ver la ayuda:
OI, CI y IO son códigos para indicar tipo de herencia.
En el ejemplo sólo aparece el permiso F (Full-control total) pero también pueden aparecer R (Read-lectura), W (Write-escritura), C (Change-modificar)
Por el foro hay ejemplos de cómo ejecutar comandos del shell y tomar la salida (lo más fácil es redirigirla a un archivo y leer de ahí, también se puede capturar directamente la salida estándar aunque eso es algo más complicado).
Para ejecutarlo puedes usar esto:
Código: Seleccionar todo
Run(@ComSpec & " /c cacls " & $rutaarchivo & " > salida.txt", @TempDir, @SW_HIDE)
Y luego analizas "salida.txt" para elaborar el listado que buscas.
Ya nos dices.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Re: seguridad en windows con autoit
Wooo.
Yo conocía el comando ese que dices de DOS, porque lo vi hace tiempo en alguna web, pero no se usarlo. Pero esta librería me gusta más :).
Salu2!
Yo conocía el comando ese que dices de DOS, porque lo vi hace tiempo en alguna web, pero no se usarlo. Pero esta librería me gusta más :).
Salu2!
Re: seguridad en windows con autoit
Gracias Ximorro por tu aporte esta muy bueno, lo voy a investigar ahora.
Ayer despues de postear la pregunta encontre un libro que explica en detalle la seguridad interna de Windows, les envio el link para que lo vean (http://www.2shared.com/document/WUAzAfE ... GGING.html), despues les cuento como me va.
Gracias nuevamente.
TAVO
Ayer despues de postear la pregunta encontre un libro que explica en detalle la seguridad interna de Windows, les envio el link para que lo vean (http://www.2shared.com/document/WUAzAfE ... GGING.html), despues les cuento como me va.
Gracias nuevamente.
TAVO
- Ximorro
- Profesional del Autoit
- Mensajes: 1500
- Registrado: 10 Jul 2009, 12:35
- Ubicación: Castellón, España
Re: seguridad en windows con autoit
¿Seguro que la librería te gusta más, Jonny? Ya nos enseñarás a usarla
Parece que para manejar estos temas de seguridad hay que bajar a niveles del sistema muy complejos, no sé si es culpa de una API poco amigable o simplemente puro desconocimiento por mi parte, pero lo poco que he visto me ha asustado.
Gracias por la aportación del libro, al principio creía que estaba equivocado el enlace porque el libro es de debugging (¡más de 800 páginas!) pero en el capítulo 7 efectivamente habla de lo de la DACL con bastante detalle (al menos el modelo NT, la ampliación de Vista no parece que esté).
Con esa info y la udf creo que podrás hacer lo que quieres y mucho más.
¡Si haces un programita que te muestre los permisos de un archivo me gustaría verlo! (tipo el comando cacls pero hecho en AutoIt)
Parece que para manejar estos temas de seguridad hay que bajar a niveles del sistema muy complejos, no sé si es culpa de una API poco amigable o simplemente puro desconocimiento por mi parte, pero lo poco que he visto me ha asustado.
Gracias por la aportación del libro, al principio creía que estaba equivocado el enlace porque el libro es de debugging (¡más de 800 páginas!) pero en el capítulo 7 efectivamente habla de lo de la DACL con bastante detalle (al menos el modelo NT, la ampliación de Vista no parece que esté).
Con esa info y la udf creo que podrás hacer lo que quieres y mucho más.
¡Si haces un programita que te muestre los permisos de un archivo me gustaría verlo! (tipo el comando cacls pero hecho en AutoIt)
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Re: seguridad en windows con autoit
JeJe.., yo tambien me he asustado, es un bonito desafio ojala lleguemos a buen termino...