WMI Autentificering/autorisation NTLM/Kerberos

En af grundstenene for overvågning af Windows operativsystemet at benytte WMI (Windows Management Instrumentation).

Windows Management Instrumentation (WMI) blev udviklet af Microsoft som en del af deres implementering af en standard kaldet Web-Based Enterprise Management (WBEM). WBEM blev oprindeligt defineret af Distributed Management Task Force (DMTF), en organisation, der skaber standarder for systemadministration.

WMI blev introduceret som en standardkomponent i Windows med Windows 2000 og videreudviklet i senere versioner af operativsystemet. Formålet med WMI er at give systemadministratorer et værktøj til at overvåge og administrere Windows-systemer på en standardiseret måde. Det giver adgang til data og funktioner i operativsystemet via en ensartet grænseflade.

I Neosec Security Server benyttes både lokal login, samt fjernlogin ved overvågning via WMI.

Lokal login benyttes på selve Neosec Security Server for monitorering af operativ system og applikationer der er installeret på overvågnings serveren.

Lokal Login benyttes også ved brug af Neosec Windows Agent, som benyttes på servere der ikke er direkte adgang til fra den centrale Neosec Security Server. Dette kan være I miljøer hvor serverene er placeret I DMZ eller på et fjerndestination, hvor der ikke er direkte adgang til fra overvågnings serveren.

Metoder til login I WMI:

Windows Authentication (standard):

  • WMI bruger normalt Windows-brugerkonti til autentificering.
  • Du skal have en konto med tilstrækkelige privilegier (typisk administrative rettigheder) på den lokale eller fjernmaskine.

Netværksautentificering (RPC):

  • Hvis du tilgår WMI på en fjernmaskine, bruges ofte NTLM eller Kerberos til at validere legitimationsoplysninger over netværket. NTLM er standard.
  • Brugeren skal stadig have rettigheder til at få adgang til WMI-namespace på fjernmaskinen (f.eks. ROOT\CIMV2).
  • Som standard benyttes NTLM ved login I WMI, men man kan også benytte Kerberos som er mere sikkert.

Rettigheder og Autorisation:

  • Den brugerkonto, der bruges til login, skal have adgang til de relevante WMI-namespaces.
  • Dette kan konfigureres via WMI Control (wmimgmt.msc), hvor du kan give specifikke brugere eller grupper adgang til at udføre handlinger inden for WMI.

Sørg for at anvende sikre login oplysninger og begrænse adgangen til kun de nødvendige personer og systemer.

NTLM og Kerberos er begge autentificeringsprotokoller, der bruges i Windows-netværk, men de fungerer forskelligt og har forskellige fordele og ulemper, når det gælder brugen af WMI (Windows Management Instrumentation). Her er de vigtigste forskelle:

Generelt overblik

NTLMKerberos
Ældre protokol, som stammer fra Windows NT.Moderne protokol introduceret med Windows 2000.
Bruger udfordring/svar-metoden til autentificering.Bruger billetter udstedt af en Key Distribution Center (KDC).
Mindre sikker sammenlignet med Kerberos.Mere sikker og effektiv.
Bruges som fallback, når Kerberos ikke er tilgængelig.Standardprotokollen i domænebaserede miljøer.

Autentificeringsmekanisme

  • NTLM:
    • Bygger på en udfordring-svar-model.
    • Klienten sender et hashed brugernavn og en krypteret adgangskode til serveren.
    • Serveren validerer ved at sammenligne med sine egne hashes.
    • Støtter ikke delegation af legitimationsoplysninger uden tredjepartsværktøjer.
  • Kerberos:
    • Bygger på et billet-system.
    • En klient får en Ticket Granting Ticket (TGT) fra KDC (ofte domænekontrolleren).
    • Klienten præsenterer TGT for at få adgang til ressourcer uden at sende adgangskoder igen.
    • Støtter delegering af legitimationsoplysninger, hvilket gør det ideelt til komplekse scenarier med flere hop (f.eks. fjern-WMI, der involverer mellemled).

