WatchAD介紹
WatchAD收集所有域控上的事件日志和kerberos流量,通過特征匹配、Kerberos協議分析、歷史行為、敏感操作和蜜罐賬戶等方式來檢測各種已知與未知威脅,功能覆蓋了大部分目前的常見內網域滲透手法。該項目在360內部上線運行半年有余,發現多起威脅活動,取得了較好的效果。現決定開源系統中基于事件日志的檢測部分。
項目地址:WatchAD
安裝環境
- CentOS 7
WatchAD安裝(日志分析端服務)
基礎環境配置
安裝python 3.6
查看文檔:CentOS7.2安裝Python3.6.3安裝docker
查看文檔:CentOS Docker 安裝安裝docker-compose
查看文檔:pip安裝docker-compose
安裝WatchAD
下載WatchAD源碼
git clone https://github.com/0Kee-Team/WatchAD.git
如果提示沒有git命令, 請安裝git:yum install git
安裝python 依賴包
進到下載的WatchAD的目錄下,執行pip3 install -r requirements.txt
安裝數據庫依賴
在WatchAD的目錄下,執行docker-compose up
,前提是前邊的docker和docker-compos都正確安裝了。
注意:
執行這步時,需要先到https://hub.docker.com/ 平臺注冊賬號,然后在服務器上執行docker login
,然后輸入你注冊激活過的賬號密碼
否則直接操作,會報錯:ERROR: unauthorized: authentication required
,而且登錄過后的下載速度,也明顯加快了,不知道為什么
-
安裝winlogbeat
4.1 修改winlogbeat.yml 文件
打開我們提供的配置文件 {project_home}/settings/winlogbeat/winlogbeat.yml ,修改output.logstash 的 hosts字段值為你安裝Logstash的IP和端口(默認5044),假設你安裝Logstash的IP為10.10.10.10,此時配置文件為:winlogbeat.event_logs: - name: Security ignore_older: 1h output.logstash: hosts: ["10.10.10.10:5044"]
如果你跟我的教程安裝的,這里的ip就是你現在這個服務器的IP
4.2 下載winlogbeat到Windows 服務器上
WatchAD要求下載6.2版本,這里是下載鏈接:winlogbeat 6.2 版本
4.3 安裝winlogbeat
- 把下載的winlogbeat 6.2壓縮包,解壓到中C:\Program Files。
- 將winlogbeat-<version>目錄重命名為Winlogbeat。
- 打開Winlogbeat目錄下的winlogbeat.yml文件,把內容都刪除了,然后復制4.1步驟中修改的內容到文件中,保存
- 以管理員身份打開PowerShell提示符(右鍵單擊PowerShell圖標,然后選擇“以管理員身份運行”)。
- 在PowerShell提示符下,運行以下命令以安裝服務:
```bash
cd 'C:\Program Files\Winlogbeat'
.\install-service-winlogbeat.ps1
```
注意:
如果在系統上禁用了腳本執行,則需要為當前會話設置執行策略以允許腳本運行。例如: PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-winlogbeat.ps1。
- 初始化WatchAD配置
注意:執行以下操作時,需要先開一窗口,運行
docker-compose up
,把基礎數據庫環境運行起來,好觀察輸入日志。如果后期服務穩定了,可以執行docker-compose up -d
后臺運行。
WatchAD使用python將一些配置信息自動化完成:
```python
Usage: WatchAD.py <options> [settings]
Options:
-h, --help show this help message and exit
--install 執行WatchAD初始化安裝,在次之前請確保已完整環境安裝和配置。
-d DOMAIN, --domain=DOMAIN AD服務器的域名
A FQDN domain name of detection.
-s SERVER, --ldap-server=SERVER 服務器地址,如果域名解析了,可以域名
Server address for LDAP search. e.g: dc01.corp.com
-u USERNAME, --domain-user=USERNAME 連接AD的賬戶,格式:域名\\賬戶
Username for LDAP search. e.g: CORP\peter
-p PASSWORD, --domain-passwd=PASSWORD 管理員密碼
Password for LDAP search.
--check 檢查各個數據庫連接狀態、消息隊列狀態
--start 啟動檢測引擎
--restart 重啟檢測引擎
--stop 停止引擎 (刪除現有消息隊列,防止數據量過大造成積壓)
--status 查看當前引擎狀態
```
直接執行安裝命令,如:
`python3 WatchAD.py --install -d adtest.intra -s 192.168.1.1 -u adtest\\administrator -p password`
運行WatchAD
執行命令:python3 WatchAD.py --start
WatchAD-web安裝(Web監控端服務)
下載WatchAD-Web源碼
git clone https://github.com/0Kee-Team/WatchAD-Web.git
修改配置
修改連接數據庫的配置:
把{WatchAD-Web}/server/config/database_config.py
此文件中的127.0.0.1
全改為WatchAD所在的服務器IP。
修改前端頁面配置:
把WatchAD-Web/frontend/.env.production
和WatchAD-Web/frontend/.env.development
此文件中的127.0.0.1
改為WatchAD-Web所在服務器的IP。我的WatchAD和WatchAD-Web搭建在一個服務器了,所以IP一樣。
進行編譯
進到下載WatchAD-Web目錄,執行:docker-compose build
,如果上一步的配置有修改或者代碼有變動,需要重新執行此命令,下一步的docker-compose up
才會對修改生效
注意:
編譯時,報錯:
ERROR: Service 'server' failed to build: The command '/bin/sh -c pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple' returned a non-zero code: 2
原因:因為環境中,pip默認指向的是python2.7版的。
解決辦法:修改{WatchAD-Server}/server/Dockerfile文件中的pip
為pip3
就可以了
安裝
執行命令:docker-compose up -d
啟動后,就可以訪問WatchAD-Web前端頁面了,地址:http://服務器ip/activity_timeline.html
參考鏈接:
本文原創于BigYoung小站,歡迎大家訪問。