目录

WatchAD介绍

WatchAD收集所有域控上的事件日志和kerberos流量,通过特征匹配、Kerberos协议分析、历史行为、敏感操作和蜜罐账户等方式来检测各种已知与未知威胁,功能覆盖了大部分目前的常见内网域渗透手法。该项目在360内部上线运行半年有余,发现多起威胁活动,取得了较好的效果。现决定开源系统中基于事件日志的检测部分。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

项目地址:WatchAD

安装环境

  • CentOS 7

WatchAD安装(日志分析端服务)

基础环境配置

  1. 安装python 3.6
    查看文档:CentOS7.2安装Python3.6.3

  2. 安装docker
    查看文档:CentOS Docker 安装
  3. 安装docker-compose
    查看文档:pip安装docker-compose

安装WatchAD

  1. 下载WatchAD源码
    git clone https://github.com/0Kee-Team/WatchAD.git 如果提示没有git命令, 请安装git:yum install git

  2. 安装python 依赖包
    进到下载的WatchAD的目录下,执行pip3 install -r requirements.txt

  3. 安装数据库依赖
    在WatchAD的目录下,执行docker-compose up,前提是前边的docker和docker-compos都正确安装了。

    注意:
    执行这步时,需要先到https://hub.docker.com/ 平台注册账号,然后在服务器上执行docker login,然后输入你注册激活过的账号密码
    否则直接操作,会报错:ERROR: unauthorized: authentication required,而且登录过后的下载速度,也明显加快了,不知道为什么

  4. 安装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- 目录重命名为Winlogbeat。
    • 打开Winlogbeat目录下的winlogbeat.yml文件,把内容都删除了,然后复制4.1步骤中修改的内容到文件中,保存
    • 以管理员身份打开PowerShell提示符(右键单击PowerShell图标,然后选择“以管理员身份运行”)。
    • 在PowerShell提示符下,运行以下命令以安装服务:
    cd 'C:\Program Files\Winlogbeat'
    .\install-service-winlogbeat.ps1

    注意:

    如果在系统上禁用了脚本执行,则需要为当前会话设置执行策略以允许脚本运行。例如: PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-winlogbeat.ps1。
  5. 初始化WatchAD配置

    注意:执行以下操作时,需要先开一窗口,运行docker-compose up,把基础数据库环境运行起来,好观察输入日志。如果后期服务稳定了,可以执行docker-compose up -d后台运行。

    WatchAD使用python将一些配置信息自动化完成:
    ```python
    Usage: WatchAD.py [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.productionWatchAD-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文件中的pippip3 就可以了

安装

执行命令:docker-compose up -d
启动后,就可以访问WatchAD-Web前端页面了,地址:http://服务器ip/activity_timeline.html

参考链接:

  1. 安装Winlogbeat
  2. WatchAD 项目
  3. WatchAD 安装教程
  4. WatchAD-Web 项目及教程

    本文原创于BigYoung小站,欢迎大家访问。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