NTLM og Kerberos med WMI

  • NTLM med WMI:
    • Bruges typisk i arbejdsgrupper eller uden for et Active Directory-domæne.
    • Ikke afhængig af en KDC (domænekontroller), så det fungerer i miljøer uden centraliseret autentificering.
    • Mindre sikkert og ineffektivt for større miljøer.
    • Brugen af NTLM kræver ofte direkte administrative rettigheder på den målrettede maskine.
  • Kerberos med WMI:
    • Standardprotokollen i Active Directory-miljøer.
    • Gør det muligt at godkende sikkert og uden at sende adgangskoder over netværket.
    • Støtter multi-hop-forbindelser (f.eks. hvis en fjern-WMI-kommando videresendes via en mellemserver).
    • Mere sikker og hurtigere i store, komplekse netværk.

Sikkerhed

NTLM:

  • Sårbart over for pass-the-hash-angreb.
  • Ingen kryptering af sessioner som standard.
  • Bruges som fallback i tilfælde, hvor Kerberos ikke kan anvendes.

Kerberos:

  • Brug af tidsstemplede billetter gør det svært at udføre replay-angreb.
  • Billetter kan krypteres, hvilket beskytter mod aflytning.
  • Kræver korrekt konfiguration af tidssynkronisering mellem systemer, da billetter er tidsfølsomme.

Hvilken skal man vælge til WMI?

  • Hvis muligt, brug Kerberos, især i Active Directory-miljøer, da det er mere sikkert og effektivt.
  • Brug NTLM som fallback, hvis du arbejder i arbejdsgrupper eller systemer uden Kerberos-støtte.

For en sikker konfiguration, sørg for at minimere NTLM-brugen og implementere Kerberos korrekt i domænemiljøer.

Find mere info på følgende links.

Windows Management Instrumentation – Win32 apps | Microsoft Learn

Konfiguration af SNMPv3 på Cisco IOS/IOS XE

Konfiguration af SNMPv3 er ikke lige så nemt som med SNMPv1 og SNMPv2c hvor man benytter et community navn og definerer om det er readonly eller write adgang. SNMPv3 kræver et SNMPv3 View, en SNMPv3 Gruppe samt en SNMPv3 bruger.

Følg denne guide, for at konfigurere det.

Konfiguration af SNMPv3 View,

Et SNMPv3 View er en definition af hvilke SNMP OID der gives adgang til. Her giver vi adgang til hele SNMP OID træstrukturen.

snmp-server view snmpv3-oid-all iso included

Herefter skal vi knytte dette SNMP View til en Gruppe. Når man opretter en gruppe, skal man træffe nogle valg.

Ved oprettelsen skal man angive følgende

  1. Hvilken validering og kryptering af kommunikation der skal benyttes
  2. Om man skal have skrive adgang eller læse adgang.

I dette eksempel, vælger vi at benytte priv (Det vil sige at vi vil validere en bruger, samt benytte kryptering for kommunikationen)

Udover det vil vi kun give læse adgang via SNMP kommunikationen.

snmp-server group snmpv3group-read-all v3 priv read snmpv3-oid-all

Herefter skal brugeren oprettes, også her skal der træffes nogle valg ved oprettelsen.

  • Brugernavn
  • hvilken gruppe brugeren skal være medlem af.
  • hvilken kryptering der skal benyttes for validering, MD5 eller sha.
  • hvilken kryptering der skal benyttes ved kommunikation DES, 3DES, AES, AES192, AES384.
  • Password for bruger validering, her har vi valgt : h4KhA5cRXU3sEB
  • Password for Kryptering, her har vi valgt : XQ2EUKf2quaXN7

Der kan være forskel på hvilke sikkerheds protokoller og krypterings protokoller der kan benyttes på de forskellige netværks enheder. Dette har noget at gøre med alderen på udstyret, men også noget med versionen og understøttelse af sikkerhed.

snmp-server user snmpv3user snmpv3group-read-all v3 auth sha h4KhA5cRXU3sEB priv aes 256 XQ2EUKf2quaXN7

Herefter kan man overvåge en Cisco switche eller router med SNMPv3.

Der kan være forskel på hvilke sikkerheds protokoller og krypterings protokoller der kan benyttes på de forskellige netværks enheder. Dette har noget at gøre med alderen på udstyret, men også noget med versionen og understøttelse af sikkerhed. DES/3DES kryptering og SHA1 Hash algoritme, ses som usikre, men der er stadig hardware derude som kun understøtter disse, i forhold til AES kryptering og SHA2 Hash algoritme.

SNMPv3

