miércoles, 31 de marzo de 2021

Listar usuarios locales de Windows



Ver cuentas de usuario locales de un ervidor Windows Server o de un PC de usuario..



Debido a ciertas peticiones que debía atender para una auditoría de seguridad, necesitaba listar todos los usuarios locales de un Windows Server. Para hacer esto, hay varias formas, de las cuales voy a mostrar las dos que se ejecutan vía línea de comandos: cmd y PowerShell.

cmd



Para listar los usuarios locales de un Windows mediante cmd:

C:\Users\usuario>net user Cuentas de usuario de \\WIN ------------------------------------------------------------------------------ Administrador DefaultAccount defaultuser0 Invitado Usuario WDAGUtilityAccount Se ha completado el comando correctamente.

Las cuentas de usuario se enumeran por los nombres internos que Windows usa, no por su nombre de visualización mostrado cuando se inicia sesión en Windows.


PowerShell



Si queremos listar los usuarios locales mediante PowerShell:

Get-WmiObject Win32_UserAccount -filter “LocalAccount=True” | Select-Object Name,FullName,Disabled.

Ejemplo:

PS C:\Users\usuario> Get-WmiObject Win32_UserAccount -filter "LocalAccount=True" | Select-Object Name,FullName,Disabled. Name FullName Disabled. ---- -------- --------- Administrador DefaultAccount defaultuser0 Invitado Usuario WDAGUtilityAccount

Al igual que antes, se muestran los nombres internos de Windows, no los nombres de visualización.
1

miércoles, 24 de marzo de 2021

Acceder a una carpeta compartida con samba en Linux con un usuario de Active Directory



Cómo acceder a un share de samba ubicado en Linux con un usuario de Active Directory.



Al usar Samba en un sistema Linux, podemos conectar este con el Active Directory de la organización y permitir el acceso a ciertas carpetas solo a determinados usuarios del dominio.

Primero de todo debemos instalar el paquete de Samba Client en nuestro sistema operativo a la par que el paquete krb5 y conectar el S.O. con el dominio.

El siguiente paso es configurar el apartado [global] del archivo smb.conf ubicado en /etc/samba:

[global] netbios name = nombredemaquina workgroup = DOMINIO idmap gid = 10000-20000 idmap uid = 10000-20000 kerberos method = secrets and keytab realm = DOMINIO.LOCAL security = ADS template homedir = /home/%D/%U template shell = /bin/bash winbind offline logon = yes winbind refresh tickets = yes winbind use default domain = yes

NOTA: cambiar "nombredemaquina" por el nombre real de la máquina dentro del dominio y "DOMINIO" por el nombre de dominio de la organización.

A continuación, podemos crear carpetas compartidas o shares cuya visibilidad esté restringida a ciertos usuarios, por ejemplo usuario1 y usuario2, en el archivo smb.conf:

[Nombre] path = /ruta access based share enum = yes read only = no valid users = usuario1, usuario2 create mask = 0775 directory mask = 0775

Lo más interesante de esta configuración es la opción "access based share enum". Samba, en su archivo smb.conf, permite enumerar los recursos compartidos en función de los permisos de acceso.

Si este parámetro está configurado en "yes" para un share, este solo será visible para los usuarios que hayamos definido que tengan acceso de lectura o escritura al recurso (en el ejemplo, usuario1 y usuario2. Solo estos dos usuarios serán capaces de ver la carpeta compartida).

Para esconder solamente los archivos o carpetas ubicados dentro de una carpeta compartida a usuarios que no tengan permisos de lectura o escritura:

[share] hide unreadable = yes

Tras modificar alguna de estas opciones, hace falta reiniciar el daemon de smb (systemctl restart smb).


Fuentes:

https://serverfault.com/questions/144339/hiding-samba-share-from-browse-list-for-unauthorised-users

https://superuser.com/questions/1028430/hide-samba-share-names

https://access.redhat.com/solutions/2262051

https://askubuntu.com/questions/352456/samba-setup-for-windows-domain-access

https://www.tecmint.com/create-shared-directory-on-samba-ad-dc-and-map-to-windows-linux/

https://wiki.samba.org/index.php/Setting_up_a_Share_Using_POSIX_ACLs

https://askubuntu.com/questions/102924/list-samba-shares-and-current-users

https://askubuntu.com/questions/208013/how-can-i-set-up-samba-shares-to-only-be-accessed-by...

https://community.spiceworks.com/topic/400799-linux-samba-file-server-with-ad-authentication

https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html

https://serverfault.com/questions/395486/i-can-connect-to-samba-server-but-cannot-access-shares

https://unix.stackexchange.com/questions/377516/what-does-browseable-in-samba-configuration...

https://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-samba-servers.html

http://www.bdat.net/documentos/samba/smb.conf/t1.html

https://serverfault.com/questions/562875/samba-default-file-creation-mask-calculation
0

miércoles, 17 de marzo de 2021

vCenter a través de NGINX reverse proxy



Cómo acceder a un vCenter web a través de NGINX.



Podemos acceder a un vCenter vía web con su subdominio en dominio.local, del tipo vcenter.dominio.local, pero eso llevará a que el subdominio tenga un certificado autofirmado y el navegador web se queje de ello.

