AoiAWD 设置
环境Ubuntu 18
比赛中
虚拟机配置静态ip
目的:进入靶机内网
1.本机利用ipconfig /all
查看本机网段,记下本机所连接的网络的连接描述
、子网掩码
和默认网关
(非虚拟机ip)
由于我是赛后复现的,所以用的是无线网络,比赛时会提供网线,到时候选择有线的就可以
2.虚拟机开启桥接
打开VMware,将安装aoiawd虚拟机的网络适配器改为桥接
3.打开VMvare,进入编辑->虚拟网络编辑器->更改设置
4.选择桥接模式,桥接至改成之前记下的连接描述
然后确定
5.打开ubuntu,利用ifconfig得到网卡名称
6.ubuntu的网络接口配置
sudo vim /etc/network/interfaces
添加如下的内容
auto ens33 #ens33是刚刚看到的网卡名称
iface ens33 inet static
address 192.168.123.233 #你想设置的静态IP
netmask 255.255.255.0 #刚刚记下的子网掩码
gateway 192.168.123.3 #刚刚记下的网关
7.重启网卡
sudo ifdown ens33
sudo ifup ens33
或者
sudo ifconfig ens33 down
sudo ifconfig ens33 up
组件功能及参数
AoiAWD Core
是整个系统运行的核心,负责探针数据收集入库、插件生命周期管理、Web前端托管服务。
- 运行compile.php即可打包为一个单独的二进制文件,方便携带。
- 插件需要放到和aoiawd.phar同目录下的plugins文件夹,Web端有直接重载插件的按钮,可以实现热更新。
- 一般情况下可直接无参数运行,如果需要特别的配置,可以增加-h参数查看帮助信息。
执行参数:
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
服务运行配置文件:
[2020-09-24 15:21:21] MainServer.notice: AccessToken: 0de8d57b3e91dc66 [] [] #<-- Web访问密钥
...
[2020-09-24 15:21:21] Amp\Http\Server\Server.info: Listening on http://0.0.0.0:1337/ [] [] #<-- Web前端地址
[2020-09-24 15:21:21] aoicommon\socket\AsyncTCPServer.info: Listening on 0.0.0.0:8023 [] [] #<-- 探针上线地址
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
比赛中
记得把aoiawd.phar放到原始编译时候的文件夹内(也就是有plugs的文件夹内)
在pwn靶机上传tapeworm.phar
在web靶机上传guardian.phar
在所有靶机都上传roundworm
chmod +x tapeworm.phar
chmod +x roundworm
chmod +x
./tapeworm.phar -d 目录 -s ip:port
./roundworm -w 目录 -s ip -p port
./guardian.phar -i 目录 -s ip:port
比赛后
镜态ip恢复(恢复动态ip)
sudo vim /etc/network/interfaces
auto ens33
iface ens33 inet dhcp
重启网卡之后,再将桥接模式改为NET模式即可恢复。
参考:
https://blog.csdn.net/weixin_44377940/article/details/110390544
https://www.icode9.com/content-3-853106.html