{Lista nodów}
Unit-1 # execute ha manage ?
<0>     Subsidiary unit FGX00FTXXXXXX
<1>     Subsidiary unit FGX00FTYYYYYY
{Przełączenie na noda id 1}
Unit-1 # execute ha manage 1 admin                
Unit-2 $                                     
{Reboot noda}
Unit-2 $ execute reboot
This operation will shutdown the system !
Do you want to continue? (y/n)y
Category Archives: Sieci
Fortigate – uruchamianie poleceń systemowych
Aby uruchomić jakieś polecenie systemowe w FortiOS CLI musimy użyć polecenia fnsysctl np:
# fnsysctl ls -l /data/etcFortigate WAF – ignorowanie sygnatury
W profilu WAF możemy dodać sygnaturę do listy ignorowanych.
Zacznijmy od sprawdzenia opisu sygnatury, którą chcemy wyłączyć.
diag waf dump | grep -f <id sygnatury>
# diag waf dump | grep -f 90300017
90300017 - This signature prevents attackers from obtaining file and folder names using a tilde character "~" in a get request . <---
Aby w danym profilu dodać sygnaturę do listy ignorowanych wykonujemy:
# config waf profile
# edit <Profile Name>
# config signature
# show | grep disabled-signature  
   
  set disabled-signature 80080005 80200001 60030001 60120001 80080003 90410001 90410002Zapamiętujemy aktualne wpisy i dodajemy nowy
# set disabled-signature 80080005 80200001 60030001 60120001 80080003 90410001 90410002 90300017 
# end
# endDomena AD – Windows polecenia
Sprawdza stan Twojego bezpiecznego kanału oraz nazwę kontrolera domeny, którego dotyczy zapytanie.
nltest /sc_query:domena.comSprawdzanie zastosowanych obiektów zasad grup
gpresult /rFortigate – Sprawdzanie logowania użytkownika przez LDAP
W cmd Fortigate możemy sprawdzić przynależność do grup użytkownika w LDAP.
# diagnose test authserver ldap (LDAP server_name) (username) (password)Domena AD – Relacja zaufania między tą stacją roboczą a domeną podstawową nie powiodła się
Gdy domena AD przestaje ufać komputerowi, prawdopodobnie dzieje się tak dlatego, że hasło komputera lokalnego nie pasuje do hasła przechowywanego w usłudze Active Directory.
Aby usługa AD mogła ufać komputerowi, oba hasła muszą być zsynchronizowane. Jeśli nie są zsynchronizowane, pojawi się niesławny komunikat o błędzie „Błąd relacji zaufania między tą stacją roboczą a domeną podstawową ” .
Niestety, nigdy nie było ani jednego rozwiązania, które działałoby w 100% przypadków.
Gdy nowy komputer jest dodawany do usługi Active Directory, tworzone jest konto komputera z hasłem. To hasło jest domyślnie ważne przez 30 dni. Po 30 dniach zmienia się automatycznie. Jeśli zmieni się, a hasło klienta nie, pojawi się komunikat o błędzie „relacja zaufania między tą stacją roboczą a domeną podstawową nie powiodła się”.
Aby sprawdzić, że to ten problem występuje logujemy się na kliencie jako admin lokalny i w Power Shellu uruchamiamy
> Test-ComputerSecureChannel
FalseFalse oznacza, że zaufanie nie istnieje.
Możemy użyć też cmd w starszych systemach
nltest /sc_verify:<your domain FQDN>Różne sposoby rozwiązania problemu
Resetuj-ComputerMachinePassword (PowerShell)
Jako admin na kliencie wykonujemy:
> Reset-ComputerMachinePasswordnetdom (cmd)
Jako admin na kliencie wykonujemy:
netdom resetpwd /s:DC /ud:abertram /pd:*- DC to nazwa kontrolera domeny
- abertram to nazwa konta użytkownika usługi Active Directory z uprawnieniami do resetowania konta komputera
- * jest symbolem zastępczym hasła do konta użytkownika, które będzie monitować o podanie hasła.
Test-ComputerSecureChannel — naprawa (PowerShell)
Jako admin na kliencie wykonujemy:
> Test-ComputerSecureChannel -Repair -Credential (Get-Credential)Ponowne zalogowanie do domeny
- zalogować się do komputera clienta za pomocą lokalnego konta administracyjnego
- przejdź do Właściwości systemu
- kliknij Zmień
- ustaw go na grupę roboczą
- restart
- ustaw go z powrotem na domenę
Przygotowane na podstawie: https://adamtheautomator.com/the-trust-relationship-between-this-workstation-and-the-primary-domain-failed/
Security Onion – Zarządzanie regułami NIDS
Uzyskiwanie listy kategorii reguł zainstalowanych w naszym systemie:
$ cut -d\" -f2 /opt/so/rules/nids/all.rules | grep -v "^$" | grep -v "^#" | awk '{print $1, $2}'|sort |uniq -c |sort -nrWyłączanie reguł
Wyłączenie konkretnej kategorii używając wyrażeń regularnych
 $ sudo so-rule disabled add 're:GPL TELNET'Wyłączenie reguły według wybranego SID reguły
