Uruchomienie programu lub skryptu w kontekście użytkownika SYSTEM

Pobieramy z SysInternals program PsTools i z tego pakietu uruchamiamy 'psexec’ z uprawnieniami administratora.

psexec -s -i cmd.exe

Teraz w nowej konsoli możemy uruchomić dowolny program w kontekście uprzywilejowanego użytkownika SYSTEM. Dzięki temu możemy np. przetestować skrypt, który ma być uruchomiony z polityki GPO na wszystkich komputerach w domenie.

ADCS – Sprawdzanie podatności

W Kali linux uruchamiamy polecenie:

certipy-ad find -stdout -vulnerable -dc-ip <ip domain controller> -target <domena windows> -u <domain user>

domain user to zwykły użytkownik domeny bez praw admina
W odpowiedzi na dole ekranu w sekcji „[!] Vulnerabilities” zobaczymy podatności naszego serwera ADCS np:
ESC8 : Web Enrollment is enabled and Request Disposition is set to Issue

A w sekcji „Certificate Templates” podatne szablony certfikatów, jeżeli istnieją.

FortiClient – Linux – problem z połączeniem VPN

Przy próbie połączenia za pomocą FortiClient z VPN w Ubuntu 24.04 wyświetla się komunikat „config DNS failed”.

Problem wydaje się występować jeżeli w systemie mamy zainstalowane interfejsy sieciowe z Vmware Workstion lub Docker. Aby rozwiązać problem, należy w konfiguracji wykluczyć te interfejsy z zarządzania przez NetworkManager.

Edytujemy plik /etc/NetworkManager/NetworkManager.conf i dodajemy interfejsy, które chcemy wykluczyć:

$ sudo nano /etc/NetworkManager/NetworkManager.conf
[keyfile]
unmanaged-devices=interface-name:docker0;interface-name:br-*;interface-name:vmnet*

W mim przypadku docker0 i br-* to interfejsy Docker a vmnet* to maska interfejsów Vmware

Restarujemy NetworkManager i Docker jeżeli go używamy:

sudo systemctl restart NetworkManager
sudo systemctl restart docker

Bacula – Restore kopii z kopii

W Baculi możemy dodać Job: Type = Copy. Dzięki temu uzyskamy możliwość robienia kopii z kopii czyli np mamy backup na SD = Storage1 a chcemy aby Bacula robiła nam kopię puli Pool = pool1 z Storage1 na Storage2 Pool=pool1B. Bacula nie będzie łączyła się z klientem aby wykonać nową kopię tylko pobierze dane z pool1 i zrobi kopię na pool1B który znajduje się na Storage2.

Aby odzyskać dane z tak powstałej puli musimy dokładnie wskazać jobid, Jobu typu COPY.

Nie udało mi się tego zrobić za pomocą GUI Bacularis. Aby odzyskać te dane musimy skorzystać z „bconsole”

# bconsole

* list jobs jobtype=C
. . . . . . .
| 3,181 | BackupCatalog | 2025-02-13 23:10:16 | C | F | 1 | 1,052,475,090 | T |
| 3,182 | BackupCatalog | 2025-02-14 23:10:15 | C | F | 1 | 1,062,885,117 | T |

* restore jobid=3182 where="/tmp/restore"
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
You have selected the following JobId: 3182

Building directory tree for JobId(s) 3182 ...  
1 files inserted into the tree.

You are now entering file selection mode where you add (mark) and
remove (unmark) files to be restored. No files are initially added, unless
you used the "all" keyword on the command line.
Enter "done" to leave this mode.

cwd is: /
$ mark *
1 file marked.
$ done
Bootstrap records written to /opt/bacula/working/bacula-dir.restore.53.bsr

The Job will require the following (*=>InChanger):
   Volume(s)                 Storage(s)                SD Device(s)
===========================================================================
   
    Vol-0183                  Storage2                StorageChgr2                

Volumes marked with "*" are in the Autochanger.


1 file selected to be restored.

Defined Clients:
     1: bacula-fd
     2: None
Select the Client (1-6): 1
Using Catalog "MyCatalog"
Run Restore job
JobName:         RestoreFiles
Bootstrap:       /opt/bacula/working/bacula-dir.restore.53.bsr
Where:           /tmp/restore
Replace:         Always
FileSet:         Full Set
Backup Client:   bacula-fd
Restore Client:  bacula-fd
Storage:         Storage2
When:            2025-02-15 13:22:03
Catalog:         MyCatalog
Priority:        10
Plugin Options:  *None*
OK to run? (yes/mod/no): yes
Job queued. JobId=3275

ZFS -Zbiorcze usuwanie snapshotów

Chcemy usunąć snapshoty, które w nazwie mają „test” z sierpnia 2024

Listujemy, które snapshoty zostaną usunięte:
# zfs list -t snapshot -H -o name | grep "test.*2024-08" | xargs -n1 echo
Usuwamy
# zfs list -t snapshot -H -o name | grep "test.*2024-08" | xargs -n1 zfs destroy

DNS – Konfiguracja gdy domena nie używana do wysyłania poczty

You need to add a widget, row, or prebuilt layout before you’ll see anything here. 🙂

Gdy nasza domena nie jest używana do rozsyłania poczty, możemy dodać do dnsu wpisy, które będa utrudniać przyjmowanie poczty z naszej domeny przez inne serwery.

SPF – nie zgadzamy się na wysyłanie poczty z żadnego adresu IP

nasza.domena.pl    TXT      v=spf1 -all

DMARC – Informujemy odbiorcze serwery poczty, aby w przypadku nie zgodności polityk DMARC odrzucały maile

_dmarc.nasza.domena.pl    TXT      v=DMARC1;p=reject;

