[AWD]AoiAWD构建安装部署全过程记录

一些有的没的

项目地址https://github.com/DasSecurity-HatLab/AoiAWD

系统简介

AoiAWD 分为六个组件,组件间互相配合实现系统的完整功能

MongoDB Server: 日志数据存储数据库
AoiAWD Core: 中心数据处理与插件后端服务器
Frontend: 数据可视化平台前端
Guardian: PWN行为探针
TapeWorm: Web行为探针
RoundWorm: 系统进程与文件系统行为探针

MongoDB Server

用于记录庞大的流量文件的数据库,是整个系统的核心存储。

一般情况下建议和AoiAWD Core一起部署在选手自己可控的主机上。
无需额外的配置,Ubuntu环境下开箱即用,apt一下即可搞定。
Frontend

Vue编写的Web前端,用来浏览日志,产生报警动画等可视化展示。

使用npm编译打包。
一般情况下编译后将与AoiAWD Core集成为一个可执行文件。
无需单独的运行启动。

AoiAWD Core

是整个系统运行的核心,负责探针数据收集入库、插件生命周期管理、Web前端托管服务。

运行compile.php即可打包为一个单独的二进制文件,方便携带。
插件需要放到和aoiawd.phar同目录下的plugins文件夹,Web端有直接重载插件的按钮,可以实现热更新。
一般情况下可直接无参数运行,如果需要特别的配置,可以增加-h参数查看帮助信息。

构建过程

构建AoiAWD Core

首先更新一波,保证系统最新状态,顺便安装所需模块build-essential

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential

安装git和下载项目,当然也可以进入官网自行下载并copy到kali里

apt install git
git clone https://github.com.cnpmjs.org/DasSecurity-HatLab/AoiAWD.git

安装inotifywait,这里不需要在aoiawd文件里创建,跟aoiawd在同一文件下即可,最后一步的安装,如果不是用的root,则三个命令都需加上sudo

mkdir inotifywait   
cd inotifywait  
wget https://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz   #下载
tar zxf inotify-tools-3.14.tar.gz   #解压
cd inotify-tools-3.14/
./configure && make && make install #安装

可用man inotifywait命令查看文档以确定是否安装正确,然后按q退出

安装mongdb和需要的依赖

sudo apt install mongodb-server
sudo apt-get install php7.4-dev php-pear
sudo pecl install mongodb 

可以直接启动服务

sudo service mongodb start
sudo service mongodb status #查看状态

出现这个表示服务安装成功运行正常

安装会出现提示
You should add "extension=mongodb.so"to php.ini
在’/etc/php/php版本/cli/phpini’中加上一句extension=mondb.so
并且这里需要把phar.readonly和phar.require_hash关掉(前面有分号注释记得删掉)


vim查找关键字方法,命令模式下:
1. /+关键字 ,回车即可。此为从文档当前位置向下查找关键字,按n键查找关键字下一个位置;
2. ?+关键字,回车即可。此为从文档挡圈位置向上查找关键字,按n键向上查找关键字;

构建Fronted

apt install npm      #安装npm
cd AoiAWD              #进入下载的项目
cd Frontend
npm install          #如有提示可继续敲npm fund命令
npm run build

这里npm和node可能出现版本不兼容的问题,我这里使用nvm对node.js进行管理,最后参考csdn一个博主的版本号后回退版本成功构建

构建AoiAWDcore

在AoiAWD文件夹中