$ sudo so-rule disabled add 222222Sprawdzenie listy wyłączonych reguł
$ sudo so-rule disabled listAby mieć pewność, możemy sprawdzić czy reguła została zakomentowana w /opt/so/rules/nids/all.rules
$ grep 222222 /opt/so/rules/nids/all.rulesWsystkie te wyjątki zapisywane są do pliku /opt/so/saltstack/local/pillar/minions/<managername>_<role>.sls do sekcji idstools
Progowanie i wyciszanie reguł
Możemy wyciszyć i ustawiać progi wywołania alertów dodając do pliku /opt/so/saltstack/local/pillar/global.sls  lub /opt/so/saltstack/local/pillar/minions/<MINION_ID>.sls sekcję thresholding
Progowanie:
thresholding:
  sids:
    8675309:
      - threshold:
          gen_id: 1
          type: threshold
          track: <by_src | by_dst>
          count: 10
          seconds: 10Wyciszenie:
thresholding:
  sids:
    8675309:
      - suppress:
          gen_id: 1
          track: <by_src | by_dst | by_either>
          ip: <ip | subnet>Po zmianie w plikach .sls musimy ponownie uruchomić Suriacata.
$ sudo sudo so-suricata-restart <--force>Na podstawie https://docs.securityonion.net/en/2.3/managing-alerts.html
Security Onion – Elasticsearch parsowanie logów z syslog
W Security Onion 2 Elasticsearch otrzymuje nieprzeanalizowane logi z Logstash lub Filebeat . Elasticsearch analizuje i przechowuje te logi. Parsery są przechowywane w /opt/so/conf/elasticsearch/ingest/. Własne parsery można umieścić w /opt/so/saltstack/local/salt/elasticsearch/files/ingest/. Jeżeli twój parser będzie posiadał nazwę identyczną ze standardową to zostanie nadpisany.
Do parsowania logów używamy różnych procesorów. Jednym z nich jest Grok. Pisząc lub edytując własny parser z użyciem Grok możemy skorzystać z debugera w Kibana > Dev Tools > Grok Debugger

