Un método ágil para asignar permisos de Filesystem es utilizar el comando acls o iacls.
Esta opción es nativa de Windows por lo que no requiere instalación alguna. Es una herramienta simple y rápida.
Pueden usar este comando directamente en un cmd para asignar los permisos de lectura y escritura de un directorio y sus subdirectorios:
cacls x:\carpeta /C /E /T /G grupo:RWC
El utilitario cacls tiene algunas falencias, por lo que Microsoft desarrollo el icacls a partir de Windows Vista.
El procedimiento con cacls que es un comando estándar y que lo pueden aplicar en cualquier equipo Windows 2003 Server.
Aqui toda la configuración completa:
Displays or modifies access control lists (ACLs) of files
CACLS filename [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G user:perm]
[/R user [...]] [/P user:perm [...]] [/D user [...]]
filename Displays ACLs.
/T Changes ACLs of specified files in
the current directory and all subdirectories.
/L Work on the Symbolic Link itself versus the target
/M Changes ACLs of volumes mounted to a directory
/S Displays the SDDL string for the DACL.
/S:SDDL Replaces the ACLs with those specified in the SDDL string
(not valid with /E, /G, /R, /P, or /D).
/E Edit ACL instead of replacing it.
/C Continue on access denied errors.
/G user:perm Grant specified user access rights.
Perm can be: R Read
W Write
C Change (write)
F Full control
/R user Revoke specified user's access rights (only valid with /E).
/P user:perm Replace specified user's access rights.
Perm can be: N None
R Read
W Write
C Change (write)
F Full control
/D user Deny specified user access.
Wildcards can be used to specify more than one file in a command.
You can specify more than one user in a command.
Abbreviations:
CI - Container Inherit.
The ACE will be inherited by directories.
OI - Object Inherit.
The ACE will be inherited by files.
IO - Inherit Only.
The ACE does not apply to the current file/directory.
ID - Inherited.
The ACE was inherited from the parent directory's ACL.
jueves, 2 de enero de 2014
sábado, 4 de mayo de 2013
Windows: shutdown remoto
Como realizar un shutdown remoto
shutdown /r /t 1 /d P:0:0 /m \\192.168.1.5
Usage: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]
[/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]
No args Display help. This is the same as typing /?.
/? Display help. This is the same as not typing any options.
/i Display the graphical user interface (GUI).
This must be the first option.
/l Log off. This cannot be used with /m or /d options.
/s Shutdown the computer.
/r Shutdown and restart the computer.
/g Shutdown and restart the computer. After the system is
rebooted, restart any registered applications.
/a Abort a system shutdown.
This can only be used during the time-out period.
/p Turn off the local computer with no time-out or warning.
Can be used with /d and /f options.
/h Hibernate the local computer.
Can be used with the /f option.
/e Document the reason for an unexpected shutdown of a computer.
/m \\computer Specify the target computer.
/t xxx Set the time-out period before shutdown to xxx seconds.
The valid range is 0-315360000 (10 years), with a default of 30.
If the timeout period is greater than 0, the /f parameter is
implied.
/c "comment" Comment on the reason for the restart or shutdown.
Maximum of 512 characters allowed.
/f Force running applications to close without forewarning users.
The /f parameter is implied when a value greater than 0 is
specified for the /t parameter.
/d [p|u:]xx:yy Provide the reason for the restart or shutdown.
p indicates that the restart or shutdown is planned.
u indicates that the reason is user defined.
If neither p nor u is specified the restart or shutdown is
unplanned.
xx is the major reason number (positive integer less than 256).
yy is the minor reason number (positive integer less than 65536).
Reasons on this computer:
(E = Expected U = Unexpected P = planned, C = customer defined)
Type Major Minor Title
U 0 0 Other (Unplanned)
E 0 0 Other (Unplanned)
E P 0 0 Other (Planned)
U 0 5 Other Failure: System Unresponsive
E 1 1 Hardware: Maintenance (Unplanned)
E P 1 1 Hardware: Maintenance (Planned)
E 1 2 Hardware: Installation (Unplanned)
E P 1 2 Hardware: Installation (Planned)
E 2 2 Operating System: Recovery (Planned)
E P 2 2 Operating System: Recovery (Planned)
P 2 3 Operating System: Upgrade (Planned)
E 2 4 Operating System: Reconfiguration (Unplanned)
E P 2 4 Operating System: Reconfiguration (Planned)
P 2 16 Operating System: Service pack (Planned)
2 17 Operating System: Hot fix (Unplanned)
P 2 17 Operating System: Hot fix (Planned)
2 18 Operating System: Security fix (Unplanned)
P 2 18 Operating System: Security fix (Planned)
E 4 1 Application: Maintenance (Unplanned)
E P 4 1 Application: Maintenance (Planned)
E P 4 2 Application: Installation (Planned)
E 4 5 Application: Unresponsive
E 4 6 Application: Unstable
U 5 15 System Failure: Stop error
U 5 19 Security issue
E 5 19 Security issue
E P 5 19 Security issue
E 5 20 Loss of network connectivity (Unplanned)
U 6 11 Power Failure: Cord Unplugged
U 6 12 Power Failure: Environment
P 7 0 Legacy API shutdown
viernes, 12 de abril de 2013
Como liberar sesiones en un servidor Windows Standalone
A continuación un procedimiento para liberar sesiones en servidores standalone con PSexec:
1 - Iniciar una sesión de cmd remota del server con psexec:
Psexec.exe \\x.x.x.x -u user -p password cmd
2 - Una vez conectado al server ejecutamos el comando qwinsta para que nos
liste todas las sesiones de Terminal Server.
3 - Una vez listadas las sesiones de TS elegimos cual queremos cerrar, mirando el ID de la sesión y ejecutamos el comando:
logoff [id# de la session a cerrar] /v
De esta forma se cierra la/s sesion/es y podemos loguearnos al equipo.
miércoles, 12 de diciembre de 2012
Windows: List files
The traditional way to list files on Windows is using the dir command. It has a lot of options to use. But the main problem with this is the output. You can redirect the output to a file, but it has a format that is intended only to be viewed and it´s difficult to put the output in a csv or tab format.
If you need to make a list (excel type) the best way to do this is using a script or an app.
Here is a very useful app that can manage a lot of options to get the desired output:
Karen's Directory Printer
http://www.karenware.com/powertools/ptdirprn.asp#Download
If you need to make a list (excel type) the best way to do this is using a script or an app.
Here is a very useful app that can manage a lot of options to get the desired output:
Karen's Directory Printer
http://www.karenware.com/powertools/ptdirprn.asp#Download
viernes, 5 de octubre de 2012
Windows - net user options
You can use the following parameters with the net user command:
- username
Is the name of the user account you want to add, delete, modify, or view. The name of the user account can have as many as 20 characters. - password
Assigns or changes a password for the user's account. A password must satisfy the minimum length set with the/minpwlen option of the net accounts command. It can contain as many as 14 characters. - *
Produces a prompt for the password. The password is not displayed when you type it at a password prompt. - /domain
Performs the operation on the primary domain controller (PDC) of the current domain. This parameter applies only to computers running Windows NT Workstation that are members of a Windows NT Server domain. By default, Windows NT Server-based computers perform operations on the PDC. - /add
Adds a user account to the user accounts database. - /delete
Removes a user account from the user accounts database.
Options for the Net User Command
- /active:{yes | no}
Activates or deactivates the account. If the account is not active, the user cannot gain access to the server. The default is yes. - /comment:"text"
Provides a descriptive comment about the user's account (maximum of 48 characters). Be sure to put quotation marks around the text you use. - /countrycode:nnn
Uses the operating system country code to implement the specified language files for a user's help and error messages. A value of 0 signifies the default country code. - /expires:{date | never}
Causes the account to expire if date is set. The never option sets no time limit on the account. An expiration date is in the form mm/dd/yy or dd/mm/yy, depending on the country code. Months can be a number, spelled out, or abbreviated with three letters. Year can be two or four numbers. Use slashes (/) with no spaces to separate parts of the date. - /fullname:"name"
Is a user's full name (rather than a user name). Enclose the name in quotation marks. - /homedir:pathname
Sets the path for the user's home directory. The path must exist. - /passwordchg:{yes | no}
Specifies whether users can change their own password. The default is yes. - /passwordreq:{yes | no}
Specifies whether a user account must have a password. The default is yes. - /profilepath[:path]
Sets a path for the user's logon profile. - /scriptpath:pathname
Is the location of the user's logon script. - /times:{times | all}
Is the logon hours. The times option is expressed as day[-day][,day[-day]],time[-time][,time [-time]], and is limited to 1-hour increments. Days can be spelled out or abbreviated. Hours can be 12-hour or 24-hour notation. For 12-hour notation, use am, pm, a.m., or p.m. The all option specifies that a user can always log on, and a blank value specifies that a user can never log on. Separate day and time entries with a comma, and separate multiple day and time entries with a semicolon. - /usercomment:"text"
Lets an administrator add or change the user comment for the account. - /workstations:{computername[,...] | *}
Lists as many as eight computers from which a user can log on to the network. If the /workstations option has no list or if the list is *, the user can log on from any computer. - net help user | more
Displays Help one screen at a time.
More info on: http://support.microsoft.com/kb/251394
jueves, 4 de octubre de 2012
Export Audit Policy Configuration - Windows
secedit command allows to export Security policy configurations besides other acctions.
The possible actions are:
- configure
- analyze
- import
- export
- validate
- generaterollback
To create a Security Database (sdb) you must:
- open "mmc" (from start>run just type "mmc")
- click on File > add/remove snap-in
- Select "Security configuration and analysis"
- Button "Add" & "OK"
- Right click & New database & Select a name for the database & click open
- Define the policies you would like to export (define any value if you only need to export the configuration. define the propper values if you like to analyze)
psexec is used to run this command in several computers. The @filserver.txt file contains a list computers / servers.
viernes, 31 de agosto de 2012
Windows: Local account management
To create a local user massively in a list of servers, you can use this command:
Psexec \\server1 net user user01 Pass.128 /ADD
Psexec \\server2 net user user01 Pass.128 /ADD
...
Use the excel to concatenate the fields, so you can have a full list of command, without typing each server.
Then, add the propper permission:
Psexec
\\server1 net localgroup administrators /add user01
Psexec \\server2 net localgroup administrators /add user01
...
If you just want to allow access to a domain user, is pretty similar:
Psexec
\\server1 net localgroup administrators /add contoso\user02
Psexec
\\server2 net localgroup administrators /add contoso\user02
...
Then if you need to remove permissions, issue this command
Psexec
\\server1 net localgroup administrators
contoso\user02 /delete
jueves, 9 de agosto de 2012
Web VRA: Google skipfish
Skipfish is an active web application security reconnaissance tool from Google. It prepares an interactive sitemap for the targeted site by carrying out a recursive crawl and dictionary-based probes. The resulting map is then annotated with the output from a number of active (but hopefully non-disruptive) security checks. The final report generated by the tool is meant to serve as a foundation for professional web application security assessments.
Key features:
Home Page:
http://code.google.com/p/skipfish/
Wiki Doc:
http://code.google.com/p/skipfish/wiki/SkipfishDoc
Key features:
- High speed: pure C code, highly optimized HTTP handling, minimal CPU footprint - easily achieving 2000 requests per second with responsive targets.
- Ease of use: heuristics to support a variety of quirky web frameworks and mixed-technology sites, with automatic learning capabilities, on-the-fly wordlist creation, and form autocompletion.
- Cutting-edge security logic: high quality, low false positive, differential security checks, capable of spotting a range of subtle flaws, including blind injection vectors.
Home Page:
http://code.google.com/p/skipfish/
Wiki Doc:
http://code.google.com/p/skipfish/wiki/SkipfishDoc
jueves, 19 de julio de 2012
Delegar permisos sobre Security logs
En los entornos corporativos y sobre todo para los ambientes Windows es muy comun encontrar que las áreas de Auditoría cuyos usuarios no son privilegiados deseen visualizar logs de Seguridad. En Windows Server 2003 esto es una tarea algo compleja y riesgosa para lo que nos tiene acostumbrados Microsoft y deberemos utilizar el lenguaje SDDL:
CUIDADO: Este procedimiento mal implementado puede impedir el acceso y requiere de reinicio del equipo.
Extraido de: http://technet.microsoft.com/en-us/library/cc722385(WS.10).aspx
Mas info: http://support.microsoft.com/default.aspx?scid=kb;en-us;323076
CUIDADO: Este procedimiento mal implementado puede impedir el acceso y requiere de reinicio del equipo.
Delegating access to the event logs
In Windows Server® 2003, Windows Vista, and Windows Server® 2008, it is possible to customize the permissions on each event log on a computer. This capability was not available in previous versions of Windows. Some organizations may want to grant read-only access to one or more of the System event logs to some members of the IT team, such as auditors. The access control list (ACL) is stored as a Security Descriptor Definition Language (SDDL) string, in a REG_SZ value called "CustomSD" for each event log in the registry. The following procedure shows how to delegate read-only access for an event log. You will need to repeat this procedure for each event log that you wish to delegate read-only access to by changing the registry key as needed.
To delegate access to an event log using the registry
| Incorrectly editing the registry may severely damage your system. Before making changes to the registry, you should back up any valued data on the computer. |
- Open Registry Editor.
- Navigate to the following registry path:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog
You will see that there are keys available for each event log. Select the event log for which you want to delegate read-only access. - Add a new key with the name CustomSD to the event log you selected.
- Add a new String value to the CustomSD key. The name of this string is not required, but it represents the access control list for the event log in the Security Descriptor Definition Language (SDDL) syntax. In this procedure this value will be referred to as SDDLACL.
- Set the value of the SDDLACL to the following:
O:BAG:SYD:(D;;0xf0007;;;AN)(D;;0xf0007;;;BG) (A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x5;;;SO)(A;;0x1;;;IU)(A;;0x1;;;SU) (A;;0x1;;;S-1-5-3)(A;;0x2;;;LS)(A;;0x2;;;NS)
Additional references
The following links provide additional information about event logging in Windows Server 2003 and Windows Vista:
- For more information about how to configure security for event logs in Windows Server 2003, see article 323076 in the Microsoft Knowledge Base (http://go.microsoft.com/fwlink/?LinkId=100968).
- For more information about SDDL, see Security Descriptor Definition Language (http://go.microsoft.com/fwlink/?LinkId=100970).
- For more information about events in Windows Vista, see Event Viewer and Resulting Internet Communication in Windows Vista (http://go.microsoft.com/fwlink/?LinkId=100973).
Extraido de: http://technet.microsoft.com/en-us/library/cc722385(WS.10).aspx
Mas info: http://support.microsoft.com/default.aspx?scid=kb;en-us;323076
jueves, 21 de junio de 2012
Obtener datos de Active Directory desde Excel
En el día de hoy tuve la necesidad de buscar información en Active Directory a partir de un listado de usuarios que tenia en excel con información faltante.
En vez de hacer un script WMI o una consulta utilizando dsget / dsquery, decidí investigar que herramientas existen para hacer busquedas en AD desde excel. Para una grata sorpresa mia encontré la siguiente herramienta gratuita:
http://excelldapsearch.sourceforge.net/
Hasta ahora rara vez me he encontrado decepcionado con los proyectos hosteados en sourceforge, por lo que me embarque en la prueba.
El producto se instaló muy bien en mi Windows 7 x64 (english). Luego realicé la customización del archivo ini que se abre al finalizar la instalación.
Los parametros a modificar son:
En la sección [Connection]
;#colocar el servidor que corresponda, perferentemente el mas cercano
server=server.dominio.empresa.ccf
;#dejar el default
port=389
;#colocar el usuario que corresponda utilizar para conectarse
binddn=CN=myUser,OU=AR,OU=Users,OU=Accounts,DC=americas,DC=empresa,DC=ccf
bindpw=<password>
No es necesario utilizar un usuario que sea Domain Admin, solo con un usuario miembro de Users bastará (si es que la configuración de AD es la default)
En la sección [Search]
;#colocar el que corresponda, esto restringe la búsqueda de objetos para que sea mas performante
basedn=OU=AR,OU=Users,OU=Accounts,DC=americas,DC=dominio,DC=ccf
En la sección [LDAP Attribute Descriptions] agregúe esta propiedad que me resulta util
manager=Manager
En caso de que necesites algún otro atributo que no esté por default en el ini, puede usar la tool AD Explorer de sysinternals (www.sysinternals.com) para browsear el Active Directory y obtener el nombre de todos los atributos de los objetos deseados.
Luego de realizadas estas parametrizaciones, procedemos a abrir el excel y en la opcion Add-ins del ribon aparece Run LDAP Search. (si teniamos el excel abierto es cuestion de cerrarlo y abrirlo para que aparezca la opción)
Con el excel con la información que queremos buscar, abrimos el LDAP Search y le definimos:
En vez de hacer un script WMI o una consulta utilizando dsget / dsquery, decidí investigar que herramientas existen para hacer busquedas en AD desde excel. Para una grata sorpresa mia encontré la siguiente herramienta gratuita:
http://excelldapsearch.sourceforge.net/
Hasta ahora rara vez me he encontrado decepcionado con los proyectos hosteados en sourceforge, por lo que me embarque en la prueba.
El producto se instaló muy bien en mi Windows 7 x64 (english). Luego realicé la customización del archivo ini que se abre al finalizar la instalación.
Los parametros a modificar son:
En la sección [Connection]
;#colocar el servidor que corresponda, perferentemente el mas cercano
server=server.dominio.empresa.ccf
;#dejar el default
port=389
;#colocar el usuario que corresponda utilizar para conectarse
binddn=CN=myUser,OU=AR,OU=Users,OU=Accounts,DC=americas,DC=empresa,DC=ccf
bindpw=<password>
No es necesario utilizar un usuario que sea Domain Admin, solo con un usuario miembro de Users bastará (si es que la configuración de AD es la default)
En la sección [Search]
;#colocar el que corresponda, esto restringe la búsqueda de objetos para que sea mas performante
basedn=OU=AR,OU=Users,OU=Accounts,DC=americas,DC=dominio,DC=ccf
En la sección [LDAP Attribute Descriptions] agregúe esta propiedad que me resulta util
manager=Manager
En caso de que necesites algún otro atributo que no esté por default en el ini, puede usar la tool AD Explorer de sysinternals (www.sysinternals.com) para browsear el Active Directory y obtener el nombre de todos los atributos de los objetos deseados.
Luego de realizadas estas parametrizaciones, procedemos a abrir el excel y en la opcion Add-ins del ribon aparece Run LDAP Search. (si teniamos el excel abierto es cuestion de cerrarlo y abrirlo para que aparezca la opción)
Con el excel con la información que queremos buscar, abrimos el LDAP Search y le definimos:
- Que filas buscar
- En que campo buscarlas
- Cuantas columnas mas hacia la derecha devolver los resultados
- que atributo/s devolver
viernes, 8 de junio de 2012
Teleworkers y sus desafíos
Al día de hoy gran parte de las empresas se han por lo menos preguntado ¿pueden nuestros empleados trabajar remotamente? Lo que vemos es que en la mayoría de los casos no se encara esta cuestión utilizando un enfoque sistemático. Esta cuestión requiere de la generación de un Bussiness Case y el análisis de la Alta Gerencia. Para entender que beneficios entrega al negocio.
Dependiendo el rubro de la empresa, puede que muchos de nuestros empleados tengan la posibilidad de trabajar remotamente. Los Beneficios típicos para la empresa son ahorros en alquileres, consumo eléctiro y acondicionamiento. Por una mayor eficiencia en el uso de los inmuebles por ejmplo podemos tener un edificio con 30 puestos de trabajo y 100 empleados. En este punto la empresa debe elegir el ratio que mejor se adapte y dependiendo el área puede variar. Para el área de Tecnología podemos considerar un ratio de 1:3.
Los Ahorros en costos como consumo eléctrico y refrigeración / calefacción, mantenimiento y limpieza se visualizan debido a la menor cantidad de personas requiriendo estos servicios.
Ahora bien, como siempre tenemos detractores que tipicamente dicen cosas como: Pierdo control de los empleados; a lo que podemos contestarle que debemos medir por performance y no por puntualidad. De nada sirve tener un empleado en su puesto de trabajo si no es productivo. Tambien se consideran los mayores riesgos de seguridad, nada que una poliza de ART no pueda contemplar y asegurar.
Ahora, ¿porque deberíamos considerar el Teleworking? Por empezar podríamos comenzar utilizando para casos puntuales como Paros generalizados de transporte, grandes tormentas o alertas meteorológicas, como plan de contingencia para nuestras instalaciones. En estos casos aseguramos que los empleados puedan trabajar desde sus casas sin demoras en el traslado hacia la oficina.
Claro está que tambien es un gran beneficio para otorgar a nuestros empleados.
Como toda novedad plantea algunos desafíos tales como Instalaciones hogareñas no fiables (internet, electricidad), distracciones (TV, tareas hogareñas, etc), Requiere un cambio de mentalidad de toda la compañia y de Ajustar procesos (convertir procesos físicos en digitales)
Pero para esto no alcanza simplemente con darle un usuario de VPN. Existe una seríe de consideraciones y buenas prácticas a tener en cuenta. Por empezar el acceso remoto y seguro (VPN) debe brindar acceso a todos los servicios internos de la empresa. Debemos contar con Herramientas de Mensajería (email, chat, voice-chat) El voice chat debería permitirnos dialogar entre varias personas como si nos juntaramos en una sala "virtual", Herramientas de colaboración (compartir nuestra pantalla y documentos) y claro está Telefonía.
La experiencia puede iniciarse y testearse con unos pocos empleados por vez, pero para justificar toda la inversión tecnológica y puesta a punto que se requiere debe estar justificada por un uso significativo.
Dependiendo el rubro de la empresa, puede que muchos de nuestros empleados tengan la posibilidad de trabajar remotamente. Los Beneficios típicos para la empresa son ahorros en alquileres, consumo eléctiro y acondicionamiento. Por una mayor eficiencia en el uso de los inmuebles por ejmplo podemos tener un edificio con 30 puestos de trabajo y 100 empleados. En este punto la empresa debe elegir el ratio que mejor se adapte y dependiendo el área puede variar. Para el área de Tecnología podemos considerar un ratio de 1:3.
Los Ahorros en costos como consumo eléctrico y refrigeración / calefacción, mantenimiento y limpieza se visualizan debido a la menor cantidad de personas requiriendo estos servicios.
Ahora bien, como siempre tenemos detractores que tipicamente dicen cosas como: Pierdo control de los empleados; a lo que podemos contestarle que debemos medir por performance y no por puntualidad. De nada sirve tener un empleado en su puesto de trabajo si no es productivo. Tambien se consideran los mayores riesgos de seguridad, nada que una poliza de ART no pueda contemplar y asegurar.
Ahora, ¿porque deberíamos considerar el Teleworking? Por empezar podríamos comenzar utilizando para casos puntuales como Paros generalizados de transporte, grandes tormentas o alertas meteorológicas, como plan de contingencia para nuestras instalaciones. En estos casos aseguramos que los empleados puedan trabajar desde sus casas sin demoras en el traslado hacia la oficina.
Claro está que tambien es un gran beneficio para otorgar a nuestros empleados.
Como toda novedad plantea algunos desafíos tales como Instalaciones hogareñas no fiables (internet, electricidad), distracciones (TV, tareas hogareñas, etc), Requiere un cambio de mentalidad de toda la compañia y de Ajustar procesos (convertir procesos físicos en digitales)
Pero para esto no alcanza simplemente con darle un usuario de VPN. Existe una seríe de consideraciones y buenas prácticas a tener en cuenta. Por empezar el acceso remoto y seguro (VPN) debe brindar acceso a todos los servicios internos de la empresa. Debemos contar con Herramientas de Mensajería (email, chat, voice-chat) El voice chat debería permitirnos dialogar entre varias personas como si nos juntaramos en una sala "virtual", Herramientas de colaboración (compartir nuestra pantalla y documentos) y claro está Telefonía.
La experiencia puede iniciarse y testearse con unos pocos empleados por vez, pero para justificar toda la inversión tecnológica y puesta a punto que se requiere debe estar justificada por un uso significativo.
viernes, 1 de junio de 2012
Windows Server 2012 Release Candidate
Windows Server 2012 conocido en nombre código como Windows Server 8 ya cuenta con su release candidate.
Este nuevo SO para Servidores está optimizado para “Cloud”. Ya hemos visto hace poco que Oracle lanzó su nuevo Solaris 11 optimizado para “Cloud” tambien.
La ERA Cloud ha comenzado…
Download:http://www.microsoft.com/en-us/server-cloud/new.aspx
(Seleccionen la opcion para developers, ya que la otra no está funcionando al momento.)
Requiere procesador 64 bits, ya no mas x86 en servidores.
Este nuevo SO para Servidores está optimizado para “Cloud”. Ya hemos visto hace poco que Oracle lanzó su nuevo Solaris 11 optimizado para “Cloud” tambien.
La ERA Cloud ha comenzado…
Download:http://www.microsoft.com/en-us/server-cloud/new.aspx
(Seleccionen la opcion para developers, ya que la otra no está funcionando al momento.)
Requiere procesador 64 bits, ya no mas x86 en servidores.
martes, 24 de enero de 2012
Query local admin name - Consultar el nombre del adminsitrator local
Dado que la cuenta built-in puede ser renombrada es importante para distintas tareas conocer el nombre real del adminsitrator. Tambien puede variar el nombre según el idioma del SO.
Para esto lo mejor es buscar el usuario teniendo en cuenta su SID.
El SID del adminsitrator siempre termina en 500 y comienza con S-1-5:
A continuación el script para hacer la consulta:
strComputer="127.0.0.1" ' local computer by default
Set objUser=GetObject("WinNT://" & strComputer & "/" & GetAdminName & ",user")
msgbox (getAdminName())
Function GetAdminName
Set objNetwork = CreateObject("Wscript.Network") 'get the current computer name
objComputerName = objNetwork.ComputerName
Set objwmi = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & objComputerName)
qry = "SELECT * FROM Win32_Account where Domain = '" & cstr(objComputerName) & "'"
For Each Admin in objwmi.ExecQuery(qry)
if (left(admin.sid, 6) = "S-1-5-" and right(admin.sid,4) = "-500") then 'look for admin sid
GetAdminName = admin.name
end if
next
end Function
Para esto lo mejor es buscar el usuario teniendo en cuenta su SID.
El SID del adminsitrator siempre termina en 500 y comienza con S-1-5:
A continuación el script para hacer la consulta:
strComputer="127.0.0.1" ' local computer by default
Set objUser=GetObject("WinNT://" & strComputer & "/" & GetAdminName & ",user")
msgbox (getAdminName())
Function GetAdminName
Set objNetwork = CreateObject("Wscript.Network") 'get the current computer name
objComputerName = objNetwork.ComputerName
Set objwmi = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & objComputerName)
qry = "SELECT * FROM Win32_Account where Domain = '" & cstr(objComputerName) & "'"
For Each Admin in objwmi.ExecQuery(qry)
if (left(admin.sid, 6) = "S-1-5-" and right(admin.sid,4) = "-500") then 'look for admin sid
GetAdminName = admin.name
end if
next
end Function
miércoles, 18 de enero de 2012
La libertad de Internet está en peligro
La iniciativa de ley SOPA (Stop Online Piracy Act) de los Estados Unidos perjudicaría seriamente la libertad de expresión y el carácter abierto de Internet, incluyendo a Wikipedia, en caso de ser aprobada. Otras leyes, como la Ley de Economía Sostenible (Ley Sinde) española y los proyectos de la Ley Lleras (Colombia) y Döring (México) también suponen una amenaza. Con la excusa de proteger los derechos de autor, se permiten medidas que pueden considerarse como censura.
¡Internet no debe ser censurada!
viernes, 23 de diciembre de 2011
Unix Scripting: Create users
A continuación comparto un script simple para creación de usuarios en ambientes Unix:
HOME=/export/home
#/export/home
if [ $# -eq 4 ]
then
echo "Creating user $1, nombre $2"
else
echo "Usage:$0 <\"username\"> <\"Descripcion\"> <\"grupo\"> <\"UID\"> "
#echo " groups:"
#echo " lista separada por comas de los grupos a los que pertenecerá"
exit 1
fi
user=$1
nombre=$2
grupos=$3
uid=$4
sudo /usr/sbin/useradd -c "$nombre" -g $grupos -m -d $HOME/$user -s /bin/sh -u $uid $user
if [ $? -ne 0 ]
then
exit 1
fi
echo "Setting Password"
sudo /usr/bin/passwd $user
sudo /usr/sbin/usermod -f 90 $user
sudo /usr/bin/passwd -n 7 -x 30 -w 7 -f $user
sudo /usr/bin/passwd -f $user
echo "The user $user has been created"
HOME=/export/home
#/export/home
if [ $# -eq 4 ]
then
echo "Creating user $1, nombre $2"
else
echo "Usage:$0 <\"username\"> <\"Descripcion\"> <\"grupo\"> <\"UID\"> "
#echo " groups:"
#echo " lista separada por comas de los grupos a los que pertenecerá"
exit 1
fi
user=$1
nombre=$2
grupos=$3
uid=$4
sudo /usr/sbin/useradd -c "$nombre" -g $grupos -m -d $HOME/$user -s /bin/sh -u $uid $user
if [ $? -ne 0 ]
then
exit 1
fi
echo "Setting Password"
sudo /usr/bin/passwd $user
sudo /usr/sbin/usermod -f 90 $user
sudo /usr/bin/passwd -n 7 -x 30 -w 7 -f $user
sudo /usr/bin/passwd -f $user
echo "The user $user has been created"
viernes, 28 de octubre de 2011
FOCA 3
There is a new FOCA in town. After six months we got FOCA 3 FREE available for direct download in:
This new version has new fresh look and feel, and it is full of new features that you will love to discover.
Enjoy FOCA Lover!
miércoles, 5 de octubre de 2011
Windows: Password required vulnerability
Hay ciertas cuentas que genera Windows en forma predeterminada que no requieren password y son una vulnerabilidad, ya que es posible utilizarlas sin ingresar su password.
Para conocer si una cuenta requiere password o no, debemos ejecutar el siguiente comando:
>net user IUSR_testServer
User name IUSR_testServer
Full Name
Comment Built-in account for IIS
User's comment
Country code 000 (System Default)
Account active Yes
Account expires Never
Password last set 03/06/2011 11:12:42 p.m.
Password expires Never
Password changeable 03/06/2011 11:12:42 p.m.
Password required No
User may change password Yes
Workstations allowed All
Logon script
User profile
Home directory
Last logon 03/06/2011 11:12:42 p.m.
Logon hours allowed All
Local Group Memberships *Users
Global Group memberships *None
The command completed successfully.
Una vez que detectamos estas cuentas debemos analizar si la aplicacion que la usa (En nuestro caso el IIS) puede reconfigurarse y setearle el password para que sea utilizado.
Una vez realizado este analisis es necesario forzar que requiera password con el siguiente comando:
Una vez realizado esto, es recomendable reiniciar el servicio que utilice este usuario para comprobar que todo siga funcionando sin problemas.
Tambien será necesario controlar que el IIS tenga el password correcto ingresado en los sites que utilicen dicha cuenta. Si fuera otra aplicación verificar que la aplicación tenga el password correctamente ingresado.
Para conocer si una cuenta requiere password o no, debemos ejecutar el siguiente comando:
>net user IUSR_testServer
User name IUSR_testServer
Full Name
Comment Built-in account for IIS
User's comment
Country code 000 (System Default)
Account active Yes
Account expires Never
Password last set 03/06/2011 11:12:42 p.m.
Password expires Never
Password changeable 03/06/2011 11:12:42 p.m.
Password required No
User may change password Yes
Workstations allowed All
Logon script
User profile
Home directory
Last logon 03/06/2011 11:12:42 p.m.
Logon hours allowed All
Local Group Memberships *Users
Global Group memberships *None
The command completed successfully.
Una vez que detectamos estas cuentas debemos analizar si la aplicacion que la usa (En nuestro caso el IIS) puede reconfigurarse y setearle el password para que sea utilizado.
Una vez realizado este analisis es necesario forzar que requiera password con el siguiente comando:
net user /passwordreq:yes NombreUsusario
Una vez realizado esto, es recomendable reiniciar el servicio que utilice este usuario para comprobar que todo siga funcionando sin problemas.
Tambien será necesario controlar que el IIS tenga el password correcto ingresado en los sites que utilicen dicha cuenta. Si fuera otra aplicación verificar que la aplicación tenga el password correctamente ingresado.
martes, 27 de septiembre de 2011
How to force WSUS updates to install on a computer
LA forma de fozar a un computer (workstation o server) a que se comunique con WSUS y descargue los paquetes que tiene pendientes de instalación es reiniciando los servicios que utiliza WSUS:
Desde un CMD ejcutar lo siguiente:
net stop "windows installer"
net start "windows installer"
net stop "automatic updates"
net start "automatic updates"
net stop "background intelligent Transfer Service"
net start "background intelligent Transfer Service"
Si quieren hacer un vbscript puede hacerlo de la siguiente forma:
'Iniciar servicios de Windows Update
WSHShell.run "cmd.exe /K net stop ""windows installer"" & net start ""windows installer"" & exit", 1, true
WSHShell.run "cmd.exe /K net stop ""automatic updates"" & net start ""automatic updates"" & exit", 1, true
WSHShell.run "cmd.exe /K net stop ""background intelligent Transfer Service"" & net start ""background intelligent Transfer Service"" & exit", 1, true
Para ver el log de windows update y chequear los mensajes, desde Inicio > Ejecutar peguen esto:
notepad %WinDir%\WindowsUpdate.log
Desde un CMD ejcutar lo siguiente:
net stop "windows installer"
net start "windows installer"
net stop "automatic updates"
net start "automatic updates"
net stop "background intelligent Transfer Service"
net start "background intelligent Transfer Service"
Si quieren hacer un vbscript puede hacerlo de la siguiente forma:
'Iniciar servicios de Windows Update
WSHShell.run "cmd.exe /K net stop ""windows installer"" & net start ""windows installer"" & exit", 1, true
WSHShell.run "cmd.exe /K net stop ""automatic updates"" & net start ""automatic updates"" & exit", 1, true
WSHShell.run "cmd.exe /K net stop ""background intelligent Transfer Service"" & net start ""background intelligent Transfer Service"" & exit", 1, true
Para ver el log de windows update y chequear los mensajes, desde Inicio > Ejecutar peguen esto:
notepad %WinDir%\WindowsUpdate.log
sábado, 10 de septiembre de 2011
Unix Hands-on: hardening sendmail
En este post algunas recomendaciones de como segurizar sendmail:
1. Primero que nada debemos verificar version actual y si requiere upgrade. Esto es lo primero a evaluar en cuanto a seguridad en cualquier producto.
2. Para todas estas configuraciones vamos a necesitar trabajar como root.
/usr/local/bin/sudo su - root
3. Vamos a hacer las configuraciones de seguridad del servicio.
-Cambiar el banner que muestra el servicio para que no sea facil detectar que servicio y version estamos usando. Esto sirve para dificultar la detección de vulnerabilidades conocidas.
-Cambiar las privacy options.
#Muestra config actual
cat /etc/mail/sendmail.cf | grep PrivacyOptions
#Hago copia de seguridad
cp /etc/mail/sendmail.cf /etc/mail/sendmail.copy_old
#Reemplazo las PrivacyOptions
sed '
/O PrivacyOptions/ c\
O PrivacyOptions=authwarnings,needmailhelo,needexpnhelo,novrfy,noexpn,restrictqrun,restrictmailq' /etc/mail/sendmail.cf > /etc/mail/sendmail.cf2
mv /etc/mail/sendmail.cf2 /etc/mail/sendmail.cf
#Reemplazo el banner
sed "s/O SmtpGreetingMessage=\$j Sendmail \$v\/\$Z; \$b/O SmtpGreetingMessage=\$j myOwnMailService/" /etc/mail/sendmail.cf > /etc/mail/sendmail.cf2
mv /etc/mail/sendmail.cf2 /etc/mail/sendmail.cf
#Restart service Solaris 9
/etc/init.d/sendmail restart
#Restart service Solaris 10
/usr/sbin/svcadm restart /network/smtp:sendmail
svcs /network/smtp:sendmail
#Muestra la nueva config
cat /etc/mail/sendmail.cf | grep PrivacyOptions
1. Primero que nada debemos verificar version actual y si requiere upgrade. Esto es lo primero a evaluar en cuanto a seguridad en cualquier producto.
2. Para todas estas configuraciones vamos a necesitar trabajar como root.
/usr/local/bin/sudo su - root
3. Vamos a hacer las configuraciones de seguridad del servicio.
-Cambiar el banner que muestra el servicio para que no sea facil detectar que servicio y version estamos usando. Esto sirve para dificultar la detección de vulnerabilidades conocidas.
-Cambiar las privacy options.
#Muestra config actual
cat /etc/mail/sendmail.cf | grep PrivacyOptions
#Hago copia de seguridad
cp /etc/mail/sendmail.cf /etc/mail/sendmail.copy_old
#Reemplazo las PrivacyOptions
sed '
/O PrivacyOptions/ c\
O PrivacyOptions=authwarnings,needmailhelo,needexpnhelo,novrfy,noexpn,restrictqrun,restrictmailq' /etc/mail/sendmail.cf > /etc/mail/sendmail.cf2
mv /etc/mail/sendmail.cf2 /etc/mail/sendmail.cf
#Reemplazo el banner
sed "s/O SmtpGreetingMessage=\$j Sendmail \$v\/\$Z; \$b/O SmtpGreetingMessage=\$j myOwnMailService/" /etc/mail/sendmail.cf > /etc/mail/sendmail.cf2
mv /etc/mail/sendmail.cf2 /etc/mail/sendmail.cf
#Restart service Solaris 9
/etc/init.d/sendmail restart
#Restart service Solaris 10
/usr/sbin/svcadm restart /network/smtp:sendmail
svcs /network/smtp:sendmail
#Muestra la nueva config
uname -a
cat /etc/mail/sendmail.cf | grep PrivacyOptions
Unix Hands-on: ssh keys
Las ssh keys nos permiten loguearnos de forma "segura" (no siempre) a los equipos definidos sin tener que ingresar un password.
Esto es sobre todo util para usuarios de servicio que deban loguearse a otros equipos a ejecutar comandos.
Decía que no siempre es seguro, ya que depende de como esté configurado el su o sudo. Si el su no pide el password para root o para otros usuarios, es muy sencillo que un usuario no autorizado pueda loguearse en otros equipos utilizando las ssh keys de otro usuario. Por esto es que hay que tener cuidado en como se utilizan las ssh keys; pero sobre todo en como se configura su y sudo.
#Crear las ssh keys en el equipo cliente
mkdir ~/.ssh chmod 700 ~/.ssh ssh-keygen -q -f ~/.ssh/id_rsa -t rsa
# upload public key from client to server (o directamente lo apendo a authorized keys como esta abajo)
scp ~/.ssh/id_rsa.pub user@10.195.8.190:.ssh/authorized_keys
# Setup the public key on server
bash
cd ~
mkdir .ssh
chmod 700 .ssh
#Inserto mi public key en authorized keys
echo "ssh-rsa AAAB3NzaC1yc2EAAAAOIwAAAIEApF+hzf1x366jjC+qt61R267dtDM36lxIqvw3ICUbNhTNB5wP/628rfWNIdi16MeCxJaufaf42tm2TYrsdGUAKfVCbssmCWJLoRwgeHUzOPIueAHwVkiuyFIG5/EJW7gvvF65pQzXoAXlktq1sWOh7kL8HLGDgUwJe4xlwvDP4Lk= user@client" >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
Nota: ssh keys = llaves ssh (que mal que suena en castellano...)
Decía que no siempre es seguro, ya que depende de como esté configurado el su o sudo. Si el su no pide el password para root o para otros usuarios, es muy sencillo que un usuario no autorizado pueda loguearse en otros equipos utilizando las ssh keys de otro usuario. Por esto es que hay que tener cuidado en como se utilizan las ssh keys; pero sobre todo en como se configura su y sudo.
#Crear las ssh keys en el equipo cliente
mkdir ~/.ssh chmod 700 ~/.ssh ssh-keygen -q -f ~/.ssh/id_rsa -t rsa
# upload public key from client to server (o directamente lo apendo a authorized keys como esta abajo)
scp ~/.ssh/id_rsa.pub user@10.195.8.190:.ssh/authorized_keys
# Setup the public key on server
bash
cd ~
mkdir .ssh
chmod 700 .ssh
#Inserto mi public key en authorized keys
echo "ssh-rsa AAAB3NzaC1yc2EAAAAOIwAAAIEApF+hzf1x366jjC+qt61R267dtDM36lxIqvw3ICUbNhTNB5wP/628rfWNIdi16MeCxJaufaf42tm2TYrsdGUAKfVCbssmCWJLoRwgeHUzOPIueAHwVkiuyFIG5/EJW7gvvF65pQzXoAXlktq1sWOh7kL8HLGDgUwJe4xlwvDP4Lk= user@client" >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
Nota: ssh keys = llaves ssh (que mal que suena en castellano...)
Suscribirse a:
Entradas (Atom)
