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

miércoles, 24 de febrero de 2021

Forzar PC a conectarse a un DC específico



Forzar a qué Domain Controller / Active Directory / Directorio Activo se autentica el ordenador o PC de un usuario de una organización o empresa.



En las organizaciones que tienen varios controladores de dominio, los inicios de sesión de máquina y de usuario se reparten entre ellos. Esto hace que dos máquinas de una misma sede puedan estar autenticadas en diferentes controladores de dominio.

En otra entrada ya dije cómo averiguar en qué controlador de dominio se ha autenticado una máquina. Ahora mostraré como forzar que una máquina se autentique contra el controlador de dominio que le especifiquemos nosotros manualmente.

Para forzar la autenticación de una máquina:

1. Abrir cmd.exe
2. Ejecutar la siguiente instrucción:

nltest /SC_RESET:dominio.local\SERVIDORDC

Donde dominio.local es el dominio de la organización y SERVIDORDC el nombre de máquina del servidor DC (Domain Controller) en el que queramos que la máquina se autentique.
0

miércoles, 17 de febrero de 2021

cifs_mount failed w/return code = -512



Resolver cifs_mount error 512



Hoy me ha tocado montar en un Linux una carpeta compartida desde un Windows Server 2003 (sí, lo se, debería ser delito tener un Windows Server 2003 corriendo en 2021).

He tratado de montar la carpeta compartida con este comando:

mount -t cifs -o username=usuario,password=password //192.168.1.1/carpeta /carpeta/en/linux

El comando se quedaba cargando infinitamente, así que le he metido verbosidad con:

mount -t cifs -o username=usuario,password=password //192.168.1.1/carpeta /carpeta/en/linux --verbose

pero cifs no me ha mostrado nada.

Llegados a este punto, me he ido a /var/log/messages y he visto el siguiente mensaje:

CIFS: Attempting to mount //192.168.1.1/carpeta No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3 (or SMB2.1) specify vers=1.0 on mount. CIFS VFS: Cancelling wait for mid 0 cmd: 0 CIFS VFS: cifs_mount failed w/return code = -512

He probado a forzar la versión de Samba a 1.0 del siguiente modo:

mount -t cifs -o vers=1.0,username=usuario,password=password //192.168.1.1/carpeta /carpeta/en/linux

Y la carpeta ha montado sin problemas.
0

miércoles, 10 de febrero de 2021

Presentar un nuevo volumen a una EC2 Linux



Cómo presentar un nuevo disco o volumen a una EC2 Linux.



La situación es la siguiente: tenemos una instancia (o máquina virtual) Linux en AWS y queremos presentarle un nuevo disco o volumen EBS para montarlo en una carpeta y almacenar ficheros en él.

Primero de todo, creamos un nuevo volumen en la consola de AWS con el tamaño que necesitemos (luego se puede ampliar) y lo adjuntamos a la instancia EC2 en cuestión.

Lo podemos ver ahora en la instancia ejecutando el comando lsblk como xvdb:

HOST# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 300G 0 disk ├─xvda1 202:1 0 2M 0 part ├─xvda2 202:2 0 20M 0 part /boot/efi └─xvda3 202:3 0 300G 0 part / xvdb 202:16 0 1.5T 0 disk

A continuación, formateamos el volumen. En este caso, lo he formateado a XFS:

HOST# mkfs -t xfs /dev/xvdb meta-data=/dev/xvdb isize=512 agcount=4, agsize=98304000 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=0, rmapbt=0 = reflink=0 data = bsize=4096 blocks=393216000, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=192000, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0

En este punto, ya podemos crear el directorio donde se montará el disco (/oradata):

HOST# mkdir /oradata

Monto el disco sobre la carpeta:

HOST# mount /dev/xvdb /oradata

Compruebo que el disco esté montado sobre el directorio en cuestión mediante df:

HOST# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 16G 4.0K 16G 1% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 353M 16G 3% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/xvda3 300G 57G 244G 19% / /dev/xvda2 20M 142K 20M 1% /boot/efi tmpfs 3.2G 0 3.2G 0% /run/user/1000 /dev/xvdb 1.5T 1.6G 1.5T 1% /oradata

Se observa que /dev/xvdb está montado sobre /oradata.

Llegados aquí, toca hacer que el montaje sea persistente. Para ello, miramos el ID del volumen con blkid:

HOST# blkid /dev/xvda1: PARTLABEL="p.legacy" PARTUUID="73cfc22b-6651-4fa1-9cee-04818d0607be" /dev/xvda2: SEC_TYPE="msdos" LABEL_FATBOOT="EFI" LABEL="EFI" UUID="564C-A498" TYPE="vfat" PARTLABEL="p.UEFI" PARTUUID="2d0407cf-5df1-4ff4-9c7f-5796c942fd32" /dev/xvda3: LABEL="ROOT" UUID="15991bdf-394d-4e90-b988-5061b112debe" TYPE="xfs" PARTLABEL="p.lxroot" PARTUUID="0e94321a-99d8-4a89-8b3e-ee0ffaad835c" /dev/xvdb: UUID="3a21705d-ad34-4ce2-94ab-9df6edcc727d" TYPE="xfs"

Vemos el ID de xvdb en la última línea.

Ahora, modifico el archivo /etc/fstab para que el volumen se monte automáticamente tras un reinicio:

HOST# vi /etc/fstab

El archivo /etc/fstab queda así:

LABEL=ROOT / xfs defaults 0 0 LABEL=EFI /boot/efi vfat defaults 0 0 UUID="3a21705d-ad34-4ce2-94ab-9df6edcc727d" /oradata xfs defaults 0 0

Por último, podemos probar a desmontar /oradata y montarlo automáticamente siguiendo los puntos de montaje presentes en /etc/fstab para emular el comportamiento tras un reinicio de la instancia:

HOST# umount /oradata

Ahora monto todas las particiones automáticamente:

HOST# mount -a

Y compruebo que el disco esté montado usando df:

HOST# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 16G 4.0K 16G 1% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 353M 16G 3% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/xvda3 300G 57G 244G 19% / /dev/xvda2 20M 142K 20M 1% /boot/efi tmpfs 3.2G 0 3.2G 0% /run/user/1000 /dev/xvdb 1.5T 1.6G 1.5T 1% /oradata


Fuentes:

https://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/ebs-using-volumes.html
0

miércoles, 3 de febrero de 2021

Listar carpetas compartidas por samba



¿Cómo listar las carpetas compartidas por samba en un servidor remoto?



Si queremos listar las carpetas que un servidor remoto está compartiendo en red, podemos usar smblcient para ello desde la terminal de un Linux.

HOST# smbclient -L 192.168.1.1 Enter WORKGROUP\root's password: Sharename Type Comment --------- ---- ------- profiles Disk Network Profiles Service users Disk All users groups Disk All groups print$ Disk Printer Drivers IPC$ IPC IPC Service (Samba 4.11.14-git.247.8c858f7ee144.19.1-SUSE-oS15.0-x86_64) SMB1 disabled -- no workgroup available

192.168.1.1 es la IP del servidor que está publicando carpetas en red.

El nombre de cada carpeta es cada una de las líneas de la columna sharename.
0