„Sample Data” – to fragment logów który parsujemy
„Grok Pattern” – wzorzec
„Custom Patterns” – wzorce niestandardowe używane w Grok pattern.
W Grok pattern możemy użyć też standardowych wzorców.
Na podstawie wzorca zmodyfikowałem plik /opt/so/conf/elasticsearch/ingest/syslog zapisując go w /opt/so/saltstack/local/salt/elasticsearch/files/ingest/syslog, aby prawidłowo parsował mój log „<132>Aug 17 16:11:31:000 2022 switch MODULE_UTILS_SSH/5/:SSH: User admin login successfully from x.x.x.x”
{
  "description" : "syslog pipeline",
  "processors" : [
    {
      "dissect": {
        "field": "message",
        "pattern" : "%{message}",
        "on_failure": [ { "drop" : { } } ]
      },
      "remove": {
        "field": [ "type", "agent" ],
        "ignore_failure": true
      }
    }, {
      "grok": {
        "field": "message",
          "patterns": [
            "^<%{INT:syslog.priority:int}>%{TIMESTAMP_ISO8601:syslog.timestamp} +%{IPORHOST:syslog.host} +%{PROG:syslog.program}(?:\\[%{POSINT:syslog.pid:int}\\])?: %{GREEDYDATA:real_message}$",
            "^<%{INT:syslog.priority}>%{DATA:syslog.timestamp} %{WORD:source.application}(\\[%{DATA:pid}\\])?: %{GREEDYDATA:real_message}$",
            "^%{SYSLOGTIMESTAMP:syslog.timestamp} %{SYSLOGHOST:syslog.host} %{SYSLOGPROG:syslog.program}: CEF:0\\|%{DATA:vendor}\\|%{DATA:product}\\|%{GREEDYDATA:message2}$",
            "^<%{INT:syslog.priority:int}>%{DATE_MY:syslog.timestamp} +%{IPORHOST:syslog.host} %{GREEDYDATA:real_message}$"
          ],
          "pattern_definitions" : {
            "DATE_MY" : "%{MONTH} %{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND}:%{INT} %{YEAR}"
          },
          "ignore_failure": true
      }
    },
    {
      "convert" : {
        "if": "ctx?.syslog?.priority != null",
        "field" : "syslog.priority",
        "type": "integer"
      }
    },
    {
...Patterns są przetwarzane od góry do doły aż zostanie znaleziony pasujący wzorzec.
Aby zmiany zostały uwzględnione przeładowałem Elasticsearch:
$ sudo so-elasticsearch-restartHome Assistant – Mikrotik zmiana danych integracji
Aby zmienić adres ip, użytkownika lub hasło do integracji z mikrotikiem logujemy się do HA i za pomocą edytora plików np. Studio Code Server, który możemy sobie doinstalować w dodatkach, otwieramy plik .storage/core.config_entries. Wyszukujemy w nim odpowiednią sekcję, szukając jakiś danych powiązanych z naszym Mikrotikiem np. ip, port, nazwę użytkownika do integracji z mikrotik. Zmieniamy wpisy, które nas interesują, zapisujemy i uruchamiamy ponownie HA.
Wazuh – Indeksowanie i przeglądanie wszystkich logów
W Wazuh domyślnie można przeglądać tylko logi z rozpoznanych alertów. Możemy jednak tak ustawić aby Wazuh indeksował i umożliwił przeglądanie wszystkich wysyłanych do niego logów.
w pliku konfiguracji /var/ossec/etc/ossec.conf ustawiamy
# nano /var/ossec/etc/ossec.conf
<logall_json>yes</logall_json>
# systemctl restart wazuh-manager Zmieniamy konfigurację Filebeat aby czytał i wysyłał alerty i archiwa
# nano /etc/filebeat/filebeat.yml
filebeat.modules:
 - module: wazuh
  alerts:
   enabled: true
  archives:
   enabled: true
# systemctl restart filebeatLogujemy się do dashboard Wazuh i dodajemy wzór indeksu.
Menu -> Management -> Stack Management -> Index Patterns -> Create index pattern
- W polu „Index pattern name” wpisujemy wazuh-archives-* i naciskamy „Next”
- W polu „timestamp” wybieramy „timestamp” ale nie „@timestamp”
- Wybieramy „Create index pattern”
Teraz w „Security events” po prawej stronie u góry możemy wybierać wzór indexu „Index pattern”