SNMPv3 er en overbygning til SNMPv1 og SNMPv2c. SNMPv1 er basis SNMP som benytter u-krypteret kommunikation og kun understøtter 32 bit værdier. SNMPv2c er som SNMPv1 men kan håndtere 64 bit værdier som er nødvendige ved overvågning af Netværks interfaces som håndtere mere end 100Mbit. Med SNMPv1 og SNMPv2c benyttes en community tekst streng som password og validering af SNMP kommunikationen.

Med SNMPv3 gives der mulighed for mere sikkerhed i forbindelse med kommunikation til netværksenheder. Her benytter man ikke en community streng, men en bruger. Brugeren skal være medlem af en gruppe, hvor man har mulighed for at konfigurere forskellige adgange for de enkelte bruger. Men vigtigst af alt, med SNMPv3 introdusere man kryptering af SNMP kommunikationen imellem server og SNMP Agent (enheden der overvåges).

Sikkerheds adgang

SNMPv3 benytter følgende tre sikkerheds niveauer

  • NoAuthNoPriv – Ingen bruger validering, ingen kryptering
  • AuthNoPriv – Bruger validering, ingen kryptering
  • AuthPriv – Benytter både bruger validering og kryptering af kommunikation

Krypterings protokoller

Følgende krypterings protokoller kan benyttes ved SNMPv3 kommunikation

Validering:

I mange år har man kun kunnet benytte SHA1, MD5 ved validering, men i det at man anser disse former for usikre, bør man i dag benytte SHA256, SHA384, SHA512

Kryptering:

Igen har man i mange år benyttet DES og 3DES som standard protokoller for kryptering af SNMPv3 kommunikation. Disse protokoller er i dag anset som usikre og man bør benytte AES128, AES192 og AES256 for kryptering af kommunikationen.

SNMP View

SNMP Views, benyttes til at give adgang til hele SNMP OID træet eller kun dele af den. Dette styres på den enkelte netværks enheds som skal overvåges. Normalt vil man give adgang til hele træet i læse adgang, sådan at man har adgang til alle SNMP værdier på enheden.

SNMP Grupper

En SNMP Gruppe styrer adgangen til et SNMP View, man tilknytter en SNMPv3 bruger, som så får adgang til det tilknyttede SNMP View. Man kan give læse adgang eller skrive adgang til en gruppe.

Neosec Security Server

SNMPv3 er understøttet i Neosec Security Server og kan benyttes direkte via serveren samt via Network Agenten.

Følg nedenstående links for konfiguration af SNMPv3 på SNMP Agenter på netværks udstyr.

Links

Konfiguration af SNMPv3 på Cisco IOS/IOS XE

Oprettelse af SNMPv3 på Cisco Secure Firewall via Firepower Management Center

Oprettelse af SNMPv3 på Cisco Secure Firewall via Rest API FDM.

Konfiguration af SNMP overvågning på Ubuntu server

iPerf3 installation Ubuntu server

Dette indlæg omhandler installation af iPerf3 som er et performance tool som måler båndbredden imellem klient og server. iPerf3 er udviklet af nogle franske udviklere og man kan læse mere omkring dette på iperf.fr.

Installation af iPerf3

sudo apt install iperf3

Konfigurer herefter iperf3 som en server service

For at sikre at iPerf3 automatisk startes som en service når enheden hvor den er installeret på starter, eller genstarter, gøres følgende.

Opret et nyt dokument i /etc/systemd/system/iperf3.service med følgende indhold.

[Unit]
Description=iperf3

[Service]
ExecStart=/usr/bin/iperf3 --server

[Install]
WantedBy=multi-user.target

Aktiver service

sudo systemctl enable iperf3

Start iperf3 servicen

sudo system iperf3 start

Tjek herefter at iperf3 service er startet og kørende.

sudo system status iperf3

Ovenstående status viser at service er startet og klar til at modtage data. For at teste iPerf3 serveren, kør herefter iperf3 som klient fra en anden maskine mod serveren. Jeg har installeret iPerf3 på en maskine med navnet speedtest. Derfor udføres kommandoen som: sudo iperf3 -cv speedtest.

Ovenstående resultat er fra en Raspberry Pi 2 enhed og viser at den kan håndtere en båndbredde på 100Mbit. Raspberry Pi har kun et 100 Mbit Interface i forhold til 1Gbit på de nye Raspberry Pi 4.