cd AoiAWD
rm -rf src/public/*                        #删除
cp -r ../Frontend/dist/* src/public/      #复制静态资源
php compile.php

执行成功后可以得到aoiawd.phar,用于web端启动

构建TapeWorm

cd TapeWorm
php compile.php

构建成功后得到tapeworm.phar #探针

构建Guardian

cd Guardian
php compile.php

构建成功后得到guardian.phar #探针

构建RoundWorm

cd RoundWorm
make

构建成功会得到roundworm #探针

食用方法

启动AoiAWD

如果前面没有启动MongoDB的话现在启动
sudo service mongodb start

cd AoiAWD
sudo mongod
./aoiawd.phar

会给一串Token用于web端登录,
默认1337是web访问端口,8023为探针接收端口
加入参数可以修改端口
AoiAWD: Data Visualization Tool & Main Server

Usage: ./aoiawd.phar [OPTIONS]
         -w [URI] HTTP server bind URI. Default: tcp://0.0.0.0:1337
         -l [URI] Log recoard server bind URI. Default: tcp://0.0.0.0:8023
         -m [URI] MongoDB server URI. Default: mongodb://127.0.0.1:27017
         -t [STRING] Access token. Default: [RANDOM]
         -h This help info

Guardian

一个二进制PWN的影子外壳,其原理是包裹在PWN题目外侧,在每次被启动的时候透明记录STDIN与STDOUT的流量,并快照PWN程序的内存结构(/proc/????/mem)上传回AoiAWD Core。

  • 在项目目录运行compile.php将会编译影子壳程序和捆绑程序: guardian.phar,一般是在选手电脑上进行捆绑后将生成文件上传到靶机。
  • 直接运行捆绑程序会输出帮助文本,其中比较重要的一些参数是:
    • -i: 输入需要套壳的PWN题目程序路径
    • -s: 输入可以从靶机访问到探针上线地址的URL,比如说192.168.???.???:8023
Guardian: AoiAWD ELF PWNMonitor Tool
Usage: ./guardian.phar [PATH]
         -i [PATH] Original ELF.
         -o [PATH] Path of patched ELF. Default: {$OriginalELF}.guardianed
         -s [URI] Log recoard server URI. Default: 127.0.0.1:8023
         -h This help info

TapeWorm

一个PHP Web的影子外壳,其原理是自动注入到所有PHP文件的头部,支持输入输出流量的抓取与上报,同时具有处理输出数据的能力,实现输出内容篡改。

  • 程序内部的代码已经实现了单实例启动,即便是层层include了多次,也只会运行最先触发的影子外壳。所以不用担心复杂的题目影响性能。
  • 自动注入程序会智能识别面向对象的文件(包含 namespace 关键字),和直接面向过程的PHP文件,一般情况下不会造成语法错误。
  • 自动注入程序会识别已经被注入的脚本并加以跳过,所以多次反复无脑对web根目录运行注入程序并不会造成什么太大的问题。
  • 运行compile.php就可以生成自动注入程序,一般情况下可以上传到靶机上直接对web根目录进行注入,或者在选手电脑上注入好之后再上传到靶机上。
  • 一时注入一时爽,忘记备份宕机慌
  • 直接运行注入程序会显示帮助文本,其中比较重要的一些参数是:
    • -d: 需要注入外壳的web根目录,会从此目录递归感染所有的PHP文件。
    • -s: 输入可以从靶机访问到探针上线地址的URL,比如说192.168.???.???:8023。
TapeWorm: AoiAWD PHP WebMonitor Tool
Usage: ./tapeworm.phar [PATH]
         -d [PATH] WebMonitor inject dir.
         -s [URI] Log recoard server URI. Default: 127.0.0.1:8023
         -f [PATH] Inject file path. Default: {$dir}
         -h This help info

RoundWorm

一个监控文件系统和进程的系统行为监视器,其原理是扫描/proc文件夹获取当前正在运行的所有进程的信息,以及利用Linux系统的inotify功能对指定文件夹的敏感文件操作进行全面的记录。

  • 直接运行make就可以编译生成
  • 一般来讲该程序在靶机上运行,选手电脑上没必要执行这玩意。
  • 添加-h参数即可看到帮助文档,其中比较重要的一些参数是:
    • -d: 后台运行,你当然不想关掉ssh的时候就把探针也给关了。
    • -s: 输入可以从靶机访问到探针上线地址的IP,比如说192.168.???.???。
    • -w: 需要监控文件变化的路径,如果有多个路径使用’;’分割,比如: -w “/tmp;/var/www/html”
RoundWorm: AoiAWD Filesystem & Process Monitor Tool
Usage: ./roundworm [OPTIONS]
         -d Running in daemon mode.
         -s [HOST] AoiAWD Probe IP. Default: 127.0.0.1
         -p [PORT] AoiAWD Probe PORT. Default: 8023
         -w [PATH] Inotify watch dir, ';' as divider. Default: /tmp
         -i [MSECOND] Process watch interval. Default: 100
         -h This help info

关于本地运行时踩到的坑

1. 运行后没反应

我这里测试平台是web端架设在kali,TapeWorm注入ubuntu的apache2 php,访问测试没反应可以查看apache的错误报告
我这里的问题是apache权限不足导致的。尝试了下面几条命令(我也不知道哪个生效了)

chown www-data:www-data /home/tomato/TapeWorm.661e2ef90ad6d.php
chmod 644 /home/tomato/TapeWorm.661e2ef90ad6d.php
chmod +x /home
chmod +x /home/tomato

2. 忘了开mongodb

systemctl start mongodb

3. 防止笨蛋忘了开服务

鉴于上一条贴一个自启动mongodb的配置方法
需要创建一个 Systemd 服务配置文件来描述 MongoDB 的启动参数和行为。在 /etc/systemd/system 目录下创建一个新文件,命名为 mongodb.service,并编辑该文件,添加以下内容:

[Unit]
Description=MongoDB Database Server
After=network.target

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  1. 重新加载 Systemd 配置: 编辑完成后,保存文件并执行以下命令重新加载 Systemd 配置:
    sudo systemctl daemon-reload
  2. 启用 MongoDB 服务: 接下来,使用以下命令启用 MongoDB 服务,这样它就会在系统启动时自动启动:
    sudo systemctl enable mongodb
  3. 启动 MongoDB 服务: 最后,启动 MongoDB 服务,使配置生效:
    sudo systemctl start mongodb
  4. 确保 MongoDB 服务已成功启动:
    sudo systemctl status mongodb
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