# Интенсив №9. Особенности работы инженеров ## 9.1 Развертывание решения ELK Использовать будем виртуализацию Oracle Virtual Box. Создадим пару машин. Windows и Ubuntu Linux. На Ubuntu будем разворачивать стек ELK. Так как сейчас репозиторий ELK не доступен из локации с российскими адресами, будем использовать зеркало Yandex. Обновим машину: ```bash= sudo apt update && sudo apt upgrade ``` ![](https://i.imgur.com/6G1VCJS.png) ![](https://i.imgur.com/cKJceIN.png) Поключаем репозиторий Yandex ```bash= echo "deb [trusted=yes] https://mirror.yandex.ru/mirrors/elastic/8/ stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list ``` ![](https://i.imgur.com/Sysd8xg.png) ### 9.2.1 Установка Elastic Устанавливаем Elastic ```bash= sudo apt-get update && sudo apt install elasticsearch ``` ![](https://i.imgur.com/4xsQcH4.png) ![](https://i.imgur.com/PTcnkW1.png) ![](https://i.imgur.com/YDxdJ2l.png) Добавим в автозагрузку и запустим ```bash= sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service ``` ![](https://i.imgur.com/oSM3d6N.png) Проверим статус ```bash= sudo systemctl status elasticsearch.service ``` ![](https://i.imgur.com/j9YsBoA.png) Сбросим пароль elastic ```bash= ./bin/elasticsearch-reset-password -u elastic ``` Новый пароль P0z9n-VWUYCGPY8xTid2 ![](https://i.imgur.com/1rKK4kR.png) Проверим работу сервиса: ```bash= sudo curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200 ``` Elastic работает ![](https://i.imgur.com/RTwiQO7.png) ### 9.2.2 Установка Kibana Устанавливаем Kibana ```bash= sudo apt install kibana ``` ![](https://i.imgur.com/eiJre7M.png) Добавим Kibana в автозагрузку и запустим ```bash= sudo systemctl daemon-reload sudo systemctl enable kibana.service sudo systemctl start kibana.service ``` ![](https://i.imgur.com/HO2Juk6.png) Проверим статус ```bash= sudo systemctl status kibana.service ``` Kibana работает но не сконфигурирована ![](https://i.imgur.com/3yGHI63.png) Настроим Kibana ```bash= sudo nano /etc/kibana/kibana.yml ``` ![](https://i.imgur.com/lzUA967.png) Перезапустим ```bash= sudo systemctl restart kibana.service ``` ![](https://i.imgur.com/Z6legve.png) Откроем в браузере ![](https://i.imgur.com/1Qk5fW9.png) Сгенерируем токен для Kibana ```bash= sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana ``` Token: eyJ2ZXIiOiI4LjEuMSIsImFkciI6WyIxOTIuMTY4LjEuMjQxOjkyMDAiXSwiZmdyIjoiNzZlZDcxMDliYzRjZTZmYWE4MTFlZjZlYWRhYzJlNjliYjc3NDhjYjQyNTUwMzBhMjVmMmYyODMyODA1ZDJjOCIsImtleSI6IjlLU3Vvb01CNkVwV3pobENkdkxTOlNCTVRUcjZ3UTFpZkVzZ05CN3JOTEEifQ== ![](https://i.imgur.com/WJ0yeaB.png) Установим токен ![](https://i.imgur.com/mKsyUos.png) ![](https://i.imgur.com/MklfX37.png) ```bash= sudo /usr/share/kibana/bin/kibana-verification-code ``` ![](https://i.imgur.com/f7HmrmV.png) Код: 965 428 Передадим его в браузер ![](https://i.imgur.com/L5LONKc.png) ![](https://i.imgur.com/S2JWy6V.png) Kibana стартовала ![](https://i.imgur.com/89uZ9Ff.png) Залогинимся под пользователем elastic ![](https://i.imgur.com/yH1TsBo.png) xpack.encryptedSavedObjects.encryptionKey: 5b91739895ffc5a50d7a1ac27ba73ab1 xpack.reporting.encryptionKey: 88c89279215112328db030a39ea18908 xpack.security.encryptionKey: fa725de4cf3b17a741751e62c18047be ### 9.2.3 Установка Logstash Установим Logstash ```bash= sudo apt install logstash ``` ![](https://i.imgur.com/nVc37O4.png) Создадим пользователя logstash_internal с паролем bcJCm7GKCKtHrrP ![](https://i.imgur.com/DCmYQHd.png) Создадим роли logstash_reader logstash_writer, назначим им права. ![](https://i.imgur.com/8M6boWC.png) ![](https://i.imgur.com/RtGXzq0.png) ![](https://i.imgur.com/TAc2GBI.png) Создадим конфигурацию ```bash= sudo nano /etc/logstash/conf.d/winbeats.conf ``` ![](https://i.imgur.com/g3lkIVD.png) Конфигурация ```jsonld= input { beats { port => 5044 } } output { elasticsearch { hosts => ["https://localhost:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" ssl => true cacert => '/etc/logstash/http_ca.crt' user => "logstash_internal" password => "bcJCm7GKCKtHrrP" } } ``` Добавим Logstash в автозагрузку и запустим ```bash= sudo systemctl daemon-reload sudo systemctl enable logstash.service sudo systemctl start logstash.service ``` ![](https://i.imgur.com/a13xN79.png) Проверим статус ```bash= sudo systemctl status logstash.service ``` ![](https://i.imgur.com/7gxuILP.png) ![](https://i.imgur.com/DffUu13.png) Проверим что Logstash слушает порт ```bash= sudo netstat -anp | grep 5044 ``` ![](https://i.imgur.com/VLmPhbV.png) ## 9.3 Развертывание Windows + sysmon Sysmon часть пакета sysinternals. Воспользуемся winget установим sysinternal ```powershell= winget install sysinternals ``` ![](https://i.imgur.com/vwVhovX.png) Установим sysmon ```powershell= sysmon -accepteula -i ``` ![](https://i.imgur.com/EgU7zpp.png) Возьмем готовый файл конфигурации предоставляемый SwiftOnSecurity https://github.com/SwiftOnSecurity/sysmon-config Подключим его ```powershell= sysmon -c C:\sysmon-config.xml ``` ![](https://i.imgur.com/jhSOUGj.png) Включим событие 10 ![](https://i.imgur.com/tkB1dDP.png) Sysmon работает ![](https://i.imgur.com/zUoHirN.png) ![](https://i.imgur.com/DRot8X8.png) ![](https://i.imgur.com/jvVBHhe.png) ## 9.4 Подключение WinlogBeat к ELK Windlogbeat скачаем через vpn. Распакуем архив в каталог Program Files Установим winlogbeat. ```powershell= .\install-service-winlogbeat.ps1 ``` ![](https://i.imgur.com/6czopCF.png) Создадим конфигурацию: ```yml= winlogbeat.event_logs: - name: Application ignore_older: 72h - name: System - name: Security - name: Microsoft-Windows-Sysmon/Operational - name: Windows PowerShell - name: Microsoft-Windows-PowerShell/Operational - name: ForwardedEvents logging.level: info logging.to_files: true logging.files: path: C:/Program Files/Winlogbeat/logs name: winlogbeat keepfiles: 7 setup.kibana: host: "192.168.1.241:5601" output.elasticsearch: hosts: ["https://192.168.1.241:9200"] username: "elastic" password: "P0z9n-VWUYCGPY8xTid2" ssl: enabled: true ca_trusted_fingerprint: "a75b240db8482f22f4d63c00f26f72899f4cd066" pipeline: "winlogbeat-%{[agent.version]}-routing" setup.template.settings: index.number_of_shards: 1 ``` ![](https://i.imgur.com/cKFn6Z7.png) Протестируем конфигурацию ```cmd= .\winlogbeat.exe test config -c .\winlogbeat.yml -e ``` ![](https://i.imgur.com/jkEkZi2.png) ![](https://i.imgur.com/ndw9Qho.png) ![](https://i.imgur.com/OhI0k69.png) Стартуем winlogbeat ```powershell= Start-Service winlogbeat Get-Service -Name winlogbeat ``` ![](https://i.imgur.com/UcceLEn.png) ![](https://i.imgur.com/d5DgAwX.png) ![](https://i.imgur.com/Ksrfj73.png) ![](https://i.imgur.com/ArqaY1s.png) ![](https://i.imgur.com/GxcpSE1.png) ![](https://i.imgur.com/hR6s8XD.png) ## 9.5 Перехват хэшей при использовании Mimikatz Склонируем репозиторий с mimikatz. Сдампим хэши. ```cmd= # запустим mimikatz mimikatz.exe # получим права отладки privilege::debug # дамп хэшей sekurlsa::logonpasswords ``` ![](https://i.imgur.com/byB5pW7.png) ## 9.6 Настройка дашбордов Kibana ![](https://i.imgur.com/4YekpMa.png) ![](https://i.imgur.com/fN9JSkv.png) ## 9.7 Настройка фильтра событий в Kibana ## 9.8 Развертывание и настройка Apache Nifi Установим Java ```bash= sudo apt install default-jre ``` ![](https://i.imgur.com/5llH5xv.png) ![](https://i.imgur.com/ytGjv06.png) Создадим каталог и скачаем дистрибутив ```bash= mkdir nifi wget https://archive.apache.org/dist/nifi/1.16.3/nifi-1.16.3-bin.tar.gz ``` ![](https://i.imgur.com/FJ3fdfH.png) Распакуем архив с nifi ```bash= tar -xvf nifi-1.16.3-bin.tar.gz ``` ![](https://i.imgur.com/X7lRSaJ.png) Установим переменную JAVA_HOME ```bash= export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/ echo $JAVA_HOME ``` ![](https://i.imgur.com/gqtTfLQ.png) Запустим ```bash= ./nifi.sh start ``` ![](https://i.imgur.com/47Zd2VF.png) Проверим статус и создадим пользователя ```bash= ./nifi.sh status ./nifi.sh set-single-user-credentials nifi Pa@@Wor1D13453 ``` ![](https://i.imgur.com/RxxaFZq.png) Установим как службу ```bash= sudo ./nifi.sh install nifi ``` ![](https://i.imgur.com/9v7UH6d.png) Добавим в автозагрузку ```bash= sudo systemctl enable nifi ``` ![](https://i.imgur.com/sWHOKUn.png) Посмотрим статус ```bash= sudo systemctl status nifi ``` ![](https://i.imgur.com/eccrBnu.png) Уажем адрес прослушивания ![](https://i.imgur.com/scdkLJY.png) Откроем в браузере адрес https://192.168.1.241:8443/nifi/login ![](https://i.imgur.com/9dwDlyv.png) Результат ![](https://i.imgur.com/aJqNBon.png) ## 9.9 Обогащение событий Syslog средствами Apache Nifi ![](https://i.imgur.com/9doAVgA.png) ## 9.10 Настройка Syslog ```bash= *. * @192.168.1.241:514 ```