Her er en test som blev køre fra en Raspberry Pi 4.

For at teste sin båndbredde mod Internettet, så kan man benytte følgende offentlige iPerf servere som er listet på iperf.cc.

Raspberry Pi Zero W

Raspberry Pi Zero (headless)

Når du første gang sidder med en Raspberry Pi Zero Wifi i hånden, tænker du hvordan får jeg lige et keyboard på denne enhed.

Men det er der råd for, man kan nemlig konfigurere Raspberry Pi Zero ved nogle små tricks. Tag SD-kortet ud af din Raspberry Pi, sæt den i din PC og vælg det drev som indeholder boot partitionen.

Giv adgang til SSH

Opret en fil ved navn SSH uden indhold

Oprettelse af forbindelse til Wifi

Opret en fil ved navn : wpa_supplicant.conf

tilføj følgende i filen:

country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="NETWORK-NAME"
    psk="NETWORK-PASSWORD"
}

rediger filen, sådan at matcher Wifi konfigurationen på dit Wifi.

country=DK
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="IoT"
    psk="Deterikkesaasikkert"
}

Gem filen og flyt SD-kortet over i Raspberry Pi igen og sæt strøm til. Herefter skulle du Raspberry Pi enheden logge på det trådløse net, aktivere SSH adgang. For at få adgang, skal man kende IP adressen på enheden. Dette kan gøres ved at lave en IP scan af det net som deler IP adresser ud til det trådløse netværk-

Benyt NMAP eller anden form for IP Scanner. For at identificere en Raspberry Pi, så vil MAC Addressen altid starte med følgende prefixes:

  • DC:a6:32
  • E4:5F:01
  • B8:27:EB
  • 3A:35:41

Når man har fundet enheden på netværket, log da på enheden ved hjælp af SSH.

Ændre Hostname

For at ændre hostnavnet på enheden, benyt den indbyggede kommando hostnamectl eller ændre /etc/hostname filen.

sudo hostnamectl set-hostname rp2

Med ovenstående kommando er hostnavnet på raspberry pi enheden nu skiftet til ‘rp2’.

Ubuntu

Konfiguration af SNMP overvågning på Ubuntu server

For at kunne overvåge en Ubuntu server, skal der installeres en SNMP Daemon først [SNMPD]. SNMPD bliver ikke installeret som standard på en Ubuntu server. Tjek med følgende kommando om SNMPD allerede er installeret.

sudo service --status-all

[ + ] apparmor
[ + ] apport
[ + ] atd
[ - ] console-setup.sh
[ + ] cron
[ - ] cryptdisks
[ - ] cryptdisks-early
[ + ] dbus
[ + ] grub-common
[ - ] hwclock.sh
[ + ] irqbalance
[ - ] iscsid
[ - ] keyboard-setup.sh
[ + ] kmod
[ - ] lvm2
[ - ] lvm2-lvmpolld
[ + ] multipath-tools
[ - ] open-iscsi
[ + ] open-vm-tools
[ - ] plymouth
[ - ] plymouth-log
[ + ] procps
[ - ] rsync
[ + ] rsyslog
[ - ] screen-cleanup
[ + ] ssh
[ + ] udev
[ + ] ufw
[ + ] unattended-upgrades
[ - ] uuidd

Listen viser de services der er installeret på serveren, hvis der er angivet [+] så er servicen startet. Listen viser at SNMPD ikke er installeret.

Kør følgende for at installere SNMPD.

  1. opdater pakke listen: sudo apt-get update
  2. Installer SNMPD: sudo apt-get install snmp, snmpd

Herefter skal SNMPD konfigureres, dette gøres ved at ændre snmpd.conf filen. sudo nano /etc/snmp/snmpd.conf

Find linjen med følgende tekst: agentaddress 127.0.0.1,[::1]

Denne tekst skal ændres til følgende: agentaddress udp:161,udp6:[::1]:161

Find linjerne med følgende tekst:

rocommunity public default -V systemonly
rocommunity6 public default -V systemonly

Man benytter snmp community som password for at kunne få lov til at hente informationer fra serveren via snmp.

Ændre public til den SNMP Community som man ønsker eller benyt public som standard. Her er snmp community ændret til neosec.

rocommunity neosec default -V systemonly
rocommunity6 neosec default -V systemonly