K3s – Wygaśnięte certyfikaty

Wygasłe certyfikaty powinny się odnowić przy ponownym uruchomieniu k3s:

# systemctl restart k3s

Jeżeli certyfikaty się nie odnowią i widzimy komunikat:

# kubectl get nodes
Unable to connect to the server: x509: certificate has expired or is not yet valid

Możemy wymusić wygenerowanie nowych.
Zabezpieczamy katalog z dotychczasowymi sekretami TLS

# tar -czvf /var/lib/rancher/k3s/server/apphost-cert.tar.gz /var/lib/rancher/k3s/server/tls

Usuwamy plik

# rm /var/lib/rancher/k3s/server/tls/dynamic-cert.json

Usuwamy zbuforowany certyfikat z sekretów kubernetes

# kubectl --insecure-skip-tls-verify=true delete secret -n kube-system k3s-serving

Uruchamiamy ponownie usługę K3s, aby odnowić certyfikaty

# systemctl restart k3s

Zabbix zgłasza problemy z usługami GoogleUpdater w Windows

Usługa GoogleUpdater często zmiania swoją nazwę a Zabbix nas o tym informuje. Zmienimy ustawienia Zabbixa aby nie monitorował tej usługi.

  • Data Collection -> Templates -> Windows by Zabbix agent -> Macros
  • Do macra {$SERVICE.NAME.NOT_MATCHES} na końcu przed ’)$’ dodajemy '|GoogleUpdater.*’
  • Wyłączamy tiggery na które wskazują bierzące alarmy GoogleUpdater. (Na liście problemów lewy przycisk myszy na nazwie problemu nastepnie wybieramy z menu Tigger. W okienku na dole odznaczamy Enabled i zatwierdzamy zmiany)

Kubernetes – Tworzenie obiektu configmap na podstawie dowolnego pliku

Możemy stworzyć configmapę na podstawie dowolnego pliku. W naszym przypadku bedzie to plik appsettings.json.

$ kubectl create configmap ares-api-config --from-file=Configuration/appsettings.json -n test

Ta metoda nie pozwoli nam zaktualizować configmapy bez jej usunięcia z klastra. Aby rozwiązać ten problem możemy najpierw utworzyć na podstawie naszego pliku appsettings.json plik yaml, następnie go zaaplikować. Gdy będziemy chcieli zmienić obiekt configmap w klastrze to powtarzamy ten proces.

$ kubectl create configmap ares-api-config --from-file=Configuration/appsettings.json -n test --dry-run=client -o yaml > configmap.yaml
$ kubectl apply -f configmap.yaml -n test

Testowanie połączenia ssl/tls za pomocą openssl

Gdy potrzebujemy przetestować przebieg połączenie ssl z serwerem http, poczty lub innym wykorzystującym protokół ssl/tls, możemy spróbować połączyć się z serwerem używając openssl w trybie klienta.

# openssl s_client -connect google.com:443

CONNECTED(00000003)                                                                                                                                                                                                                                                                                                                                   
depth=2 C = US, O = Google Trust Services LLC, CN = GTS Root R1                                                                                                                                                                                                                                                                                       
verify return:1                                                                                                                                                                                                                                                                                                                                       
depth=1 C = US, O = Google Trust Services, CN = WR2                                                                                                                                                                                                                                                                                                   
verify return:1                                                                                                                                                                                                                                                                                                                                       
depth=0 CN = *.google.com                                                                                                                                                                                                                                                                                                                             
verify return:1                                                                                                                                                                                                                                                                                                                                       
---                                                                                                                                                                                                                                                                                                                                                   
Certificate chain                                                                                                                                                                                                                                                                                                                                     
 0 s:CN = *.google.com                                                                                                                                                                                                                                                                                                                                
   i:C = US, O = Google Trust Services, CN = WR2                                                                                                                                                                                                                                                                                                      
   a:PKEY: id-ecPublicKey, 256 (bit); sigalg: RSA-SHA256                                                                                                                                                                                                                                                                                              
   v:NotBefore: Jun  3 06:35:38 2024 GMT; NotAfter: Aug 26 06:35:37 2024 GMT                                                                                                                                                                                                                                                                          
 1 s:C = US, O = Google Trust Services, CN = WR2                                                                                                                                                                                                                                                                                                      
   i:C = US, O = Google Trust Services LLC, CN = GTS Root R1                                                                                                                                                                                                                                                                                          
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256                                                                                                                                                                                                                                                                                              
   v:NotBefore: Dec 13 09:00:00 2023 GMT; NotAfter: Feb 20 14:00:00 2029 GMT                                                                                                                                                                                                                                                                          
 2 s:C = US, O = Google Trust Services LLC, CN = GTS Root R1                                                                                                                                                                                                                                                                                          
   i:C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root CA                                                                                                                                                                                                                                                                              
   a:PKEY: rsaEncryption, 4096 (bit); sigalg: RSA-SHA256                                                                                                                                                                                                                                                                                              
   v:NotBefore: Jun 19 00:00:42 2020 GMT; NotAfter: Jan 28 00:00:42 2028 GMT                                                                                                                                                                                                                                                                          
---                                                                                                                                                                                                                                                                                                                                                   
Server certificate                                                                                                                                                                                                                                                                                                                                    
-----BEGIN CERTIFICATE-----                                                  
MIIOTTCCDTWgAwIBAgIQag+0Dl9hY5UKDMPiKzcGqDANBgkqhkiG9w0BAQsFADA7             
MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMQww
. . . . .

W wyniku polecenia zobaczymy cały przebieg połączenia który może ułątwić nam identyfikację problemów z certyfikatami

Gdy chemy sprawdzić start tls smtp do do polecenia dodajemy parametr -starttls smtp lub -starttls ftp