pacampos's profilePcamposs BlogsPhotosBlogLists Tools Help

Blog


    May 24

    Como ver si un usuario del dominio es administrador local de su Desktop


    strGroup = "Administradores"
    strComputer = "."
    Set oShell = CreateObject( "WScript.Shell" )
    usuario = oShell.ExpandEnvironmentStrings("%username%")
    set objGroup = GetObject("WinNT://" & strComputer & "/" & strGroup)
    for each objMember in objGroup.Members
        if objMember.Name = usuario Then
            Wscript.Echo "Es Administrador"
        End if
    next
    set objGroup = nothing

    El resultado lo podríamos almacenar en un archivo de texto en alguna carpeta compartida para mas adelante tomar alguna decisión con estos usuarios.

    Carpetas compartidas con Full Control para Todos/Everyone

    Hola a todos.
    Haciendo un poquito de auditoria en los desktops, nos dimos cuenta que muchos usuarios comparten sus carpetas con el permisos Full Control o Cambiar. Lo que nos trae un gran problema, ya que otros usuarios inescrupolosos podrían borrar o cambiar archivos que no son de el.

    P:¿Que podemos hacer para advertirle al usuario que tiene un recurso compartido para todos con permisos demasiado altos?
    R: Un script de inicio de sesión

    El problema que este es script no es muy sencillo ya que tendremos que llegar hasta el DACL ("discretionary access control list").

    Para esto ocuparemos el método GetSecurityDescriptor que nos traerá el descriptor que tiene esta forma absoluta

    GetOpenContent

    Dentro del Descriptor están las SACL (Security Acces Control List), las ACL tienen un listado de ACE,las cuales definen la protección que tiene un objeto

    GetOpenContentACL

    Bueno después de ese poco de teoría nos vamos a hacer un script

    Primero recorremos todos los recursos compartidos de nuestro PC

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    'En este linea hacemos la consulta a todos los recursos comparidos
    Set colShares = objWMIService.ExecQuery("Select * from Win32_Share")

    'hacemos un ciclo para recorrer cada uno de ello
    For each objShare in colShares
        ' enviamos en computador, el nombre del recurso compartido y la ruta a una función llamada ViewSharePermission
        ViewSharePermission strComputer, objShare.Name, objShare.Path
    Next

    'Esta funcion la saque de la siguiente pagina http://wmiscripting.wordpress.com/2007/12/07/view-share-permission/ y la modifique
    Sub ViewSharePermission(vComputer, vShareName,vPath)
        Dim objWMIService 
        Dim objFolderSecSetting
        Dim objSecDescriptor
        Dim intRetVal
        Dim arrDACL
        Dim objACE
        Dim objTrustee
        On Error Resume Next

        '// Get Security Descriptor 
        Set objWMIService = GetObject("winmgmts:\\" & vComputer & "\root\cimv2")
        If Err <> 0 Then
            Wscript.Echo "Connect to " & vComputer & " failed."
            Err.Clear
            Exit Sub
        End If

        Set objFolderSecSetting = objWMIService.Get("Win32_LogicalShareSecuritySetting.Name='" & vShareName & "'")
        intRetVal = objFolderSecSetting.GetSecurityDescriptor(objSecDescriptor)

        If IsNull(objSecDescriptor.DACL) Then
            '// Note: A NULL DACL gives full access to everyone, which is a serious security risk
            CreateReport "Share Permission," & vShareName & "," & "Everyone" & "," & "Full Control"
        Else
            arrDACL = objSecDescriptor.DACL '// Get DACL (an array of Win32_ACE objects)
            For Each objACE In arrDACL
                Set objTrustee = objACE.Trustee
                if GetShareAccessMaskStr(objACE.AccessMask) = "Full Control" then
                    msgbox("Estimado usuario la carpeta " &vpath&" Tiene permisos de CONTROL TOTAL para TODOS los Usuarios de la Red")
                elseif GetShareAccessMaskStr(objACE.AccessMask) = "Change" then
                        msgbox("Estimado usuario la carpeta " &vpath&" Tiene permisos de CAMBIAR SUS ARCHIVOS para TODOS los Usuarios de la Red")
                end if
            Next
        End If

        Set objFolderSecSetting = Nothing
        Set objWMIService = Nothing
    End Sub

    Function GetShareAccessMaskStr(vAccessMaskVal)
        Dim strTemp
        Select Case vAccessMaskVal
            Case 2032127:  strTemp = "Full Control"
            Case 1245631:  strTemp = "Change"
            Case 1179817:  strTemp = "Read"  
            Case Else: strTemp = "Access Mask " & vAccessMaskVal
        End Select
        GetShareAccessMaskStr = strTemp
    End Function

    May 20

    Fotos de la Charla Nap en DuocUC

    Hola a todos ayer (19/mayo) se realizo una charla de introducción  NAP. Les agradezco a todos los que asistieron, ya que había un temporal horrible en la 8va región.

    Lo que mas me sorprendió fue un par de asistentes de Temuco, distante unas 4 horas de Concepción "SORPRENDENTE"

    Les dejo un par de fotitos

    IMG_4942 IMG_4955 IMG_4972

    Iniciar automáticamente el servicio NAP Vbscript && powershell

    Como se habrán  dado cuenta el servicio "Agente de Protección de acceso a redes" napagent viene detenido por defecto en Windows XP Sp3.

    Si están en un dominio con Windows Server 2003, podrán generar un script de inicio de sesión con el siguiente código en VBS

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
         & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colServiceList = objWMIService.ExecQuery("Select * from Win32_Service where name = 'napagent'")
    for each columnas in colServiceList
       errReturnCode = columnas.Change( , , , , "Manual")
       errReturnCode = columnas.StartService()
    next



    En PowerShell

    Set-Service -name napagent -statupType automatic
    Start-Service -name napagent

    May 13

    Charla Windows Server 2008 + NAP

    Hola a todos

    El día Lunes 19 de Mayo realizare una charla de Windows Server 2008 + NAP

    · Fecha : Lunes 19
    · Hora : 19:00 -> ojo, en el registro de Microsoft dice 18:30 hrs
    · Valor : $0
    · Lugar : DuocUC Sede San Andrés, Paicaví 3280, Concepción
    · Orador : Pablo Campos S.
    · Titulo : ITSur invita: Protegiendo el acceso a las redes con NAP
    · Network Access Protection (NAP) es una potente herramienta disponible con  Windows Server 2008 que nos ayuda a proteger la red contra malware y otras amenazas. Se explicaran las nuevas capacidades del role de  "Network Policy Sever" y como se puede usar NAP para obligar a cumplir una serie de requisitos en cuestiones de seguridad a los equipos que se quieran conectar a nuestra red.

    PD: Auditorio S18

    Registrate aqui para este evento

    Estamos haciendo grandes esfuerzos de tiempo para preparar un laboratorio real con routers y switchs cisco 802.1X  para que ese día podamos hacer un demo real :)

    Publicando programas EXE mediante GPO como ZAP


    Hola a todos.
    Hoy me toco instalar masivamente el paquete FileFormatConverters.exe "Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats".

    El problema es que por GPO solo se pueden instalar paquetes *.msi o *.zap.
    Personalmente no me gustan los conversores de exe a msi que polulan por Internet

    Cuales son los pasos para poder publicar un EXE con exito

    1. Crear una carpeta compartida con permisos de lectura y ejecucion ej:\\192.168.222.10\software
    2. Crear un archivo .zap con el siguiente contenido
      [Application]
      FriendlyName = "Software para poder leer archivos de Office 2007 en Office 2003"
      SetupCommand = "\\192.168.222.10\software\FileFormatConverters.exe /passive"
      DisplayVersion = 1.0
      Publisher = Pablo Campos

      Guardarlo como FileFormatConverters.zap
    3. Dejar el archivo FileFormatConverters.exe y FileFormatConverters.zap dentro de \\192.168.222.10\software 
    4. Crear la politica

      sw01 

      sw02

      sw03
    5. Ejecutamos gpupdate /force para forzar la actualización de las políticas y probamos
    6. Iniciamos sesión en el dominio y entramos al panel de control -> agregar o quitar programas -> Agregar programas nuevos...
      Si aparece en la lista :) si no aparece .... hay que ver el log de sucesos
      sw04

    mas info http://support.microsoft.com/kb/231747/en-us

    Eso es todo, un saludo