Som standard er snmd konfigurereret med et systemonly view som ikke giver så mange informationer på systemet.

Hvis vi gerne vil overvåge disk, memory m.m. så skal snmp viewet ændres.

view systemonly included .1.3.6.1.2.1.1

View systemonly included .1.3.6.1.2.1.25.1

opret nyt view

view systemAll included .1

Gem ændringerne i snmpd.conf filen og start snmpd servicen. sudo service snmpd restart

[ + ] apparmor
[ + ] apport
[ + ] atd
[ - ] console-setup.sh
[ + ] cron
[ - ] cryptdisks
[ - ] cryptdisks-early
[ + ] dbus
[ + ] grub-common
[ - ] hwclock.sh
[ + ] irqbalance
[ - ] iscsid
[ - ] keyboard-setup.sh
[ + ] kmod
[ - ] lvm2
[ - ] lvm2-lvmpolld
[ + ] multipath-tools
[ - ] open-iscsi
[ + ] open-vm-tools
[ - ] plymouth
[ - ] plymouth-log
[ + ] procps
[ - ] rsync
[ + ] rsyslog
[ - ] screen-cleanup
[ + ] snmpd
[ + ] ssh
[ + ] udev
[ + ] ufw
[ + ] unattended-upgrades
[ - ] uuidd

Man kan nu se at snmpd er tilføjet i listen og servicen er startet.

Test nu om man kan hente snmp informationer fra serveren.

snmpwalk -v2c -c neosec localhost

iso.3.6.1.2.1.1.1.0 = STRING: "Linux ubuntudocker 5.4.0-62-generic #70-Ubuntu SMP Tue Jan 12 12:45:47 UTC 2021 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (2143) 0:00:21.43
iso.3.6.1.2.1.1.4.0 = STRING: "Me <me@example.org>"
iso.3.6.1.2.1.1.5.0 = STRING: "ubuntudocker"
iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1
iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.15.2.1.1
iso.3.6.1.2.1.1.9.1.2.4 = OID: iso.3.6.1.6.3.1
iso.3.6.1.2.1.1.9.1.2.5 = OID: iso.3.6.1.6.3.16.2.2.1
iso.3.6.1.2.1.1.9.1.2.6 = OID: iso.3.6.1.2.1.49
iso.3.6.1.2.1.1.9.1.2.7 = OID: iso.3.6.1.2.1.4
iso.3.6.1.2.1.1.9.1.2.8 = OID: iso.3.6.1.2.1.50
iso.3.6.1.2.1.1.9.1.2.9 = OID: iso.3.6.1.6.3.13.3.1.3
...

Ovenstående resultat viser at SNMP Daemon servicen kører og man kan herefter konfigurere overvågning af serveren.

SSL Optimering

Ved en helt standard Microsoft IIS installation, er SSLv3 og SSLv2 slået til som standard. Disse protokoller ses som usikre og bør deaktiveres.

Udover det, er der som standard en række Krypterings algoritmer der er aktiveret som standard som også bør deaktiveres.

Via www.ssllabs.com, kan man teste sit website for hvilken SSL version der benyttes samt om websitet benytter en svag krypteringsalgoritme.

På www.neosec.dk har vi deaktiveret følgende svage algoritmer. RC4 og 3DES 168 bit.

For at slå algoritmerne fra, skal man tilføje nogle nye registrerings nøgler og værdier.

RC4, Triple DES 168 slås fra ved at tilføje nøgler under Ciphers.

Ved Diffie Hellman Key Exhange benyttes som standard 1024 bit. Dette skal ændres til minimum 2048 bit.

De fulde registrerings nøgler er listet længere nede.

SSL 2.0 protokollen styres under Protocols/SSL 2.0 her kan man styre Client og Server indstillingerne.

Det samme gør sig gældende for SSL 3.0.

 

 

 

 

RC4 og 3DES Cipher Deaktivering

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128]
“Enabled”=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]
“Enabled”=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]
“Enabled”=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168]
“Enabled”=dword:00000000

Konfiguration af Diffie-Hellman 2048 bit

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman]
“ServerMinKeyBitLength”=dword:00000800

Deaktivering af SSL 3.0

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]
“DisabledByDefault”=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
“Enabled”=dword:00000000


Qualsys SSL Labs Test you server

Link til SSLabs

Link til SSLLabs SSL Server Test