Podríamos subir un certificado SSL firmado por una autoridad certificadora como GoDaddy al vSphere y solucionar el problema, pero entonces tendríamos que recordar de renovarlo cada año.

Por otro lado, podemos hacer que el acceso al vCenter pase por un reverse proxy como NGINX.

Veamos un ejemplo:

server { listen 443 ssl; server_name vcenter.dominio.com; ssl_certificate /etc/ssl/dominio.com/dominio.com.crt; ssl_certificate_key /etc/ssl/dominio.com/dominio.com.key; access_log /var/log/nginx/vcenter.dominio.com_access.log; error_log /var/log/nginx/vcenter.dominio.com_error.log; location / { proxy_set_header Host vcenter.dominio.local; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; sub_filter "vcenter.dominio.local" "vcenter.dominio.com"; proxy_pass https://vcenter.dominio.local; } }

En este ejemplo, usamos la directiva proxy_set_header Host seguida del dominio.local para forzar las peticiones hacia el dominio configurado en vSphere.

Además, usamos 'sub_filter' para filtrar las peticiones hacia dominio.local y cambiarlas por dominio.com (string original primero, reemplazo en segundo lugar).


Fuentes:

http://nginx.org/en/docs/http/ngx_http_sub_module.html#sub_filter
0

miércoles, 10 de marzo de 2021

Solucionar Windows Remote Desktop Protocol Weak Encryption Method Allowed (Qualys)



Cómo solucionar la vulnerabilidad de Windows reportada por el scanner de Qualys "Windows Remote Desktop Protocol Weak Encryption Method Allowed".



Tras escanear un host Windows con la herramienta Qualys, me encontré con la vulnerabilidad "Windows Remote Desktop Protocol Weak Encryption Method Allowed".

Ante todo, comprobé qué encriptación veía activa mediante uno de los plugins de nmap:

HOST# nmap -p 3389 --script rdp-enum-encryption 192.168.1.1 Starting Nmap 7.70 ( https://nmap.org ) at 2021-03-10 10:26 CEST Nmap scan report for host.local (192.168.1.1) Host is up (0.00058s latency). PORT STATE SERVICE 3389/tcp open ms-wbt-server | rdp-enum-encryption: | Security layer | CredSSP: SUCCESS | Native RDP: SUCCESS | SSL: SUCCESS | RDP Encryption level: Unknown |_ 128-bit RC4: SUCCESS MAC Address: 00:50:56:A6:07:15 (VMware) Nmap done: 1 IP address (1 host up) scanned in 0.77 seconds

Acto seguido, ejecuté estos comando en PowerShell:

PS C:\Users\Administrator> $RDSSettings = Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'" PS C:\Users\Administrator> $RDSSettings.SetEncryptionLevel(3) __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 1 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ReturnValue : PSComputerName : PS C:\Users\Administrator> $RDSSettings.SetSecurityLayer(2) __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 1 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ReturnValue : PSComputerName : PS C:\Users\Administrator>

Después de esto, volví a pasar nmap y vi lo siguiente:

HOST# nmap -p 3389 --script rdp-enum-encryption 192.168.1.1 Starting Nmap 7.70 ( https://nmap.org ) at 2021-03-10 10:28 CEST Nmap scan report for host.local (192.168.1.1) Host is up (0.00058s latency). PORT STATE SERVICE 3389/tcp open ms-wbt-server | rdp-enum-encryption: | Security layer | CredSSP: SUCCESS |_ SSL: SUCCESS MAC Address: 00:50:56:A6:07:15 (VMware) Nmap done: 1 IP address (1 host up) scanned in 0.93 seconds

Tras esto, el scanner de Qualys ya no mostró la vulnerabilidad.


Más información:

https://docs.microsoft.com/es-es/windows/win32/termserv/win32-tsgeneralsetting-setsecuritylayer
https://docs.microsoft.com/es-es/windows/win32/termserv/win32-tsgeneralsetting-setencryptionlevel
0

miércoles, 3 de marzo de 2021

Crear SNMP community en Linux



Cómo crear una comunidad SNMP en un sistema operativo Linux.



Para crear una comunidad SNMP en un sistema operativo Linux debemos editar el archivo:

/etc/snmp/snmpd.conf

Una vez dentro, hacer que la community sea read-only con el parámetro "rocommunity".

A continuación, escribir el nombre de la community (en este caso la he llamado "prueba"):

# Please see /usr/share/doc/packages/net-snmp/EXAMPLE.conf for a # more complete example and snmpd.conf(5). # # Writing is disabled by default for security reasons. If you'd like # to enable it uncomment the rwcommunity line and change the community # name to something nominally secure (keeping in mind that this is # transmitted in clear text). # don't use ' < > in strings for syslocation or syscontact # Note that if you define the following here you won't be able to change # them with snmpset syslocation Server Room syscontact Sysadmin (root@localhost) # These really aren't meant for production use. They include all MIBS # and can use considerable resources. See snmpd.conf(5) for information # on setting up groups and limiting MIBS. rocommunity prueba # rwcommunity mysecret 127.0.0.1

Por último, reiniciar el daemon de snmp:

HOST# service snmpd restart

Tras esto, ya se debería poder acceder a la community "prueba" en este servidor.
0